[INFO] cloning repository https://github.com/qwhxm/advent_of_code_2021 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/qwhxm/advent_of_code_2021" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fqwhxm%2Fadvent_of_code_2021", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fqwhxm%2Fadvent_of_code_2021'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 444553b1fc2be75f7c4218bb3a5263218a8a8377 [INFO] linting qwhxm/advent_of_code_2021 against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fqwhxm%2Fadvent_of_code_2021" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/qwhxm/advent_of_code_2021 [INFO] finished tweaking git repo https://github.com/qwhxm/advent_of_code_2021 [INFO] tweaked toml for git repo https://github.com/qwhxm/advent_of_code_2021 written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/qwhxm/advent_of_code_2021 on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/qwhxm/advent_of_code_2021 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded streaming-stats v0.2.3 [INFO] [stderr] Downloaded grid v0.6.0 [INFO] [stderr] Downloaded approx v0.5.0 [INFO] [stderr] Downloaded simple-grid v2.1.1 [INFO] [stderr] Downloaded wide v0.7.3 [INFO] [stderr] Downloaded proc-macro2 v1.0.34 [INFO] [stderr] Downloaded simba v0.6.0 [INFO] [stderr] Downloaded parry3d-f64 v0.7.1 [INFO] [stderr] Downloaded nalgebra v0.29.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 72f8c1f5d9b8f8a7294da784e94e93e4ba26e2bacab1ada7204bc80beaf92a9a [INFO] running `Command { std: "docker" "start" "-a" "72f8c1f5d9b8f8a7294da784e94e93e4ba26e2bacab1ada7204bc80beaf92a9a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "72f8c1f5d9b8f8a7294da784e94e93e4ba26e2bacab1ada7204bc80beaf92a9a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "72f8c1f5d9b8f8a7294da784e94e93e4ba26e2bacab1ada7204bc80beaf92a9a", kill_on_drop: false }` [INFO] [stdout] 72f8c1f5d9b8f8a7294da784e94e93e4ba26e2bacab1ada7204bc80beaf92a9a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 0746df04769671a953f5305944fcbeb0fa65f243c3f0fca5ecc4a68b6e0c3f8e [INFO] running `Command { std: "docker" "start" "-a" "0746df04769671a953f5305944fcbeb0fa65f243c3f0fca5ecc4a68b6e0c3f8e", kill_on_drop: false }` [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Compiling proc-macro2 v1.0.34 [INFO] [stderr] Compiling syn v1.0.82 [INFO] [stderr] Compiling num-integer v0.1.44 [INFO] [stderr] Checking bytemuck v1.7.3 [INFO] [stderr] Compiling num-rational v0.4.0 [INFO] [stderr] Compiling paste v1.0.6 [INFO] [stderr] Checking matrixmultiply v0.3.2 [INFO] [stderr] Checking either v1.6.1 [INFO] [stderr] Checking downcast-rs v1.2.0 [INFO] [stderr] Checking no-std-compat v0.4.1 [INFO] [stderr] Checking safe_arch v0.6.0 [INFO] [stderr] Checking smallvec v1.7.0 [INFO] [stderr] Checking grid v0.6.0 [INFO] [stderr] Checking itertools v0.10.3 [INFO] [stderr] Checking simple-grid v2.1.1 [INFO] [stderr] Checking wide v0.7.3 [INFO] [stderr] Compiling quote v1.0.10 [INFO] [stderr] Checking approx v0.5.0 [INFO] [stderr] Checking num-complex v0.4.0 [INFO] [stderr] Checking streaming-stats v0.2.3 [INFO] [stderr] Checking simba v0.6.0 [INFO] [stderr] Compiling nalgebra-macros v0.1.0 [INFO] [stderr] Compiling num-derive v0.3.3 [INFO] [stderr] Checking nalgebra v0.29.0 [INFO] [stderr] Checking parry3d-f64 v0.7.1 [INFO] [stderr] Checking advent_of_code_2021 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: this expression can be written more simply using `.retain()` [INFO] [stdout] --> src/day03.rs:1055:9 [INFO] [stdout] | [INFO] [stdout] 1055 | / oxygen_generator_rating_candidates = oxygen_generator_rating_candidates [INFO] [stdout] 1056 | | .into_iter() [INFO] [stdout] 1057 | | .filter(|c| c.chars().nth(i).unwrap() == correct_bit) [INFO] [stdout] 1058 | | .collect(); [INFO] [stdout] | |______________________^ help: consider calling `.retain()` instead: `oxygen_generator_rating_candidates.retain(|c| c.chars().nth(i).unwrap() == correct_bit)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_retain [INFO] [stdout] = note: `#[warn(clippy::manual_retain)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression can be written more simply using `.retain()` [INFO] [stdout] --> src/day03.rs:1071:9 [INFO] [stdout] | [INFO] [stdout] 1071 | / co2_scrubber_rating_candidates = co2_scrubber_rating_candidates [INFO] [stdout] 1072 | | .into_iter() [INFO] [stdout] 1073 | | .filter(|c| c.chars().nth(i).unwrap() == correct_bit) [INFO] [stdout] 1074 | | .collect(); [INFO] [stdout] | |______________________^ help: consider calling `.retain()` instead: `co2_scrubber_rating_candidates.retain(|c| c.chars().nth(i).unwrap() == correct_bit)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_retain [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against true are unnecessary [INFO] [stdout] --> src/day04.rs:728:40 [INFO] [stdout] | [INFO] [stdout] 728 | if won.iter().all(|&w| w == true) { [INFO] [stdout] | ^^^^^^^^^ help: try: `w` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/day08.rs:263:14 [INFO] [stdout] | [INFO] [stdout] 263 | .or_insert_with(Vec::new) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/day10.rs:185:12 [INFO] [stdout] | [INFO] [stdout] 185 | if first_incorrect_closing_char(line) != None { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `Option::is_some()` instead: `first_incorrect_closing_char(line).is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] = note: `#[warn(clippy::partialeq_to_none)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/day11.rs:44:27 [INFO] [stdout] | [INFO] [stdout] 44 | .filter(|&(r, c)| self.0.get(r as usize, c as usize) != None) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `Option::is_some()` instead: `self.0.get(r as usize, c as usize).is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/day12.rs:61:18 [INFO] [stdout] | [INFO] [stdout] 61 | .or_insert_with(Vec::new) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/day12.rs:65:18 [INFO] [stdout] | [INFO] [stdout] 65 | .or_insert_with(Vec::new) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against true are unnecessary [INFO] [stdout] --> src/day13.rs:268:23 [INFO] [stdout] | [INFO] [stdout] 268 | .filter(|&&x| x == true) [INFO] [stdout] | ^^^^^^^^^ help: try: `x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/day19.rs:881:11 [INFO] [stdout] | [INFO] [stdout] 881 | while !(mapped_scanners.len() == beacons_per_scanner.len()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(mapped_scanners.len() != beacons_per_scanner.len())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/day19.rs:934:11 [INFO] [stdout] | [INFO] [stdout] 934 | while !(mapped_scanners.len() == beacons_per_scanner.len()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(mapped_scanners.len() != beacons_per_scanner.len())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/day20.rs:122:1 [INFO] [stdout] | [INFO] [stdout] 122 | / impl Default for Colour { [INFO] [stdout] 123 | | fn default() -> Self { [INFO] [stdout] 124 | | Colour::Dark [INFO] [stdout] 125 | | } [INFO] [stdout] 126 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 111 + #[derive(Default)] [INFO] [stdout] 112 | enum Colour { [INFO] [stdout] 113 ~ #[default] [INFO] [stdout] 114 ~ Dark, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/day20.rs:183:38 [INFO] [stdout] | [INFO] [stdout] 183 | fn enhance(&mut self, algorithm: &Vec) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 183 - fn enhance(&mut self, algorithm: &Vec) { [INFO] [stdout] 183 + fn enhance(&mut self, algorithm: &[char]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/day20.rs:194:50 [INFO] [stdout] | [INFO] [stdout] 194 | new_middle_pixels[GridIndex::new(new_c as usize, new_r as usize)] = new_colour; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `new_c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/day20.rs:194:66 [INFO] [stdout] | [INFO] [stdout] 194 | new_middle_pixels[GridIndex::new(new_c as usize, new_r as usize)] = new_colour; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `new_r` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/day21.rs:51:11 [INFO] [stdout] | [INFO] [stdout] 51 | while game_state.winner(1000) == None { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `Option::is_none()` instead: `game_state.winner(1000).is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/day24.rs:60:27 [INFO] [stdout] | [INFO] [stdout] 60 | let w12 = (z % 26) + 0; [INFO] [stdout] | ^^^^^^^^^^^^ help: consider reducing it to: `(z % 26)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] = note: `#[warn(clippy::identity_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/day24.rs:146:27 [INFO] [stdout] | [INFO] [stdout] 146 | let w12 = (z % 26) + 0; [INFO] [stdout] | ^^^^^^^^^^^^ help: consider reducing it to: `(z % 26)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression can be written more simply using `.retain()` [INFO] [stdout] --> src/day03.rs:1055:9 [INFO] [stdout] | [INFO] [stdout] 1055 | / oxygen_generator_rating_candidates = oxygen_generator_rating_candidates [INFO] [stdout] 1056 | | .into_iter() [INFO] [stdout] 1057 | | .filter(|c| c.chars().nth(i).unwrap() == correct_bit) [INFO] [stdout] 1058 | | .collect(); [INFO] [stdout] | |______________________^ help: consider calling `.retain()` instead: `oxygen_generator_rating_candidates.retain(|c| c.chars().nth(i).unwrap() == correct_bit)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_retain [INFO] [stdout] = note: `#[warn(clippy::manual_retain)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression can be written more simply using `.retain()` [INFO] [stdout] --> src/day03.rs:1071:9 [INFO] [stdout] | [INFO] [stdout] 1071 | / co2_scrubber_rating_candidates = co2_scrubber_rating_candidates [INFO] [stdout] 1072 | | .into_iter() [INFO] [stdout] 1073 | | .filter(|c| c.chars().nth(i).unwrap() == correct_bit) [INFO] [stdout] 1074 | | .collect(); [INFO] [stdout] | |______________________^ help: consider calling `.retain()` instead: `co2_scrubber_rating_candidates.retain(|c| c.chars().nth(i).unwrap() == correct_bit)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_retain [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against true are unnecessary [INFO] [stdout] --> src/day04.rs:728:40 [INFO] [stdout] | [INFO] [stdout] 728 | if won.iter().all(|&w| w == true) { [INFO] [stdout] | ^^^^^^^^^ help: try: `w` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/day08.rs:263:14 [INFO] [stdout] | [INFO] [stdout] 263 | .or_insert_with(Vec::new) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/day10.rs:185:12 [INFO] [stdout] | [INFO] [stdout] 185 | if first_incorrect_closing_char(line) != None { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `Option::is_some()` instead: `first_incorrect_closing_char(line).is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] = note: `#[warn(clippy::partialeq_to_none)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/day11.rs:44:27 [INFO] [stdout] | [INFO] [stdout] 44 | .filter(|&(r, c)| self.0.get(r as usize, c as usize) != None) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `Option::is_some()` instead: `self.0.get(r as usize, c as usize).is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/day12.rs:61:18 [INFO] [stdout] | [INFO] [stdout] 61 | .or_insert_with(Vec::new) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/day12.rs:65:18 [INFO] [stdout] | [INFO] [stdout] 65 | .or_insert_with(Vec::new) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against true are unnecessary [INFO] [stdout] --> src/day13.rs:268:23 [INFO] [stdout] | [INFO] [stdout] 268 | .filter(|&&x| x == true) [INFO] [stdout] | ^^^^^^^^^ help: try: `x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/day19.rs:881:11 [INFO] [stdout] | [INFO] [stdout] 881 | while !(mapped_scanners.len() == beacons_per_scanner.len()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(mapped_scanners.len() != beacons_per_scanner.len())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/day19.rs:934:11 [INFO] [stdout] | [INFO] [stdout] 934 | while !(mapped_scanners.len() == beacons_per_scanner.len()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(mapped_scanners.len() != beacons_per_scanner.len())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/day20.rs:122:1 [INFO] [stdout] | [INFO] [stdout] 122 | / impl Default for Colour { [INFO] [stdout] 123 | | fn default() -> Self { [INFO] [stdout] 124 | | Colour::Dark [INFO] [stdout] 125 | | } [INFO] [stdout] 126 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 111 + #[derive(Default)] [INFO] [stdout] 112 | enum Colour { [INFO] [stdout] 113 ~ #[default] [INFO] [stdout] 114 ~ Dark, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/day20.rs:183:38 [INFO] [stdout] | [INFO] [stdout] 183 | fn enhance(&mut self, algorithm: &Vec) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 183 - fn enhance(&mut self, algorithm: &Vec) { [INFO] [stdout] 183 + fn enhance(&mut self, algorithm: &[char]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/day20.rs:194:50 [INFO] [stdout] | [INFO] [stdout] 194 | new_middle_pixels[GridIndex::new(new_c as usize, new_r as usize)] = new_colour; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `new_c` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/day20.rs:194:66 [INFO] [stdout] | [INFO] [stdout] 194 | new_middle_pixels[GridIndex::new(new_c as usize, new_r as usize)] = new_colour; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `new_r` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/day21.rs:51:11 [INFO] [stdout] | [INFO] [stdout] 51 | while game_state.winner(1000) == None { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `Option::is_none()` instead: `game_state.winner(1000).is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/day24.rs:60:27 [INFO] [stdout] | [INFO] [stdout] 60 | let w12 = (z % 26) + 0; [INFO] [stdout] | ^^^^^^^^^^^^ help: consider reducing it to: `(z % 26)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] = note: `#[warn(clippy::identity_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/day24.rs:146:27 [INFO] [stdout] | [INFO] [stdout] 146 | let w12 = (z % 26) + 0; [INFO] [stdout] | ^^^^^^^^^^^^ help: consider reducing it to: `(z % 26)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 25.84s [INFO] running `Command { std: "docker" "inspect" "0746df04769671a953f5305944fcbeb0fa65f243c3f0fca5ecc4a68b6e0c3f8e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0746df04769671a953f5305944fcbeb0fa65f243c3f0fca5ecc4a68b6e0c3f8e", kill_on_drop: false }` [INFO] [stdout] 0746df04769671a953f5305944fcbeb0fa65f243c3f0fca5ecc4a68b6e0c3f8e