[INFO] cloning repository https://github.com/MichaPehlivan/aoc2024 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/MichaPehlivan/aoc2024" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMichaPehlivan%2Faoc2024", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMichaPehlivan%2Faoc2024'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] fe4bc4b727fae5b3b3252620abe958c4e55d6e44 [INFO] linting MichaPehlivan/aoc2024 against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMichaPehlivan%2Faoc2024" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/MichaPehlivan/aoc2024 [INFO] finished tweaking git repo https://github.com/MichaPehlivan/aoc2024 [INFO] tweaked toml for git repo https://github.com/MichaPehlivan/aoc2024 written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/MichaPehlivan/aoc2024 on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/MichaPehlivan/aoc2024 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] f8355f0bd0994684ca70933592a8d9072ded45cf4aa9f04cd26402fc82e207b6 [INFO] running `Command { std: "docker" "start" "-a" "f8355f0bd0994684ca70933592a8d9072ded45cf4aa9f04cd26402fc82e207b6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "f8355f0bd0994684ca70933592a8d9072ded45cf4aa9f04cd26402fc82e207b6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f8355f0bd0994684ca70933592a8d9072ded45cf4aa9f04cd26402fc82e207b6", kill_on_drop: false }` [INFO] [stdout] f8355f0bd0994684ca70933592a8d9072ded45cf4aa9f04cd26402fc82e207b6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 32b74ada17016e9f00432eb49f6233089af06ba5deb3e43da79176bf635b89c5 [INFO] running `Command { std: "docker" "start" "-a" "32b74ada17016e9f00432eb49f6233089af06ba5deb3e43da79176bf635b89c5", kill_on_drop: false }` [INFO] [stderr] Checking aoc2024 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day1/mod.rs:15:23 [INFO] [stdout] | [INFO] [stdout] 15 | let number1 = usize::from_str_radix(numbers.get(0).unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `numbers.get(0).unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] = note: `#[warn(clippy::from_str_radix_10)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `numbers.get(0)` [INFO] [stdout] --> src/day1/mod.rs:15:45 [INFO] [stdout] | [INFO] [stdout] 15 | let number1 = usize::from_str_radix(numbers.get(0).unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `numbers.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] = note: `#[warn(clippy::get_first)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day1/mod.rs:16:23 [INFO] [stdout] | [INFO] [stdout] 16 | let number2 = usize::from_str_radix(numbers.get(1).unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `numbers.get(1).unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day1/mod.rs:44:23 [INFO] [stdout] | [INFO] [stdout] 44 | let number1 = usize::from_str_radix(numbers.get(0).unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `numbers.get(0).unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `numbers.get(0)` [INFO] [stdout] --> src/day1/mod.rs:44:45 [INFO] [stdout] | [INFO] [stdout] 44 | let number1 = usize::from_str_radix(numbers.get(0).unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `numbers.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day1/mod.rs:45:23 [INFO] [stdout] | [INFO] [stdout] 45 | let number2 = usize::from_str_radix(numbers.get(1).unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `numbers.get(1).unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day2/mod.rs:15:23 [INFO] [stdout] | [INFO] [stdout] 15 | let num = isize::from_str_radix(level, 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `level.parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `levels.get(0)` [INFO] [stdout] --> src/day2/mod.rs:20:55 [INFO] [stdout] | [INFO] [stdout] 20 | let increase_sign = (levels.get(1).unwrap() - levels.get(0).unwrap()).signum(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `levels.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `!RangeInclusive::contains` implementation [INFO] [stdout] --> src/day2/mod.rs:23:29 [INFO] [stdout] | [INFO] [stdout] 23 | if diff == 0 || diff < -3 || diff > 3 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: use: `!(-3..=3).contains(&diff)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day2/mod.rs:52:23 [INFO] [stdout] | [INFO] [stdout] 52 | let num = isize::from_str_radix(level, 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `level.parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `levels.get(0)` [INFO] [stdout] --> src/day2/mod.rs:57:59 [INFO] [stdout] | [INFO] [stdout] 57 | let mut increase_sign = (levels.get(1).unwrap() - levels.get(0).unwrap()).signum(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `levels.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `!RangeInclusive::contains` implementation [INFO] [stdout] --> src/day2/mod.rs:60:29 [INFO] [stdout] | [INFO] [stdout] 60 | if diff == 0 || diff < -3 || diff > 3 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: use: `!(-3..=3).contains(&diff)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `levels.get(0)` [INFO] [stdout] --> src/day2/mod.rs:78:59 [INFO] [stdout] | [INFO] [stdout] 78 | increase_sign = (levels.get(1).unwrap() - levels.get(0).unwrap()).signum(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `levels.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `!RangeInclusive::contains` implementation [INFO] [stdout] --> src/day2/mod.rs:81:37 [INFO] [stdout] | [INFO] [stdout] 81 | if diff == 0 || diff < -3 || diff > 3 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: use: `!(-3..=3).contains(&diff)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day3/mod.rs:18:25 [INFO] [stdout] | [INFO] [stdout] 18 | let a_num = usize::from_str_radix(a, 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `a.parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day3/mod.rs:19:25 [INFO] [stdout] | [INFO] [stdout] 19 | let b_num = usize::from_str_radix(b, 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `b.parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day3/mod.rs:57:33 [INFO] [stdout] | [INFO] [stdout] 57 | let a_num = usize::from_str_radix(a, 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `a.parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day3/mod.rs:58:33 [INFO] [stdout] | [INFO] [stdout] 58 | let b_num = usize::from_str_radix(b, 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `b.parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `row` is used as a loop counter [INFO] [stdout] --> src/day4/mod.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | for line in reader.lines() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (row, line) in reader.lines().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `col` is used as a loop counter [INFO] [stdout] --> src/day4/mod.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | for c in line_clone.chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (col, c) in line_clone.chars().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/day4/mod.rs:25:13 [INFO] [stdout] | [INFO] [stdout] 25 | / ... if row > 2 { [INFO] [stdout] 26 | | ... if char_grid[row][col] == 'X' && char_grid[row-1][col] == 'M' && char_grid[row-2][col] == 'A' && char_grid[row-3][col] =... [INFO] [stdout] 27 | | ... count += 1; [INFO] [stdout] 28 | | ... } [INFO] [stdout] 29 | | ... } [INFO] [stdout] | |_______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 25 ~ if row > 2 [INFO] [stdout] 26 ~ && char_grid[row][col] == 'X' && char_grid[row-1][col] == 'M' && char_grid[row-2][col] == 'A' && char_grid[row-3][col] == 'S' { [INFO] [stdout] 27 | count += 1; [INFO] [stdout] 28 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/day4/mod.rs:31:13 [INFO] [stdout] | [INFO] [stdout] 31 | / ... if row < 137 { [INFO] [stdout] 32 | | ... if char_grid[row][col] == 'X' && char_grid[row+1][col] == 'M' && char_grid[row+2][col] == 'A' && char_grid[row+3][col] =... [INFO] [stdout] 33 | | ... count += 1; [INFO] [stdout] 34 | | ... } [INFO] [stdout] 35 | | ... } [INFO] [stdout] | |_______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 31 ~ if row < 137 [INFO] [stdout] 32 ~ && char_grid[row][col] == 'X' && char_grid[row+1][col] == 'M' && char_grid[row+2][col] == 'A' && char_grid[row+3][col] == 'S' { [INFO] [stdout] 33 | count += 1; [INFO] [stdout] 34 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/day4/mod.rs:37:13 [INFO] [stdout] | [INFO] [stdout] 37 | / ... if col > 2 { [INFO] [stdout] 38 | | ... if char_grid[row][col] == 'X' && char_grid[row][col-1] == 'M' && char_grid[row][col-2] == 'A' && char_grid[row][col-3] =... [INFO] [stdout] 39 | | ... count += 1; [INFO] [stdout] 40 | | ... } [INFO] [stdout] 41 | | ... } [INFO] [stdout] | |_______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 37 ~ if col > 2 [INFO] [stdout] 38 ~ && char_grid[row][col] == 'X' && char_grid[row][col-1] == 'M' && char_grid[row][col-2] == 'A' && char_grid[row][col-3] == 'S' { [INFO] [stdout] 39 | count += 1; [INFO] [stdout] 40 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/day4/mod.rs:43:13 [INFO] [stdout] | [INFO] [stdout] 43 | / ... if col < 137 { [INFO] [stdout] 44 | | ... if char_grid[row][col] == 'X' && char_grid[row][col+1] == 'M' && char_grid[row][col+2] == 'A' && char_grid[row][col+3] =... [INFO] [stdout] 45 | | ... count += 1; [INFO] [stdout] 46 | | ... } [INFO] [stdout] 47 | | ... } [INFO] [stdout] | |_______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 43 ~ if col < 137 [INFO] [stdout] 44 ~ && char_grid[row][col] == 'X' && char_grid[row][col+1] == 'M' && char_grid[row][col+2] == 'A' && char_grid[row][col+3] == 'S' { [INFO] [stdout] 45 | count += 1; [INFO] [stdout] 46 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/day4/mod.rs:49:13 [INFO] [stdout] | [INFO] [stdout] 49 | / ... if row > 2 && col > 2 { [INFO] [stdout] 50 | | ... if char_grid[row][col] == 'X' && char_grid[row-1][col-1] == 'M' && char_grid[row-2][col-2] == 'A' && char_grid[row-3][co... [INFO] [stdout] 51 | | ... count += 1; [INFO] [stdout] 52 | | ... } [INFO] [stdout] 53 | | ... } [INFO] [stdout] | |_______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 49 ~ if row > 2 && col > 2 [INFO] [stdout] 50 ~ && char_grid[row][col] == 'X' && char_grid[row-1][col-1] == 'M' && char_grid[row-2][col-2] == 'A' && char_grid[row-3][col-3] == 'S' { [INFO] [stdout] 51 | count += 1; [INFO] [stdout] 52 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/day4/mod.rs:55:13 [INFO] [stdout] | [INFO] [stdout] 55 | / ... if row > 2 && col < 137 { [INFO] [stdout] 56 | | ... if char_grid[row][col] == 'X' && char_grid[row-1][col+1] == 'M' && char_grid[row-2][col+2] == 'A' && char_grid[row-3][co... [INFO] [stdout] 57 | | ... count += 1; [INFO] [stdout] 58 | | ... } [INFO] [stdout] 59 | | ... } [INFO] [stdout] | |_______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 55 ~ if row > 2 && col < 137 [INFO] [stdout] 56 ~ && char_grid[row][col] == 'X' && char_grid[row-1][col+1] == 'M' && char_grid[row-2][col+2] == 'A' && char_grid[row-3][col+3] == 'S' { [INFO] [stdout] 57 | count += 1; [INFO] [stdout] 58 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/day4/mod.rs:61:13 [INFO] [stdout] | [INFO] [stdout] 61 | / ... if row < 137 && col < 137 { [INFO] [stdout] 62 | | ... if char_grid[row][col] == 'X' && char_grid[row+1][col+1] == 'M' && char_grid[row+2][col+2] == 'A' && char_grid[row+3][co... [INFO] [stdout] 63 | | ... count += 1; [INFO] [stdout] 64 | | ... } [INFO] [stdout] 65 | | ... } [INFO] [stdout] | |_______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 61 ~ if row < 137 && col < 137 [INFO] [stdout] 62 ~ && char_grid[row][col] == 'X' && char_grid[row+1][col+1] == 'M' && char_grid[row+2][col+2] == 'A' && char_grid[row+3][col+3] == 'S' { [INFO] [stdout] 63 | count += 1; [INFO] [stdout] 64 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/day4/mod.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | / ... if row < 137 && col > 2 { [INFO] [stdout] 68 | | ... if char_grid[row][col] == 'X' && char_grid[row+1][col-1] == 'M' && char_grid[row+2][col-2] == 'A' && char_grid[row+3][co... [INFO] [stdout] 69 | | ... count += 1; [INFO] [stdout] 70 | | ... } [INFO] [stdout] 71 | | ... } [INFO] [stdout] | |_______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 67 ~ if row < 137 && col > 2 [INFO] [stdout] 68 ~ && char_grid[row][col] == 'X' && char_grid[row+1][col-1] == 'M' && char_grid[row+2][col-2] == 'A' && char_grid[row+3][col-3] == 'S' { [INFO] [stdout] 69 | count += 1; [INFO] [stdout] 70 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `row` is used as a loop counter [INFO] [stdout] --> src/day4/mod.rs:85:5 [INFO] [stdout] | [INFO] [stdout] 85 | for line in reader.lines() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (row, line) in reader.lines().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `col` is used as a loop counter [INFO] [stdout] --> src/day4/mod.rs:88:9 [INFO] [stdout] | [INFO] [stdout] 88 | for c in line_clone.chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (col, c) in line_clone.chars().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/day5/mod.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 17 | if line_clone == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `line_clone.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] = note: `#[warn(clippy::comparison_to_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day5/mod.rs:23:24 [INFO] [stdout] | [INFO] [stdout] 23 | let num1 = usize::from_str_radix(pair.get(0).unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `pair.get(0).unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `pair.get(0)` [INFO] [stdout] --> src/day5/mod.rs:23:46 [INFO] [stdout] | [INFO] [stdout] 23 | let num1 = usize::from_str_radix(pair.get(0).unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^ help: try: `pair.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day5/mod.rs:24:24 [INFO] [stdout] | [INFO] [stdout] 24 | let num2 = usize::from_str_radix(pair.get(1).unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `pair.get(1).unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day5/mod.rs:31:32 [INFO] [stdout] | [INFO] [stdout] 31 | let page_num = usize::from_str_radix(page, 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `page.parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/day5/mod.rs:79:12 [INFO] [stdout] | [INFO] [stdout] 79 | if line_clone == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `line_clone.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day5/mod.rs:85:24 [INFO] [stdout] | [INFO] [stdout] 85 | let num1 = usize::from_str_radix(pair.get(0).unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `pair.get(0).unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `pair.get(0)` [INFO] [stdout] --> src/day5/mod.rs:85:46 [INFO] [stdout] | [INFO] [stdout] 85 | let num1 = usize::from_str_radix(pair.get(0).unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^ help: try: `pair.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day5/mod.rs:86:24 [INFO] [stdout] | [INFO] [stdout] 86 | let num2 = usize::from_str_radix(pair.get(1).unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `pair.get(1).unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day5/mod.rs:93:32 [INFO] [stdout] | [INFO] [stdout] 93 | let page_num = usize::from_str_radix(page, 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `page.parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary map of the identity function [INFO] [stdout] --> src/day5/mod.rs:134:75 [INFO] [stdout] | [INFO] [stdout] 134 | let mut sorting_vec: Vec<(&usize, &usize)> = connection_map.iter().map(|(k, v)| (k, v)).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: remove the call to `map` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_identity [INFO] [stdout] = note: `#[warn(clippy::map_identity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `row_index` is used as a loop counter [INFO] [stdout] --> src/day6/mod.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | for line in reader.lines() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (row_index, line) in reader.lines().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `col_index` is used as a loop counter [INFO] [stdout] --> src/day6/mod.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | for c in line_clone.chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (col_index, c) in line_clone.chars().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `row_index` is used as a loop counter [INFO] [stdout] --> src/day6/mod.rs:109:5 [INFO] [stdout] | [INFO] [stdout] 109 | for line in reader.lines() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (row_index, line) in reader.lines().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `col_index` is used as a loop counter [INFO] [stdout] --> src/day6/mod.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 113 | for c in line_clone.chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (col_index, c) in line_clone.chars().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day7/mod.rs:15:22 [INFO] [stdout] | [INFO] [stdout] 15 | let result = usize::from_str_radix(result_str, 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `result_str.parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day7/mod.rs:18:27 [INFO] [stdout] | [INFO] [stdout] 18 | let operand = usize::from_str_radix(op, 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `op.parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day7/mod.rs:42:22 [INFO] [stdout] | [INFO] [stdout] 42 | let result = usize::from_str_radix(result_str, 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `result_str.parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day7/mod.rs:45:27 [INFO] [stdout] | [INFO] [stdout] 45 | let operand = usize::from_str_radix(op, 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `op.parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `usize` which implements the `Copy` trait [INFO] [stdout] --> src/day7/mod.rs:63:16 [INFO] [stdout] | [INFO] [stdout] 63 | let next = operands.get(index).unwrap().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*operands.get(index).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `row` is used as a loop counter [INFO] [stdout] --> src/day8/mod.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | for line in reader.lines() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (row, line) in reader.lines().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `col` is used as a loop counter [INFO] [stdout] --> src/day8/mod.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | for c in line_clone.chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (col, c) in line_clone.chars().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `row` is used as a loop counter [INFO] [stdout] --> src/day8/mod.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | for line in reader.lines() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (row, line) in reader.lines().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `col` is used as a loop counter [INFO] [stdout] --> src/day8/mod.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 63 | for c in line_clone.chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (col, c) in line_clone.chars().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `EMPTY` contains a capitalized acronym [INFO] [stdout] --> src/day9/mod.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | EMPTY, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Empty` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `FILE` contains a capitalized acronym [INFO] [stdout] --> src/day9/mod.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | FILE(usize) [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `File` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `EMPTY` contains a capitalized acronym [INFO] [stdout] --> src/day9/mod.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | EMPTY(usize), [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Empty` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `FILE` contains a capitalized acronym [INFO] [stdout] --> src/day9/mod.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | FILE(usize, usize) [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `File` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day9/mod.rs:28:23 [INFO] [stdout] | [INFO] [stdout] 28 | let num = usize::from_str_radix(&c.to_string(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `c.to_string().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `disk` [INFO] [stdout] --> src/day9/mod.rs:56:14 [INFO] [stdout] | [INFO] [stdout] 56 | for i in 0..disk.len() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 56 - for i in 0..disk.len() { [INFO] [stdout] 56 + for (i, ) in disk.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day9/mod.rs:81:23 [INFO] [stdout] | [INFO] [stdout] 81 | let num = usize::from_str_radix(&c.to_string(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `c.to_string().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `row` is used as a loop counter [INFO] [stdout] --> src/day10/mod.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | for line in reader.lines() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (row, line) in reader.lines().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `col` is used as a loop counter [INFO] [stdout] --> src/day10/mod.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | for c in line_clone.chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (col, c) in line_clone.chars().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `row` is used as a loop counter [INFO] [stdout] --> src/day10/mod.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | for line in reader.lines() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (row, line) in reader.lines().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `col` is used as a loop counter [INFO] [stdout] --> src/day10/mod.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | for c in line_clone.chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (col, c) in line_clone.chars().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: importing legacy numeric constants [INFO] [stdout] --> src/day11/mod.rs:1:66 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{collections::HashMap, fs::File, io::{BufReader, Read}, usize}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove this import [INFO] [stdout] = note: then `usize::` will resolve to the respective associated constant [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day11/mod.rs:10:72 [INFO] [stdout] | [INFO] [stdout] 10 | let mut stones: Vec = line.split_ascii_whitespace().map(|x| usize::from_str_radix(x, 10).unwrap()).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `x.parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `stones` [INFO] [stdout] --> src/day11/mod.rs:14:18 [INFO] [stdout] | [INFO] [stdout] 14 | for i in 0..stones.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 14 - for i in 0..stones.len() { [INFO] [stdout] 14 + for in &stones { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/day11/mod.rs:24:16 [INFO] [stdout] | [INFO] [stdout] 24 | if num_digits % 2 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace with: `num_digits.is_multiple_of(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day11/mod.rs:47:87 [INFO] [stdout] | [INFO] [stdout] 47 | ...split_ascii_whitespace().map(|x| (usize::from_str_radix(x, 10).unwrap(), 1)).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `x.parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day1/mod.rs:15:23 [INFO] [stdout] | [INFO] [stdout] 15 | let number1 = usize::from_str_radix(numbers.get(0).unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `numbers.get(0).unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] = note: `#[warn(clippy::from_str_radix_10)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `numbers.get(0)` [INFO] [stdout] --> src/day1/mod.rs:15:45 [INFO] [stdout] | [INFO] [stdout] 15 | let number1 = usize::from_str_radix(numbers.get(0).unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `numbers.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] = note: `#[warn(clippy::get_first)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day1/mod.rs:16:23 [INFO] [stdout] | [INFO] [stdout] 16 | let number2 = usize::from_str_radix(numbers.get(1).unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `numbers.get(1).unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day1/mod.rs:44:23 [INFO] [stdout] | [INFO] [stdout] 44 | let number1 = usize::from_str_radix(numbers.get(0).unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `numbers.get(0).unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `numbers.get(0)` [INFO] [stdout] --> src/day1/mod.rs:44:45 [INFO] [stdout] | [INFO] [stdout] 44 | let number1 = usize::from_str_radix(numbers.get(0).unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `numbers.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day1/mod.rs:45:23 [INFO] [stdout] | [INFO] [stdout] 45 | let number2 = usize::from_str_radix(numbers.get(1).unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `numbers.get(1).unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day2/mod.rs:15:23 [INFO] [stdout] | [INFO] [stdout] 15 | let num = isize::from_str_radix(level, 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `level.parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `levels.get(0)` [INFO] [stdout] --> src/day2/mod.rs:20:55 [INFO] [stdout] | [INFO] [stdout] 20 | let increase_sign = (levels.get(1).unwrap() - levels.get(0).unwrap()).signum(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `levels.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `!RangeInclusive::contains` implementation [INFO] [stdout] --> src/day2/mod.rs:23:29 [INFO] [stdout] | [INFO] [stdout] 23 | if diff == 0 || diff < -3 || diff > 3 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: use: `!(-3..=3).contains(&diff)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `row` is used as a loop counter [INFO] [stdout] --> src/day12/mod.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | for line in reader.lines() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (row, line) in reader.lines().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `col` is used as a loop counter [INFO] [stdout] --> src/day12/mod.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | for c in line_clone.chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (col, c) in line_clone.chars().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/day12/mod.rs:92:29 [INFO] [stdout] | [INFO] [stdout] 92 | else if (el && eu && ed && !er) || (er && eu && ed && !el) || (el && eu && er && !ed) || (el && ed && er && !eu) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 92 - else if (el && eu && ed && !er) || (er && eu && ed && !el) || (el && eu && er && !ed) || (el && ed && er && !eu) { [INFO] [stdout] 92 + else if !(!eu || !ed || el && er || !el && !er) || (el && eu && er && !ed) || (el && ed && er && !eu) { [INFO] [stdout] | [INFO] [stdout] 92 - else if (el && eu && ed && !er) || (er && eu && ed && !el) || (el && eu && er && !ed) || (el && ed && er && !eu) { [INFO] [stdout] 92 + else if (er || el) && (!er || !el) && ed && eu || (el && eu && er && !ed) || (el && ed && er && !eu) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day2/mod.rs:52:23 [INFO] [stdout] | [INFO] [stdout] 52 | let num = isize::from_str_radix(level, 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `level.parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `levels.get(0)` [INFO] [stdout] --> src/day2/mod.rs:57:59 [INFO] [stdout] | [INFO] [stdout] 57 | let mut increase_sign = (levels.get(1).unwrap() - levels.get(0).unwrap()).signum(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `levels.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `!RangeInclusive::contains` implementation [INFO] [stdout] --> src/day2/mod.rs:60:29 [INFO] [stdout] | [INFO] [stdout] 60 | if diff == 0 || diff < -3 || diff > 3 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: use: `!(-3..=3).contains(&diff)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `row` is used as a loop counter [INFO] [stdout] --> src/day12/mod.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 65 | for line in reader.lines() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (row, line) in reader.lines().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `col` is used as a loop counter [INFO] [stdout] --> src/day12/mod.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | for c in line_clone.chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (col, c) in line_clone.chars().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `levels.get(0)` [INFO] [stdout] --> src/day2/mod.rs:78:59 [INFO] [stdout] | [INFO] [stdout] 78 | increase_sign = (levels.get(1).unwrap() - levels.get(0).unwrap()).signum(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `levels.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `!RangeInclusive::contains` implementation [INFO] [stdout] --> src/day2/mod.rs:81:37 [INFO] [stdout] | [INFO] [stdout] 81 | if diff == 0 || diff < -3 || diff > 3 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: use: `!(-3..=3).contains(&diff)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day3/mod.rs:18:25 [INFO] [stdout] | [INFO] [stdout] 18 | let a_num = usize::from_str_radix(a, 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `a.parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day3/mod.rs:19:25 [INFO] [stdout] | [INFO] [stdout] 19 | let b_num = usize::from_str_radix(b, 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `b.parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day3/mod.rs:57:33 [INFO] [stdout] | [INFO] [stdout] 57 | let a_num = usize::from_str_radix(a, 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `a.parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day3/mod.rs:58:33 [INFO] [stdout] | [INFO] [stdout] 58 | let b_num = usize::from_str_radix(b, 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `b.parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `row` is used as a loop counter [INFO] [stdout] --> src/day4/mod.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | for line in reader.lines() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (row, line) in reader.lines().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/day13/mod.rs:9:21 [INFO] [stdout] | [INFO] [stdout] 9 | let mut inputs: Vec<((f64, f64), (f64, f64), (f64, f64))> = vec![]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `col` is used as a loop counter [INFO] [stdout] --> src/day4/mod.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | for c in line_clone.chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (col, c) in line_clone.chars().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/day4/mod.rs:25:13 [INFO] [stdout] | [INFO] [stdout] 25 | / ... if row > 2 { [INFO] [stdout] 26 | | ... if char_grid[row][col] == 'X' && char_grid[row-1][col] == 'M' && char_grid[row-2][col] == 'A' && char_grid[row-3][col] =... [INFO] [stdout] 27 | | ... count += 1; [INFO] [stdout] 28 | | ... } [INFO] [stdout] 29 | | ... } [INFO] [stdout] | |_______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 25 ~ if row > 2 [INFO] [stdout] 26 ~ && char_grid[row][col] == 'X' && char_grid[row-1][col] == 'M' && char_grid[row-2][col] == 'A' && char_grid[row-3][col] == 'S' { [INFO] [stdout] 27 | count += 1; [INFO] [stdout] 28 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/day4/mod.rs:31:13 [INFO] [stdout] | [INFO] [stdout] 31 | / ... if row < 137 { [INFO] [stdout] 32 | | ... if char_grid[row][col] == 'X' && char_grid[row+1][col] == 'M' && char_grid[row+2][col] == 'A' && char_grid[row+3][col] =... [INFO] [stdout] 33 | | ... count += 1; [INFO] [stdout] 34 | | ... } [INFO] [stdout] 35 | | ... } [INFO] [stdout] | |_______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 31 ~ if row < 137 [INFO] [stdout] 32 ~ && char_grid[row][col] == 'X' && char_grid[row+1][col] == 'M' && char_grid[row+2][col] == 'A' && char_grid[row+3][col] == 'S' { [INFO] [stdout] 33 | count += 1; [INFO] [stdout] 34 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/day4/mod.rs:37:13 [INFO] [stdout] | [INFO] [stdout] 37 | / ... if col > 2 { [INFO] [stdout] 38 | | ... if char_grid[row][col] == 'X' && char_grid[row][col-1] == 'M' && char_grid[row][col-2] == 'A' && char_grid[row][col-3] =... [INFO] [stdout] 39 | | ... count += 1; [INFO] [stdout] 40 | | ... } [INFO] [stdout] 41 | | ... } [INFO] [stdout] | |_______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 37 ~ if col > 2 [INFO] [stdout] 38 ~ && char_grid[row][col] == 'X' && char_grid[row][col-1] == 'M' && char_grid[row][col-2] == 'A' && char_grid[row][col-3] == 'S' { [INFO] [stdout] 39 | count += 1; [INFO] [stdout] 40 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/day4/mod.rs:43:13 [INFO] [stdout] | [INFO] [stdout] 43 | / ... if col < 137 { [INFO] [stdout] 44 | | ... if char_grid[row][col] == 'X' && char_grid[row][col+1] == 'M' && char_grid[row][col+2] == 'A' && char_grid[row][col+3] =... [INFO] [stdout] 45 | | ... count += 1; [INFO] [stdout] 46 | | ... } [INFO] [stdout] 47 | | ... } [INFO] [stdout] | |_______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 43 ~ if col < 137 [INFO] [stdout] 44 ~ && char_grid[row][col] == 'X' && char_grid[row][col+1] == 'M' && char_grid[row][col+2] == 'A' && char_grid[row][col+3] == 'S' { [INFO] [stdout] 45 | count += 1; [INFO] [stdout] 46 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/day4/mod.rs:49:13 [INFO] [stdout] | [INFO] [stdout] 49 | / ... if row > 2 && col > 2 { [INFO] [stdout] 50 | | ... if char_grid[row][col] == 'X' && char_grid[row-1][col-1] == 'M' && char_grid[row-2][col-2] == 'A' && char_grid[row-3][co... [INFO] [stdout] 51 | | ... count += 1; [INFO] [stdout] 52 | | ... } [INFO] [stdout] 53 | | ... } [INFO] [stdout] | |_______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 49 ~ if row > 2 && col > 2 [INFO] [stdout] 50 ~ && char_grid[row][col] == 'X' && char_grid[row-1][col-1] == 'M' && char_grid[row-2][col-2] == 'A' && char_grid[row-3][col-3] == 'S' { [INFO] [stdout] 51 | count += 1; [INFO] [stdout] 52 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/day4/mod.rs:55:13 [INFO] [stdout] | [INFO] [stdout] 55 | / ... if row > 2 && col < 137 { [INFO] [stdout] 56 | | ... if char_grid[row][col] == 'X' && char_grid[row-1][col+1] == 'M' && char_grid[row-2][col+2] == 'A' && char_grid[row-3][co... [INFO] [stdout] 57 | | ... count += 1; [INFO] [stdout] 58 | | ... } [INFO] [stdout] 59 | | ... } [INFO] [stdout] | |_______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 55 ~ if row > 2 && col < 137 [INFO] [stdout] 56 ~ && char_grid[row][col] == 'X' && char_grid[row-1][col+1] == 'M' && char_grid[row-2][col+2] == 'A' && char_grid[row-3][col+3] == 'S' { [INFO] [stdout] 57 | count += 1; [INFO] [stdout] 58 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/day13/mod.rs:64:21 [INFO] [stdout] | [INFO] [stdout] 64 | let mut inputs: Vec<((f64, f64), (f64, f64), (f64, f64))> = vec![]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/day4/mod.rs:61:13 [INFO] [stdout] | [INFO] [stdout] 61 | / ... if row < 137 && col < 137 { [INFO] [stdout] 62 | | ... if char_grid[row][col] == 'X' && char_grid[row+1][col+1] == 'M' && char_grid[row+2][col+2] == 'A' && char_grid[row+3][co... [INFO] [stdout] 63 | | ... count += 1; [INFO] [stdout] 64 | | ... } [INFO] [stdout] 65 | | ... } [INFO] [stdout] | |_______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 61 ~ if row < 137 && col < 137 [INFO] [stdout] 62 ~ && char_grid[row][col] == 'X' && char_grid[row+1][col+1] == 'M' && char_grid[row+2][col+2] == 'A' && char_grid[row+3][col+3] == 'S' { [INFO] [stdout] 63 | count += 1; [INFO] [stdout] 64 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/day4/mod.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | / ... if row < 137 && col > 2 { [INFO] [stdout] 68 | | ... if char_grid[row][col] == 'X' && char_grid[row+1][col-1] == 'M' && char_grid[row+2][col-2] == 'A' && char_grid[row+3][co... [INFO] [stdout] 69 | | ... count += 1; [INFO] [stdout] 70 | | ... } [INFO] [stdout] 71 | | ... } [INFO] [stdout] | |_______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 67 ~ if row < 137 && col > 2 [INFO] [stdout] 68 ~ && char_grid[row][col] == 'X' && char_grid[row+1][col-1] == 'M' && char_grid[row+2][col-2] == 'A' && char_grid[row+3][col-3] == 'S' { [INFO] [stdout] 69 | count += 1; [INFO] [stdout] 70 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `row` is used as a loop counter [INFO] [stdout] --> src/day4/mod.rs:85:5 [INFO] [stdout] | [INFO] [stdout] 85 | for line in reader.lines() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (row, line) in reader.lines().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `col` is used as a loop counter [INFO] [stdout] --> src/day4/mod.rs:88:9 [INFO] [stdout] | [INFO] [stdout] 88 | for c in line_clone.chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (col, c) in line_clone.chars().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `y` is only used to index `grid` [INFO] [stdout] --> src/day14/mod.rs:90:14 [INFO] [stdout] | [INFO] [stdout] 90 | for y in 47..80 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 90 - for y in 47..80 { [INFO] [stdout] 90 + for in grid.iter().take(80).skip(47) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `x` is only used to index `grid` [INFO] [stdout] --> src/day14/mod.rs:91:18 [INFO] [stdout] | [INFO] [stdout] 91 | for x in 20..51 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 91 - for x in 20..51 { [INFO] [stdout] 91 + for in grid.iter().take(51).skip(20) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> src/day14/mod.rs:94:9 [INFO] [stdout] | [INFO] [stdout] 94 | println!(""); [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] = note: `#[warn(clippy::println_empty_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/day5/mod.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 17 | if line_clone == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `line_clone.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] = note: `#[warn(clippy::comparison_to_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day5/mod.rs:23:24 [INFO] [stdout] | [INFO] [stdout] 23 | let num1 = usize::from_str_radix(pair.get(0).unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `pair.get(0).unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `pair.get(0)` [INFO] [stdout] --> src/day5/mod.rs:23:46 [INFO] [stdout] | [INFO] [stdout] 23 | let num1 = usize::from_str_radix(pair.get(0).unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^ help: try: `pair.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day5/mod.rs:24:24 [INFO] [stdout] | [INFO] [stdout] 24 | let num2 = usize::from_str_radix(pair.get(1).unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `pair.get(1).unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day5/mod.rs:31:32 [INFO] [stdout] | [INFO] [stdout] 31 | let page_num = usize::from_str_radix(page, 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `page.parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/day15/mod.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 17 | if line_clone == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `line_clone.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `col` is used as a loop counter [INFO] [stdout] --> src/day15/mod.rs:23:13 [INFO] [stdout] | [INFO] [stdout] 23 | for c in line_clone.chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (col, c) in line_clone.chars().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/day5/mod.rs:79:12 [INFO] [stdout] | [INFO] [stdout] 79 | if line_clone == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `line_clone.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day5/mod.rs:85:24 [INFO] [stdout] | [INFO] [stdout] 85 | let num1 = usize::from_str_radix(pair.get(0).unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `pair.get(0).unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `pair.get(0)` [INFO] [stdout] --> src/day5/mod.rs:85:46 [INFO] [stdout] | [INFO] [stdout] 85 | let num1 = usize::from_str_radix(pair.get(0).unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^ help: try: `pair.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day5/mod.rs:86:24 [INFO] [stdout] | [INFO] [stdout] 86 | let num2 = usize::from_str_radix(pair.get(1).unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `pair.get(1).unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `x` is used to index `grid` [INFO] [stdout] --> src/day15/mod.rs:139:14 [INFO] [stdout] | [INFO] [stdout] 139 | for x in 0..50 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 139 - for x in 0..50 { [INFO] [stdout] 139 + for (x, ) in grid.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day5/mod.rs:93:32 [INFO] [stdout] | [INFO] [stdout] 93 | let page_num = usize::from_str_radix(page, 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `page.parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `y` is used to index `grid` [INFO] [stdout] --> src/day15/mod.rs:140:18 [INFO] [stdout] | [INFO] [stdout] 140 | for y in 0..50 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 140 - for y in 0..50 { [INFO] [stdout] 140 + for (y, ) in grid.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/day15/mod.rs:162:12 [INFO] [stdout] | [INFO] [stdout] 162 | if line_clone == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `line_clone.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary map of the identity function [INFO] [stdout] --> src/day5/mod.rs:134:75 [INFO] [stdout] | [INFO] [stdout] 134 | let mut sorting_vec: Vec<(&usize, &usize)> = connection_map.iter().map(|(k, v)| (k, v)).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: remove the call to `map` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_identity [INFO] [stdout] = note: `#[warn(clippy::map_identity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `[[char; 50]; 100]` which implements the `Copy` trait [INFO] [stdout] --> src/day15/mod.rs:204:40 [INFO] [stdout] | [INFO] [stdout] 204 | let mut new_grid = grid.clone(); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `grid` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `row_index` is used as a loop counter [INFO] [stdout] --> src/day6/mod.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | for line in reader.lines() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (row_index, line) in reader.lines().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `col_index` is used as a loop counter [INFO] [stdout] --> src/day6/mod.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | for c in line_clone.chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (col_index, c) in line_clone.chars().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `[[char; 50]; 100]` which implements the `Copy` trait [INFO] [stdout] --> src/day15/mod.rs:225:40 [INFO] [stdout] | [INFO] [stdout] 225 | let mut new_grid = grid.clone(); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `grid` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `[[char; 50]; 100]` which implements the `Copy` trait [INFO] [stdout] --> src/day15/mod.rs:246:40 [INFO] [stdout] | [INFO] [stdout] 246 | let mut new_grid = grid.clone(); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `grid` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `[[char; 50]; 100]` which implements the `Copy` trait [INFO] [stdout] --> src/day15/mod.rs:267:40 [INFO] [stdout] | [INFO] [stdout] 267 | let mut new_grid = grid.clone(); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `grid` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `x` is used to index `grid` [INFO] [stdout] --> src/day15/mod.rs:286:14 [INFO] [stdout] | [INFO] [stdout] 286 | for x in 0..100 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 286 - for x in 0..100 { [INFO] [stdout] 286 + for (x, ) in grid.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `row_index` is used as a loop counter [INFO] [stdout] --> src/day6/mod.rs:109:5 [INFO] [stdout] | [INFO] [stdout] 109 | for line in reader.lines() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (row_index, line) in reader.lines().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `y` is used to index `grid` [INFO] [stdout] --> src/day15/mod.rs:287:18 [INFO] [stdout] | [INFO] [stdout] 287 | for y in 0..50 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 287 - for y in 0..50 { [INFO] [stdout] 287 + for (y, ) in grid.iter().enumerate().take(50) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `col_index` is used as a loop counter [INFO] [stdout] --> src/day6/mod.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 113 | for c in line_clone.chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (col_index, c) in line_clone.chars().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day15/mod.rs:309:17 [INFO] [stdout] | [INFO] [stdout] 309 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 309 - return true; [INFO] [stdout] 309 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day15/mod.rs:312:17 [INFO] [stdout] | [INFO] [stdout] 312 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 312 - return false; [INFO] [stdout] 312 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day15/mod.rs:321:17 [INFO] [stdout] | [INFO] [stdout] 321 | ... return can_push(grid, (robot_pos.0, robot_pos.1-1), command, to_push) && can_push(grid, (robot_pos.0+1, robot_pos.1-1), command, to_push); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 321 - return can_push(grid, (robot_pos.0, robot_pos.1-1), command, to_push) && can_push(grid, (robot_pos.0+1, robot_pos.1-1), command, to_push); [INFO] [stdout] 321 + can_push(grid, (robot_pos.0, robot_pos.1-1), command, to_push) && can_push(grid, (robot_pos.0+1, robot_pos.1-1), command, to_push) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day15/mod.rs:330:17 [INFO] [stdout] | [INFO] [stdout] 330 | ... return can_push(grid, (robot_pos.0, robot_pos.1-1), command, to_push) && can_push(grid, (robot_pos.0-1, robot_pos.1-1), command, to_push); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 330 - return can_push(grid, (robot_pos.0, robot_pos.1-1), command, to_push) && can_push(grid, (robot_pos.0-1, robot_pos.1-1), command, to_push); [INFO] [stdout] 330 + can_push(grid, (robot_pos.0, robot_pos.1-1), command, to_push) && can_push(grid, (robot_pos.0-1, robot_pos.1-1), command, to_push) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day15/mod.rs:335:17 [INFO] [stdout] | [INFO] [stdout] 335 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 335 - return true; [INFO] [stdout] 335 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day15/mod.rs:338:17 [INFO] [stdout] | [INFO] [stdout] 338 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 338 - return false; [INFO] [stdout] 338 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day15/mod.rs:344:17 [INFO] [stdout] | [INFO] [stdout] 344 | return can_push(grid, (robot_pos.0+1, robot_pos.1), command, to_push) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 344 - return can_push(grid, (robot_pos.0+1, robot_pos.1), command, to_push) [INFO] [stdout] 344 + can_push(grid, (robot_pos.0+1, robot_pos.1), command, to_push) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day15/mod.rs:349:17 [INFO] [stdout] | [INFO] [stdout] 349 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 349 - return true; [INFO] [stdout] 349 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day15/mod.rs:352:17 [INFO] [stdout] | [INFO] [stdout] 352 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 352 - return false; [INFO] [stdout] 352 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day15/mod.rs:361:17 [INFO] [stdout] | [INFO] [stdout] 361 | ... return can_push(grid, (robot_pos.0, robot_pos.1+1), command, to_push) && can_push(grid, (robot_pos.0+1, robot_pos.1+1), command, to_push); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 361 - return can_push(grid, (robot_pos.0, robot_pos.1+1), command, to_push) && can_push(grid, (robot_pos.0+1, robot_pos.1+1), command, to_push); [INFO] [stdout] 361 + can_push(grid, (robot_pos.0, robot_pos.1+1), command, to_push) && can_push(grid, (robot_pos.0+1, robot_pos.1+1), command, to_push) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day15/mod.rs:370:17 [INFO] [stdout] | [INFO] [stdout] 370 | ... return can_push(grid, (robot_pos.0, robot_pos.1+1), command, to_push) && can_push(grid, (robot_pos.0-1, robot_pos.1+1), command, to_push); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 370 - return can_push(grid, (robot_pos.0, robot_pos.1+1), command, to_push) && can_push(grid, (robot_pos.0-1, robot_pos.1+1), command, to_push); [INFO] [stdout] 370 + can_push(grid, (robot_pos.0, robot_pos.1+1), command, to_push) && can_push(grid, (robot_pos.0-1, robot_pos.1+1), command, to_push) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day15/mod.rs:375:17 [INFO] [stdout] | [INFO] [stdout] 375 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 375 - return true; [INFO] [stdout] 375 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day15/mod.rs:378:17 [INFO] [stdout] | [INFO] [stdout] 378 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 378 - return false; [INFO] [stdout] 378 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day15/mod.rs:384:17 [INFO] [stdout] | [INFO] [stdout] 384 | return can_push(grid, (robot_pos.0-1, robot_pos.1), command, to_push) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 384 - return can_push(grid, (robot_pos.0-1, robot_pos.1), command, to_push) [INFO] [stdout] 384 + can_push(grid, (robot_pos.0-1, robot_pos.1), command, to_push) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day7/mod.rs:15:22 [INFO] [stdout] | [INFO] [stdout] 15 | let result = usize::from_str_radix(result_str, 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `result_str.parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day7/mod.rs:18:27 [INFO] [stdout] | [INFO] [stdout] 18 | let operand = usize::from_str_radix(op, 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `op.parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day7/mod.rs:42:22 [INFO] [stdout] | [INFO] [stdout] 42 | let result = usize::from_str_radix(result_str, 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `result_str.parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: importing legacy numeric constants [INFO] [stdout] --> src/day16/mod.rs:1:106 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{cmp::Reverse, collections::{BinaryHeap, HashMap, HashSet}, fs::File, io::{BufRead, BufReader}, usize}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove this import [INFO] [stdout] = note: then `usize::` will resolve to the respective associated constant [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day7/mod.rs:45:27 [INFO] [stdout] | [INFO] [stdout] 45 | let operand = usize::from_str_radix(op, 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `op.parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/day16/mod.rs:11:20 [INFO] [stdout] | [INFO] [stdout] 11 | let mut graph: HashMap<(isize, isize, usize), Vec<(isize, isize, usize, usize)>> = HashMap::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `row` is used as a loop counter [INFO] [stdout] --> src/day16/mod.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | for line in reader.lines() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (row, line) in reader.lines().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `col` is used as a loop counter [INFO] [stdout] --> src/day16/mod.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | for c in line_clone.chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (col, c) in line_clone.chars().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `usize` which implements the `Copy` trait [INFO] [stdout] --> src/day7/mod.rs:63:16 [INFO] [stdout] | [INFO] [stdout] 63 | let next = operands.get(index).unwrap().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*operands.get(index).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `row` is used as a loop counter [INFO] [stdout] --> src/day8/mod.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | for line in reader.lines() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (row, line) in reader.lines().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `col` is used as a loop counter [INFO] [stdout] --> src/day8/mod.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | for c in line_clone.chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (col, c) in line_clone.chars().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/day16/mod.rs:94:20 [INFO] [stdout] | [INFO] [stdout] 94 | let mut graph: HashMap<(isize, isize, usize), Vec<(isize, isize, usize, usize)>> = HashMap::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `row` is used as a loop counter [INFO] [stdout] --> src/day8/mod.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | for line in reader.lines() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (row, line) in reader.lines().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `row` is used as a loop counter [INFO] [stdout] --> src/day16/mod.rs:97:5 [INFO] [stdout] | [INFO] [stdout] 97 | for line in reader.lines() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (row, line) in reader.lines().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `col` is used as a loop counter [INFO] [stdout] --> src/day8/mod.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 63 | for c in line_clone.chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (col, c) in line_clone.chars().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `col` is used as a loop counter [INFO] [stdout] --> src/day16/mod.rs:101:9 [INFO] [stdout] | [INFO] [stdout] 101 | for c in line_clone.chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (col, c) in line_clone.chars().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `EMPTY` contains a capitalized acronym [INFO] [stdout] --> src/day9/mod.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | EMPTY, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Empty` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `FILE` contains a capitalized acronym [INFO] [stdout] --> src/day9/mod.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | FILE(usize) [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `File` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `EMPTY` contains a capitalized acronym [INFO] [stdout] --> src/day9/mod.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | EMPTY(usize), [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Empty` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `FILE` contains a capitalized acronym [INFO] [stdout] --> src/day9/mod.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | FILE(usize, usize) [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `File` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/day16/mod.rs:176:20 [INFO] [stdout] | [INFO] [stdout] 176 | fn dijkstra(graph: HashMap<(isize, isize, usize), Vec<(isize, isize, usize, usize)>>, start: (isize, isize, usize), end: (isize, is... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day9/mod.rs:28:23 [INFO] [stdout] | [INFO] [stdout] 28 | let num = usize::from_str_radix(&c.to_string(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `c.to_string().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's keys [INFO] [stdout] --> src/day16/mod.rs:183:22 [INFO] [stdout] | [INFO] [stdout] 183 | for (node, _) in &graph { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] = note: `#[warn(clippy::for_kv_map)]` on by default [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 183 - for (node, _) in &graph { [INFO] [stdout] 183 + for node in graph.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `(isize, isize, usize)` which implements the `Copy` trait [INFO] [stdout] --> src/day16/mod.rs:185:30 [INFO] [stdout] | [INFO] [stdout] 185 | distances.insert(node.clone(), usize::MAX); [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*node` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `disk` [INFO] [stdout] --> src/day9/mod.rs:56:14 [INFO] [stdout] | [INFO] [stdout] 56 | for i in 0..disk.len() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 56 - for i in 0..disk.len() { [INFO] [stdout] 56 + for (i, ) in disk.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/day16/mod.rs:213:21 [INFO] [stdout] | [INFO] [stdout] 213 | fn dijkstra2(graph: HashMap<(isize, isize, usize), Vec<(isize, isize, usize, usize)>>, start: (isize, isize, usize), end: (isize, i... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/day16/mod.rs:216:23 [INFO] [stdout] | [INFO] [stdout] 216 | let mut previous: HashMap<(isize, isize, usize), HashSet<(isize, isize, usize)>> = HashMap::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's keys [INFO] [stdout] --> src/day16/mod.rs:220:22 [INFO] [stdout] | [INFO] [stdout] 220 | for (node, _) in &graph { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 220 - for (node, _) in &graph { [INFO] [stdout] 220 + for node in graph.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day9/mod.rs:81:23 [INFO] [stdout] | [INFO] [stdout] 81 | let num = usize::from_str_radix(&c.to_string(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `c.to_string().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `(isize, isize, usize)` which implements the `Copy` trait [INFO] [stdout] --> src/day16/mod.rs:222:30 [INFO] [stdout] | [INFO] [stdout] 222 | distances.insert(node.clone(), usize::MAX); [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*node` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/day16/mod.rs:251:53 [INFO] [stdout] | [INFO] [stdout] 251 | previous.entry((v.0, v.1, v.2)).or_insert(HashSet::new()).clear(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/day16/mod.rs:253:49 [INFO] [stdout] | [INFO] [stdout] 253 | previous.entry((v.0, v.1, v.2)).or_insert(HashSet::new()).insert(u.0.node); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/day16/mod.rs:262:83 [INFO] [stdout] | [INFO] [stdout] 262 | ...isize, isize, usize), previous: &HashMap<(isize, isize, usize), HashSet<(isize, isize, usize)>>) -> Vec<(isize, isize, usize)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `row` is used as a loop counter [INFO] [stdout] --> src/day10/mod.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | for line in reader.lines() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (row, line) in reader.lines().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/day17/mod.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 33 | let output = run_program(reg_a, reg_b, reg_c, &program); [INFO] [stdout] | -------------------------------------------------------- unnecessary `let` binding [INFO] [stdout] 34 | output [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 33 ~ [INFO] [stdout] 34 ~ run_program(reg_a, reg_b, reg_c, &program) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `col` is used as a loop counter [INFO] [stdout] --> src/day10/mod.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | for c in line_clone.chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (col, c) in line_clone.chars().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day17/mod.rs:16:21 [INFO] [stdout] | [INFO] [stdout] 16 | reg_a = usize::from_str_radix(line_clone.split(": ").last().unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `line_clone.split(": ").last().unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day17/mod.rs:19:21 [INFO] [stdout] | [INFO] [stdout] 19 | reg_b = usize::from_str_radix(line_clone.split(": ").last().unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `line_clone.split(": ").last().unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day17/mod.rs:22:21 [INFO] [stdout] | [INFO] [stdout] 22 | reg_c = usize::from_str_radix(line_clone.split(": ").last().unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `line_clone.split(": ").last().unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `row` is used as a loop counter [INFO] [stdout] --> src/day10/mod.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | for line in reader.lines() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (row, line) in reader.lines().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day17/mod.rs:27:28 [INFO] [stdout] | [INFO] [stdout] 27 | let code = usize::from_str_radix(oppcode, 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `oppcode.parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `col` is used as a loop counter [INFO] [stdout] --> src/day10/mod.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | for c in line_clone.chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (col, c) in line_clone.chars().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day17/mod.rs:49:21 [INFO] [stdout] | [INFO] [stdout] 49 | reg_b = usize::from_str_radix(line_clone.split(": ").last().unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `line_clone.split(": ").last().unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day17/mod.rs:52:21 [INFO] [stdout] | [INFO] [stdout] 52 | reg_c = usize::from_str_radix(line_clone.split(": ").last().unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `line_clone.split(": ").last().unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day17/mod.rs:57:28 [INFO] [stdout] | [INFO] [stdout] 57 | let code = usize::from_str_radix(oppcode, 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `oppcode.parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/day17/mod.rs:89:55 [INFO] [stdout] | [INFO] [stdout] 89 | fn run_program(a: usize, b: usize, c: usize, program: &Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 89 - fn run_program(a: usize, b: usize, c: usize, program: &Vec) -> Vec { [INFO] [stdout] 89 + fn run_program(a: usize, b: usize, c: usize, program: &[usize]) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: importing legacy numeric constants [INFO] [stdout] --> src/day11/mod.rs:1:66 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{collections::HashMap, fs::File, io::{BufReader, Read}, usize}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove this import [INFO] [stdout] = note: then `usize::` will resolve to the respective associated constant [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this OR pattern can be rewritten using a range [INFO] [stdout] --> src/day17/mod.rs:105:21 [INFO] [stdout] | [INFO] [stdout] 105 | 0 | 1 | 2 | 3 => operand, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `0..=3` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_patterns [INFO] [stdout] = note: `#[warn(clippy::manual_range_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day11/mod.rs:10:72 [INFO] [stdout] | [INFO] [stdout] 10 | let mut stones: Vec = line.split_ascii_whitespace().map(|x| usize::from_str_radix(x, 10).unwrap()).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `x.parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this OR pattern can be rewritten using a range [INFO] [stdout] --> src/day17/mod.rs:122:21 [INFO] [stdout] | [INFO] [stdout] 122 | 0 | 1 | 2 | 3 => operand, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `0..=3` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_patterns [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `stones` [INFO] [stdout] --> src/day11/mod.rs:14:18 [INFO] [stdout] | [INFO] [stdout] 14 | for i in 0..stones.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 14 - for i in 0..stones.len() { [INFO] [stdout] 14 + for in &stones { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this OR pattern can be rewritten using a range [INFO] [stdout] --> src/day17/mod.rs:146:21 [INFO] [stdout] | [INFO] [stdout] 146 | 0 | 1 | 2 | 3 => operand, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `0..=3` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_patterns [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this OR pattern can be rewritten using a range [INFO] [stdout] --> src/day17/mod.rs:159:21 [INFO] [stdout] | [INFO] [stdout] 159 | 0 | 1 | 2 | 3 => operand, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `0..=3` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_patterns [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/day11/mod.rs:24:16 [INFO] [stdout] | [INFO] [stdout] 24 | if num_digits % 2 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace with: `num_digits.is_multiple_of(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this OR pattern can be rewritten using a range [INFO] [stdout] --> src/day17/mod.rs:173:21 [INFO] [stdout] | [INFO] [stdout] 173 | 0 | 1 | 2 | 3 => operand, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `0..=3` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_patterns [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day11/mod.rs:47:87 [INFO] [stdout] | [INFO] [stdout] 47 | ...split_ascii_whitespace().map(|x| (usize::from_str_radix(x, 10).unwrap(), 1)).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `x.parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day18/mod.rs:15:17 [INFO] [stdout] | [INFO] [stdout] 15 | let x = usize::from_str_radix(coord_vec.first().unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `coord_vec.first().unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day18/mod.rs:16:17 [INFO] [stdout] | [INFO] [stdout] 16 | let y = usize::from_str_radix(coord_vec.last().unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `coord_vec.last().unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `row` is used as a loop counter [INFO] [stdout] --> src/day12/mod.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | for line in reader.lines() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (row, line) in reader.lines().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `coords` [INFO] [stdout] --> src/day18/mod.rs:20:14 [INFO] [stdout] | [INFO] [stdout] 20 | for i in 0..1024 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 20 - for i in 0..1024 { [INFO] [stdout] 20 + for in coords.iter().take(1024) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day18/mod.rs:75:17 [INFO] [stdout] | [INFO] [stdout] 75 | let x = usize::from_str_radix(coord_vec.first().unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `coord_vec.first().unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `col` is used as a loop counter [INFO] [stdout] --> src/day12/mod.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | for c in line_clone.chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (col, c) in line_clone.chars().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day18/mod.rs:76:17 [INFO] [stdout] | [INFO] [stdout] 76 | let y = usize::from_str_radix(coord_vec.last().unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `coord_vec.last().unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/day12/mod.rs:92:29 [INFO] [stdout] | [INFO] [stdout] 92 | else if (el && eu && ed && !er) || (er && eu && ed && !el) || (el && eu && er && !ed) || (el && ed && er && !eu) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 92 - else if (el && eu && ed && !er) || (er && eu && ed && !el) || (el && eu && er && !ed) || (el && ed && er && !eu) { [INFO] [stdout] 92 + else if !(!eu || !ed || el && er || !el && !er) || (el && eu && er && !ed) || (el && ed && er && !eu) { [INFO] [stdout] | [INFO] [stdout] 92 - else if (el && eu && ed && !er) || (er && eu && ed && !el) || (el && eu && er && !ed) || (el && ed && er && !eu) { [INFO] [stdout] 92 + else if (er || el) && (!er || !el) && ed && eu || (el && eu && er && !ed) || (el && ed && er && !eu) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `coords` [INFO] [stdout] --> src/day18/mod.rs:86:14 [INFO] [stdout] | [INFO] [stdout] 86 | for i in 0..coords.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 86 - for i in 0..coords.len() { [INFO] [stdout] 86 + for in &coords { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/day18/mod.rs:126:12 [INFO] [stdout] | [INFO] [stdout] 126 | if path.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `path.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/day19/mod.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | if line_clone == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `line_clone.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `row` is used as a loop counter [INFO] [stdout] --> src/day12/mod.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 65 | for line in reader.lines() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (row, line) in reader.lines().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/day19/mod.rs:48:12 [INFO] [stdout] | [INFO] [stdout] 48 | if line_clone == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `line_clone.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day19/mod.rs:83:5 [INFO] [stdout] | [INFO] [stdout] 83 | return dp[n]; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 83 - return dp[n]; [INFO] [stdout] 83 + dp[n] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `col` is used as a loop counter [INFO] [stdout] --> src/day12/mod.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | for c in line_clone.chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (col, c) in line_clone.chars().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day19/mod.rs:99:5 [INFO] [stdout] | [INFO] [stdout] 99 | return dp[n]; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 99 - return dp[n]; [INFO] [stdout] 99 + dp[n] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/day13/mod.rs:9:21 [INFO] [stdout] | [INFO] [stdout] 9 | let mut inputs: Vec<((f64, f64), (f64, f64), (f64, f64))> = vec![]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/day13/mod.rs:64:21 [INFO] [stdout] | [INFO] [stdout] 64 | let mut inputs: Vec<((f64, f64), (f64, f64), (f64, f64))> = vec![]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `y` is only used to index `grid` [INFO] [stdout] --> src/day14/mod.rs:90:14 [INFO] [stdout] | [INFO] [stdout] 90 | for y in 47..80 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 90 - for y in 47..80 { [INFO] [stdout] 90 + for in grid.iter().take(80).skip(47) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `x` is only used to index `grid` [INFO] [stdout] --> src/day14/mod.rs:91:18 [INFO] [stdout] | [INFO] [stdout] 91 | for x in 20..51 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 91 - for x in 20..51 { [INFO] [stdout] 91 + for in grid.iter().take(51).skip(20) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `row` is used as a loop counter [INFO] [stdout] --> src/day20/mod.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | for line in reader.lines() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (row, line) in reader.lines().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> src/day14/mod.rs:94:9 [INFO] [stdout] | [INFO] [stdout] 94 | println!(""); [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] = note: `#[warn(clippy::println_empty_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/day15/mod.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 17 | if line_clone == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `line_clone.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `col` is used as a loop counter [INFO] [stdout] --> src/day20/mod.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | for c in line_clone.chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (col, c) in line_clone.chars().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `col` is used as a loop counter [INFO] [stdout] --> src/day15/mod.rs:23:13 [INFO] [stdout] | [INFO] [stdout] 23 | for c in line_clone.chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (col, c) in line_clone.chars().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `time_counter` is used as a loop counter [INFO] [stdout] --> src/day20/mod.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | for tile in base_sol.iter().rev() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (time_counter, tile) in base_sol.iter().rev().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `x` is used to index `grid` [INFO] [stdout] --> src/day15/mod.rs:139:14 [INFO] [stdout] | [INFO] [stdout] 139 | for x in 0..50 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 139 - for x in 0..50 { [INFO] [stdout] 139 + for (x, ) in grid.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `y` is used to index `grid` [INFO] [stdout] --> src/day15/mod.rs:140:18 [INFO] [stdout] | [INFO] [stdout] 140 | for y in 0..50 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 140 - for y in 0..50 { [INFO] [stdout] 140 + for (y, ) in grid.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `row` is used as a loop counter [INFO] [stdout] --> src/day20/mod.rs:71:5 [INFO] [stdout] | [INFO] [stdout] 71 | for line in reader.lines() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (row, line) in reader.lines().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/day15/mod.rs:162:12 [INFO] [stdout] | [INFO] [stdout] 162 | if line_clone == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `line_clone.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `[[char; 50]; 100]` which implements the `Copy` trait [INFO] [stdout] --> src/day15/mod.rs:204:40 [INFO] [stdout] | [INFO] [stdout] 204 | let mut new_grid = grid.clone(); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `grid` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `[[char; 50]; 100]` which implements the `Copy` trait [INFO] [stdout] --> src/day15/mod.rs:225:40 [INFO] [stdout] | [INFO] [stdout] 225 | let mut new_grid = grid.clone(); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `grid` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `[[char; 50]; 100]` which implements the `Copy` trait [INFO] [stdout] --> src/day15/mod.rs:246:40 [INFO] [stdout] | [INFO] [stdout] 246 | let mut new_grid = grid.clone(); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `grid` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `[[char; 50]; 100]` which implements the `Copy` trait [INFO] [stdout] --> src/day15/mod.rs:267:40 [INFO] [stdout] | [INFO] [stdout] 267 | let mut new_grid = grid.clone(); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `grid` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `x` is used to index `grid` [INFO] [stdout] --> src/day15/mod.rs:286:14 [INFO] [stdout] | [INFO] [stdout] 286 | for x in 0..100 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 286 - for x in 0..100 { [INFO] [stdout] 286 + for (x, ) in grid.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `col` is used as a loop counter [INFO] [stdout] --> src/day20/mod.rs:75:9 [INFO] [stdout] | [INFO] [stdout] 75 | for c in line_clone.chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (col, c) in line_clone.chars().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `y` is used to index `grid` [INFO] [stdout] --> src/day15/mod.rs:287:18 [INFO] [stdout] | [INFO] [stdout] 287 | for y in 0..50 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 287 - for y in 0..50 { [INFO] [stdout] 287 + for (y, ) in grid.iter().enumerate().take(50) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `time_counter` is used as a loop counter [INFO] [stdout] --> src/day20/mod.rs:96:5 [INFO] [stdout] | [INFO] [stdout] 96 | for tile in base_sol.iter().rev() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (time_counter, tile) in base_sol.iter().rev().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day15/mod.rs:309:17 [INFO] [stdout] | [INFO] [stdout] 309 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 309 - return true; [INFO] [stdout] 309 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day15/mod.rs:312:17 [INFO] [stdout] | [INFO] [stdout] 312 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 312 - return false; [INFO] [stdout] 312 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day15/mod.rs:321:17 [INFO] [stdout] | [INFO] [stdout] 321 | ... return can_push(grid, (robot_pos.0, robot_pos.1-1), command, to_push) && can_push(grid, (robot_pos.0+1, robot_pos.1-1), command, to_push); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 321 - return can_push(grid, (robot_pos.0, robot_pos.1-1), command, to_push) && can_push(grid, (robot_pos.0+1, robot_pos.1-1), command, to_push); [INFO] [stdout] 321 + can_push(grid, (robot_pos.0, robot_pos.1-1), command, to_push) && can_push(grid, (robot_pos.0+1, robot_pos.1-1), command, to_push) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day15/mod.rs:330:17 [INFO] [stdout] | [INFO] [stdout] 330 | ... return can_push(grid, (robot_pos.0, robot_pos.1-1), command, to_push) && can_push(grid, (robot_pos.0-1, robot_pos.1-1), command, to_push); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 330 - return can_push(grid, (robot_pos.0, robot_pos.1-1), command, to_push) && can_push(grid, (robot_pos.0-1, robot_pos.1-1), command, to_push); [INFO] [stdout] 330 + can_push(grid, (robot_pos.0, robot_pos.1-1), command, to_push) && can_push(grid, (robot_pos.0-1, robot_pos.1-1), command, to_push) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day15/mod.rs:335:17 [INFO] [stdout] | [INFO] [stdout] 335 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 335 - return true; [INFO] [stdout] 335 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day15/mod.rs:338:17 [INFO] [stdout] | [INFO] [stdout] 338 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 338 - return false; [INFO] [stdout] 338 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day15/mod.rs:344:17 [INFO] [stdout] | [INFO] [stdout] 344 | return can_push(grid, (robot_pos.0+1, robot_pos.1), command, to_push) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 344 - return can_push(grid, (robot_pos.0+1, robot_pos.1), command, to_push) [INFO] [stdout] 344 + can_push(grid, (robot_pos.0+1, robot_pos.1), command, to_push) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day15/mod.rs:349:17 [INFO] [stdout] | [INFO] [stdout] 349 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 349 - return true; [INFO] [stdout] 349 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day15/mod.rs:352:17 [INFO] [stdout] | [INFO] [stdout] 352 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 352 - return false; [INFO] [stdout] 352 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day15/mod.rs:361:17 [INFO] [stdout] | [INFO] [stdout] 361 | ... return can_push(grid, (robot_pos.0, robot_pos.1+1), command, to_push) && can_push(grid, (robot_pos.0+1, robot_pos.1+1), command, to_push); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 361 - return can_push(grid, (robot_pos.0, robot_pos.1+1), command, to_push) && can_push(grid, (robot_pos.0+1, robot_pos.1+1), command, to_push); [INFO] [stdout] 361 + can_push(grid, (robot_pos.0, robot_pos.1+1), command, to_push) && can_push(grid, (robot_pos.0+1, robot_pos.1+1), command, to_push) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day15/mod.rs:370:17 [INFO] [stdout] | [INFO] [stdout] 370 | ... return can_push(grid, (robot_pos.0, robot_pos.1+1), command, to_push) && can_push(grid, (robot_pos.0-1, robot_pos.1+1), command, to_push); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 370 - return can_push(grid, (robot_pos.0, robot_pos.1+1), command, to_push) && can_push(grid, (robot_pos.0-1, robot_pos.1+1), command, to_push); [INFO] [stdout] 370 + can_push(grid, (robot_pos.0, robot_pos.1+1), command, to_push) && can_push(grid, (robot_pos.0-1, robot_pos.1+1), command, to_push) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day15/mod.rs:375:17 [INFO] [stdout] | [INFO] [stdout] 375 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 375 - return true; [INFO] [stdout] 375 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day15/mod.rs:378:17 [INFO] [stdout] | [INFO] [stdout] 378 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 378 - return false; [INFO] [stdout] 378 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day15/mod.rs:384:17 [INFO] [stdout] | [INFO] [stdout] 384 | return can_push(grid, (robot_pos.0-1, robot_pos.1), command, to_push) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 384 - return can_push(grid, (robot_pos.0-1, robot_pos.1), command, to_push) [INFO] [stdout] 384 + can_push(grid, (robot_pos.0-1, robot_pos.1), command, to_push) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day21/mod.rs:45:24 [INFO] [stdout] | [INFO] [stdout] 45 | let code_num = usize::from_str_radix(&code[0..3], 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `code[0..3].parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: importing legacy numeric constants [INFO] [stdout] --> src/day16/mod.rs:1:106 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{cmp::Reverse, collections::{BinaryHeap, HashMap, HashSet}, fs::File, io::{BufRead, BufReader}, usize}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove this import [INFO] [stdout] = note: then `usize::` will resolve to the respective associated constant [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/day16/mod.rs:11:20 [INFO] [stdout] | [INFO] [stdout] 11 | let mut graph: HashMap<(isize, isize, usize), Vec<(isize, isize, usize, usize)>> = HashMap::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `row` is used as a loop counter [INFO] [stdout] --> src/day16/mod.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | for line in reader.lines() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (row, line) in reader.lines().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day21/mod.rs:104:24 [INFO] [stdout] | [INFO] [stdout] 104 | let code_num = usize::from_str_radix(&code[0..3], 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `code[0..3].parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `col` is used as a loop counter [INFO] [stdout] --> src/day16/mod.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | for c in line_clone.chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (col, c) in line_clone.chars().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/day16/mod.rs:94:20 [INFO] [stdout] | [INFO] [stdout] 94 | let mut graph: HashMap<(isize, isize, usize), Vec<(isize, isize, usize, usize)>> = HashMap::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `row` is used as a loop counter [INFO] [stdout] --> src/day16/mod.rs:97:5 [INFO] [stdout] | [INFO] [stdout] 97 | for line in reader.lines() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (row, line) in reader.lines().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `col` is used as a loop counter [INFO] [stdout] --> src/day16/mod.rs:101:9 [INFO] [stdout] | [INFO] [stdout] 101 | for c in line_clone.chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (col, c) in line_clone.chars().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day22/mod.rs:12:22 [INFO] [stdout] | [INFO] [stdout] 12 | initial.push(usize::from_str_radix(&line_clone, 10).unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `line_clone.parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day22/mod.rs:41:22 [INFO] [stdout] | [INFO] [stdout] 41 | initial.push(usize::from_str_radix(&line_clone, 10).unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `line_clone.parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/day16/mod.rs:176:20 [INFO] [stdout] | [INFO] [stdout] 176 | fn dijkstra(graph: HashMap<(isize, isize, usize), Vec<(isize, isize, usize, usize)>>, start: (isize, isize, usize), end: (isize, is... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/day23/mod.rs:20:41 [INFO] [stdout] | [INFO] [stdout] 20 | connections.entry(pc_1.clone()).or_insert(HashSet::new()).insert(pc_2.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's keys [INFO] [stdout] --> src/day16/mod.rs:183:22 [INFO] [stdout] | [INFO] [stdout] 183 | for (node, _) in &graph { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] = note: `#[warn(clippy::for_kv_map)]` on by default [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 183 - for (node, _) in &graph { [INFO] [stdout] 183 + for node in graph.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/day23/mod.rs:21:33 [INFO] [stdout] | [INFO] [stdout] 21 | connections.entry(pc_2).or_insert(HashSet::new()).insert(pc_1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `(isize, isize, usize)` which implements the `Copy` trait [INFO] [stdout] --> src/day16/mod.rs:185:30 [INFO] [stdout] | [INFO] [stdout] 185 | distances.insert(node.clone(), usize::MAX); [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*node` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/day16/mod.rs:213:21 [INFO] [stdout] | [INFO] [stdout] 213 | fn dijkstra2(graph: HashMap<(isize, isize, usize), Vec<(isize, isize, usize, usize)>>, start: (isize, isize, usize), end: (isize, i... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/day23/mod.rs:94:5 [INFO] [stdout] | [INFO] [stdout] 93 | let password = max_clique.join(","); [INFO] [stdout] | ------------------------------------ unnecessary `let` binding [INFO] [stdout] 94 | password [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 93 ~ [INFO] [stdout] 94 ~ max_clique.join(",") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/day16/mod.rs:216:23 [INFO] [stdout] | [INFO] [stdout] 216 | let mut previous: HashMap<(isize, isize, usize), HashSet<(isize, isize, usize)>> = HashMap::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's keys [INFO] [stdout] --> src/day16/mod.rs:220:22 [INFO] [stdout] | [INFO] [stdout] 220 | for (node, _) in &graph { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 220 - for (node, _) in &graph { [INFO] [stdout] 220 + for node in graph.keys() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `(isize, isize, usize)` which implements the `Copy` trait [INFO] [stdout] --> src/day16/mod.rs:222:30 [INFO] [stdout] | [INFO] [stdout] 222 | distances.insert(node.clone(), usize::MAX); [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*node` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/day23/mod.rs:84:41 [INFO] [stdout] | [INFO] [stdout] 84 | connections.entry(pc_1.clone()).or_insert(HashSet::new()).insert(pc_2.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/day23/mod.rs:85:33 [INFO] [stdout] | [INFO] [stdout] 85 | connections.entry(pc_2).or_insert(HashSet::new()).insert(pc_1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/day16/mod.rs:251:53 [INFO] [stdout] | [INFO] [stdout] 251 | previous.entry((v.0, v.1, v.2)).or_insert(HashSet::new()).clear(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/day16/mod.rs:253:49 [INFO] [stdout] | [INFO] [stdout] 253 | previous.entry((v.0, v.1, v.2)).or_insert(HashSet::new()).insert(u.0.node); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day23/mod.rs:108:65 [INFO] [stdout] | [INFO] [stdout] 108 | let p_intersect: HashSet = p_clone.intersection(&graph.get(v).unwrap()).cloned().collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `graph.get(v).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/day16/mod.rs:262:83 [INFO] [stdout] | [INFO] [stdout] 262 | ...isize, isize, usize), previous: &HashMap<(isize, isize, usize), HashSet<(isize, isize, usize)>>) -> Vec<(isize, isize, usize)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day23/mod.rs:110:59 [INFO] [stdout] | [INFO] [stdout] 110 | let x_intersect: HashSet = x.intersection(&graph.get(v).unwrap()).cloned().collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `graph.get(v).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/day17/mod.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 33 | let output = run_program(reg_a, reg_b, reg_c, &program); [INFO] [stdout] | -------------------------------------------------------- unnecessary `let` binding [INFO] [stdout] 34 | output [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 33 ~ [INFO] [stdout] 34 ~ run_program(reg_a, reg_b, reg_c, &program) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/day24/mod.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | if line_clone == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `line_clone.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/day24/mod.rs:24:24 [INFO] [stdout] | [INFO] [stdout] 24 | let wire = line_clone.split(": ").nth(0).unwrap().to_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `line_clone.split(": ").next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] = note: `#[warn(clippy::iter_nth_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day17/mod.rs:16:21 [INFO] [stdout] | [INFO] [stdout] 16 | reg_a = usize::from_str_radix(line_clone.split(": ").last().unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `line_clone.split(": ").last().unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day17/mod.rs:19:21 [INFO] [stdout] | [INFO] [stdout] 19 | reg_b = usize::from_str_radix(line_clone.split(": ").last().unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `line_clone.split(": ").last().unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day17/mod.rs:22:21 [INFO] [stdout] | [INFO] [stdout] 22 | reg_c = usize::from_str_radix(line_clone.split(": ").last().unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `line_clone.split(": ").last().unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day17/mod.rs:27:28 [INFO] [stdout] | [INFO] [stdout] 27 | let code = usize::from_str_radix(oppcode, 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `oppcode.parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day17/mod.rs:49:21 [INFO] [stdout] | [INFO] [stdout] 49 | reg_b = usize::from_str_radix(line_clone.split(": ").last().unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `line_clone.split(": ").last().unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/day24/mod.rs:82:12 [INFO] [stdout] | [INFO] [stdout] 82 | if line_clone == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `line_clone.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day17/mod.rs:52:21 [INFO] [stdout] | [INFO] [stdout] 52 | reg_c = usize::from_str_radix(line_clone.split(": ").last().unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `line_clone.split(": ").last().unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day17/mod.rs:57:28 [INFO] [stdout] | [INFO] [stdout] 57 | let code = usize::from_str_radix(oppcode, 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `oppcode.parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_none()` [INFO] [stdout] --> src/day24/mod.rs:114:24 [INFO] [stdout] | [INFO] [stdout] 114 | if let None = rules.iter().filter(|r| (r.0 == rule.2 || r.1 == rule.2) && r.3 == 2).last() { [INFO] [stdout] | -------^^^^------------------------------------------------------------------------------- help: try: `if rules.iter().filter(|r| (r.0 == rule.2 || r.1 == rule.2) && r.3 == 2).last().is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_none()` [INFO] [stdout] --> src/day24/mod.rs:119:24 [INFO] [stdout] | [INFO] [stdout] 119 | if let None = rules.iter().filter(|r| (r.0 == rule.2 || r.1 == rule.2) && r.3 == 1).last() { [INFO] [stdout] | -------^^^^------------------------------------------------------------------------------- help: try: `if rules.iter().filter(|r| (r.0 == rule.2 || r.1 == rule.2) && r.3 == 1).last().is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/day17/mod.rs:89:55 [INFO] [stdout] | [INFO] [stdout] 89 | fn run_program(a: usize, b: usize, c: usize, program: &Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 89 - fn run_program(a: usize, b: usize, c: usize, program: &Vec) -> Vec { [INFO] [stdout] 89 + fn run_program(a: usize, b: usize, c: usize, program: &[usize]) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this OR pattern can be rewritten using a range [INFO] [stdout] --> src/day17/mod.rs:105:21 [INFO] [stdout] | [INFO] [stdout] 105 | 0 | 1 | 2 | 3 => operand, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `0..=3` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_patterns [INFO] [stdout] = note: `#[warn(clippy::manual_range_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `pos` is used as a loop counter [INFO] [stdout] --> src/day24/mod.rs:136:5 [INFO] [stdout] | [INFO] [stdout] 136 | for bit in hash_vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: consider using: `for (pos, bit) in hash_vec.into_iter().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this OR pattern can be rewritten using a range [INFO] [stdout] --> src/day17/mod.rs:122:21 [INFO] [stdout] | [INFO] [stdout] 122 | 0 | 1 | 2 | 3 => operand, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `0..=3` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_patterns [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/day25/mod.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 17 | if line_clone == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `line_clone.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this OR pattern can be rewritten using a range [INFO] [stdout] --> src/day17/mod.rs:146:21 [INFO] [stdout] | [INFO] [stdout] 146 | 0 | 1 | 2 | 3 => operand, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `0..=3` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_patterns [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this OR pattern can be rewritten using a range [INFO] [stdout] --> src/day17/mod.rs:159:21 [INFO] [stdout] | [INFO] [stdout] 159 | 0 | 1 | 2 | 3 => operand, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `0..=3` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_patterns [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this OR pattern can be rewritten using a range [INFO] [stdout] --> src/day17/mod.rs:173:21 [INFO] [stdout] | [INFO] [stdout] 173 | 0 | 1 | 2 | 3 => operand, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `0..=3` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_patterns [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `col` is used as a loop counter [INFO] [stdout] --> src/day25/mod.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | for c in line_clone.chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (col, c) in line_clone.chars().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day18/mod.rs:15:17 [INFO] [stdout] | [INFO] [stdout] 15 | let x = usize::from_str_radix(coord_vec.first().unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `coord_vec.first().unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/day25/mod.rs:46:46 [INFO] [stdout] | [INFO] [stdout] 46 | else if reading_lock && c == '#' { [INFO] [stdout] | ______________________________________________^ [INFO] [stdout] 47 | | buffer[col] += 1; [INFO] [stdout] 48 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/day25/mod.rs:49:47 [INFO] [stdout] | [INFO] [stdout] 49 | else if !reading_lock && c == '#' { [INFO] [stdout] | _______________________________________________^ [INFO] [stdout] 50 | | buffer[col] += 1; [INFO] [stdout] 51 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day18/mod.rs:16:17 [INFO] [stdout] | [INFO] [stdout] 16 | let y = usize::from_str_radix(coord_vec.last().unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `coord_vec.last().unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `coords` [INFO] [stdout] --> src/day18/mod.rs:20:14 [INFO] [stdout] | [INFO] [stdout] 20 | for i in 0..1024 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 20 - for i in 0..1024 { [INFO] [stdout] 20 + for in coords.iter().take(1024) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day18/mod.rs:75:17 [INFO] [stdout] | [INFO] [stdout] 75 | let x = usize::from_str_radix(coord_vec.first().unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `coord_vec.first().unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day18/mod.rs:76:17 [INFO] [stdout] | [INFO] [stdout] 76 | let y = usize::from_str_radix(coord_vec.last().unwrap(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `coord_vec.last().unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `coords` [INFO] [stdout] --> src/day18/mod.rs:86:14 [INFO] [stdout] | [INFO] [stdout] 86 | for i in 0..coords.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 86 - for i in 0..coords.len() { [INFO] [stdout] 86 + for in &coords { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/day18/mod.rs:126:12 [INFO] [stdout] | [INFO] [stdout] 126 | if path.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `path.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/day19/mod.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | if line_clone == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `line_clone.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/day19/mod.rs:48:12 [INFO] [stdout] | [INFO] [stdout] 48 | if line_clone == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `line_clone.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day19/mod.rs:83:5 [INFO] [stdout] | [INFO] [stdout] 83 | return dp[n]; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 83 - return dp[n]; [INFO] [stdout] 83 + dp[n] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/day19/mod.rs:99:5 [INFO] [stdout] | [INFO] [stdout] 99 | return dp[n]; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 99 - return dp[n]; [INFO] [stdout] 99 + dp[n] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `row` is used as a loop counter [INFO] [stdout] --> src/day20/mod.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | for line in reader.lines() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (row, line) in reader.lines().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `col` is used as a loop counter [INFO] [stdout] --> src/day20/mod.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | for c in line_clone.chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (col, c) in line_clone.chars().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `time_counter` is used as a loop counter [INFO] [stdout] --> src/day20/mod.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | for tile in base_sol.iter().rev() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (time_counter, tile) in base_sol.iter().rev().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `row` is used as a loop counter [INFO] [stdout] --> src/day20/mod.rs:71:5 [INFO] [stdout] | [INFO] [stdout] 71 | for line in reader.lines() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (row, line) in reader.lines().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `col` is used as a loop counter [INFO] [stdout] --> src/day20/mod.rs:75:9 [INFO] [stdout] | [INFO] [stdout] 75 | for c in line_clone.chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (col, c) in line_clone.chars().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `time_counter` is used as a loop counter [INFO] [stdout] --> src/day20/mod.rs:96:5 [INFO] [stdout] | [INFO] [stdout] 96 | for tile in base_sol.iter().rev() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (time_counter, tile) in base_sol.iter().rev().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day21/mod.rs:45:24 [INFO] [stdout] | [INFO] [stdout] 45 | let code_num = usize::from_str_radix(&code[0..3], 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `code[0..3].parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day21/mod.rs:104:24 [INFO] [stdout] | [INFO] [stdout] 104 | let code_num = usize::from_str_radix(&code[0..3], 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `code[0..3].parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day22/mod.rs:12:22 [INFO] [stdout] | [INFO] [stdout] 12 | initial.push(usize::from_str_radix(&line_clone, 10).unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `line_clone.parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/day22/mod.rs:41:22 [INFO] [stdout] | [INFO] [stdout] 41 | initial.push(usize::from_str_radix(&line_clone, 10).unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `line_clone.parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/day23/mod.rs:20:41 [INFO] [stdout] | [INFO] [stdout] 20 | connections.entry(pc_1.clone()).or_insert(HashSet::new()).insert(pc_2.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/day23/mod.rs:21:33 [INFO] [stdout] | [INFO] [stdout] 21 | connections.entry(pc_2).or_insert(HashSet::new()).insert(pc_1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/day23/mod.rs:94:5 [INFO] [stdout] | [INFO] [stdout] 93 | let password = max_clique.join(","); [INFO] [stdout] | ------------------------------------ unnecessary `let` binding [INFO] [stdout] 94 | password [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 93 ~ [INFO] [stdout] 94 ~ max_clique.join(",") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/day23/mod.rs:84:41 [INFO] [stdout] | [INFO] [stdout] 84 | connections.entry(pc_1.clone()).or_insert(HashSet::new()).insert(pc_2.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/day23/mod.rs:85:33 [INFO] [stdout] | [INFO] [stdout] 85 | connections.entry(pc_2).or_insert(HashSet::new()).insert(pc_1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day23/mod.rs:108:65 [INFO] [stdout] | [INFO] [stdout] 108 | let p_intersect: HashSet = p_clone.intersection(&graph.get(v).unwrap()).cloned().collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `graph.get(v).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day23/mod.rs:110:59 [INFO] [stdout] | [INFO] [stdout] 110 | let x_intersect: HashSet = x.intersection(&graph.get(v).unwrap()).cloned().collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `graph.get(v).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/day24/mod.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | if line_clone == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `line_clone.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/day24/mod.rs:24:24 [INFO] [stdout] | [INFO] [stdout] 24 | let wire = line_clone.split(": ").nth(0).unwrap().to_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `line_clone.split(": ").next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] = note: `#[warn(clippy::iter_nth_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/day24/mod.rs:82:12 [INFO] [stdout] | [INFO] [stdout] 82 | if line_clone == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `line_clone.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_none()` [INFO] [stdout] --> src/day24/mod.rs:114:24 [INFO] [stdout] | [INFO] [stdout] 114 | if let None = rules.iter().filter(|r| (r.0 == rule.2 || r.1 == rule.2) && r.3 == 2).last() { [INFO] [stdout] | -------^^^^------------------------------------------------------------------------------- help: try: `if rules.iter().filter(|r| (r.0 == rule.2 || r.1 == rule.2) && r.3 == 2).last().is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_none()` [INFO] [stdout] --> src/day24/mod.rs:119:24 [INFO] [stdout] | [INFO] [stdout] 119 | if let None = rules.iter().filter(|r| (r.0 == rule.2 || r.1 == rule.2) && r.3 == 1).last() { [INFO] [stdout] | -------^^^^------------------------------------------------------------------------------- help: try: `if rules.iter().filter(|r| (r.0 == rule.2 || r.1 == rule.2) && r.3 == 1).last().is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `pos` is used as a loop counter [INFO] [stdout] --> src/day24/mod.rs:136:5 [INFO] [stdout] | [INFO] [stdout] 136 | for bit in hash_vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: consider using: `for (pos, bit) in hash_vec.into_iter().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/day25/mod.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 17 | if line_clone == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `line_clone.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `col` is used as a loop counter [INFO] [stdout] --> src/day25/mod.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | for c in line_clone.chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (col, c) in line_clone.chars().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/day25/mod.rs:46:46 [INFO] [stdout] | [INFO] [stdout] 46 | else if reading_lock && c == '#' { [INFO] [stdout] | ______________________________________________^ [INFO] [stdout] 47 | | buffer[col] += 1; [INFO] [stdout] 48 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/day25/mod.rs:49:47 [INFO] [stdout] | [INFO] [stdout] 49 | else if !reading_lock && c == '#' { [INFO] [stdout] | _______________________________________________^ [INFO] [stdout] 50 | | buffer[col] += 1; [INFO] [stdout] 51 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.21s [INFO] running `Command { std: "docker" "inspect" "32b74ada17016e9f00432eb49f6233089af06ba5deb3e43da79176bf635b89c5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "32b74ada17016e9f00432eb49f6233089af06ba5deb3e43da79176bf635b89c5", kill_on_drop: false }` [INFO] [stdout] 32b74ada17016e9f00432eb49f6233089af06ba5deb3e43da79176bf635b89c5