[INFO] updating cached repository simonasker/adventofcode2016 [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/simonasker/adventofcode2016 [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/simonasker/adventofcode2016" "work/ex/clippy-test-run/sources/stable/gh/simonasker/adventofcode2016"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/simonasker/adventofcode2016'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/simonasker/adventofcode2016" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/simonasker/adventofcode2016"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/simonasker/adventofcode2016'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] b46931a2cc2191aa536c492e088b9ad64bdfebb0 [INFO] sha for GitHub repo simonasker/adventofcode2016: b46931a2cc2191aa536c492e088b9ad64bdfebb0 [INFO] validating manifest of simonasker/adventofcode2016 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of simonasker/adventofcode2016 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing simonasker/adventofcode2016 [INFO] finished frobbing simonasker/adventofcode2016 [INFO] frobbed toml for simonasker/adventofcode2016 written to work/ex/clippy-test-run/sources/stable/gh/simonasker/adventofcode2016/Cargo.toml [INFO] started frobbing simonasker/adventofcode2016 [INFO] finished frobbing simonasker/adventofcode2016 [INFO] frobbed toml for simonasker/adventofcode2016 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/simonasker/adventofcode2016/Cargo.toml [INFO] crate simonasker/adventofcode2016 has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting simonasker/adventofcode2016 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/simonasker/adventofcode2016:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] a5c2a358fc8f5df071e454c7dbc9502f0445b1ce036c5626613fa9c2d77d680c [INFO] running `"docker" "start" "-a" "a5c2a358fc8f5df071e454c7dbc9502f0445b1ce036c5626613fa9c2d77d680c"` [INFO] [stderr] Checking unicode-segmentation v0.1.3 [INFO] [stderr] Checking term_size v0.2.1 [INFO] [stderr] Compiling rust-crypto v0.2.36 [INFO] [stderr] Checking clap v2.19.1 [INFO] [stderr] Checking adventofcode2016 v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> src/solutions/day02.rs:36:5 [INFO] [stderr] | [INFO] [stderr] 36 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::println_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> src/solutions/day02.rs:84:5 [INFO] [stderr] | [INFO] [stderr] 84 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> src/solutions/day07.rs:160:9 [INFO] [stderr] | [INFO] [stderr] 160 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> src/solutions/day15.rs:33:13 [INFO] [stderr] | [INFO] [stderr] 33 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/solutions/day22.rs:41:41 [INFO] [stderr] | [INFO] [stderr] 41 | nodes.insert((x, y), Node { used: used, avail: avail }); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `used` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/solutions/day22.rs:41:53 [INFO] [stderr] | [INFO] [stderr] 41 | nodes.insert((x, y), Node { used: used, avail: avail }); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `avail` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> src/solutions/day22.rs:78:9 [INFO] [stderr] | [INFO] [stderr] 78 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/solutions/day24.rs:41:25 [INFO] [stderr] | [INFO] [stderr] 41 | let n = d.to_digit(10).expect("This should be a digit"); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> src/solutions/day02.rs:36:5 [INFO] [stderr] | [INFO] [stderr] 36 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::println_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> src/solutions/day02.rs:84:5 [INFO] [stderr] | [INFO] [stderr] 84 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> src/solutions/day07.rs:160:9 [INFO] [stderr] | [INFO] [stderr] 160 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> src/solutions/day15.rs:33:13 [INFO] [stderr] | [INFO] [stderr] 33 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/solutions/day22.rs:41:41 [INFO] [stderr] | [INFO] [stderr] 41 | nodes.insert((x, y), Node { used: used, avail: avail }); [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `used` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/solutions/day22.rs:41:53 [INFO] [stderr] | [INFO] [stderr] 41 | nodes.insert((x, y), Node { used: used, avail: avail }); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `avail` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> src/solutions/day22.rs:78:9 [INFO] [stderr] | [INFO] [stderr] 78 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/solutions/day24.rs:41:25 [INFO] [stderr] | [INFO] [stderr] 41 | let n = d.to_digit(10).expect("This should be a digit"); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/solutions/day04.rs:54:21 [INFO] [stderr] | [INFO] [stderr] 54 | return b.cmp(a); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `b.cmp(a)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/solutions/day04.rs:56:28 [INFO] [stderr] | [INFO] [stderr] 56 | ord @ _ => return ord, [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `ord` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/solutions/day14.rs:16:15 [INFO] [stderr] | [INFO] [stderr] 16 | const INPUT: &'static str = "zpqevtbw"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/solutions/day16.rs:32:21 [INFO] [stderr] | [INFO] [stderr] 32 | let disk_size = 35651584; // part 2 [INFO] [stderr] | ^^^^^^^^ help: consider: `35_651_584` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/solutions/day17.rs:23:15 [INFO] [stderr] | [INFO] [stderr] 23 | const INPUT: &'static str = "vwbaicqe"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/solutions/day17.rs:62:16 [INFO] [stderr] | [INFO] [stderr] 62 | "U" => return open_char(hash.chars().nth(0).unwrap()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `open_char(hash.chars().nth(0).unwrap())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/solutions/day17.rs:63:16 [INFO] [stderr] | [INFO] [stderr] 63 | "D" => return open_char(hash.chars().nth(1).unwrap()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `open_char(hash.chars().nth(1).unwrap())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/solutions/day17.rs:64:16 [INFO] [stderr] | [INFO] [stderr] 64 | "L" => return open_char(hash.chars().nth(2).unwrap()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `open_char(hash.chars().nth(2).unwrap())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/solutions/day17.rs:65:16 [INFO] [stderr] | [INFO] [stderr] 65 | "R" => return open_char(hash.chars().nth(3).unwrap()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `open_char(hash.chars().nth(3).unwrap())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/solutions/day19.rs:10:17 [INFO] [stderr] | [INFO] [stderr] 10 | let input = 3018458; [INFO] [stderr] | ^^^^^^^ help: consider: `3_018_458` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/solutions/day19.rs:14:31 [INFO] [stderr] | [INFO] [stderr] 14 | res = i32::pow(2, (i-1)); [INFO] [stderr] | ^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/solutions/day19.rs:23:17 [INFO] [stderr] | [INFO] [stderr] 23 | let input = 3018458; [INFO] [stderr] | ^^^^^^^ help: consider: `3_018_458` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/solutions/day20.rs:33:27 [INFO] [stderr] | [INFO] [stderr] 33 | if lowest_high >= 4294967295 { [INFO] [stderr] | ^^^^^^^^^^ help: consider: `4_294_967_295` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/solutions/day24.rs:6:20 [INFO] [stderr] | [INFO] [stderr] 6 | const INPUT_FILE: &'static str = "input/day24.txt"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/solutions/day04.rs:54:21 [INFO] [stderr] | [INFO] [stderr] 54 | return b.cmp(a); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `b.cmp(a)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/solutions/day04.rs:56:28 [INFO] [stderr] | [INFO] [stderr] 56 | ord @ _ => return ord, [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `ord` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/solutions/day14.rs:16:15 [INFO] [stderr] | [INFO] [stderr] 16 | const INPUT: &'static str = "zpqevtbw"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/solutions/day16.rs:32:21 [INFO] [stderr] | [INFO] [stderr] 32 | let disk_size = 35651584; // part 2 [INFO] [stderr] | ^^^^^^^^ help: consider: `35_651_584` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/solutions/day17.rs:23:15 [INFO] [stderr] | [INFO] [stderr] 23 | const INPUT: &'static str = "vwbaicqe"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/solutions/day17.rs:62:16 [INFO] [stderr] | [INFO] [stderr] 62 | "U" => return open_char(hash.chars().nth(0).unwrap()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `open_char(hash.chars().nth(0).unwrap())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/solutions/day17.rs:63:16 [INFO] [stderr] | [INFO] [stderr] 63 | "D" => return open_char(hash.chars().nth(1).unwrap()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `open_char(hash.chars().nth(1).unwrap())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/solutions/day17.rs:64:16 [INFO] [stderr] | [INFO] [stderr] 64 | "L" => return open_char(hash.chars().nth(2).unwrap()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `open_char(hash.chars().nth(2).unwrap())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/solutions/day17.rs:65:16 [INFO] [stderr] | [INFO] [stderr] 65 | "R" => return open_char(hash.chars().nth(3).unwrap()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `open_char(hash.chars().nth(3).unwrap())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/solutions/day19.rs:10:17 [INFO] [stderr] | [INFO] [stderr] 10 | let input = 3018458; [INFO] [stderr] | ^^^^^^^ help: consider: `3_018_458` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/solutions/day19.rs:14:31 [INFO] [stderr] | [INFO] [stderr] 14 | res = i32::pow(2, (i-1)); [INFO] [stderr] | ^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/solutions/day19.rs:23:17 [INFO] [stderr] | [INFO] [stderr] 23 | let input = 3018458; [INFO] [stderr] | ^^^^^^^ help: consider: `3_018_458` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/solutions/day20.rs:33:27 [INFO] [stderr] | [INFO] [stderr] 33 | if lowest_high >= 4294967295 { [INFO] [stderr] | ^^^^^^^^^^ help: consider: `4_294_967_295` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/solutions/day24.rs:6:20 [INFO] [stderr] | [INFO] [stderr] 6 | const INPUT_FILE: &'static str = "input/day24.txt"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: value assigned to `b` is never read [INFO] [stderr] --> src/solutions/day23.rs:154:13 [INFO] [stderr] | [INFO] [stderr] 154 | let mut b = 0; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `c` is never read [INFO] [stderr] --> src/solutions/day23.rs:155:13 [INFO] [stderr] | [INFO] [stderr] 155 | let mut c = 0; [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: value assigned to `d` is never read [INFO] [stderr] --> src/solutions/day23.rs:156:13 [INFO] [stderr] | [INFO] [stderr] 156 | let mut d = 0; [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: value assigned to `c` is never read [INFO] [stderr] --> src/solutions/day23.rs:184:5 [INFO] [stderr] | [INFO] [stderr] 184 | c = 1; // 19: cpy 1 c TOGGLED [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: value assigned to `b` is never read [INFO] [stderr] --> src/solutions/day23.rs:154:13 [INFO] [stderr] | [INFO] [stderr] 154 | let mut b = 0; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `c` is never read [INFO] [stderr] --> src/solutions/day23.rs:155:13 [INFO] [stderr] | [INFO] [stderr] 155 | let mut c = 0; [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: value assigned to `d` is never read [INFO] [stderr] --> src/solutions/day23.rs:156:13 [INFO] [stderr] | [INFO] [stderr] 156 | let mut d = 0; [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: value assigned to `c` is never read [INFO] [stderr] --> src/solutions/day23.rs:184:5 [INFO] [stderr] | [INFO] [stderr] 184 | c = 1; // 19: cpy 1 c TOGGLED [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/solutions/day01.rs:43:13 [INFO] [stderr] | [INFO] [stderr] 43 | heading = 4 + heading; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `heading += 4` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/solutions/day03.rs:13:16 [INFO] [stderr] | [INFO] [stderr] 13 | fn is_valid(t: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[i32]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/solutions/day04.rs:46:36 [INFO] [stderr] | [INFO] [stderr] 46 | let mut chars: Vec = letters.keys().map(|c| *c).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `letters.keys().cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day04.rs:49:26 [INFO] [stderr] | [INFO] [stderr] 49 | let a_num = *letters.get(a).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&letters[a]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day04.rs:50:26 [INFO] [stderr] | [INFO] [stderr] 50 | let b_num = *letters.get(b).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&letters[b]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: the `ord @ _` pattern can be written as just `ord` [INFO] [stderr] --> src/solutions/day04.rs:56:17 [INFO] [stderr] | [INFO] [stderr] 56 | ord @ _ => return ord, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] warning: use of a blacklisted/placeholder name `foo` [INFO] [stderr] --> src/solutions/day05.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | let foo = format!("{}{}", input, n); [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::blacklisted_name)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#blacklisted_name [INFO] [stderr] [INFO] [stderr] warning: use of a blacklisted/placeholder name `foo` [INFO] [stderr] --> src/solutions/day05.rs:57:13 [INFO] [stderr] | [INFO] [stderr] 57 | let foo = format!("{}{}", input, n); [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#blacklisted_name [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/solutions/day06.rs:28:17 [INFO] [stderr] | [INFO] [stderr] 28 | let ref mut letters = maps[i]; [INFO] [stderr] | ----^^^^^^^^^^^^^^^----------- help: try: `let letters = &mut maps[i];` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day06.rs:38:31 [INFO] [stderr] | [INFO] [stderr] 38 | chars.sort_by_key(|c| map.get(c).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try this: `&map[c]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/solutions/day06.rs:60:17 [INFO] [stderr] | [INFO] [stderr] 60 | let ref mut letters = maps[i]; [INFO] [stderr] | ----^^^^^^^^^^^^^^^----------- help: try: `let letters = &mut maps[i];` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day06.rs:70:31 [INFO] [stderr] | [INFO] [stderr] 70 | chars.sort_by_key(|c| map.get(c).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try this: `&map[c]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/solutions/day07.rs:78:9 [INFO] [stderr] | [INFO] [stderr] 78 | / loop { [INFO] [stderr] 79 | | if let Some(c) = chars.next() { [INFO] [stderr] 80 | | match c { [INFO] [stderr] 81 | | '[' => { [INFO] [stderr] ... | [INFO] [stderr] 102 | | } [INFO] [stderr] 103 | | } [INFO] [stderr] | |_________^ help: try: `while let Some(c) = chars.next() { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/solutions/day07.rs:130:9 [INFO] [stderr] | [INFO] [stderr] 130 | / loop { [INFO] [stderr] 131 | | if let Some(c) = chars.next() { [INFO] [stderr] 132 | | match c { [INFO] [stderr] 133 | | '[' => { [INFO] [stderr] ... | [INFO] [stderr] 155 | | } [INFO] [stderr] 156 | | } [INFO] [stderr] | |_________^ help: try: `while let Some(c) = chars.next() { .. }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/solutions/day08.rs:69:22 [INFO] [stderr] | [INFO] [stderr] 69 | total += sum as u32; [INFO] [stderr] | ^^^^^^^^^^ help: try: `u32::from(sum)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/solutions/day08.rs:81:17 [INFO] [stderr] | [INFO] [stderr] 81 | / match x { [INFO] [stderr] 82 | | &0u8 => output.push('.'), [INFO] [stderr] 83 | | &1u8 => output.push('#'), [INFO] [stderr] 84 | | _ => { }, [INFO] [stderr] 85 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 81 | match *x { [INFO] [stderr] 82 | 0u8 => output.push('.'), [INFO] [stderr] 83 | 1u8 => output.push('#'), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/solutions/day09.rs:84:27 [INFO] [stderr] | [INFO] [stderr] 84 | result += reps as u64 * unwinded; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u64::from(reps)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/solutions/day11.rs:159:17 [INFO] [stderr] | [INFO] [stderr] 159 | let s = steps.get(¤t).unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*steps.get(¤t).unwrap()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day11.rs:159:17 [INFO] [stderr] | [INFO] [stderr] 159 | let s = steps.get(¤t).unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&steps[¤t]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/solutions/day13.rs:59:32 [INFO] [stderr] | [INFO] [stderr] 59 | let current_dist = distances.get(¤t).unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*distances.get(¤t).unwrap()` [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/solutions/day01.rs:43:13 [INFO] [stderr] | [INFO] [stderr] 43 | heading = 4 + heading; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `heading += 4` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day13.rs:59:32 [INFO] [stderr] | [INFO] [stderr] 59 | let current_dist = distances.get(¤t).unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&distances[¤t]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day13.rs:78:39 [INFO] [stderr] | [INFO] [stderr] 78 | println!("Shortest distance: {}", distances.get(&(31, 39)).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&distances[&(31, 39)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/solutions/day03.rs:13:16 [INFO] [stderr] | [INFO] [stderr] 13 | fn is_valid(t: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[i32]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `for` loop [INFO] [stderr] --> src/solutions/day14.rs:48:29 [INFO] [stderr] | [INFO] [stderr] 48 | while let Some(c) = char_iter.next() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `for c in char_iter { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_on_iterator)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/solutions/day14.rs:54:38 [INFO] [stderr] | [INFO] [stderr] 54 | char_to_ind.entry(c).or_insert(Vec::new()).push(n); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/solutions/day14.rs:78:20 [INFO] [stderr] | [INFO] [stderr] 78 | prev = c.clone(); [INFO] [stderr] | ^^^^^^^^^ help: try removing the `clone` call: `c` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/solutions/day04.rs:46:36 [INFO] [stderr] | [INFO] [stderr] 46 | let mut chars: Vec = letters.keys().map(|c| *c).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `letters.keys().cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day04.rs:49:26 [INFO] [stderr] | [INFO] [stderr] 49 | let a_num = *letters.get(a).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&letters[a]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day04.rs:50:26 [INFO] [stderr] | [INFO] [stderr] 50 | let b_num = *letters.get(b).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&letters[b]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: the `ord @ _` pattern can be written as just `ord` [INFO] [stderr] --> src/solutions/day04.rs:56:17 [INFO] [stderr] | [INFO] [stderr] 56 | ord @ _ => return ord, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] warning: use of a blacklisted/placeholder name `foo` [INFO] [stderr] --> src/solutions/day05.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | let foo = format!("{}{}", input, n); [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::blacklisted_name)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#blacklisted_name [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/solutions/day16.rs:66:24 [INFO] [stderr] | [INFO] [stderr] 66 | if let None = char_iter.peek() { [INFO] [stderr] | _________________- ^^^^ [INFO] [stderr] 67 | | break; [INFO] [stderr] 68 | | } [INFO] [stderr] | |_________________- help: try this: `if char_iter.peek().is_none()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: use of a blacklisted/placeholder name `foo` [INFO] [stderr] --> src/solutions/day05.rs:57:13 [INFO] [stderr] | [INFO] [stderr] 57 | let foo = format!("{}{}", input, n); [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#blacklisted_name [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/solutions/day17.rs:78:16 [INFO] [stderr] | [INFO] [stderr] 78 | for dir in vec!["U", "D", "L", "R"] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&["U", "D", "L", "R"]` [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/solutions/day06.rs:28:17 [INFO] [stderr] | [INFO] [stderr] 28 | let ref mut letters = maps[i]; [INFO] [stderr] | ----^^^^^^^^^^^^^^^----------- help: try: `let letters = &mut maps[i];` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day06.rs:38:31 [INFO] [stderr] | [INFO] [stderr] 38 | chars.sort_by_key(|c| map.get(c).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try this: `&map[c]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_vec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/solutions/day17.rs:81:16 [INFO] [stderr] | [INFO] [stderr] 81 | if let Some(_) = find_room(&new_path) { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 82 | | if door_is_open(path, dir) { [INFO] [stderr] 83 | | result.push(new_path); [INFO] [stderr] 84 | | } [INFO] [stderr] 85 | | } [INFO] [stderr] | |_________- help: try this: `if find_room(&new_path).is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/solutions/day06.rs:60:17 [INFO] [stderr] | [INFO] [stderr] 60 | let ref mut letters = maps[i]; [INFO] [stderr] | ----^^^^^^^^^^^^^^^----------- help: try: `let letters = &mut maps[i];` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day06.rs:70:31 [INFO] [stderr] | [INFO] [stderr] 70 | chars.sort_by_key(|c| map.get(c).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try this: `&map[c]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/solutions/day07.rs:78:9 [INFO] [stderr] | [INFO] [stderr] 78 | / loop { [INFO] [stderr] 79 | | if let Some(c) = chars.next() { [INFO] [stderr] 80 | | match c { [INFO] [stderr] 81 | | '[' => { [INFO] [stderr] ... | [INFO] [stderr] 102 | | } [INFO] [stderr] 103 | | } [INFO] [stderr] | |_________^ help: try: `while let Some(c) = chars.next() { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/solutions/day07.rs:130:9 [INFO] [stderr] | [INFO] [stderr] 130 | / loop { [INFO] [stderr] 131 | | if let Some(c) = chars.next() { [INFO] [stderr] 132 | | match c { [INFO] [stderr] 133 | | '[' => { [INFO] [stderr] ... | [INFO] [stderr] 155 | | } [INFO] [stderr] 156 | | } [INFO] [stderr] | |_________^ help: try: `while let Some(c) = chars.next() { .. }` [INFO] [stderr] | [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/solutions/day18.rs:35:18 [INFO] [stderr] | [INFO] [stderr] 35 | for i in 1..size+1 { [INFO] [stderr] | ^^^^^^^^^ help: use: `1..=size` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] error: this `if` has identical blocks [INFO] [stderr] --> src/solutions/day18.rs:38:72 [INFO] [stderr] | [INFO] [stderr] 38 | } else if chars[i+1] == chars[i] && chars[i] != chars[i-1] { [INFO] [stderr] | ________________________________________________________________________^ [INFO] [stderr] 39 | | new_row.push('^'); [INFO] [stderr] 40 | | } else { [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/solutions/day18.rs:36:65 [INFO] [stderr] | [INFO] [stderr] 36 | if chars[i-1] == chars[i] && chars[i] != chars[i+1] { [INFO] [stderr] | _________________________________________________________________^ [INFO] [stderr] 37 | | new_row.push('^'); [INFO] [stderr] 38 | | } else if chars[i+1] == chars[i] && chars[i] != chars[i-1] { [INFO] [stderr] | |_____________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/solutions/day19.rs:31:14 [INFO] [stderr] | [INFO] [stderr] 31 | for i in 1..num_elves+1 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use: `1..=num_elves` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/solutions/day08.rs:69:22 [INFO] [stderr] | [INFO] [stderr] 69 | total += sum as u32; [INFO] [stderr] | ^^^^^^^^^^ help: try: `u32::from(sum)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/solutions/day08.rs:81:17 [INFO] [stderr] | [INFO] [stderr] 81 | / match x { [INFO] [stderr] 82 | | &0u8 => output.push('.'), [INFO] [stderr] 83 | | &1u8 => output.push('#'), [INFO] [stderr] 84 | | _ => { }, [INFO] [stderr] 85 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 81 | match *x { [INFO] [stderr] 82 | 0u8 => output.push('.'), [INFO] [stderr] 83 | 1u8 => output.push('#'), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this looks like you are swapping elements of `chars` manually [INFO] [stderr] --> src/solutions/day21.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | / let temp = chars[x]; [INFO] [stderr] 45 | | chars[x] = chars[y]; [INFO] [stderr] 46 | | chars[y] = temp; [INFO] [stderr] | |___________________________^ help: try: `chars.swap(x, y)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_swap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stderr] [INFO] [stderr] warning: this looks like you are swapping elements of `chars` manually [INFO] [stderr] --> src/solutions/day21.rs:56:13 [INFO] [stderr] | [INFO] [stderr] 56 | / let temp = chars[ix]; [INFO] [stderr] 57 | | chars[ix] = chars[iy]; [INFO] [stderr] 58 | | chars[iy] = temp; [INFO] [stderr] | |____________________________^ help: try: `chars.swap(ix, iy)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `chars`. [INFO] [stderr] --> src/solutions/day21.rs:67:22 [INFO] [stderr] | [INFO] [stderr] 67 | for i in x..y+1 { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 67 | for in chars.iter().take(y+1).skip(x) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/solutions/day21.rs:67:22 [INFO] [stderr] | [INFO] [stderr] 67 | for i in x..y+1 { [INFO] [stderr] | ^^^^^^ help: use: `x..=y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `chars`. [INFO] [stderr] --> src/solutions/day21.rs:72:22 [INFO] [stderr] | [INFO] [stderr] 72 | for i in x..y+1 { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 72 | for in chars.iter_mut().take(y+1).skip(x) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/solutions/day21.rs:72:22 [INFO] [stderr] | [INFO] [stderr] 72 | for i in x..y+1 { [INFO] [stderr] | ^^^^^^ help: use: `x..=y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/solutions/day09.rs:84:27 [INFO] [stderr] | [INFO] [stderr] 84 | result += reps as u64 * unwinded; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u64::from(reps)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this looks like you are swapping elements of `chars` manually [INFO] [stderr] --> src/solutions/day21.rs:155:13 [INFO] [stderr] | [INFO] [stderr] 155 | / let temp = chars[x]; [INFO] [stderr] 156 | | chars[x] = chars[y]; [INFO] [stderr] 157 | | chars[y] = temp; [INFO] [stderr] | |___________________________^ help: try: `chars.swap(x, y)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stderr] [INFO] [stderr] warning: this looks like you are swapping elements of `chars` manually [INFO] [stderr] --> src/solutions/day21.rs:167:13 [INFO] [stderr] | [INFO] [stderr] 167 | / let temp = chars[ix]; [INFO] [stderr] 168 | | chars[ix] = chars[iy]; [INFO] [stderr] 169 | | chars[iy] = temp; [INFO] [stderr] | |____________________________^ help: try: `chars.swap(ix, iy)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `chars`. [INFO] [stderr] --> src/solutions/day21.rs:178:22 [INFO] [stderr] | [INFO] [stderr] 178 | for i in x..y+1 { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 178 | for in chars.iter().take(y+1).skip(x) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/solutions/day21.rs:178:22 [INFO] [stderr] | [INFO] [stderr] 178 | for i in x..y+1 { [INFO] [stderr] | ^^^^^^ help: use: `x..=y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `chars`. [INFO] [stderr] --> src/solutions/day21.rs:183:22 [INFO] [stderr] | [INFO] [stderr] 183 | for i in x..y+1 { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 183 | for in chars.iter_mut().take(y+1).skip(x) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/solutions/day21.rs:183:22 [INFO] [stderr] | [INFO] [stderr] 183 | for i in x..y+1 { [INFO] [stderr] | ^^^^^^ help: use: `x..=y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/solutions/day21.rs:230:17 [INFO] [stderr] | [INFO] [stderr] 230 | / let mut extra_step = 0; [INFO] [stderr] 231 | | if ix >= 4 { [INFO] [stderr] 232 | | extra_step = 1; [INFO] [stderr] 233 | | } [INFO] [stderr] | |_________________^ help: it is more idiomatic to write: `let extra_step = if ix >= 4 { 1 } else { 0 };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day22.rs:52:26 [INFO] [stderr] | [INFO] [stderr] 52 | let node_a = nodes.get(a).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `&nodes[a]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day22.rs:53:26 [INFO] [stderr] | [INFO] [stderr] 53 | let node_b = nodes.get(b).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `&nodes[b]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day22.rs:67:24 [INFO] [stderr] | [INFO] [stderr] 67 | let node = nodes.get(&(x, y)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&nodes[&(x, y)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day23.rs:65:32 [INFO] [stderr] | [INFO] [stderr] 65 | new_val = *register.get(&other_reg).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `®ister[&other_reg]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day23.rs:92:29 [INFO] [stderr] | [INFO] [stderr] 92 | flag = *register.get(&other_reg).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `®ister[&other_reg]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day23.rs:99:31 [INFO] [stderr] | [INFO] [stderr] 99 | offset = *register.get(&other_reg).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `®ister[&other_reg]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day23.rs:115:31 [INFO] [stderr] | [INFO] [stderr] 115 | offset = *register.get(&other_reg).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `®ister[&other_reg]` [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/solutions/day11.rs:159:17 [INFO] [stderr] | [INFO] [stderr] 159 | let s = steps.get(¤t).unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*steps.get(¤t).unwrap()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day11.rs:159:17 [INFO] [stderr] | [INFO] [stderr] 159 | let s = steps.get(¤t).unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&steps[¤t]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/solutions/day23.rs:119:25 [INFO] [stderr] | [INFO] [stderr] 119 | let ref mut other = instructions[index as usize]; [INFO] [stderr] | ----^^^^^^^^^^^^^-------------------------------- help: try: `let other = &mut instructions[index as usize];` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day23.rs:139:18 [INFO] [stderr] | [INFO] [stderr] 139 | register.get(&'a').unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `®ister[&'a']` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day23.rs:140:18 [INFO] [stderr] | [INFO] [stderr] 140 | register.get(&'b').unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `®ister[&'b']` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day23.rs:141:18 [INFO] [stderr] | [INFO] [stderr] 141 | register.get(&'c').unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `®ister[&'c']` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day23.rs:142:18 [INFO] [stderr] | [INFO] [stderr] 142 | register.get(&'d').unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `®ister[&'d']` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day23.rs:149:28 [INFO] [stderr] | [INFO] [stderr] 149 | println!("Answer: {}", register.get(&'a').unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `®ister[&'a']` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: the variable `y` is used as a loop counter. Consider using `for (y, item) in reader.lines().enumerate()` or similar iterators [INFO] [stderr] --> src/solutions/day24.rs:32:17 [INFO] [stderr] | [INFO] [stderr] 32 | for line in reader.lines() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/solutions/day13.rs:59:32 [INFO] [stderr] | [INFO] [stderr] 59 | let current_dist = distances.get(¤t).unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*distances.get(¤t).unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day13.rs:59:32 [INFO] [stderr] | [INFO] [stderr] 59 | let current_dist = distances.get(¤t).unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&distances[¤t]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day13.rs:78:39 [INFO] [stderr] | [INFO] [stderr] 78 | println!("Shortest distance: {}", distances.get(&(31, 39)).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&distances[&(31, 39)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_counter_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: the `d @ _` pattern can be written as just `d` [INFO] [stderr] --> src/solutions/day24.rs:40:17 [INFO] [stderr] | [INFO] [stderr] 40 | d @ _ => { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day24.rs:59:27 [INFO] [stderr] | [INFO] [stderr] 59 | let a_coord = goals.get(&a).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&goals[&a]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day24.rs:60:27 [INFO] [stderr] | [INFO] [stderr] 60 | let b_coord = goals.get(&b).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&goals[&b]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `for` loop [INFO] [stderr] --> src/solutions/day14.rs:48:29 [INFO] [stderr] | [INFO] [stderr] 48 | while let Some(c) = char_iter.next() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `for c in char_iter { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_on_iterator)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/solutions/day14.rs:54:38 [INFO] [stderr] | [INFO] [stderr] 54 | char_to_ind.entry(c).or_insert(Vec::new()).push(n); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `p`. [INFO] [stderr] --> src/solutions/day24.rs:79:18 [INFO] [stderr] | [INFO] [stderr] 79 | for i in 0..p.len() { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/solutions/day14.rs:78:20 [INFO] [stderr] | [INFO] [stderr] 78 | prev = c.clone(); [INFO] [stderr] | ^^^^^^^^^ help: try removing the `clone` call: `c` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 79 | for in &p { [INFO] [stderr] | ^^^^^^ ^^ [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day24.rs:83:26 [INFO] [stderr] | [INFO] [stderr] 83 | path += *paths.get(&(p[i], prev)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&paths[&(p[i], prev)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/solutions/day24.rs:102:18 [INFO] [stderr] | [INFO] [stderr] 102 | for i in l..r+1 { [INFO] [stderr] | ^^^^^^ help: use: `l..=r` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/solutions/day16.rs:66:24 [INFO] [stderr] | [INFO] [stderr] 66 | if let None = char_iter.peek() { [INFO] [stderr] | _________________- ^^^^ [INFO] [stderr] 67 | | break; [INFO] [stderr] 68 | | } [INFO] [stderr] | |_________________- help: try this: `if char_iter.peek().is_none()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/solutions/day17.rs:78:16 [INFO] [stderr] | [INFO] [stderr] 78 | for dir in vec!["U", "D", "L", "R"] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&["U", "D", "L", "R"]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_vec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/solutions/day25.rs:28:51 [INFO] [stderr] | [INFO] [stderr] 28 | fn execute_instructions(input: i32, instructions: &Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: change this to: `&[Instruction]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day25.rs:53:32 [INFO] [stderr] | [INFO] [stderr] 53 | new_val = *register.get(&other_reg).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `®ister[&other_reg]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day25.rs:80:29 [INFO] [stderr] | [INFO] [stderr] 80 | flag = *register.get(&other_reg).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `®ister[&other_reg]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day25.rs:87:31 [INFO] [stderr] | [INFO] [stderr] 87 | offset = *register.get(&other_reg).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `®ister[&other_reg]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day25.rs:103:28 [INFO] [stderr] | [INFO] [stderr] 103 | val = *register.get(&other_reg).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `®ister[&other_reg]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/solutions/day17.rs:81:16 [INFO] [stderr] | [INFO] [stderr] 81 | if let Some(_) = find_room(&new_path) { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 82 | | if door_is_open(path, dir) { [INFO] [stderr] 83 | | result.push(new_path); [INFO] [stderr] 84 | | } [INFO] [stderr] 85 | | } [INFO] [stderr] | |_________- help: try this: `if find_room(&new_path).is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: the `d @ _` pattern can be written as just `d` [INFO] [stderr] --> src/solutions/mod.rs:54:9 [INFO] [stderr] | [INFO] [stderr] 54 | d @ _ => println!("Day {} is not yet implemented", d), [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/solutions/day18.rs:35:18 [INFO] [stderr] | [INFO] [stderr] 35 | for i in 1..size+1 { [INFO] [stderr] | ^^^^^^^^^ help: use: `1..=size` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] error: this `if` has identical blocks [INFO] [stderr] --> src/solutions/day18.rs:38:72 [INFO] [stderr] | [INFO] [stderr] 38 | } else if chars[i+1] == chars[i] && chars[i] != chars[i-1] { [INFO] [stderr] | ________________________________________________________________________^ [INFO] [stderr] 39 | | new_row.push('^'); [INFO] [stderr] 40 | | } else { [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/solutions/day18.rs:36:65 [INFO] [stderr] | [INFO] [stderr] 36 | if chars[i-1] == chars[i] && chars[i] != chars[i+1] { [INFO] [stderr] | _________________________________________________________________^ [INFO] [stderr] 37 | | new_row.push('^'); [INFO] [stderr] 38 | | } else if chars[i+1] == chars[i] && chars[i] != chars[i-1] { [INFO] [stderr] | |_____________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/solutions/day19.rs:31:14 [INFO] [stderr] | [INFO] [stderr] 31 | for i in 1..num_elves+1 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use: `1..=num_elves` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] warning: this looks like you are swapping elements of `chars` manually [INFO] [stderr] --> src/solutions/day21.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | / let temp = chars[x]; [INFO] [stderr] 45 | | chars[x] = chars[y]; [INFO] [stderr] 46 | | chars[y] = temp; [INFO] [stderr] | |___________________________^ help: try: `chars.swap(x, y)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_swap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stderr] [INFO] [stderr] warning: this looks like you are swapping elements of `chars` manually [INFO] [stderr] --> src/solutions/day21.rs:56:13 [INFO] [stderr] | [INFO] [stderr] 56 | / let temp = chars[ix]; [INFO] [stderr] 57 | | chars[ix] = chars[iy]; [INFO] [stderr] 58 | | chars[iy] = temp; [INFO] [stderr] | |____________________________^ help: try: `chars.swap(ix, iy)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stderr] [INFO] [stderr] error: Could not compile `adventofcode2016`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: the loop variable `i` is only used to index `chars`. [INFO] [stderr] --> src/solutions/day21.rs:67:22 [INFO] [stderr] | [INFO] [stderr] 67 | for i in x..y+1 { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 67 | for in chars.iter().take(y+1).skip(x) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/solutions/day21.rs:67:22 [INFO] [stderr] | [INFO] [stderr] 67 | for i in x..y+1 { [INFO] [stderr] | ^^^^^^ help: use: `x..=y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `chars`. [INFO] [stderr] --> src/solutions/day21.rs:72:22 [INFO] [stderr] | [INFO] [stderr] 72 | for i in x..y+1 { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 72 | for in chars.iter_mut().take(y+1).skip(x) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/solutions/day21.rs:72:22 [INFO] [stderr] | [INFO] [stderr] 72 | for i in x..y+1 { [INFO] [stderr] | ^^^^^^ help: use: `x..=y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: this looks like you are swapping elements of `chars` manually [INFO] [stderr] --> src/solutions/day21.rs:155:13 [INFO] [stderr] | [INFO] [stderr] 155 | / let temp = chars[x]; [INFO] [stderr] 156 | | chars[x] = chars[y]; [INFO] [stderr] 157 | | chars[y] = temp; [INFO] [stderr] | |___________________________^ help: try: `chars.swap(x, y)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stderr] [INFO] [stderr] warning: this looks like you are swapping elements of `chars` manually [INFO] [stderr] --> src/solutions/day21.rs:167:13 [INFO] [stderr] | [INFO] [stderr] 167 | / let temp = chars[ix]; [INFO] [stderr] 168 | | chars[ix] = chars[iy]; [INFO] [stderr] 169 | | chars[iy] = temp; [INFO] [stderr] | |____________________________^ help: try: `chars.swap(ix, iy)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `chars`. [INFO] [stderr] --> src/solutions/day21.rs:178:22 [INFO] [stderr] | [INFO] [stderr] 178 | for i in x..y+1 { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 178 | for in chars.iter().take(y+1).skip(x) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/solutions/day21.rs:178:22 [INFO] [stderr] | [INFO] [stderr] 178 | for i in x..y+1 { [INFO] [stderr] | ^^^^^^ help: use: `x..=y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `chars`. [INFO] [stderr] --> src/solutions/day21.rs:183:22 [INFO] [stderr] | [INFO] [stderr] 183 | for i in x..y+1 { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 183 | for in chars.iter_mut().take(y+1).skip(x) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/solutions/day21.rs:183:22 [INFO] [stderr] | [INFO] [stderr] 183 | for i in x..y+1 { [INFO] [stderr] | ^^^^^^ help: use: `x..=y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/solutions/day21.rs:230:17 [INFO] [stderr] | [INFO] [stderr] 230 | / let mut extra_step = 0; [INFO] [stderr] 231 | | if ix >= 4 { [INFO] [stderr] 232 | | extra_step = 1; [INFO] [stderr] 233 | | } [INFO] [stderr] | |_________________^ help: it is more idiomatic to write: `let extra_step = if ix >= 4 { 1 } else { 0 };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day22.rs:52:26 [INFO] [stderr] | [INFO] [stderr] 52 | let node_a = nodes.get(a).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `&nodes[a]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day22.rs:53:26 [INFO] [stderr] | [INFO] [stderr] 53 | let node_b = nodes.get(b).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `&nodes[b]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day22.rs:67:24 [INFO] [stderr] | [INFO] [stderr] 67 | let node = nodes.get(&(x, y)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&nodes[&(x, y)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day23.rs:65:32 [INFO] [stderr] | [INFO] [stderr] 65 | new_val = *register.get(&other_reg).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `®ister[&other_reg]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day23.rs:92:29 [INFO] [stderr] | [INFO] [stderr] 92 | flag = *register.get(&other_reg).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `®ister[&other_reg]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day23.rs:99:31 [INFO] [stderr] | [INFO] [stderr] 99 | offset = *register.get(&other_reg).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `®ister[&other_reg]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day23.rs:115:31 [INFO] [stderr] | [INFO] [stderr] 115 | offset = *register.get(&other_reg).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `®ister[&other_reg]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/solutions/day23.rs:119:25 [INFO] [stderr] | [INFO] [stderr] 119 | let ref mut other = instructions[index as usize]; [INFO] [stderr] | ----^^^^^^^^^^^^^-------------------------------- help: try: `let other = &mut instructions[index as usize];` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day23.rs:139:18 [INFO] [stderr] | [INFO] [stderr] 139 | register.get(&'a').unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `®ister[&'a']` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day23.rs:140:18 [INFO] [stderr] | [INFO] [stderr] 140 | register.get(&'b').unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `®ister[&'b']` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day23.rs:141:18 [INFO] [stderr] | [INFO] [stderr] 141 | register.get(&'c').unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `®ister[&'c']` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day23.rs:142:18 [INFO] [stderr] | [INFO] [stderr] 142 | register.get(&'d').unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `®ister[&'d']` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day23.rs:149:28 [INFO] [stderr] | [INFO] [stderr] 149 | println!("Answer: {}", register.get(&'a').unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `®ister[&'a']` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: the variable `y` is used as a loop counter. Consider using `for (y, item) in reader.lines().enumerate()` or similar iterators [INFO] [stderr] --> src/solutions/day24.rs:32:17 [INFO] [stderr] | [INFO] [stderr] 32 | for line in reader.lines() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_counter_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: the `d @ _` pattern can be written as just `d` [INFO] [stderr] --> src/solutions/day24.rs:40:17 [INFO] [stderr] | [INFO] [stderr] 40 | d @ _ => { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day24.rs:59:27 [INFO] [stderr] | [INFO] [stderr] 59 | let a_coord = goals.get(&a).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&goals[&a]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day24.rs:60:27 [INFO] [stderr] | [INFO] [stderr] 60 | let b_coord = goals.get(&b).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&goals[&b]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `p`. [INFO] [stderr] --> src/solutions/day24.rs:79:18 [INFO] [stderr] | [INFO] [stderr] 79 | for i in 0..p.len() { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 79 | for in &p { [INFO] [stderr] | ^^^^^^ ^^ [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day24.rs:83:26 [INFO] [stderr] | [INFO] [stderr] 83 | path += *paths.get(&(p[i], prev)).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&paths[&(p[i], prev)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/solutions/day24.rs:102:18 [INFO] [stderr] | [INFO] [stderr] 102 | for i in l..r+1 { [INFO] [stderr] | ^^^^^^ help: use: `l..=r` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/solutions/day25.rs:28:51 [INFO] [stderr] | [INFO] [stderr] 28 | fn execute_instructions(input: i32, instructions: &Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: change this to: `&[Instruction]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day25.rs:53:32 [INFO] [stderr] | [INFO] [stderr] 53 | new_val = *register.get(&other_reg).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `®ister[&other_reg]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day25.rs:80:29 [INFO] [stderr] | [INFO] [stderr] 80 | flag = *register.get(&other_reg).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `®ister[&other_reg]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day25.rs:87:31 [INFO] [stderr] | [INFO] [stderr] 87 | offset = *register.get(&other_reg).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `®ister[&other_reg]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day25.rs:103:28 [INFO] [stderr] | [INFO] [stderr] 103 | val = *register.get(&other_reg).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `®ister[&other_reg]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: the `d @ _` pattern can be written as just `d` [INFO] [stderr] --> src/solutions/mod.rs:54:9 [INFO] [stderr] | [INFO] [stderr] 54 | d @ _ => println!("Day {} is not yet implemented", d), [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `adventofcode2016`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "a5c2a358fc8f5df071e454c7dbc9502f0445b1ce036c5626613fa9c2d77d680c"` [INFO] running `"docker" "rm" "-f" "a5c2a358fc8f5df071e454c7dbc9502f0445b1ce036c5626613fa9c2d77d680c"` [INFO] [stdout] a5c2a358fc8f5df071e454c7dbc9502f0445b1ce036c5626613fa9c2d77d680c