[INFO] updating cached repository efrees/adventofcode2018 [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/efrees/adventofcode2018 [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/efrees/adventofcode2018" "work/ex/clippy-test-run/sources/stable/gh/efrees/adventofcode2018"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/efrees/adventofcode2018'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/efrees/adventofcode2018" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/efrees/adventofcode2018"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/efrees/adventofcode2018'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 18bc514b8a54db85cbaaa39ec9c1d7b9020e5200 [INFO] sha for GitHub repo efrees/adventofcode2018: 18bc514b8a54db85cbaaa39ec9c1d7b9020e5200 [INFO] validating manifest of efrees/adventofcode2018 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 efrees/adventofcode2018 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 efrees/adventofcode2018 [INFO] finished frobbing efrees/adventofcode2018 [INFO] frobbed toml for efrees/adventofcode2018 written to work/ex/clippy-test-run/sources/stable/gh/efrees/adventofcode2018/Cargo.toml [INFO] started frobbing efrees/adventofcode2018 [INFO] finished frobbing efrees/adventofcode2018 [INFO] frobbed toml for efrees/adventofcode2018 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/efrees/adventofcode2018/Cargo.toml [INFO] crate efrees/adventofcode2018 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 efrees/adventofcode2018 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/efrees/adventofcode2018:/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] 7badc85ff3244328073a1c8e88be6cd24634a1baba6b3803ef9e5e3d2cac467b [INFO] running `"docker" "start" "-a" "7badc85ff3244328073a1c8e88be6cd24634a1baba6b3803ef9e5e3d2cac467b"` [INFO] [stderr] Checking advent_2018 v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/adventlib/collections/mod.rs:38:21 [INFO] [stderr] | [INFO] [stderr] 38 | next_key: next_key, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `next_key` [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/adventlib/collections/mod.rs:52:13 [INFO] [stderr] | [INFO] [stderr] 52 | next_key: next_key, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `next_key` [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: redundant field names in struct initialization [INFO] [stderr] --> src/adventlib/collections/mod.rs:53:13 [INFO] [stderr] | [INFO] [stderr] 53 | prev_key: prev_key, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `prev_key` [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: redundant field names in struct initialization [INFO] [stderr] --> src/adventlib/grid/mod.rs:9:17 [INFO] [stderr] | [INFO] [stderr] 9 | Point { x: x, y: y } [INFO] [stderr] | ^^^^ help: replace it with: `x` [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: redundant field names in struct initialization [INFO] [stderr] --> src/adventlib/grid/mod.rs:9:23 [INFO] [stderr] | [INFO] [stderr] 9 | Point { x: x, y: y } [INFO] [stderr] | ^^^^ help: replace it with: `y` [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: redundant field names in struct initialization [INFO] [stderr] --> src/adventlib/collections/mod.rs:38:21 [INFO] [stderr] | [INFO] [stderr] 38 | next_key: next_key, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `next_key` [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/adventlib/collections/mod.rs:52:13 [INFO] [stderr] | [INFO] [stderr] 52 | next_key: next_key, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `next_key` [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: redundant field names in struct initialization [INFO] [stderr] --> src/adventlib/collections/mod.rs:53:13 [INFO] [stderr] | [INFO] [stderr] 53 | prev_key: prev_key, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `prev_key` [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: redundant field names in struct initialization [INFO] [stderr] --> src/adventlib/grid/mod.rs:9:17 [INFO] [stderr] | [INFO] [stderr] 9 | Point { x: x, y: y } [INFO] [stderr] | ^^^^ help: replace it with: `x` [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: redundant field names in struct initialization [INFO] [stderr] --> src/adventlib/grid/mod.rs:9:23 [INFO] [stderr] | [INFO] [stderr] 9 | Point { x: x, y: y } [INFO] [stderr] | ^^^^ help: replace it with: `y` [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: unneeded return statement [INFO] [stderr] --> src/adventlib/collections/mod.rs:81:9 [INFO] [stderr] | [INFO] [stderr] 81 | return rem_node.value; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `rem_node.value` [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/adventlib/collections/mod.rs:90:9 [INFO] [stderr] | [INFO] [stderr] 90 | / return match self.nodes.get(cur_ptr.0) { [INFO] [stderr] 91 | | Some(node) => Some(node.value), [INFO] [stderr] 92 | | None => None, [INFO] [stderr] 93 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 90 | match self.nodes.get(cur_ptr.0) { [INFO] [stderr] 91 | Some(node) => Some(node.value), [INFO] [stderr] 92 | None => None, [INFO] [stderr] 93 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/adventlib/lib.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | return string; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `string` [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/adventlib/lib.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | return string.lines().map(|x| x.to_string()).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `string.lines().map(|x| x.to_string()).collect()` [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/adventlib/lib.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | return string.split_whitespace().map(|x| x.to_string()).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `string.split_whitespace().map(|x| x.to_string()).collect()` [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: you should consider deriving a `Default` implementation for `collections::CircleList` [INFO] [stderr] --> src/adventlib/collections/mod.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | / pub fn new() -> CircleList { [INFO] [stderr] 21 | | Self::with_capacity(0) [INFO] [stderr] 22 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 5 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/adventlib/collections/mod.rs:81:9 [INFO] [stderr] | [INFO] [stderr] 81 | return rem_node.value; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `rem_node.value` [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/adventlib/collections/mod.rs:90:9 [INFO] [stderr] | [INFO] [stderr] 90 | / return match self.nodes.get(cur_ptr.0) { [INFO] [stderr] 91 | | Some(node) => Some(node.value), [INFO] [stderr] 92 | | None => None, [INFO] [stderr] 93 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 90 | match self.nodes.get(cur_ptr.0) { [INFO] [stderr] 91 | Some(node) => Some(node.value), [INFO] [stderr] 92 | None => None, [INFO] [stderr] 93 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/adventlib/lib.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | return string; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `string` [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/adventlib/lib.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | return string.lines().map(|x| x.to_string()).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `string.lines().map(|x| x.to_string()).collect()` [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/adventlib/lib.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | return string.split_whitespace().map(|x| x.to_string()).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `string.split_whitespace().map(|x| x.to_string()).collect()` [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: redundant field names in struct initialization [INFO] [stderr] --> src/solutions/day4.rs:112:9 [INFO] [stderr] | [INFO] [stderr] 112 | time: time, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `time` [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/day4.rs:112:9 [INFO] [stderr] | [INFO] [stderr] 112 | time: time, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `time` [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: you should consider deriving a `Default` implementation for `collections::CircleList` [INFO] [stderr] --> src/adventlib/collections/mod.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | / pub fn new() -> CircleList { [INFO] [stderr] 21 | | Self::with_capacity(0) [INFO] [stderr] 22 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 5 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/solutions/day10.rs:27:27 [INFO] [stderr] | [INFO] [stderr] 27 | let mut prev_min_x = -999999; [INFO] [stderr] | ^^^^^^ help: consider: `999_999` [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/solutions/day10.rs:28:27 [INFO] [stderr] | [INFO] [stderr] 28 | let mut prev_min_y = -999999; [INFO] [stderr] | ^^^^^^ help: consider: `999_999` [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/day10.rs:29:26 [INFO] [stderr] | [INFO] [stderr] 29 | let mut prev_max_x = 999999; [INFO] [stderr] | ^^^^^^ help: consider: `999_999` [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/day10.rs:30:26 [INFO] [stderr] | [INFO] [stderr] 30 | let mut prev_max_y = 999999; [INFO] [stderr] | ^^^^^^ help: consider: `999_999` [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/day10.rs:36:25 [INFO] [stderr] | [INFO] [stderr] 36 | let mut min_x = 999999; [INFO] [stderr] | ^^^^^^ help: consider: `999_999` [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/day10.rs:37:25 [INFO] [stderr] | [INFO] [stderr] 37 | let mut min_y = 999999; [INFO] [stderr] | ^^^^^^ help: consider: `999_999` [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/day10.rs:38:26 [INFO] [stderr] | [INFO] [stderr] 38 | let mut max_x = -999999; [INFO] [stderr] | ^^^^^^ help: consider: `999_999` [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/day10.rs:39:26 [INFO] [stderr] | [INFO] [stderr] 39 | let mut max_y = -999999; [INFO] [stderr] | ^^^^^^ help: consider: `999_999` [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: unneeded return statement [INFO] [stderr] --> src/solutions/day11.rs:92:5 [INFO] [stderr] | [INFO] [stderr] 92 | return power_level; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `power_level` [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/day12.rs:57:31 [INFO] [stderr] | [INFO] [stderr] 57 | .map(|&&x| if x { return '#' } else { return '.' }) [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `'#'` [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/day12.rs:57:51 [INFO] [stderr] | [INFO] [stderr] 57 | .map(|&&x| if x { return '#' } else { return '.' }) [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `'.'` [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/day12.rs:93:5 [INFO] [stderr] | [INFO] [stderr] 93 | return (left_side, right_side); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(left_side, right_side)` [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/day13.rs:68:5 [INFO] [stderr] | [INFO] [stderr] 68 | return grid_rows; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `grid_rows` [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/day13.rs:109:5 [INFO] [stderr] | [INFO] [stderr] 109 | return carts; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `carts` [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/day13.rs:170:9 [INFO] [stderr] | [INFO] [stderr] 170 | / return match c_type { [INFO] [stderr] 171 | | '/' => self.turn_left(), [INFO] [stderr] 172 | | _ => self.turn_right(), [INFO] [stderr] 173 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 170 | match c_type { [INFO] [stderr] 171 | '/' => self.turn_left(), [INFO] [stderr] 172 | _ => self.turn_right(), [INFO] [stderr] 173 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/solutions/day14.rs:4:17 [INFO] [stderr] | [INFO] [stderr] 4 | let input = 260321; [INFO] [stderr] | ^^^^^^ help: consider: `260_321` [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: unneeded return statement [INFO] [stderr] --> src/solutions/day16.rs:125:5 [INFO] [stderr] | [INFO] [stderr] 125 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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/day16.rs:137:5 [INFO] [stderr] | [INFO] [stderr] 137 | return reg_equal(&temp_reg, &expected); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `reg_equal(&temp_reg, &expected)` [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: All variants have the same prefix: `Guard` [INFO] [stderr] --> src/solutions/day4.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | / enum GuardLogType { [INFO] [stderr] 7 | | GuardStart, [INFO] [stderr] 8 | | GuardSleep, [INFO] [stderr] 9 | | GuardWake, [INFO] [stderr] 10 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::enum_variant_names)] on by default [INFO] [stderr] = help: remove the prefixes and use full paths to the variants instead of glob imports [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/solutions/day4.rs:111:5 [INFO] [stderr] | [INFO] [stderr] 111 | / return GuardLog { [INFO] [stderr] 112 | | time: time, [INFO] [stderr] 113 | | log_type: log_info.0, [INFO] [stderr] 114 | | guard: log_info.1, [INFO] [stderr] 115 | | }; [INFO] [stderr] | |______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 111 | GuardLog { [INFO] [stderr] 112 | time: time, [INFO] [stderr] 113 | log_type: log_info.0, [INFO] [stderr] 114 | guard: log_info.1, [INFO] [stderr] 115 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/solutions/day4.rs:125:9 [INFO] [stderr] | [INFO] [stderr] 125 | return (GuardLogType::GuardStart, guard_id); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(GuardLogType::GuardStart, guard_id)` [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/day4.rs:127:9 [INFO] [stderr] | [INFO] [stderr] 127 | return (GuardLogType::GuardSleep, 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(GuardLogType::GuardSleep, 0)` [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/day4.rs:129:9 [INFO] [stderr] | [INFO] [stderr] 129 | return (GuardLogType::GuardWake, 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(GuardLogType::GuardWake, 0)` [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/day5.rs:65:5 [INFO] [stderr] | [INFO] [stderr] 65 | return cur_string; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `cur_string` [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/day6.rs:23:9 [INFO] [stderr] | [INFO] [stderr] 23 | / return ((self.x as i32 - other_x as i32).abs() + (self.y as i32 - other_y as i32).abs()) [INFO] [stderr] 24 | | as u16; [INFO] [stderr] | |___________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 23 | ((self.x as i32 - other_x as i32).abs() + (self.y as i32 - other_y as i32).abs()) [INFO] [stderr] 24 | as u16 [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/solutions/day6.rs:55:25 [INFO] [stderr] | [INFO] [stderr] 55 | return set; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `set` [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/day6.rs:107:5 [INFO] [stderr] | [INFO] [stderr] 107 | / return FillPoint { [INFO] [stderr] 108 | | x: captures[1].parse().unwrap(), [INFO] [stderr] 109 | | y: captures[2].parse().unwrap(), [INFO] [stderr] 110 | | d: 0, [INFO] [stderr] 111 | | seed_id: index + 1, //save zero [INFO] [stderr] 112 | | }; [INFO] [stderr] | |______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 107 | FillPoint { [INFO] [stderr] 108 | x: captures[1].parse().unwrap(), [INFO] [stderr] 109 | y: captures[2].parse().unwrap(), [INFO] [stderr] 110 | d: 0, [INFO] [stderr] 111 | seed_id: index + 1, //save zero [INFO] [stderr] 112 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/solutions/day7.rs:47:17 [INFO] [stderr] | [INFO] [stderr] 47 | return set; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `set` [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/day7.rs:133:5 [INFO] [stderr] | [INFO] [stderr] 133 | return b[0] as u16 - alpha_offset + 60; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `b[0] as u16 - alpha_offset + 60` [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/day8.rs:36:5 [INFO] [stderr] | [INFO] [stderr] 36 | return total_metadata; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `total_metadata` [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/day8.rs:64:5 [INFO] [stderr] | [INFO] [stderr] 64 | return node_value; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `node_value` [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/day10.rs:27:27 [INFO] [stderr] | [INFO] [stderr] 27 | let mut prev_min_x = -999999; [INFO] [stderr] | ^^^^^^ help: consider: `999_999` [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/solutions/day10.rs:28:27 [INFO] [stderr] | [INFO] [stderr] 28 | let mut prev_min_y = -999999; [INFO] [stderr] | ^^^^^^ help: consider: `999_999` [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/day10.rs:29:26 [INFO] [stderr] | [INFO] [stderr] 29 | let mut prev_max_x = 999999; [INFO] [stderr] | ^^^^^^ help: consider: `999_999` [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/day10.rs:30:26 [INFO] [stderr] | [INFO] [stderr] 30 | let mut prev_max_y = 999999; [INFO] [stderr] | ^^^^^^ help: consider: `999_999` [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/day10.rs:36:25 [INFO] [stderr] | [INFO] [stderr] 36 | let mut min_x = 999999; [INFO] [stderr] | ^^^^^^ help: consider: `999_999` [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/day10.rs:37:25 [INFO] [stderr] | [INFO] [stderr] 37 | let mut min_y = 999999; [INFO] [stderr] | ^^^^^^ help: consider: `999_999` [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/day10.rs:38:26 [INFO] [stderr] | [INFO] [stderr] 38 | let mut max_x = -999999; [INFO] [stderr] | ^^^^^^ help: consider: `999_999` [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/day10.rs:39:26 [INFO] [stderr] | [INFO] [stderr] 39 | let mut max_y = -999999; [INFO] [stderr] | ^^^^^^ help: consider: `999_999` [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: unneeded return statement [INFO] [stderr] --> src/solutions/day11.rs:92:5 [INFO] [stderr] | [INFO] [stderr] 92 | return power_level; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `power_level` [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/day12.rs:57:31 [INFO] [stderr] | [INFO] [stderr] 57 | .map(|&&x| if x { return '#' } else { return '.' }) [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `'#'` [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/day12.rs:57:51 [INFO] [stderr] | [INFO] [stderr] 57 | .map(|&&x| if x { return '#' } else { return '.' }) [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `'.'` [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/day12.rs:93:5 [INFO] [stderr] | [INFO] [stderr] 93 | return (left_side, right_side); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(left_side, right_side)` [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/day13.rs:68:5 [INFO] [stderr] | [INFO] [stderr] 68 | return grid_rows; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `grid_rows` [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/day13.rs:109:5 [INFO] [stderr] | [INFO] [stderr] 109 | return carts; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `carts` [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/day13.rs:170:9 [INFO] [stderr] | [INFO] [stderr] 170 | / return match c_type { [INFO] [stderr] 171 | | '/' => self.turn_left(), [INFO] [stderr] 172 | | _ => self.turn_right(), [INFO] [stderr] 173 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 170 | match c_type { [INFO] [stderr] 171 | '/' => self.turn_left(), [INFO] [stderr] 172 | _ => self.turn_right(), [INFO] [stderr] 173 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/solutions/day14.rs:4:17 [INFO] [stderr] | [INFO] [stderr] 4 | let input = 260321; [INFO] [stderr] | ^^^^^^ help: consider: `260_321` [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: unneeded return statement [INFO] [stderr] --> src/solutions/day16.rs:125:5 [INFO] [stderr] | [INFO] [stderr] 125 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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/day16.rs:137:5 [INFO] [stderr] | [INFO] [stderr] 137 | return reg_equal(&temp_reg, &expected); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `reg_equal(&temp_reg, &expected)` [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: All variants have the same prefix: `Guard` [INFO] [stderr] --> src/solutions/day4.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | / enum GuardLogType { [INFO] [stderr] 7 | | GuardStart, [INFO] [stderr] 8 | | GuardSleep, [INFO] [stderr] 9 | | GuardWake, [INFO] [stderr] 10 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::enum_variant_names)] on by default [INFO] [stderr] = help: remove the prefixes and use full paths to the variants instead of glob imports [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/solutions/day4.rs:111:5 [INFO] [stderr] | [INFO] [stderr] 111 | / return GuardLog { [INFO] [stderr] 112 | | time: time, [INFO] [stderr] 113 | | log_type: log_info.0, [INFO] [stderr] 114 | | guard: log_info.1, [INFO] [stderr] 115 | | }; [INFO] [stderr] | |______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 111 | GuardLog { [INFO] [stderr] 112 | time: time, [INFO] [stderr] 113 | log_type: log_info.0, [INFO] [stderr] 114 | guard: log_info.1, [INFO] [stderr] 115 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/solutions/day4.rs:125:9 [INFO] [stderr] | [INFO] [stderr] 125 | return (GuardLogType::GuardStart, guard_id); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(GuardLogType::GuardStart, guard_id)` [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/day4.rs:127:9 [INFO] [stderr] | [INFO] [stderr] 127 | return (GuardLogType::GuardSleep, 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(GuardLogType::GuardSleep, 0)` [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/day4.rs:129:9 [INFO] [stderr] | [INFO] [stderr] 129 | return (GuardLogType::GuardWake, 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(GuardLogType::GuardWake, 0)` [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/day5.rs:65:5 [INFO] [stderr] | [INFO] [stderr] 65 | return cur_string; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `cur_string` [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/day6.rs:23:9 [INFO] [stderr] | [INFO] [stderr] 23 | / return ((self.x as i32 - other_x as i32).abs() + (self.y as i32 - other_y as i32).abs()) [INFO] [stderr] 24 | | as u16; [INFO] [stderr] | |___________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 23 | ((self.x as i32 - other_x as i32).abs() + (self.y as i32 - other_y as i32).abs()) [INFO] [stderr] 24 | as u16 [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/solutions/day6.rs:55:25 [INFO] [stderr] | [INFO] [stderr] 55 | return set; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `set` [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/day6.rs:107:5 [INFO] [stderr] | [INFO] [stderr] 107 | / return FillPoint { [INFO] [stderr] 108 | | x: captures[1].parse().unwrap(), [INFO] [stderr] 109 | | y: captures[2].parse().unwrap(), [INFO] [stderr] 110 | | d: 0, [INFO] [stderr] 111 | | seed_id: index + 1, //save zero [INFO] [stderr] 112 | | }; [INFO] [stderr] | |______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 107 | FillPoint { [INFO] [stderr] 108 | x: captures[1].parse().unwrap(), [INFO] [stderr] 109 | y: captures[2].parse().unwrap(), [INFO] [stderr] 110 | d: 0, [INFO] [stderr] 111 | seed_id: index + 1, //save zero [INFO] [stderr] 112 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/solutions/day7.rs:47:17 [INFO] [stderr] | [INFO] [stderr] 47 | return set; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `set` [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/day7.rs:133:5 [INFO] [stderr] | [INFO] [stderr] 133 | return b[0] as u16 - alpha_offset + 60; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `b[0] as u16 - alpha_offset + 60` [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/day8.rs:36:5 [INFO] [stderr] | [INFO] [stderr] 36 | return total_metadata; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `total_metadata` [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/day8.rs:64:5 [INFO] [stderr] | [INFO] [stderr] 64 | return node_value; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `node_value` [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: unused variable: `i` [INFO] [stderr] --> src/solutions/day16.rs:63:32 [INFO] [stderr] | [INFO] [stderr] 63 | .filter(|&(i, set)| set.len() == 1) [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/solutions/day16.rs:63:32 [INFO] [stderr] | [INFO] [stderr] 63 | .filter(|&(i, set)| set.len() == 1) [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `solve` [INFO] [stderr] --> src/solutions/day1.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | pub fn solve() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Point` [INFO] [stderr] --> src/solutions/day10.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | struct Point(i32, i32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `PointWithVelocity` [INFO] [stderr] --> src/solutions/day10.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | struct PointWithVelocity { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `solve` [INFO] [stderr] --> src/solutions/day10.rs:11:1 [INFO] [stderr] | [INFO] [stderr] 11 | pub fn solve() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `print_point_section` [INFO] [stderr] --> src/solutions/day10.rs:77:1 [INFO] [stderr] | [INFO] [stderr] 77 | / fn print_point_section( [INFO] [stderr] 78 | | min_x: i32, [INFO] [stderr] 79 | | min_y: i32, [INFO] [stderr] 80 | | max_x: i32, [INFO] [stderr] ... | [INFO] [stderr] 99 | | } [INFO] [stderr] 100 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `solve` [INFO] [stderr] --> src/solutions/day11.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | pub fn solve() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `power_level` [INFO] [stderr] --> src/solutions/day11.rs:85:1 [INFO] [stderr] | [INFO] [stderr] 85 | fn power_level(x: i32, y: i32, serial_number: i32) -> i32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `print_grid` [INFO] [stderr] --> src/solutions/day11.rs:95:1 [INFO] [stderr] | [INFO] [stderr] 95 | fn print_grid(grid: &Vec>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `solve` [INFO] [stderr] --> src/solutions/day12.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | pub fn solve() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse_rule` [INFO] [stderr] --> src/solutions/day12.rs:80:1 [INFO] [stderr] | [INFO] [stderr] 80 | fn parse_rule(line: &String) -> ((bool, bool, bool, bool, bool), bool) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `print_result` [INFO] [stderr] --> src/solutions/day12.rs:96:1 [INFO] [stderr] | [INFO] [stderr] 96 | fn print_result(next_config: &Vec<&bool>, zero_offset: i64, generation: i64) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `solve` [INFO] [stderr] --> src/solutions/day13.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | pub fn solve() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse_grid` [INFO] [stderr] --> src/solutions/day13.rs:50:1 [INFO] [stderr] | [INFO] [stderr] 50 | fn parse_grid(lines: &Vec) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `initiate_carts` [INFO] [stderr] --> src/solutions/day13.rs:71:1 [INFO] [stderr] | [INFO] [stderr] 71 | fn initiate_carts(lines: &Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `move_cart_on_grid` [INFO] [stderr] --> src/solutions/day13.rs:112:1 [INFO] [stderr] | [INFO] [stderr] 112 | fn move_cart_on_grid(cart: &mut Cart, grid: &Vec>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Up` [INFO] [stderr] --> src/solutions/day13.rs:139:5 [INFO] [stderr] | [INFO] [stderr] 139 | Up, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Down` [INFO] [stderr] --> src/solutions/day13.rs:140:5 [INFO] [stderr] | [INFO] [stderr] 140 | Down, [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Left` [INFO] [stderr] --> src/solutions/day13.rs:141:5 [INFO] [stderr] | [INFO] [stderr] 141 | Left, [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Right` [INFO] [stderr] --> src/solutions/day13.rs:142:5 [INFO] [stderr] | [INFO] [stderr] 142 | Right, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_vector` [INFO] [stderr] --> src/solutions/day13.rs:146:5 [INFO] [stderr] | [INFO] [stderr] 146 | fn as_vector(&self) -> Point { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `is_horizontal` [INFO] [stderr] --> src/solutions/day13.rs:155:5 [INFO] [stderr] | [INFO] [stderr] 155 | fn is_horizontal(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `is_vertical` [INFO] [stderr] --> src/solutions/day13.rs:159:5 [INFO] [stderr] | [INFO] [stderr] 159 | fn is_vertical(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `turn_corner` [INFO] [stderr] --> src/solutions/day13.rs:163:5 [INFO] [stderr] | [INFO] [stderr] 163 | fn turn_corner(&self, c_type: char) -> Direction { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `turn_left` [INFO] [stderr] --> src/solutions/day13.rs:176:5 [INFO] [stderr] | [INFO] [stderr] 176 | fn turn_left(&self) -> Direction { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `turn_right` [INFO] [stderr] --> src/solutions/day13.rs:185:5 [INFO] [stderr] | [INFO] [stderr] 185 | fn turn_right(&self) -> Direction { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Cart` [INFO] [stderr] --> src/solutions/day13.rs:196:1 [INFO] [stderr] | [INFO] [stderr] 196 | struct Cart { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `RailType` [INFO] [stderr] --> src/solutions/day13.rs:203:1 [INFO] [stderr] | [INFO] [stderr] 203 | enum RailType { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `solve` [INFO] [stderr] --> src/solutions/day14.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | pub fn solve() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `build_recipes_to` [INFO] [stderr] --> src/solutions/day14.rs:40:1 [INFO] [stderr] | [INFO] [stderr] 40 | / fn build_recipes_to( [INFO] [stderr] 41 | | recipes: &mut Vec, [INFO] [stderr] 42 | | target_count: usize, [INFO] [stderr] 43 | | elf_positions: &mut (usize, usize), [INFO] [stderr] ... | [INFO] [stderr] 66 | | elf_positions.1 = second_elf; [INFO] [stderr] 67 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `solve` [INFO] [stderr] --> src/solutions/day2.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | pub fn solve() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `solve` [INFO] [stderr] --> src/solutions/day3.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | pub fn solve() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `GuardStart` [INFO] [stderr] --> src/solutions/day4.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | GuardStart, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `GuardSleep` [INFO] [stderr] --> src/solutions/day4.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | GuardSleep, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `GuardWake` [INFO] [stderr] --> src/solutions/day4.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | GuardWake, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `GuardLog` [INFO] [stderr] --> src/solutions/day4.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | struct GuardLog { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `solve` [INFO] [stderr] --> src/solutions/day4.rs:19:1 [INFO] [stderr] | [INFO] [stderr] 19 | pub fn solve() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse_log_from_line` [INFO] [stderr] --> src/solutions/day4.rs:102:1 [INFO] [stderr] | [INFO] [stderr] 102 | fn parse_log_from_line(line: &str) -> GuardLog { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse_log_type_from_message` [INFO] [stderr] --> src/solutions/day4.rs:118:1 [INFO] [stderr] | [INFO] [stderr] 118 | fn parse_log_type_from_message(message: &str) -> (GuardLogType, u32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `solve` [INFO] [stderr] --> src/solutions/day5.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | pub fn solve() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `react_string` [INFO] [stderr] --> src/solutions/day5.rs:32:1 [INFO] [stderr] | [INFO] [stderr] 32 | fn react_string(line: Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `dist_to` [INFO] [stderr] --> src/solutions/day6.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | fn dist_to(&self, other_x: u16, other_y: u16) -> u16 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `solve` [INFO] [stderr] --> src/solutions/day6.rs:28:1 [INFO] [stderr] | [INFO] [stderr] 28 | pub fn solve() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse_point` [INFO] [stderr] --> src/solutions/day6.rs:101:1 [INFO] [stderr] | [INFO] [stderr] 101 | fn parse_point(line: &str, index: u16) -> FillPoint { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `solve` [INFO] [stderr] --> src/solutions/day7.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn solve() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `node_cost` [INFO] [stderr] --> src/solutions/day7.rs:128:1 [INFO] [stderr] | [INFO] [stderr] 128 | fn node_cost(node: &char) -> u16 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `solve` [INFO] [stderr] --> src/solutions/day8.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn solve() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `sum_metadata_rec` [INFO] [stderr] --> src/solutions/day8.rs:25:1 [INFO] [stderr] | [INFO] [stderr] 25 | fn sum_metadata_rec(tree_data: &mut VecDeque) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `get_node_value` [INFO] [stderr] --> src/solutions/day8.rs:39:1 [INFO] [stderr] | [INFO] [stderr] 39 | fn get_node_value(tree_data: &mut VecDeque) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `solve` [INFO] [stderr] --> src/solutions/day9.rs:15:1 [INFO] [stderr] | [INFO] [stderr] 15 | pub fn solve() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/solutions/day1.rs:31:21 [INFO] [stderr] | [INFO] [stderr] 31 | for diff in diffs.into_iter() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `diffs` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [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/day10.rs:82:13 [INFO] [stderr] | [INFO] [stderr] 82 | points: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[PointWithVelocity]` [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: the loop variable `i` is used to index `grid` [INFO] [stderr] --> src/solutions/day11.rs:12:14 [INFO] [stderr] | [INFO] [stderr] 12 | for i in 0..300 { [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] 12 | for (i, ) in grid.iter_mut().enumerate().take(300) { [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/solutions/day11.rs:95:21 [INFO] [stderr] | [INFO] [stderr] 95 | fn print_grid(grid: &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: the loop variable `i` is only used to index `grid`. [INFO] [stderr] --> src/solutions/day11.rs:97:14 [INFO] [stderr] | [INFO] [stderr] 97 | for i in 0..grid.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] 97 | for in &grid { [INFO] [stderr] | ^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/solutions/day12.rs:29:20 [INFO] [stderr] | [INFO] [stderr] 29 | .chain(next_config.iter().map(|x| *x)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `next_config.iter().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: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/solutions/day12.rs:60:9 [INFO] [stderr] | [INFO] [stderr] 60 | / if seen_patterns.contains_key(&state) { [INFO] [stderr] 61 | | let prev_occurrence = seen_patterns.get(&state).expect("Key should be valid"); [INFO] [stderr] 62 | | let step_size = generation - prev_occurrence.0; [INFO] [stderr] 63 | | let step_offset = zero_offset - prev_occurrence.1; [INFO] [stderr] ... | [INFO] [stderr] 72 | | seen_patterns.insert(state, (generation, zero_offset)); [INFO] [stderr] 73 | | } [INFO] [stderr] | |_________^ help: consider using: `seen_patterns.entry(state)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_entry)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/solutions/day12.rs:80:21 [INFO] [stderr] | [INFO] [stderr] 80 | fn parse_rule(line: &String) -> ((bool, bool, bool, bool, bool), bool) { [INFO] [stderr] | ^^^^^^^ help: change this to: `&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/solutions/day12.rs:96:30 [INFO] [stderr] | [INFO] [stderr] 96 | fn print_result(next_config: &Vec<&bool>, zero_offset: i64, generation: i64) { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[&bool]` [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/solutions/day13.rs:50:22 [INFO] [stderr] | [INFO] [stderr] 50 | fn parse_grid(lines: &Vec) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [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/solutions/day13.rs:71:26 [INFO] [stderr] | [INFO] [stderr] 71 | fn initiate_carts(lines: &Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [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: the variable `y` is used as a loop counter. Consider using `for (y, item) in lines.enumerate()` or similar iterators [INFO] [stderr] --> src/solutions/day13.rs:75:17 [INFO] [stderr] | [INFO] [stderr] 75 | for line in 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 variable `x` is used as a loop counter. Consider using `for (x, item) in line.as_bytes().enumerate()` or similar iterators [INFO] [stderr] --> src/solutions/day13.rs:77:21 [INFO] [stderr] | [INFO] [stderr] 77 | for byte in line.as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/solutions/day13.rs:112:45 [INFO] [stderr] | [INFO] [stderr] 112 | fn move_cart_on_grid(cart: &mut Cart, grid: &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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/solutions/day13.rs:146:18 [INFO] [stderr] | [INFO] [stderr] 146 | fn as_vector(&self) -> Point { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: function is never used: `solve` [INFO] [stderr] --> src/solutions/day1.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | pub fn solve() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Point` [INFO] [stderr] --> src/solutions/day10.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | struct Point(i32, i32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `PointWithVelocity` [INFO] [stderr] --> src/solutions/day10.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | struct PointWithVelocity { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `solve` [INFO] [stderr] --> src/solutions/day10.rs:11:1 [INFO] [stderr] | [INFO] [stderr] 11 | pub fn solve() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `print_point_section` [INFO] [stderr] --> src/solutions/day10.rs:77:1 [INFO] [stderr] | [INFO] [stderr] 77 | / fn print_point_section( [INFO] [stderr] 78 | | min_x: i32, [INFO] [stderr] 79 | | min_y: i32, [INFO] [stderr] 80 | | max_x: i32, [INFO] [stderr] ... | [INFO] [stderr] 99 | | } [INFO] [stderr] 100 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `solve` [INFO] [stderr] --> src/solutions/day11.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | pub fn solve() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `power_level` [INFO] [stderr] --> src/solutions/day11.rs:85:1 [INFO] [stderr] | [INFO] [stderr] 85 | fn power_level(x: i32, y: i32, serial_number: i32) -> i32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/solutions/day13.rs:155:22 [INFO] [stderr] | [INFO] [stderr] 155 | fn is_horizontal(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] warning: function is never used: `print_grid` [INFO] [stderr] --> src/solutions/day11.rs:95:1 [INFO] [stderr] | [INFO] [stderr] 95 | fn print_grid(grid: &Vec>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: function is never used: `solve` [INFO] [stderr] --> src/solutions/day12.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | pub fn solve() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse_rule` [INFO] [stderr] --> src/solutions/day12.rs:80:1 [INFO] [stderr] | [INFO] [stderr] 80 | fn parse_rule(line: &String) -> ((bool, bool, bool, bool, bool), bool) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `print_result` [INFO] [stderr] --> src/solutions/day12.rs:96:1 [INFO] [stderr] | [INFO] [stderr] 96 | fn print_result(next_config: &Vec<&bool>, zero_offset: i64, generation: i64) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `solve` [INFO] [stderr] --> src/solutions/day13.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | pub fn solve() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse_grid` [INFO] [stderr] --> src/solutions/day13.rs:50:1 [INFO] [stderr] | [INFO] [stderr] 50 | fn parse_grid(lines: &Vec) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `initiate_carts` [INFO] [stderr] --> src/solutions/day13.rs:71:1 [INFO] [stderr] | [INFO] [stderr] 71 | fn initiate_carts(lines: &Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `move_cart_on_grid` [INFO] [stderr] --> src/solutions/day13.rs:112:1 [INFO] [stderr] | [INFO] [stderr] 112 | fn move_cart_on_grid(cart: &mut Cart, grid: &Vec>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Up` [INFO] [stderr] --> src/solutions/day13.rs:139:5 [INFO] [stderr] | [INFO] [stderr] 139 | Up, [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Down` [INFO] [stderr] --> src/solutions/day13.rs:140:5 [INFO] [stderr] | [INFO] [stderr] 140 | Down, [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Left` [INFO] [stderr] --> src/solutions/day13.rs:141:5 [INFO] [stderr] | [INFO] [stderr] 141 | Left, [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/solutions/day13.rs:159:20 [INFO] [stderr] | [INFO] [stderr] 159 | fn is_vertical(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Right` [INFO] [stderr] --> src/solutions/day13.rs:142:5 [INFO] [stderr] | [INFO] [stderr] 142 | Right, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `as_vector` [INFO] [stderr] --> src/solutions/day13.rs:146:5 [INFO] [stderr] | [INFO] [stderr] 146 | fn as_vector(&self) -> Point { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `is_horizontal` [INFO] [stderr] --> src/solutions/day13.rs:155:5 [INFO] [stderr] | [INFO] [stderr] 155 | fn is_horizontal(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `is_vertical` [INFO] [stderr] --> src/solutions/day13.rs:159:5 [INFO] [stderr] | [INFO] [stderr] 159 | fn is_vertical(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `turn_corner` [INFO] [stderr] --> src/solutions/day13.rs:163:5 [INFO] [stderr] | [INFO] [stderr] 163 | fn turn_corner(&self, c_type: char) -> Direction { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `turn_left` [INFO] [stderr] --> src/solutions/day13.rs:176:5 [INFO] [stderr] | [INFO] [stderr] 176 | fn turn_left(&self) -> Direction { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `turn_right` [INFO] [stderr] --> src/solutions/day13.rs:185:5 [INFO] [stderr] | [INFO] [stderr] 185 | fn turn_right(&self) -> Direction { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Cart` [INFO] [stderr] --> src/solutions/day13.rs:196:1 [INFO] [stderr] | [INFO] [stderr] 196 | struct Cart { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `RailType` [INFO] [stderr] --> src/solutions/day13.rs:203:1 [INFO] [stderr] | [INFO] [stderr] 203 | enum RailType { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `solve` [INFO] [stderr] --> src/solutions/day14.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | pub fn solve() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `build_recipes_to` [INFO] [stderr] --> src/solutions/day14.rs:40:1 [INFO] [stderr] | [INFO] [stderr] 40 | / fn build_recipes_to( [INFO] [stderr] 41 | | recipes: &mut Vec, [INFO] [stderr] 42 | | target_count: usize, [INFO] [stderr] 43 | | elf_positions: &mut (usize, usize), [INFO] [stderr] ... | [INFO] [stderr] 66 | | elf_positions.1 = second_elf; [INFO] [stderr] 67 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `solve` [INFO] [stderr] --> src/solutions/day2.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | pub fn solve() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `solve` [INFO] [stderr] --> src/solutions/day3.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | pub fn solve() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `GuardStart` [INFO] [stderr] --> src/solutions/day4.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | GuardStart, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `GuardSleep` [INFO] [stderr] --> src/solutions/day4.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | GuardSleep, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `GuardWake` [INFO] [stderr] --> src/solutions/day4.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | GuardWake, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `GuardLog` [INFO] [stderr] --> src/solutions/day4.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | struct GuardLog { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `solve` [INFO] [stderr] --> src/solutions/day4.rs:19:1 [INFO] [stderr] | [INFO] [stderr] 19 | pub fn solve() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse_log_from_line` [INFO] [stderr] --> src/solutions/day4.rs:102:1 [INFO] [stderr] | [INFO] [stderr] 102 | fn parse_log_from_line(line: &str) -> GuardLog { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse_log_type_from_message` [INFO] [stderr] --> src/solutions/day4.rs:118:1 [INFO] [stderr] | [INFO] [stderr] 118 | fn parse_log_type_from_message(message: &str) -> (GuardLogType, u32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `solve` [INFO] [stderr] --> src/solutions/day5.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | pub fn solve() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `react_string` [INFO] [stderr] --> src/solutions/day5.rs:32:1 [INFO] [stderr] | [INFO] [stderr] 32 | fn react_string(line: Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `dist_to` [INFO] [stderr] --> src/solutions/day6.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | fn dist_to(&self, other_x: u16, other_y: u16) -> u16 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `solve` [INFO] [stderr] --> src/solutions/day6.rs:28:1 [INFO] [stderr] | [INFO] [stderr] 28 | pub fn solve() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse_point` [INFO] [stderr] --> src/solutions/day6.rs:101:1 [INFO] [stderr] | [INFO] [stderr] 101 | fn parse_point(line: &str, index: u16) -> FillPoint { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `solve` [INFO] [stderr] --> src/solutions/day7.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn solve() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `node_cost` [INFO] [stderr] --> src/solutions/day7.rs:128:1 [INFO] [stderr] | [INFO] [stderr] 128 | fn node_cost(node: &char) -> u16 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `solve` [INFO] [stderr] --> src/solutions/day8.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn solve() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `sum_metadata_rec` [INFO] [stderr] --> src/solutions/day8.rs:25:1 [INFO] [stderr] | [INFO] [stderr] 25 | fn sum_metadata_rec(tree_data: &mut VecDeque) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `get_node_value` [INFO] [stderr] --> src/solutions/day8.rs:39:1 [INFO] [stderr] | [INFO] [stderr] 39 | fn get_node_value(tree_data: &mut VecDeque) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `solve` [INFO] [stderr] --> src/solutions/day9.rs:15:1 [INFO] [stderr] | [INFO] [stderr] 15 | pub fn solve() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/solutions/day13.rs:163:20 [INFO] [stderr] | [INFO] [stderr] 163 | fn turn_corner(&self, c_type: char) -> Direction { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/solutions/day13.rs:176:18 [INFO] [stderr] | [INFO] [stderr] 176 | fn turn_left(&self) -> Direction { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/solutions/day13.rs:185:19 [INFO] [stderr] | [INFO] [stderr] 185 | fn turn_right(&self) -> Direction { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/solutions/day1.rs:31:21 [INFO] [stderr] | [INFO] [stderr] 31 | for diff in diffs.into_iter() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `diffs` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: the variable `method_index` is used as a loop counter. Consider using `for (method_index, item) in methods.iter().enumerate()` or similar iterators [INFO] [stderr] --> src/solutions/day16.rs:44:27 [INFO] [stderr] | [INFO] [stderr] 44 | for method in methods.iter() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [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: length comparison to zero [INFO] [stderr] --> src/solutions/day16.rs:58:31 [INFO] [stderr] | [INFO] [stderr] 58 | if program_started && actual_opcodes.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `actual_opcodes.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/solutions/day10.rs:82:13 [INFO] [stderr] | [INFO] [stderr] 82 | points: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[PointWithVelocity]` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/solutions/day16.rs:115:21 [INFO] [stderr] | [INFO] [stderr] 115 | fn reg_equal(first: &Vec, second: &Vec) -> bool { [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/solutions/day16.rs:115:40 [INFO] [stderr] | [INFO] [stderr] 115 | fn reg_equal(first: &Vec, second: &Vec) -> bool { [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/solutions/day16.rs:130:14 [INFO] [stderr] | [INFO] [stderr] 130 | command: &Vec, [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/solutions/day16.rs:131:11 [INFO] [stderr] | [INFO] [stderr] 131 | regs: &Vec, [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/solutions/day16.rs:132:15 [INFO] [stderr] | [INFO] [stderr] 132 | expected: &Vec, [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/solutions/day16.rs:140:23 [INFO] [stderr] | [INFO] [stderr] 140 | fn reg_copy(original: &Vec) -> Vec { [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/solutions/day16.rs:144:18 [INFO] [stderr] | [INFO] [stderr] 144 | fn addr(command: &Vec, regs: &mut Vec) { [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/solutions/day16.rs:147:18 [INFO] [stderr] | [INFO] [stderr] 147 | fn addi(command: &Vec, regs: &mut Vec) { [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: the loop variable `i` is used to index `grid` [INFO] [stderr] --> src/solutions/day11.rs:12:14 [INFO] [stderr] | [INFO] [stderr] 12 | for i in 0..300 { [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] 12 | for (i, ) in grid.iter_mut().enumerate().take(300) { [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/solutions/day16.rs:151:18 [INFO] [stderr] | [INFO] [stderr] 151 | fn mulr(command: &Vec, regs: &mut Vec) { [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/solutions/day16.rs:154:18 [INFO] [stderr] | [INFO] [stderr] 154 | fn muli(command: &Vec, regs: &mut Vec) { [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/solutions/day16.rs:158:18 [INFO] [stderr] | [INFO] [stderr] 158 | fn banr(command: &Vec, regs: &mut Vec) { [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/solutions/day16.rs:161:18 [INFO] [stderr] | [INFO] [stderr] 161 | fn bani(command: &Vec, regs: &mut Vec) { [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/solutions/day16.rs:165:18 [INFO] [stderr] | [INFO] [stderr] 165 | fn borr(command: &Vec, regs: &mut Vec) { [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/solutions/day16.rs:168:18 [INFO] [stderr] | [INFO] [stderr] 168 | fn bori(command: &Vec, regs: &mut Vec) { [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/solutions/day16.rs:172:18 [INFO] [stderr] | [INFO] [stderr] 172 | fn setr(command: &Vec, regs: &mut Vec) { [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/solutions/day16.rs:175:18 [INFO] [stderr] | [INFO] [stderr] 175 | fn seti(command: &Vec, regs: &mut Vec) { [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/solutions/day16.rs:179:18 [INFO] [stderr] | [INFO] [stderr] 179 | fn gtir(command: &Vec, regs: &mut Vec) { [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/solutions/day16.rs:186:18 [INFO] [stderr] | [INFO] [stderr] 186 | fn gtri(command: &Vec, regs: &mut Vec) { [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/solutions/day16.rs:193:18 [INFO] [stderr] | [INFO] [stderr] 193 | fn gtrr(command: &Vec, regs: &mut Vec) { [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/solutions/day16.rs:201:18 [INFO] [stderr] | [INFO] [stderr] 201 | fn eqir(command: &Vec, regs: &mut Vec) { [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/solutions/day11.rs:95:21 [INFO] [stderr] | [INFO] [stderr] 95 | fn print_grid(grid: &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/solutions/day16.rs:208:18 [INFO] [stderr] | [INFO] [stderr] 208 | fn eqri(command: &Vec, regs: &mut Vec) { [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/solutions/day16.rs:215:18 [INFO] [stderr] | [INFO] [stderr] 215 | fn eqrr(command: &Vec, regs: &mut Vec) { [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: the loop variable `i` is only used to index `grid`. [INFO] [stderr] --> src/solutions/day11.rs:97:14 [INFO] [stderr] | [INFO] [stderr] 97 | for i in 0..grid.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] 97 | for in &grid { [INFO] [stderr] | ^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/solutions/day12.rs:29:20 [INFO] [stderr] | [INFO] [stderr] 29 | .chain(next_config.iter().map(|x| *x)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `next_config.iter().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: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/solutions/day12.rs:60:9 [INFO] [stderr] | [INFO] [stderr] 60 | / if seen_patterns.contains_key(&state) { [INFO] [stderr] 61 | | let prev_occurrence = seen_patterns.get(&state).expect("Key should be valid"); [INFO] [stderr] 62 | | let step_size = generation - prev_occurrence.0; [INFO] [stderr] 63 | | let step_offset = zero_offset - prev_occurrence.1; [INFO] [stderr] ... | [INFO] [stderr] 72 | | seen_patterns.insert(state, (generation, zero_offset)); [INFO] [stderr] 73 | | } [INFO] [stderr] | |_________^ help: consider using: `seen_patterns.entry(state)` [INFO] [stderr] | [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/solutions/day2.rs:66:12 [INFO] [stderr] | [INFO] [stderr] 66 | if matched_string.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!matched_string.is_empty()` [INFO] [stderr] = note: #[warn(clippy::map_entry)] on by default [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [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 `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/solutions/day12.rs:80:21 [INFO] [stderr] | [INFO] [stderr] 80 | fn parse_rule(line: &String) -> ((bool, bool, bool, bool, bool), bool) { [INFO] [stderr] | ^^^^^^^ help: change this to: `&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/solutions/day12.rs:96:30 [INFO] [stderr] | [INFO] [stderr] 96 | fn print_result(next_config: &Vec<&bool>, zero_offset: i64, generation: i64) { [INFO] [stderr] | ^^^^^^^^^^^ help: change this to: `&[&bool]` [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: taken reference of right operand [INFO] [stderr] --> src/solutions/day3.rs:40:16 [INFO] [stderr] | [INFO] [stderr] 40 | if col_val > &1 { [INFO] [stderr] | ^^^^^^^^^^-- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [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/day13.rs:50:22 [INFO] [stderr] | [INFO] [stderr] 50 | fn parse_grid(lines: &Vec) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [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/solutions/day13.rs:71:26 [INFO] [stderr] | [INFO] [stderr] 71 | fn initiate_carts(lines: &Vec) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [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: the variable `y` is used as a loop counter. Consider using `for (y, item) in lines.enumerate()` or similar iterators [INFO] [stderr] --> src/solutions/day13.rs:75:17 [INFO] [stderr] | [INFO] [stderr] 75 | for line in 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 variable `x` is used as a loop counter. Consider using `for (x, item) in line.as_bytes().enumerate()` or similar iterators [INFO] [stderr] --> src/solutions/day13.rs:77:21 [INFO] [stderr] | [INFO] [stderr] 77 | for byte in line.as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [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: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/solutions/day4.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | / if !guard_minutes.contains_key(&log.guard) { [INFO] [stderr] 34 | | let initial_minutes: Vec<_> = vec![0; 60]; [INFO] [stderr] 35 | | guard_minutes.insert(log.guard, initial_minutes); [INFO] [stderr] 36 | | } [INFO] [stderr] | |_________^ help: consider using: `guard_minutes.entry(log.guard)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/solutions/day4.rs:40:13 [INFO] [stderr] | [INFO] [stderr] 40 | / let mut end_time = 60; [INFO] [stderr] 41 | | if log.log_type == GuardLogType::GuardWake { [INFO] [stderr] 42 | | // Wake will always apply to current_guard [INFO] [stderr] 43 | | end_time = log.time.minute(); [INFO] [stderr] 44 | | } [INFO] [stderr] | |_____________^ help: it is more idiomatic to write: `let end_time = if log.log_type == GuardLogType::GuardWake { log.time.minute() } else { 60 };` [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/solutions/day13.rs:112:45 [INFO] [stderr] | [INFO] [stderr] 112 | fn move_cart_on_grid(cart: &mut Cart, grid: &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] | [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/day4.rs:76:27 [INFO] [stderr] | [INFO] [stderr] 76 | let guard_array = guard_minutes.get(&guard).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&guard_minutes[&guard]` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/solutions/day13.rs:146:18 [INFO] [stderr] | [INFO] [stderr] 146 | fn as_vector(&self) -> Point { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/solutions/day13.rs:155:22 [INFO] [stderr] | [INFO] [stderr] 155 | fn is_horizontal(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/solutions/day13.rs:159:20 [INFO] [stderr] | [INFO] [stderr] 159 | fn is_vertical(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/solutions/day13.rs:163:20 [INFO] [stderr] | [INFO] [stderr] 163 | fn turn_corner(&self, c_type: char) -> Direction { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/solutions/day13.rs:176:18 [INFO] [stderr] | [INFO] [stderr] 176 | fn turn_left(&self) -> Direction { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/solutions/day5.rs:7:24 [INFO] [stderr] | [INFO] [stderr] 7 | let line: Vec<_> = lines[0].as_bytes().iter().map(|x| *x).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `lines[0].as_bytes().iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/solutions/day13.rs:185:19 [INFO] [stderr] | [INFO] [stderr] 185 | fn turn_right(&self) -> Direction { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/solutions/day5.rs:16:37 [INFO] [stderr] | [INFO] [stderr] 16 | let filtered_line: Vec<_> = current_string [INFO] [stderr] | _____________________________________^ [INFO] [stderr] 17 | | .iter() [INFO] [stderr] 18 | | .filter(|c| **c != b'a' + letter_idx && **c != b'A' + letter_idx) [INFO] [stderr] 19 | | .map(|x| *x) [INFO] [stderr] | |________________________^ [INFO] [stderr] | [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] 16 | let filtered_line: Vec<_> = current_string [INFO] [stderr] 17 | .iter() [INFO] [stderr] 18 | .filter(|c| **c != b'a' + letter_idx && **c != b'A' + letter_idx).cloned() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/solutions/day5.rs:48:36 [INFO] [stderr] | [INFO] [stderr] 48 | if i + 1 < cur_len && (cur_val as i16 - cur_string[i + 1] as i16).abs() == 32 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i16::from(cur_val)` [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: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/solutions/day5.rs:48:53 [INFO] [stderr] | [INFO] [stderr] 48 | if i + 1 < cur_len && (cur_val as i16 - cur_string[i + 1] as i16).abs() == 32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i16::from(cur_string[i + 1])` [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 argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/solutions/day6.rs:22:16 [INFO] [stderr] | [INFO] [stderr] 22 | fn dist_to(&self, other_x: u16, other_y: u16) -> u16 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/solutions/day6.rs:23:18 [INFO] [stderr] | [INFO] [stderr] 23 | return ((self.x as i32 - other_x as i32).abs() + (self.y as i32 - other_y as i32).abs()) [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i32::from(self.x)` [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: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/solutions/day6.rs:23:34 [INFO] [stderr] | [INFO] [stderr] 23 | return ((self.x as i32 - other_x as i32).abs() + (self.y as i32 - other_y as i32).abs()) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i32::from(other_x)` [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: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/solutions/day6.rs:23:59 [INFO] [stderr] | [INFO] [stderr] 23 | return ((self.x as i32 - other_x as i32).abs() + (self.y as i32 - other_y as i32).abs()) [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i32::from(self.y)` [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: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/solutions/day6.rs:23:75 [INFO] [stderr] | [INFO] [stderr] 23 | return ((self.x as i32 - other_x as i32).abs() + (self.y as i32 - other_y as i32).abs()) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i32::from(other_y)` [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: the variable `method_index` is used as a loop counter. Consider using `for (method_index, item) in methods.iter().enumerate()` or similar iterators [INFO] [stderr] --> src/solutions/day16.rs:44:27 [INFO] [stderr] | [INFO] [stderr] 44 | for method in methods.iter() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [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: length comparison to zero [INFO] [stderr] --> src/solutions/day16.rs:58:31 [INFO] [stderr] | [INFO] [stderr] 58 | if program_started && actual_opcodes.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `actual_opcodes.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: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/solutions/day6.rs:94:39 [INFO] [stderr] | [INFO] [stderr] 94 | set.iter().map(|(_id, d)| *d as u32).sum() [INFO] [stderr] | ^^^^^^^^^ help: try: `u32::from(*d)` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/solutions/day16.rs:115:21 [INFO] [stderr] | [INFO] [stderr] 115 | fn reg_equal(first: &Vec, second: &Vec) -> bool { [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/solutions/day16.rs:115:40 [INFO] [stderr] | [INFO] [stderr] 115 | fn reg_equal(first: &Vec, second: &Vec) -> bool { [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/solutions/day16.rs:130:14 [INFO] [stderr] | [INFO] [stderr] 130 | command: &Vec, [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/solutions/day16.rs:131:11 [INFO] [stderr] | [INFO] [stderr] 131 | regs: &Vec, [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/solutions/day16.rs:132:15 [INFO] [stderr] | [INFO] [stderr] 132 | expected: &Vec, [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/solutions/day16.rs:140:23 [INFO] [stderr] | [INFO] [stderr] 140 | fn reg_copy(original: &Vec) -> Vec { [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/solutions/day16.rs:144:18 [INFO] [stderr] | [INFO] [stderr] 144 | fn addr(command: &Vec, regs: &mut Vec) { [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/solutions/day16.rs:147:18 [INFO] [stderr] | [INFO] [stderr] 147 | fn addi(command: &Vec, regs: &mut Vec) { [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/solutions/day16.rs:151:18 [INFO] [stderr] | [INFO] [stderr] 151 | fn mulr(command: &Vec, regs: &mut Vec) { [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: length comparison to zero [INFO] [stderr] --> src/solutions/day7.rs:85:15 [INFO] [stderr] | [INFO] [stderr] 85 | while pending_nodes.len() > 0 && pending_nodes.peek().unwrap().0 <= elapsed_seconds { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!pending_nodes.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/solutions/day16.rs:154:18 [INFO] [stderr] | [INFO] [stderr] 154 | fn muli(command: &Vec, regs: &mut Vec) { [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/solutions/day16.rs:158:18 [INFO] [stderr] | [INFO] [stderr] 158 | fn banr(command: &Vec, regs: &mut Vec) { [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/solutions/day16.rs:161:18 [INFO] [stderr] | [INFO] [stderr] 161 | fn bani(command: &Vec, regs: &mut Vec) { [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/solutions/day16.rs:165:18 [INFO] [stderr] | [INFO] [stderr] 165 | fn borr(command: &Vec, regs: &mut Vec) { [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 argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/solutions/day7.rs:128:20 [INFO] [stderr] | [INFO] [stderr] 128 | fn node_cost(node: &char) -> u16 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `char` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/solutions/day7.rs:133:12 [INFO] [stderr] | [INFO] [stderr] 133 | return b[0] as u16 - alpha_offset + 60; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b[0])` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/solutions/day16.rs:168:18 [INFO] [stderr] | [INFO] [stderr] 168 | fn bori(command: &Vec, regs: &mut Vec) { [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/solutions/day16.rs:172:18 [INFO] [stderr] | [INFO] [stderr] 172 | fn setr(command: &Vec, regs: &mut Vec) { [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/solutions/day16.rs:175:18 [INFO] [stderr] | [INFO] [stderr] 175 | fn seti(command: &Vec, regs: &mut Vec) { [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/solutions/day16.rs:179:18 [INFO] [stderr] | [INFO] [stderr] 179 | fn gtir(command: &Vec, regs: &mut Vec) { [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/solutions/day16.rs:186:18 [INFO] [stderr] | [INFO] [stderr] 186 | fn gtri(command: &Vec, regs: &mut Vec) { [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: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/solutions/day8.rs:15:40 [INFO] [stderr] | [INFO] [stderr] 15 | let mut tree_copy: VecDeque = data.iter().map(|x| *x).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `data.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [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/day16.rs:193:18 [INFO] [stderr] | [INFO] [stderr] 193 | fn gtrr(command: &Vec, regs: &mut Vec) { [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: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/solutions/day8.rs:20:40 [INFO] [stderr] | [INFO] [stderr] 20 | let mut tree_copy: VecDeque = data.iter().map(|x| *x).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `data.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [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/day16.rs:201:18 [INFO] [stderr] | [INFO] [stderr] 201 | fn eqir(command: &Vec, regs: &mut Vec) { [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/solutions/day16.rs:208:18 [INFO] [stderr] | [INFO] [stderr] 208 | fn eqri(command: &Vec, regs: &mut Vec) { [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/solutions/day16.rs:215:18 [INFO] [stderr] | [INFO] [stderr] 215 | fn eqrr(command: &Vec, regs: &mut Vec) { [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: called `.get().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day8.rs:60:31 [INFO] [stderr] | [INFO] [stderr] 60 | node_value += child_values.get(child_index).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `child_values[child_index]` [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: length comparison to zero [INFO] [stderr] --> src/solutions/day2.rs:66:12 [INFO] [stderr] | [INFO] [stderr] 66 | if matched_string.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!matched_string.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: taken reference of right operand [INFO] [stderr] --> src/solutions/day3.rs:40:16 [INFO] [stderr] | [INFO] [stderr] 40 | if col_val > &1 { [INFO] [stderr] | ^^^^^^^^^^-- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/solutions/day4.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | / if !guard_minutes.contains_key(&log.guard) { [INFO] [stderr] 34 | | let initial_minutes: Vec<_> = vec![0; 60]; [INFO] [stderr] 35 | | guard_minutes.insert(log.guard, initial_minutes); [INFO] [stderr] 36 | | } [INFO] [stderr] | |_________^ help: consider using: `guard_minutes.entry(log.guard)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/solutions/day4.rs:40:13 [INFO] [stderr] | [INFO] [stderr] 40 | / let mut end_time = 60; [INFO] [stderr] 41 | | if log.log_type == GuardLogType::GuardWake { [INFO] [stderr] 42 | | // Wake will always apply to current_guard [INFO] [stderr] 43 | | end_time = log.time.minute(); [INFO] [stderr] 44 | | } [INFO] [stderr] | |_____________^ help: it is more idiomatic to write: `let end_time = if log.log_type == GuardLogType::GuardWake { log.time.minute() } else { 60 };` [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/day4.rs:76:27 [INFO] [stderr] | [INFO] [stderr] 76 | let guard_array = guard_minutes.get(&guard).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&guard_minutes[&guard]` [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: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/solutions/day5.rs:7:24 [INFO] [stderr] | [INFO] [stderr] 7 | let line: Vec<_> = lines[0].as_bytes().iter().map(|x| *x).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `lines[0].as_bytes().iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/solutions/day5.rs:16:37 [INFO] [stderr] | [INFO] [stderr] 16 | let filtered_line: Vec<_> = current_string [INFO] [stderr] | _____________________________________^ [INFO] [stderr] 17 | | .iter() [INFO] [stderr] 18 | | .filter(|c| **c != b'a' + letter_idx && **c != b'A' + letter_idx) [INFO] [stderr] 19 | | .map(|x| *x) [INFO] [stderr] | |________________________^ [INFO] [stderr] | [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] 16 | let filtered_line: Vec<_> = current_string [INFO] [stderr] 17 | .iter() [INFO] [stderr] 18 | .filter(|c| **c != b'a' + letter_idx && **c != b'A' + letter_idx).cloned() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/solutions/day5.rs:48:36 [INFO] [stderr] | [INFO] [stderr] 48 | if i + 1 < cur_len && (cur_val as i16 - cur_string[i + 1] as i16).abs() == 32 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i16::from(cur_val)` [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: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/solutions/day5.rs:48:53 [INFO] [stderr] | [INFO] [stderr] 48 | if i + 1 < cur_len && (cur_val as i16 - cur_string[i + 1] as i16).abs() == 32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i16::from(cur_string[i + 1])` [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 argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/solutions/day6.rs:22:16 [INFO] [stderr] | [INFO] [stderr] 22 | fn dist_to(&self, other_x: u16, other_y: u16) -> u16 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/solutions/day6.rs:23:18 [INFO] [stderr] | [INFO] [stderr] 23 | return ((self.x as i32 - other_x as i32).abs() + (self.y as i32 - other_y as i32).abs()) [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i32::from(self.x)` [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: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/solutions/day6.rs:23:34 [INFO] [stderr] | [INFO] [stderr] 23 | return ((self.x as i32 - other_x as i32).abs() + (self.y as i32 - other_y as i32).abs()) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i32::from(other_x)` [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: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/solutions/day6.rs:23:59 [INFO] [stderr] | [INFO] [stderr] 23 | return ((self.x as i32 - other_x as i32).abs() + (self.y as i32 - other_y as i32).abs()) [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i32::from(self.y)` [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: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/solutions/day6.rs:23:75 [INFO] [stderr] | [INFO] [stderr] 23 | return ((self.x as i32 - other_x as i32).abs() + (self.y as i32 - other_y as i32).abs()) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i32::from(other_y)` [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: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/solutions/day6.rs:94:39 [INFO] [stderr] | [INFO] [stderr] 94 | set.iter().map(|(_id, d)| *d as u32).sum() [INFO] [stderr] | ^^^^^^^^^ help: try: `u32::from(*d)` [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: length comparison to zero [INFO] [stderr] --> src/solutions/day7.rs:85:15 [INFO] [stderr] | [INFO] [stderr] 85 | while pending_nodes.len() > 0 && pending_nodes.peek().unwrap().0 <= elapsed_seconds { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!pending_nodes.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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/solutions/day7.rs:128:20 [INFO] [stderr] | [INFO] [stderr] 128 | fn node_cost(node: &char) -> u16 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `char` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/solutions/day7.rs:133:12 [INFO] [stderr] | [INFO] [stderr] 133 | return b[0] as u16 - alpha_offset + 60; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b[0])` [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: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/solutions/day8.rs:15:40 [INFO] [stderr] | [INFO] [stderr] 15 | let mut tree_copy: VecDeque = data.iter().map(|x| *x).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `data.iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/solutions/day8.rs:20:40 [INFO] [stderr] | [INFO] [stderr] 20 | let mut tree_copy: VecDeque = data.iter().map(|x| *x).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `data.iter().cloned()` [INFO] [stderr] | [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 Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/solutions/day8.rs:60:31 [INFO] [stderr] | [INFO] [stderr] 60 | node_value += child_values.get(child_index).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `child_values[child_index]` [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] Finished dev [unoptimized + debuginfo] target(s) in 2.41s [INFO] running `"docker" "inspect" "7badc85ff3244328073a1c8e88be6cd24634a1baba6b3803ef9e5e3d2cac467b"` [INFO] running `"docker" "rm" "-f" "7badc85ff3244328073a1c8e88be6cd24634a1baba6b3803ef9e5e3d2cac467b"` [INFO] [stdout] 7badc85ff3244328073a1c8e88be6cd24634a1baba6b3803ef9e5e3d2cac467b