[INFO] updating cached repository migerh/aoc2018-rs [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/migerh/aoc2018-rs [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/migerh/aoc2018-rs" "work/ex/clippy-test-run/sources/stable/gh/migerh/aoc2018-rs"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/migerh/aoc2018-rs'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/migerh/aoc2018-rs" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/migerh/aoc2018-rs"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/migerh/aoc2018-rs'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 33e7360aa13a6eafd42ab2c6923ec194541c90e8 [INFO] sha for GitHub repo migerh/aoc2018-rs: 33e7360aa13a6eafd42ab2c6923ec194541c90e8 [INFO] validating manifest of migerh/aoc2018-rs 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 migerh/aoc2018-rs 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 migerh/aoc2018-rs [INFO] finished frobbing migerh/aoc2018-rs [INFO] frobbed toml for migerh/aoc2018-rs written to work/ex/clippy-test-run/sources/stable/gh/migerh/aoc2018-rs/Cargo.toml [INFO] started frobbing migerh/aoc2018-rs [INFO] finished frobbing migerh/aoc2018-rs [INFO] frobbed toml for migerh/aoc2018-rs written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/migerh/aoc2018-rs/Cargo.toml [INFO] crate migerh/aoc2018-rs 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 migerh/aoc2018-rs against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-1/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/migerh/aoc2018-rs:/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] bc84619b57908caca6aeb1f5d0163b333d6eadd4f01dda9e980d0cef7fe817df [INFO] running `"docker" "start" "-a" "bc84619b57908caca6aeb1f5d0163b333d6eadd4f01dda9e980d0cef7fe817df"` [INFO] [stderr] Checking y2018 v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/day3/mod.rs:32:9 [INFO] [stderr] | [INFO] [stderr] 32 | let h = parse(&cap[5]); [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/day10/mod.rs:88:5 [INFO] [stderr] | [INFO] [stderr] 88 | 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/day15/cave.rs:63:5 [INFO] [stderr] | [INFO] [stderr] 63 | 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/day3/mod.rs:32:9 [INFO] [stderr] | [INFO] [stderr] 32 | let h = parse(&cap[5]); [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/day10/mod.rs:88:5 [INFO] [stderr] | [INFO] [stderr] 88 | 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/day15/cave.rs:63:5 [INFO] [stderr] | [INFO] [stderr] 63 | 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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/day3/mod.rs:50:3 [INFO] [stderr] | [INFO] [stderr] 50 | boxes [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/day3/mod.rs:40:15 [INFO] [stderr] | [INFO] [stderr] 40 | let boxes = input [INFO] [stderr] | _______________^ [INFO] [stderr] 41 | | .split("\n") [INFO] [stderr] 42 | | .filter(|v| *v != "") [INFO] [stderr] 43 | | .map(|v| Box::from_str(v)) [INFO] [stderr] ... | [INFO] [stderr] 47 | | }) [INFO] [stderr] 48 | | .collect::>(); [INFO] [stderr] | |________________________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/day6/mod.rs:34:30 [INFO] [stderr] | [INFO] [stderr] 34 | let mut closest_distance = 1000000; [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/day7/common.rs:38:3 [INFO] [stderr] | [INFO] [stderr] 38 | rules [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/day7/common.rs:33:15 [INFO] [stderr] | [INFO] [stderr] 33 | let rules = preprocess_input(input) [INFO] [stderr] | _______________^ [INFO] [stderr] 34 | | .into_iter() [INFO] [stderr] 35 | | .map(|v| parse_edge(v)) [INFO] [stderr] 36 | | .collect::, _>>(); [INFO] [stderr] | |______________________________________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/day9/mod.rs:71:21 [INFO] [stderr] | [INFO] [stderr] 71 | let last_marble = 7170000; [INFO] [stderr] | ^^^^^^^ help: consider: `7_170_000` [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/day10/mod.rs:47:18 [INFO] [stderr] | [INFO] [stderr] 47 | let mut min = (100000, 100000); [INFO] [stderr] | ^^^^^^ help: consider: `100_000` [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/day10/mod.rs:47:26 [INFO] [stderr] | [INFO] [stderr] 47 | let mut min = (100000, 100000); [INFO] [stderr] | ^^^^^^ help: consider: `100_000` [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/day10/mod.rs:104:31 [INFO] [stderr] | [INFO] [stderr] 104 | let mut previous_bb_size = (1000000, 1000000); [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [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/day10/mod.rs:104:40 [INFO] [stderr] | [INFO] [stderr] 104 | let mut previous_bb_size = (1000000, 1000000); [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [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/day10/mod.rs:106:15 [INFO] [stderr] | [INFO] [stderr] 106 | for i in 0..100000 { [INFO] [stderr] | ^^^^^^ help: consider: `100_000` [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/day12/mod.rs:10:3 [INFO] [stderr] | [INFO] [stderr] 10 | plants [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/day12/mod.rs:6:16 [INFO] [stderr] | [INFO] [stderr] 6 | let plants = initial_state [INFO] [stderr] | ________________^ [INFO] [stderr] 7 | | .chars() [INFO] [stderr] 8 | | .collect(); [INFO] [stderr] | |______________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/day14/mod.rs:74:35 [INFO] [stderr] | [INFO] [stderr] 74 | let solution_1 = concat(&scores[209231..209241]).parse::()?; [INFO] [stderr] | ^^^^^^ help: consider: `209_231` [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/day14/mod.rs:74:43 [INFO] [stderr] | [INFO] [stderr] 74 | let solution_1 = concat(&scores[209231..209241]).parse::()?; [INFO] [stderr] | ^^^^^^ help: consider: `209_241` [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/day3/mod.rs:50:3 [INFO] [stderr] | [INFO] [stderr] 50 | boxes [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/day3/mod.rs:40:15 [INFO] [stderr] | [INFO] [stderr] 40 | let boxes = input [INFO] [stderr] | _______________^ [INFO] [stderr] 41 | | .split("\n") [INFO] [stderr] 42 | | .filter(|v| *v != "") [INFO] [stderr] 43 | | .map(|v| Box::from_str(v)) [INFO] [stderr] ... | [INFO] [stderr] 47 | | }) [INFO] [stderr] 48 | | .collect::>(); [INFO] [stderr] | |________________________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/day4/mod.rs:195:37 [INFO] [stderr] | [INFO] [stderr] 195 | assert_eq!(problem1().unwrap(), 103720); [INFO] [stderr] | ^^^^^^ help: consider: `103_720` [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: long literal lacking separators [INFO] [stderr] --> src/day4/mod.rs:200:37 [INFO] [stderr] | [INFO] [stderr] 200 | assert_eq!(problem2().unwrap(), 110913); [INFO] [stderr] | ^^^^^^ help: consider: `110_913` [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/day6/mod.rs:34:30 [INFO] [stderr] | [INFO] [stderr] 34 | let mut closest_distance = 1000000; [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/day7/common.rs:38:3 [INFO] [stderr] | [INFO] [stderr] 38 | rules [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/day7/common.rs:33:15 [INFO] [stderr] | [INFO] [stderr] 33 | let rules = preprocess_input(input) [INFO] [stderr] | _______________^ [INFO] [stderr] 34 | | .into_iter() [INFO] [stderr] 35 | | .map(|v| parse_edge(v)) [INFO] [stderr] 36 | | .collect::, _>>(); [INFO] [stderr] | |______________________________________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/day9/mod.rs:71:21 [INFO] [stderr] | [INFO] [stderr] 71 | let last_marble = 7170000; [INFO] [stderr] | ^^^^^^^ help: consider: `7_170_000` [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/day9/mod.rs:95:41 [INFO] [stderr] | [INFO] [stderr] 95 | assert_eq!(play(13, 7999).unwrap(), 146373); [INFO] [stderr] | ^^^^^^ help: consider: `146_373` [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/day9/mod.rs:115:37 [INFO] [stderr] | [INFO] [stderr] 115 | assert_eq!(problem1().unwrap(), 428690); [INFO] [stderr] | ^^^^^^ help: consider: `428_690` [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/day9/mod.rs:120:37 [INFO] [stderr] | [INFO] [stderr] 120 | assert_eq!(problem2().unwrap(), 3628143500); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `3_628_143_500` [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/day10/mod.rs:47:18 [INFO] [stderr] | [INFO] [stderr] 47 | let mut min = (100000, 100000); [INFO] [stderr] | ^^^^^^ help: consider: `100_000` [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/day10/mod.rs:47:26 [INFO] [stderr] | [INFO] [stderr] 47 | let mut min = (100000, 100000); [INFO] [stderr] | ^^^^^^ help: consider: `100_000` [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/day10/mod.rs:104:31 [INFO] [stderr] | [INFO] [stderr] 104 | let mut previous_bb_size = (1000000, 1000000); [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [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/day10/mod.rs:104:40 [INFO] [stderr] | [INFO] [stderr] 104 | let mut previous_bb_size = (1000000, 1000000); [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [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/day10/mod.rs:106:15 [INFO] [stderr] | [INFO] [stderr] 106 | for i in 0..100000 { [INFO] [stderr] | ^^^^^^ help: consider: `100_000` [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/day12/mod.rs:10:3 [INFO] [stderr] | [INFO] [stderr] 10 | plants [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/day12/mod.rs:6:16 [INFO] [stderr] | [INFO] [stderr] 6 | let plants = initial_state [INFO] [stderr] | ________________^ [INFO] [stderr] 7 | | .chars() [INFO] [stderr] 8 | | .collect(); [INFO] [stderr] | |______________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/day12/mod.rs:155:28 [INFO] [stderr] | [INFO] [stderr] 155 | assert_eq!(problem2(), 3100000000293); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider: `3_100_000_000_293` [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/day14/mod.rs:74:35 [INFO] [stderr] | [INFO] [stderr] 74 | let solution_1 = concat(&scores[209231..209241]).parse::()?; [INFO] [stderr] | ^^^^^^ help: consider: `209_231` [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/day14/mod.rs:74:43 [INFO] [stderr] | [INFO] [stderr] 74 | let solution_1 = concat(&scores[209231..209241]).parse::()?; [INFO] [stderr] | ^^^^^^ help: consider: `209_241` [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/day14/mod.rs:87:38 [INFO] [stderr] | [INFO] [stderr] 87 | assert_eq!(problems().unwrap(), (6126491027, 20191616)); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `6_126_491_027` [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/day14/mod.rs:87:50 [INFO] [stderr] | [INFO] [stderr] 87 | assert_eq!(problems().unwrap(), (6126491027, 20191616)); [INFO] [stderr] | ^^^^^^^^ help: consider: `20_191_616` [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: function is never used: `print_state` [INFO] [stderr] --> src/day15/cave.rs:45:1 [INFO] [stderr] | [INFO] [stderr] 45 | fn print_state(state: &Vec>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `move_units` [INFO] [stderr] --> src/day15/cave.rs:80:3 [INFO] [stderr] | [INFO] [stderr] 80 | pub fn move_units(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `attack` [INFO] [stderr] --> src/day15/cave.rs:99:3 [INFO] [stderr] | [INFO] [stderr] 99 | pub fn attack(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `print_with_units_burned_in` [INFO] [stderr] --> src/day15/cave.rs:163:3 [INFO] [stderr] | [INFO] [stderr] 163 | pub fn print_with_units_burned_in(&self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/day1/mod.rs:6:12 [INFO] [stderr] | [INFO] [stderr] 6 | .split("\n") [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/day1/mod.rs:17:12 [INFO] [stderr] | [INFO] [stderr] 17 | .split("\n") [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_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/day2/mod.rs:16:27 [INFO] [stderr] | [INFO] [stderr] 16 | fn find_similar<'a>(list: &Vec<&'a str>, s: &'a str) -> Option<&'a str> { [INFO] [stderr] | ^^^^^^^^^^^^^ help: change this to: `&[&'a str]` [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: single-character string constant used as pattern [INFO] [stderr] --> src/day2/mod.rs:29:12 [INFO] [stderr] | [INFO] [stderr] 29 | .split("\n") [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/day2/mod.rs:34:5 [INFO] [stderr] | [INFO] [stderr] 34 | / match find_similar(&serials, serial) { [INFO] [stderr] 35 | | Some(v) => println!("{} is close to {}", serial, v), [INFO] [stderr] 36 | | None => (), [INFO] [stderr] 37 | | } [INFO] [stderr] | |_____^ help: try this: `if let Some(v) = find_similar(&serials, serial) { println!("{} is close to {}", serial, v) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/day2/mod.rs:78:12 [INFO] [stderr] | [INFO] [stderr] 78 | .split("\n") [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/day3/mod.rs:41:12 [INFO] [stderr] | [INFO] [stderr] 41 | .split("\n") [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/day3/mod.rs:65:12 [INFO] [stderr] | [INFO] [stderr] 65 | }).or_insert(vec![b.id]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(|| vec![b.id])` [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: this boolean expression can be simplified [INFO] [stderr] --> src/day3/mod.rs:96:30 [INFO] [stderr] | [INFO] [stderr] 96 | .and_modify(|v| *v = *v && true) [INFO] [stderr] | ^^^^^^^^^^ help: try: `*v` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/day3/mod.rs:111:8 [INFO] [stderr] | [INFO] [stderr] 111 | if d.1 == true { [INFO] [stderr] | ^^^^^^^^^^^ help: try simplifying it as shown: `d.1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/day4/mod.rs:34:52 [INFO] [stderr] | [INFO] [stderr] 34 | static ref REFallsAsleep: Regex = Regex::new(r"falls asleep").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivial_regex)] on by default [INFO] [stderr] = help: consider using `str::contains` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/day4/mod.rs:35:48 [INFO] [stderr] | [INFO] [stderr] 35 | static ref REWakesUp: Regex = Regex::new(r"wakes up").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using `str::contains` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [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/day4/mod.rs:106:35 [INFO] [stderr] | [INFO] [stderr] 106 | fn get_sleeping_patterns(records: &Vec) -> BTreeMap<(u32, u32), u32> { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[Record]` [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: manual implementation of an assign operation [INFO] [stderr] --> src/day4/mod.rs:137:33 [INFO] [stderr] | [INFO] [stderr] 137 | .and_modify(|v: &mut u32| *v = *v + *value) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `*v += *value` [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: single-character string constant used as pattern [INFO] [stderr] --> src/day6/mod.rs:10:27 [INFO] [stderr] | [INFO] [stderr] 10 | let mut split = s.split(","); [INFO] [stderr] | ^^^ help: try using a char instead: `','` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_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/day6/mod.rs:32:44 [INFO] [stderr] | [INFO] [stderr] 32 | fn find_closest_point(q: Location, points: &Vec) -> (Option, i32) { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[Coords]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day6/mod.rs:49:40 [INFO] [stderr] | [INFO] [stderr] 49 | fn calculate_closest_point_map(coords: &Vec, start: Location, end: Location) -> BTreeMap, i32)> { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[Coords]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day7/common.rs:41:25 [INFO] [stderr] | [INFO] [stderr] 41 | pub fn find_root(rules: &Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Rule]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day7/common.rs:55:37 [INFO] [stderr] | [INFO] [stderr] 55 | pub fn all_dependencies_done(rules: &Vec, task: char, done: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Rule]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day7/common.rs:55:67 [INFO] [stderr] | [INFO] [stderr] 55 | pub fn all_dependencies_done(rules: &Vec, task: char, done: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[char]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day7/problem1.rs:4:27 [INFO] [stderr] | [INFO] [stderr] 4 | fn find_next_steps(rules: &Vec, task: char, done: &Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Rule]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day7/problem1.rs:4:57 [INFO] [stderr] | [INFO] [stderr] 4 | fn find_next_steps(rules: &Vec, task: char, done: &Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[char]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day7/problem1.rs:16:29 [INFO] [stderr] | [INFO] [stderr] 16 | fn find_next_letters(rules: &Vec, letters: &mut Vec, done: &mut Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Rule]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day7/problem1.rs:31:24 [INFO] [stderr] | [INFO] [stderr] 31 | pub fn traverse(rules: &Vec, letters: &mut Vec, already_visited: &mut Vec) { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Rule]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day7/problem2.rs:10:27 [INFO] [stderr] | [INFO] [stderr] 10 | fn find_open_tasks(rules: &Vec, done: &Vec, in_work: &Vec) -> BTreeSet { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Rule]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day7/problem2.rs:10:45 [INFO] [stderr] | [INFO] [stderr] 10 | fn find_open_tasks(rules: &Vec, done: &Vec, in_work: &Vec) -> BTreeSet { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[char]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day7/problem2.rs:10:66 [INFO] [stderr] | [INFO] [stderr] 10 | fn find_open_tasks(rules: &Vec, done: &Vec, in_work: &Vec) -> BTreeSet { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[char]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day7/problem2.rs:31:34 [INFO] [stderr] | [INFO] [stderr] 31 | pub fn all_workers_idle(workers: &Vec>) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[Option]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day7/problem2.rs:35:30 [INFO] [stderr] | [INFO] [stderr] 35 | pub fn fetch_new_task(rules: &Vec, done: &Vec, in_work: &mut Vec) -> Option { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Rule]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day7/problem2.rs:35:48 [INFO] [stderr] | [INFO] [stderr] 35 | pub fn fetch_new_task(rules: &Vec, done: &Vec, in_work: &mut Vec) -> Option { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[char]` [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: an inclusive range would be more readable [INFO] [stderr] --> src/day9/mod.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | for marble in 1..(last_marble+1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: use: `1..=last_marble` [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] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day10/mod.rs:45:25 [INFO] [stderr] | [INFO] [stderr] 45 | fn bounding_box(lights: &Vec) -> ((i32, i32), (i32, i32)) { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[Light]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day10/mod.rs:69:25 [INFO] [stderr] | [INFO] [stderr] 69 | fn print_lights(lights: &Vec, size: (i32, i32), min: (i32, i32)) { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[Light]` [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: an inclusive range would be more readable [INFO] [stderr] --> src/day10/mod.rs:72:13 [INFO] [stderr] | [INFO] [stderr] 72 | for _i in 0..(size.1 + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: use: `0..=size.1` [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/day10/mod.rs:92:30 [INFO] [stderr] | [INFO] [stderr] 92 | fn bounding_box_size(lights: &Vec) -> (i32, i32) { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[Light]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day11/mod.rs:36:29 [INFO] [stderr] | [INFO] [stderr] 36 | fn power_level_square(grid: &Vec, top_left: (usize, usize)) -> i32 { [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[i32]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day11/mod.rs:71:21 [INFO] [stderr] | [INFO] [stderr] 71 | fn get_column(grid: &Vec, top_left: (usize, usize), size: usize) -> i32 { [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[i32]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day11/mod.rs:83:18 [INFO] [stderr] | [INFO] [stderr] 83 | fn get_row(grid: &Vec, top_left: (usize, usize), size: usize) -> i32 { [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[i32]` [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: this creates an owned instance just for comparison [INFO] [stderr] --> src/day12/mod.rs:19:21 [INFO] [stderr] | [INFO] [stderr] 19 | if extract == key.to_string() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `*key` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_owned)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [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/day12/mod.rs:29:16 [INFO] [stderr] | [INFO] [stderr] 29 | fn checksum(v: &Vec) -> usize { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[char]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day13/mod.rs:53:30 [INFO] [stderr] | [INFO] [stderr] 53 | fn drive(cart: Cart, tracks: &Vec>) -> Cart { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day13/mod.rs:81:23 [INFO] [stderr] | [INFO] [stderr] 81 | fn find_carts(tracks: &Vec>) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day13/mod.rs:95:26 [INFO] [stderr] | [INFO] [stderr] 95 | fn find_collision(carts: &Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Cart]` [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: use of `or_insert` followed by a function call [INFO] [stderr] --> src/day13/mod.rs:106:8 [INFO] [stderr] | [INFO] [stderr] 106 | .or_insert(vec![index]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(|| vec![index])` [INFO] [stderr] | [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: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/day13/mod.rs:124:33 [INFO] [stderr] | [INFO] [stderr] 124 | let carts_copy: Vec = carts [INFO] [stderr] | _________________________________^ [INFO] [stderr] 125 | | .iter() [INFO] [stderr] 126 | | .map(|v| v.clone()) [INFO] [stderr] | |_________________________^ [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] help: Consider calling the dedicated `cloned` method [INFO] [stderr] | [INFO] [stderr] 124 | let carts_copy: Vec = carts [INFO] [stderr] 125 | .iter().cloned() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/day13/mod.rs:138:16 [INFO] [stderr] | [INFO] [stderr] 138 | if collided.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!collided.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [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/day13/mod.rs:152:23 [INFO] [stderr] | [INFO] [stderr] 152 | fn print_carts(carts: &Vec) { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Cart]` [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: length comparison to zero [INFO] [stderr] --> src/day13/mod.rs:196:8 [INFO] [stderr] | [INFO] [stderr] 196 | if unbroken_carts.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `unbroken_carts.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [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/day15/cave.rs:35:70 [INFO] [stderr] | [INFO] [stderr] 35 | fn print_units_onto_board(printed_board: &mut Vec>, units: &Vec) { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Unit]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day15/cave.rs:45:23 [INFO] [stderr] | [INFO] [stderr] 45 | fn print_state(state: &Vec>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day15/cave.rs:52:34 [INFO] [stderr] | [INFO] [stderr] 52 | fn print_state_with_stats(state: &Vec>, units: &Vec) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day15/cave.rs:52:58 [INFO] [stderr] | [INFO] [stderr] 52 | fn print_state_with_stats(state: &Vec>, units: &Vec) { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Unit]` [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: you seem to want to iterate on a map's keys [INFO] [stderr] --> src/day15/unit.rs:50:23 [INFO] [stderr] | [INFO] [stderr] 50 | for (pos, _) in &result { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::for_kv_map)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 50 | for pos in result.keys() { [INFO] [stderr] | ^^^ ^^^^^^^^^^^^^ [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/day15/unit.rs:113:47 [INFO] [stderr] | [INFO] [stderr] 113 | fn find_closest_positions(target_positions: &Vec, distance_map: &BTreeMap) -> (Vec, u32) { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Position]` [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: use of `or_insert` followed by a function call [INFO] [stderr] --> src/day15/unit.rs:125:10 [INFO] [stderr] | [INFO] [stderr] 125 | .or_insert(vec![pos.clone()]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(|| vec![pos.clone()])` [INFO] [stderr] | [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/day15/unit.rs:125:25 [INFO] [stderr] | [INFO] [stderr] 125 | .or_insert(vec![pos.clone()]); [INFO] [stderr] | ^^^^^^^^^^^ help: try dereferencing it: `*pos` [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: use of `or_insert` followed by a function call [INFO] [stderr] --> src/day15/unit.rs:216:10 [INFO] [stderr] | [INFO] [stderr] 216 | .or_insert(vec![entry]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(|| vec![entry])` [INFO] [stderr] | [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: function is never used: `print_state` [INFO] [stderr] --> src/day15/cave.rs:45:1 [INFO] [stderr] | [INFO] [stderr] 45 | fn print_state(state: &Vec>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `move_units` [INFO] [stderr] --> src/day15/cave.rs:80:3 [INFO] [stderr] | [INFO] [stderr] 80 | pub fn move_units(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `attack` [INFO] [stderr] --> src/day15/cave.rs:99:3 [INFO] [stderr] | [INFO] [stderr] 99 | pub fn attack(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `print_with_units_burned_in` [INFO] [stderr] --> src/day15/cave.rs:163:3 [INFO] [stderr] | [INFO] [stderr] 163 | pub fn print_with_units_burned_in(&self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/day1/mod.rs:6:12 [INFO] [stderr] | [INFO] [stderr] 6 | .split("\n") [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/day16/ops.rs:6:20 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn op_map() -> BTreeMap<&'static str, &'static Fn(State, i32, i32, i32) -> Option> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/day1/mod.rs:17:12 [INFO] [stderr] | [INFO] [stderr] 17 | .split("\n") [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_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/day2/mod.rs:16:27 [INFO] [stderr] | [INFO] [stderr] 16 | fn find_similar<'a>(list: &Vec<&'a str>, s: &'a str) -> Option<&'a str> { [INFO] [stderr] | ^^^^^^^^^^^^^ help: change this to: `&[&'a str]` [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: single-character string constant used as pattern [INFO] [stderr] --> src/day2/mod.rs:29:12 [INFO] [stderr] | [INFO] [stderr] 29 | .split("\n") [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/day2/mod.rs:34:5 [INFO] [stderr] | [INFO] [stderr] 34 | / match find_similar(&serials, serial) { [INFO] [stderr] 35 | | Some(v) => println!("{} is close to {}", serial, v), [INFO] [stderr] 36 | | None => (), [INFO] [stderr] 37 | | } [INFO] [stderr] | |_____^ help: try this: `if let Some(v) = find_similar(&serials, serial) { println!("{} is close to {}", serial, v) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/day2/mod.rs:78:12 [INFO] [stderr] | [INFO] [stderr] 78 | .split("\n") [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_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/day16/problems.rs:67:17 [INFO] [stderr] | [INFO] [stderr] 67 | fn intersect(a: &Vec<&'static str>, b: &Vec<&'static str>) -> Vec<&'static str> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[&'static str]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day16/problems.rs:67:40 [INFO] [stderr] | [INFO] [stderr] 67 | fn intersect(a: &Vec<&'static str>, b: &Vec<&'static str>) -> Vec<&'static str> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[&'static str]` [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: trivial regex [INFO] [stderr] --> src/day16/problems.rs:84:46 [INFO] [stderr] | [INFO] [stderr] 84 | static ref RE_before: Regex = Regex::new(r"Before:").unwrap(); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using `str::contains` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: the loop variable `k` is used to index `opcode_map` [INFO] [stderr] --> src/day16/problems.rs:138:16 [INFO] [stderr] | [INFO] [stderr] 138 | for k in 0..opcode_map.len() { [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] 138 | for (k, ) in opcode_map.iter_mut().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/utils/mod.rs:19:12 [INFO] [stderr] | [INFO] [stderr] 19 | .split("\n") [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/day3/mod.rs:41:12 [INFO] [stderr] | [INFO] [stderr] 41 | .split("\n") [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:77:3 [INFO] [stderr] | [INFO] [stderr] 77 | / match run() { [INFO] [stderr] 78 | | Err(err) => println!("Error occurred: {}", err), [INFO] [stderr] 79 | | _ => {} [INFO] [stderr] 80 | | } [INFO] [stderr] | |___^ help: try this: `if let Err(err) = run() { println!("Error occurred: {}", err) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/day3/mod.rs:65:12 [INFO] [stderr] | [INFO] [stderr] 65 | }).or_insert(vec![b.id]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(|| vec![b.id])` [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: this boolean expression can be simplified [INFO] [stderr] --> src/day3/mod.rs:96:30 [INFO] [stderr] | [INFO] [stderr] 96 | .and_modify(|v| *v = *v && true) [INFO] [stderr] | ^^^^^^^^^^ help: try: `*v` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/day3/mod.rs:111:8 [INFO] [stderr] | [INFO] [stderr] 111 | if d.1 == true { [INFO] [stderr] | ^^^^^^^^^^^ help: try simplifying it as shown: `d.1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/day4/mod.rs:34:52 [INFO] [stderr] | [INFO] [stderr] 34 | static ref REFallsAsleep: Regex = Regex::new(r"falls asleep").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivial_regex)] on by default [INFO] [stderr] = help: consider using `str::contains` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/day4/mod.rs:35:48 [INFO] [stderr] | [INFO] [stderr] 35 | static ref REWakesUp: Regex = Regex::new(r"wakes up").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using `str::contains` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [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/day4/mod.rs:106:35 [INFO] [stderr] | [INFO] [stderr] 106 | fn get_sleeping_patterns(records: &Vec) -> BTreeMap<(u32, u32), u32> { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[Record]` [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: manual implementation of an assign operation [INFO] [stderr] --> src/day4/mod.rs:137:33 [INFO] [stderr] | [INFO] [stderr] 137 | .and_modify(|v: &mut u32| *v = *v + *value) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `*v += *value` [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: single-character string constant used as pattern [INFO] [stderr] --> src/day6/mod.rs:10:27 [INFO] [stderr] | [INFO] [stderr] 10 | let mut split = s.split(","); [INFO] [stderr] | ^^^ help: try using a char instead: `','` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_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/day6/mod.rs:32:44 [INFO] [stderr] | [INFO] [stderr] 32 | fn find_closest_point(q: Location, points: &Vec) -> (Option, i32) { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[Coords]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day6/mod.rs:49:40 [INFO] [stderr] | [INFO] [stderr] 49 | fn calculate_closest_point_map(coords: &Vec, start: Location, end: Location) -> BTreeMap, i32)> { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[Coords]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day7/common.rs:41:25 [INFO] [stderr] | [INFO] [stderr] 41 | pub fn find_root(rules: &Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Rule]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day7/common.rs:55:37 [INFO] [stderr] | [INFO] [stderr] 55 | pub fn all_dependencies_done(rules: &Vec, task: char, done: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Rule]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day7/common.rs:55:67 [INFO] [stderr] | [INFO] [stderr] 55 | pub fn all_dependencies_done(rules: &Vec, task: char, done: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[char]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day7/problem1.rs:4:27 [INFO] [stderr] | [INFO] [stderr] 4 | fn find_next_steps(rules: &Vec, task: char, done: &Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Rule]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day7/problem1.rs:4:57 [INFO] [stderr] | [INFO] [stderr] 4 | fn find_next_steps(rules: &Vec, task: char, done: &Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[char]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day7/problem1.rs:16:29 [INFO] [stderr] | [INFO] [stderr] 16 | fn find_next_letters(rules: &Vec, letters: &mut Vec, done: &mut Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Rule]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day7/problem1.rs:31:24 [INFO] [stderr] | [INFO] [stderr] 31 | pub fn traverse(rules: &Vec, letters: &mut Vec, already_visited: &mut Vec) { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Rule]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day7/problem2.rs:10:27 [INFO] [stderr] | [INFO] [stderr] 10 | fn find_open_tasks(rules: &Vec, done: &Vec, in_work: &Vec) -> BTreeSet { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Rule]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day7/problem2.rs:10:45 [INFO] [stderr] | [INFO] [stderr] 10 | fn find_open_tasks(rules: &Vec, done: &Vec, in_work: &Vec) -> BTreeSet { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[char]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day7/problem2.rs:10:66 [INFO] [stderr] | [INFO] [stderr] 10 | fn find_open_tasks(rules: &Vec, done: &Vec, in_work: &Vec) -> BTreeSet { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[char]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day7/problem2.rs:31:34 [INFO] [stderr] | [INFO] [stderr] 31 | pub fn all_workers_idle(workers: &Vec>) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[Option]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day7/problem2.rs:35:30 [INFO] [stderr] | [INFO] [stderr] 35 | pub fn fetch_new_task(rules: &Vec, done: &Vec, in_work: &mut Vec) -> Option { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Rule]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day7/problem2.rs:35:48 [INFO] [stderr] | [INFO] [stderr] 35 | pub fn fetch_new_task(rules: &Vec, done: &Vec, in_work: &mut Vec) -> Option { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[char]` [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: an inclusive range would be more readable [INFO] [stderr] --> src/day9/mod.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | for marble in 1..(last_marble+1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: use: `1..=last_marble` [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] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day10/mod.rs:45:25 [INFO] [stderr] | [INFO] [stderr] 45 | fn bounding_box(lights: &Vec) -> ((i32, i32), (i32, i32)) { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[Light]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day10/mod.rs:69:25 [INFO] [stderr] | [INFO] [stderr] 69 | fn print_lights(lights: &Vec, size: (i32, i32), min: (i32, i32)) { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[Light]` [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: an inclusive range would be more readable [INFO] [stderr] --> src/day10/mod.rs:72:13 [INFO] [stderr] | [INFO] [stderr] 72 | for _i in 0..(size.1 + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: use: `0..=size.1` [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/day10/mod.rs:92:30 [INFO] [stderr] | [INFO] [stderr] 92 | fn bounding_box_size(lights: &Vec) -> (i32, i32) { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[Light]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day11/mod.rs:36:29 [INFO] [stderr] | [INFO] [stderr] 36 | fn power_level_square(grid: &Vec, top_left: (usize, usize)) -> i32 { [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[i32]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day11/mod.rs:71:21 [INFO] [stderr] | [INFO] [stderr] 71 | fn get_column(grid: &Vec, top_left: (usize, usize), size: usize) -> i32 { [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[i32]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day11/mod.rs:83:18 [INFO] [stderr] | [INFO] [stderr] 83 | fn get_row(grid: &Vec, top_left: (usize, usize), size: usize) -> i32 { [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[i32]` [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: this creates an owned instance just for comparison [INFO] [stderr] --> src/day12/mod.rs:19:21 [INFO] [stderr] | [INFO] [stderr] 19 | if extract == key.to_string() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `*key` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_owned)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [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/day12/mod.rs:29:16 [INFO] [stderr] | [INFO] [stderr] 29 | fn checksum(v: &Vec) -> usize { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[char]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day13/mod.rs:53:30 [INFO] [stderr] | [INFO] [stderr] 53 | fn drive(cart: Cart, tracks: &Vec>) -> Cart { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day13/mod.rs:81:23 [INFO] [stderr] | [INFO] [stderr] 81 | fn find_carts(tracks: &Vec>) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day13/mod.rs:95:26 [INFO] [stderr] | [INFO] [stderr] 95 | fn find_collision(carts: &Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Cart]` [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: use of `or_insert` followed by a function call [INFO] [stderr] --> src/day13/mod.rs:106:8 [INFO] [stderr] | [INFO] [stderr] 106 | .or_insert(vec![index]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(|| vec![index])` [INFO] [stderr] | [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: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/day13/mod.rs:124:33 [INFO] [stderr] | [INFO] [stderr] 124 | let carts_copy: Vec = carts [INFO] [stderr] | _________________________________^ [INFO] [stderr] 125 | | .iter() [INFO] [stderr] 126 | | .map(|v| v.clone()) [INFO] [stderr] | |_________________________^ [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] help: Consider calling the dedicated `cloned` method [INFO] [stderr] | [INFO] [stderr] 124 | let carts_copy: Vec = carts [INFO] [stderr] 125 | .iter().cloned() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/day13/mod.rs:138:16 [INFO] [stderr] | [INFO] [stderr] 138 | if collided.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!collided.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [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/day13/mod.rs:152:23 [INFO] [stderr] | [INFO] [stderr] 152 | fn print_carts(carts: &Vec) { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Cart]` [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: length comparison to zero [INFO] [stderr] --> src/day13/mod.rs:196:8 [INFO] [stderr] | [INFO] [stderr] 196 | if unbroken_carts.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `unbroken_carts.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [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/day15/cave.rs:35:70 [INFO] [stderr] | [INFO] [stderr] 35 | fn print_units_onto_board(printed_board: &mut Vec>, units: &Vec) { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Unit]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day15/cave.rs:45:23 [INFO] [stderr] | [INFO] [stderr] 45 | fn print_state(state: &Vec>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day15/cave.rs:52:34 [INFO] [stderr] | [INFO] [stderr] 52 | fn print_state_with_stats(state: &Vec>, units: &Vec) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day15/cave.rs:52:58 [INFO] [stderr] | [INFO] [stderr] 52 | fn print_state_with_stats(state: &Vec>, units: &Vec) { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[Unit]` [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: you seem to want to iterate on a map's keys [INFO] [stderr] --> src/day15/unit.rs:50:23 [INFO] [stderr] | [INFO] [stderr] 50 | for (pos, _) in &result { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::for_kv_map)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 50 | for pos in result.keys() { [INFO] [stderr] | ^^^ ^^^^^^^^^^^^^ [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/day15/unit.rs:113:47 [INFO] [stderr] | [INFO] [stderr] 113 | fn find_closest_positions(target_positions: &Vec, distance_map: &BTreeMap) -> (Vec, u32) { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: change this to: `&[Position]` [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: use of `or_insert` followed by a function call [INFO] [stderr] --> src/day15/unit.rs:125:10 [INFO] [stderr] | [INFO] [stderr] 125 | .or_insert(vec![pos.clone()]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(|| vec![pos.clone()])` [INFO] [stderr] | [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/day15/unit.rs:125:25 [INFO] [stderr] | [INFO] [stderr] 125 | .or_insert(vec![pos.clone()]); [INFO] [stderr] | ^^^^^^^^^^^ help: try dereferencing it: `*pos` [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: use of `or_insert` followed by a function call [INFO] [stderr] --> src/day15/unit.rs:216:10 [INFO] [stderr] | [INFO] [stderr] 216 | .or_insert(vec![entry]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(|| vec![entry])` [INFO] [stderr] | [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/day16/ops.rs:6:20 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn op_map() -> BTreeMap<&'static str, &'static Fn(State, i32, i32, i32) -> Option> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [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/day16/problems.rs:67:17 [INFO] [stderr] | [INFO] [stderr] 67 | fn intersect(a: &Vec<&'static str>, b: &Vec<&'static str>) -> Vec<&'static str> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[&'static str]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/day16/problems.rs:67:40 [INFO] [stderr] | [INFO] [stderr] 67 | fn intersect(a: &Vec<&'static str>, b: &Vec<&'static str>) -> Vec<&'static str> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: change this to: `&[&'static str]` [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: trivial regex [INFO] [stderr] --> src/day16/problems.rs:84:46 [INFO] [stderr] | [INFO] [stderr] 84 | static ref RE_before: Regex = Regex::new(r"Before:").unwrap(); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider using `str::contains` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: the loop variable `k` is used to index `opcode_map` [INFO] [stderr] --> src/day16/problems.rs:138:16 [INFO] [stderr] | [INFO] [stderr] 138 | for k in 0..opcode_map.len() { [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] 138 | for (k, ) in opcode_map.iter_mut().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/utils/mod.rs:19:12 [INFO] [stderr] | [INFO] [stderr] 19 | .split("\n") [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:77:3 [INFO] [stderr] | [INFO] [stderr] 77 | / match run() { [INFO] [stderr] 78 | | Err(err) => println!("Error occurred: {}", err), [INFO] [stderr] 79 | | _ => {} [INFO] [stderr] 80 | | } [INFO] [stderr] | |___^ help: try this: `if let Err(err) = run() { println!("Error occurred: {}", err) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 2.14s [INFO] running `"docker" "inspect" "bc84619b57908caca6aeb1f5d0163b333d6eadd4f01dda9e980d0cef7fe817df"` [INFO] running `"docker" "rm" "-f" "bc84619b57908caca6aeb1f5d0163b333d6eadd4f01dda9e980d0cef7fe817df"` [INFO] [stdout] bc84619b57908caca6aeb1f5d0163b333d6eadd4f01dda9e980d0cef7fe817df