[INFO] cloning repository https://github.com/jmgimeno/aoc2016 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jmgimeno/aoc2016" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjmgimeno%2Faoc2016", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjmgimeno%2Faoc2016'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 884cf45f93d098ec74fdbd051da7b25f6e47e3b8 [INFO] linting jmgimeno/aoc2016 against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjmgimeno%2Faoc2016" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/jmgimeno/aoc2016 [INFO] finished tweaking git repo https://github.com/jmgimeno/aoc2016 [INFO] tweaked toml for git repo https://github.com/jmgimeno/aoc2016 written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/jmgimeno/aoc2016 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/jmgimeno/aoc2016 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 tinybitset v0.0.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] a3e556379c658a365c09089a58ab2885f2ff30c4afc33ee720f1c3576deb8212 [INFO] running `Command { std: "docker" "start" "-a" "a3e556379c658a365c09089a58ab2885f2ff30c4afc33ee720f1c3576deb8212", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a3e556379c658a365c09089a58ab2885f2ff30c4afc33ee720f1c3576deb8212", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a3e556379c658a365c09089a58ab2885f2ff30c4afc33ee720f1c3576deb8212", kill_on_drop: false }` [INFO] [stdout] a3e556379c658a365c09089a58ab2885f2ff30c4afc33ee720f1c3576deb8212 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] ed1b2162bfe37275a33679bb5cb7181ceb158c570acaf000756fd2e4a78d4bde [INFO] running `Command { std: "docker" "start" "-a" "ed1b2162bfe37275a33679bb5cb7181ceb158c570acaf000756fd2e4a78d4bde", kill_on_drop: false }` [INFO] [stderr] Checking common v0.1.0 (/opt/rustwide/workdir/common) [INFO] [stderr] Checking regex-automata v0.4.9 [INFO] [stderr] Compiling openssl-sys v0.9.109 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Compiling openssl v0.10.73 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Checking tokio v1.46.1 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling time-core v0.1.4 [INFO] [stderr] Checking deranged v0.4.0 [INFO] [stderr] Checking md-5 v0.10.6 [INFO] [stderr] Compiling cookie v0.18.1 [INFO] [stderr] Checking psl-types v2.0.11 [INFO] [stderr] Checking icu_normalizer v2.0.0 [INFO] [stderr] Checking tinybitset v0.0.2 [INFO] [stderr] Checking day13 v0.1.0 (/opt/rustwide/workdir/day13) [INFO] [stderr] Compiling time-macros v0.2.22 [INFO] [stderr] Checking day20 v0.1.0 (/opt/rustwide/workdir/day20) [INFO] [stderr] Checking day17 v0.1.0 (/opt/rustwide/workdir/day17) [INFO] [stderr] Checking day14 v0.1.0 (/opt/rustwide/workdir/day14) [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> day13/src/main.rs:123:9 [INFO] [stdout] | [INFO] [stdout] 123 | v.count_ones() % 2 == 0 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `v.count_ones().is_multiple_of(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking day05 v0.1.0 (/opt/rustwide/workdir/day05) [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> day13/src/main.rs:140:24 [INFO] [stdout] | [INFO] [stdout] 140 | let expected = vec![ [INFO] [stdout] | ________________________^ [INFO] [stdout] 141 | | ".#.####.##", [INFO] [stdout] 142 | | "..#..#...#", [INFO] [stdout] 143 | | "#....##...", [INFO] [stdout] ... | [INFO] [stdout] 147 | | "#...##.###", [INFO] [stdout] 148 | | ]; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] help: you can use an array directly [INFO] [stdout] | [INFO] [stdout] 140 ~ let expected = [".#.####.##", [INFO] [stdout] 141 + "..#..#...#", [INFO] [stdout] 142 + "#....##...", [INFO] [stdout] 143 + "###.#.###.", [INFO] [stdout] 144 + ".##..#..#.", [INFO] [stdout] 145 + "..##....#.", [INFO] [stdout] 146 ~ "#...##.###"]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `[u8; 16]` [INFO] [stdout] --> day14/src/main.rs:17:43 [INFO] [stdout] | [INFO] [stdout] 17 | let cache = Cache::new(salt, |buffer| stretched_hash(buffer).into()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `stretched_hash(buffer)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `[u8; 16]` [INFO] [stdout] --> day14/src/main.rs:17:43 [INFO] [stdout] | [INFO] [stdout] 17 | let cache = Cache::new(salt, |buffer| stretched_hash(buffer).into()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `stretched_hash(buffer)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day14/src/main.rs:75:48 [INFO] [stdout] | [INFO] [stdout] 75 | self.salt_buffer.extend_from_slice(&suffix.to_string().as_bytes()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `suffix.to_string().as_bytes()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> day14/src/main.rs:137:13 [INFO] [stdout] | [INFO] [stdout] 137 | / if let Some(byte) = first_triplet { [INFO] [stdout] 138 | | if self.five_in_a_row_in_next_thousand(suffix + 1, byte) { [INFO] [stdout] 139 | | return suffix; [INFO] [stdout] 140 | | } [INFO] [stdout] 141 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 137 ~ if let Some(byte) = first_triplet [INFO] [stdout] 138 ~ && self.five_in_a_row_in_next_thousand(suffix + 1, byte) { [INFO] [stdout] 139 | return suffix; [INFO] [stdout] 140 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> day14/src/main.rs:166:28 [INFO] [stdout] | [INFO] [stdout] 166 | hash = Md5::digest(&hex).to_vec(); [INFO] [stdout] | ^^^^ help: change this to: `hex` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> day14/src/main.rs:168:17 [INFO] [stdout] | [INFO] [stdout] 168 | Md5::digest(&hex).into() [INFO] [stdout] | ^^^^ help: change this to: `hex` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day14/src/main.rs:75:48 [INFO] [stdout] | [INFO] [stdout] 75 | self.salt_buffer.extend_from_slice(&suffix.to_string().as_bytes()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `suffix.to_string().as_bytes()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> day14/src/main.rs:137:13 [INFO] [stdout] | [INFO] [stdout] 137 | / if let Some(byte) = first_triplet { [INFO] [stdout] 138 | | if self.five_in_a_row_in_next_thousand(suffix + 1, byte) { [INFO] [stdout] 139 | | return suffix; [INFO] [stdout] 140 | | } [INFO] [stdout] 141 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 137 ~ if let Some(byte) = first_triplet [INFO] [stdout] 138 ~ && self.five_in_a_row_in_next_thousand(suffix + 1, byte) { [INFO] [stdout] 139 | return suffix; [INFO] [stdout] 140 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> day14/src/main.rs:166:28 [INFO] [stdout] | [INFO] [stdout] 166 | hash = Md5::digest(&hex).to_vec(); [INFO] [stdout] | ^^^^ help: change this to: `hex` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> day14/src/main.rs:168:17 [INFO] [stdout] | [INFO] [stdout] 168 | Md5::digest(&hex).into() [INFO] [stdout] | ^^^^ help: change this to: `hex` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking day25 v0.1.0 (/opt/rustwide/workdir/day25) [INFO] [stderr] Checking day06 v0.1.0 (/opt/rustwide/workdir/day06) [INFO] [stderr] Checking day19 v0.1.0 (/opt/rustwide/workdir/day19) [INFO] [stderr] Checking day18 v0.1.0 (/opt/rustwide/workdir/day18) [INFO] [stdout] warning: statics have by default a `'static` lifetime [INFO] [stdout] --> day06/src/main.rs:70:29 [INFO] [stdout] | [INFO] [stdout] 70 | static EXAMPLE_INPUT: [&'static str; 16] = [ [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking day23 v0.1.0 (/opt/rustwide/workdir/day23) [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> day18/src/main.rs:22:30 [INFO] [stdout] | [INFO] [stdout] 22 | next_row[i] = if (left == b'^' && center == b'^' && right != b'^') [INFO] [stdout] | ______________________________^ [INFO] [stdout] 23 | | || (left != b'^' && center == b'^' && right == b'^') [INFO] [stdout] | |____________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 22 - next_row[i] = if (left == b'^' && center == b'^' && right != b'^') [INFO] [stdout] 23 - || (left != b'^' && center == b'^' && right == b'^') [INFO] [stdout] 22 + next_row[i] = if !(center != b'^' || left != b'^' && right != b'^' || left == b'^' && right == b'^') [INFO] [stdout] | [INFO] [stdout] 22 - next_row[i] = if (left == b'^' && center == b'^' && right != b'^') [INFO] [stdout] 23 - || (left != b'^' && center == b'^' && right == b'^') [INFO] [stdout] 22 + next_row[i] = if (right != b'^' || left != b'^') && (right == b'^' || left == b'^') && center == b'^' [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking day09 v0.1.0 (/opt/rustwide/workdir/day09) [INFO] [stderr] Checking day03 v0.1.0 (/opt/rustwide/workdir/day03) [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> day23/src/main.rs:62:9 [INFO] [stdout] | [INFO] [stdout] 62 | Int(String), [INFO] [stdout] | --- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 62 - Int(String), [INFO] [stdout] 62 + Int(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> day23/src/main.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 63 | Custom(String), [INFO] [stdout] | ------ ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 63 - Custom(String), [INFO] [stdout] 63 + Custom(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> day25/src/main.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 38 | Int(String), [INFO] [stdout] | --- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 38 - Int(String), [INFO] [stdout] 38 + Int(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> day25/src/main.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 39 | Custom(String), [INFO] [stdout] | ------ ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 39 - Custom(String), [INFO] [stdout] 39 + Custom(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking day01 v0.1.0 (/opt/rustwide/workdir/day01) [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> day13/src/main.rs:123:9 [INFO] [stdout] | [INFO] [stdout] 123 | v.count_ones() % 2 == 0 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `v.count_ones().is_multiple_of(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking day16 v0.1.0 (/opt/rustwide/workdir/day16) [INFO] [stderr] Checking day02 v0.1.0 (/opt/rustwide/workdir/day02) [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> day09/src/main.rs:19:17 [INFO] [stdout] | [INFO] [stdout] 19 | part(input, |r| part2_bytes(r) ) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `part2_bytes` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day03/src/main.rs:17:47 [INFO] [stdout] | [INFO] [stdout] 17 | let transposed = transpose_group_of_three(&input); [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `buffer` [INFO] [stdout] --> day16/src/main.rs:27:18 [INFO] [stdout] | [INFO] [stdout] 27 | for i in 0..window_size { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 27 - for i in 0..window_size { [INFO] [stdout] 27 + for in buffer.iter_mut().take(window_size) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking day07 v0.1.0 (/opt/rustwide/workdir/day07) [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> day16/src/main.rs:92:11 [INFO] [stdout] | [INFO] [stdout] 92 | while length % 2 == 0 && length > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace with: `length.is_multiple_of(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> day23/src/main.rs:62:9 [INFO] [stdout] | [INFO] [stdout] 62 | Int(String), [INFO] [stdout] | --- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 62 - Int(String), [INFO] [stdout] 62 + Int(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> day23/src/main.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 63 | Custom(String), [INFO] [stdout] | ------ ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 63 - Custom(String), [INFO] [stdout] 63 + Custom(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking day12 v0.1.0 (/opt/rustwide/workdir/day12) [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> day25/src/main.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 38 | Int(String), [INFO] [stdout] | --- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 38 - Int(String), [INFO] [stdout] 38 + Int(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> day25/src/main.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 39 | Custom(String), [INFO] [stdout] | ------ ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 39 - Custom(String), [INFO] [stdout] 39 + Custom(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking idna v1.0.3 [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day02/src/main.rs:30:44 [INFO] [stdout] | [INFO] [stdout] 30 | Keypad(KEYPAD1.to_vec()).bathroom_code(&instructions) [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `instructions` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day02/src/main.rs:34:44 [INFO] [stdout] | [INFO] [stdout] 34 | Keypad(KEYPAD2.to_vec()).bathroom_code(&instructions) [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `instructions` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking day24 v0.1.0 (/opt/rustwide/workdir/day24) [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> day01/src/main.rs:118:1 [INFO] [stdout] | [INFO] [stdout] 118 | / impl Default for Direction { [INFO] [stdout] 119 | | fn default() -> Self { [INFO] [stdout] 120 | | Direction::North [INFO] [stdout] 121 | | } [INFO] [stdout] 122 | | } [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 Direction { [INFO] [stdout] 113 ~ #[default] [INFO] [stdout] 114 ~ North, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> day12/src/main.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | Int(ParseIntError), [INFO] [stdout] | --- ^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 41 - Int(ParseIntError), [INFO] [stdout] 41 + Int(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> day12/src/main.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 42 | Custom(String), [INFO] [stdout] | ------ ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 42 - Custom(String), [INFO] [stdout] 42 + Custom(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> day18/src/main.rs:22:30 [INFO] [stdout] | [INFO] [stdout] 22 | next_row[i] = if (left == b'^' && center == b'^' && right != b'^') [INFO] [stdout] | ______________________________^ [INFO] [stdout] 23 | | || (left != b'^' && center == b'^' && right == b'^') [INFO] [stdout] | |____________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 22 - next_row[i] = if (left == b'^' && center == b'^' && right != b'^') [INFO] [stdout] 23 - || (left != b'^' && center == b'^' && right == b'^') [INFO] [stdout] 22 + next_row[i] = if !(center != b'^' || left != b'^' && right != b'^' || left == b'^' && right == b'^') [INFO] [stdout] | [INFO] [stdout] 22 - next_row[i] = if (left == b'^' && center == b'^' && right != b'^') [INFO] [stdout] 23 - || (left != b'^' && center == b'^' && right == b'^') [INFO] [stdout] 22 + next_row[i] = if (right != b'^' || left != b'^') && (right == b'^' || left == b'^') && center == b'^' [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `buffer` [INFO] [stdout] --> day16/src/main.rs:27:18 [INFO] [stdout] | [INFO] [stdout] 27 | for i in 0..window_size { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 27 - for i in 0..window_size { [INFO] [stdout] 27 + for in buffer.iter_mut().take(window_size) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> day01/src/main.rs:118:1 [INFO] [stdout] | [INFO] [stdout] 118 | / impl Default for Direction { [INFO] [stdout] 119 | | fn default() -> Self { [INFO] [stdout] 120 | | Direction::North [INFO] [stdout] 121 | | } [INFO] [stdout] 122 | | } [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 Direction { [INFO] [stdout] 113 ~ #[default] [INFO] [stdout] 114 ~ North, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> day16/src/main.rs:92:11 [INFO] [stdout] | [INFO] [stdout] 92 | while length % 2 == 0 && length > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace with: `length.is_multiple_of(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> day24/src/main.rs:38:20 [INFO] [stdout] | [INFO] [stdout] 38 | if c.is_digit(10) { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `c.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] = note: `#[warn(clippy::is_digit_ascii_radix)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Position` which implements the `Copy` trait [INFO] [stdout] --> day24/src/main.rs:62:29 [INFO] [stdout] | [INFO] [stdout] 62 | queue.push_back((0, from.clone())); [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*from` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Position` which implements the `Copy` trait [INFO] [stdout] --> day24/src/main.rs:64:24 [INFO] [stdout] | [INFO] [stdout] 64 | visited.insert(from.clone()); [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*from` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Position` which implements the `Copy` trait [INFO] [stdout] --> day24/src/main.rs:70:36 [INFO] [stdout] | [INFO] [stdout] 70 | visited.insert(neighbor.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `neighbor` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day24/src/main.rs:90:70 [INFO] [stdout] | [INFO] [stdout] 90 | let distance = self.min_distance(&self.locations[&start], &self.locations[&next]); [INFO] [stdout] | ^^^^^^ help: change this to: `start` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day24/src/main.rs:90:95 [INFO] [stdout] | [INFO] [stdout] 90 | let distance = self.min_distance(&self.locations[&start], &self.locations[&next]); [INFO] [stdout] | ^^^^^ help: change this to: `next` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day24/src/main.rs:101:55 [INFO] [stdout] | [INFO] [stdout] 101 | self.min_distance(&self.locations[&start], &self.locations[&0]) [INFO] [stdout] | ^^^^^^ help: change this to: `start` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day02/src/main.rs:30:44 [INFO] [stdout] | [INFO] [stdout] 30 | Keypad(KEYPAD1.to_vec()).bathroom_code(&instructions) [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `instructions` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day02/src/main.rs:34:44 [INFO] [stdout] | [INFO] [stdout] 34 | Keypad(KEYPAD2.to_vec()).bathroom_code(&instructions) [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `instructions` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> day24/src/main.rs:38:20 [INFO] [stdout] | [INFO] [stdout] 38 | if c.is_digit(10) { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `c.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] = note: `#[warn(clippy::is_digit_ascii_radix)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> day09/src/main.rs:19:17 [INFO] [stdout] | [INFO] [stdout] 19 | part(input, |r| part2_bytes(r) ) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `part2_bytes` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Position` which implements the `Copy` trait [INFO] [stdout] --> day24/src/main.rs:62:29 [INFO] [stdout] | [INFO] [stdout] 62 | queue.push_back((0, from.clone())); [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*from` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Position` which implements the `Copy` trait [INFO] [stdout] --> day24/src/main.rs:64:24 [INFO] [stdout] | [INFO] [stdout] 64 | visited.insert(from.clone()); [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*from` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Position` which implements the `Copy` trait [INFO] [stdout] --> day24/src/main.rs:70:36 [INFO] [stdout] | [INFO] [stdout] 70 | visited.insert(neighbor.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `neighbor` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day24/src/main.rs:90:70 [INFO] [stdout] | [INFO] [stdout] 90 | let distance = self.min_distance(&self.locations[&start], &self.locations[&next]); [INFO] [stdout] | ^^^^^^ help: change this to: `start` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day24/src/main.rs:90:95 [INFO] [stdout] | [INFO] [stdout] 90 | let distance = self.min_distance(&self.locations[&start], &self.locations[&next]); [INFO] [stdout] | ^^^^^ help: change this to: `next` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day24/src/main.rs:101:55 [INFO] [stdout] | [INFO] [stdout] 101 | self.min_distance(&self.locations[&start], &self.locations[&0]) [INFO] [stdout] | ^^^^^^ help: change this to: `start` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> day03/src/main.rs:17:47 [INFO] [stdout] | [INFO] [stdout] 17 | let transposed = transpose_group_of_three(&input); [INFO] [stdout] | ^^^^^^ help: change this to: `input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Checking publicsuffix v2.3.0 [INFO] [stderr] Checking url v2.5.4 [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> day12/src/main.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | Int(ParseIntError), [INFO] [stdout] | --- ^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 41 - Int(ParseIntError), [INFO] [stdout] 41 + Int(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> day12/src/main.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 42 | Custom(String), [INFO] [stdout] | ------ ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 42 - Custom(String), [INFO] [stdout] 42 + Custom(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking time v0.3.41 [INFO] [stderr] Checking regex v1.11.1 [INFO] [stderr] Checking day10 v0.1.0 (/opt/rustwide/workdir/day10) [INFO] [stderr] Checking day08 v0.1.0 (/opt/rustwide/workdir/day08) [INFO] [stderr] Checking day04 v0.1.0 (/opt/rustwide/workdir/day04) [INFO] [stderr] Checking day21 v0.1.0 (/opt/rustwide/workdir/day21) [INFO] [stderr] Checking day11 v0.1.0 (/opt/rustwide/workdir/day11) [INFO] [stderr] Checking day15 v0.1.0 (/opt/rustwide/workdir/day15) [INFO] [stderr] Checking day22 v0.1.0 (/opt/rustwide/workdir/day22) [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> day08/src/main.rs:49:13 [INFO] [stdout] | [INFO] [stdout] 49 | return Ok(Rect { width, height }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 49 - return Ok(Rect { width, height }); [INFO] [stdout] 49 + Ok(Rect { width, height }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> day08/src/main.rs:53:13 [INFO] [stdout] | [INFO] [stdout] 53 | return Ok(RotateRow { y, by }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 53 - return Ok(RotateRow { y, by }); [INFO] [stdout] 53 + Ok(RotateRow { y, by }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> day08/src/main.rs:57:13 [INFO] [stdout] | [INFO] [stdout] 57 | return Ok(RotateColumn { x, by }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 57 - return Ok(RotateColumn { x, by }); [INFO] [stdout] 57 + Ok(RotateColumn { x, by }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> day08/src/main.rs:59:13 [INFO] [stdout] | [INFO] [stdout] 59 | return Err("Invalid operation".to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 59 - return Err("Invalid operation".to_string()); [INFO] [stdout] 59 + Err("Invalid operation".to_string()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> day15/src/main.rs:47:16 [INFO] [stdout] | [INFO] [stdout] 47 | RegexError(regex::Error), [INFO] [stdout] | ---------- ^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `DiskParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 47 - RegexError(regex::Error), [INFO] [stdout] 47 + RegexError(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> day15/src/main.rs:48:14 [INFO] [stdout] | [INFO] [stdout] 48 | IntError(std::num::ParseIntError), [INFO] [stdout] | -------- ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `DiskParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 48 - IntError(std::num::ParseIntError), [INFO] [stdout] 48 + IntError(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Configuration` which implements the `Copy` trait [INFO] [stdout] --> day11/src/main.rs:16:21 [INFO] [stdout] | [INFO] [stdout] 16 | let mut part2 = PART1.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*PART1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: compiling a regex in a loop [INFO] [stdout] --> day11/src/main.rs:198:31 [INFO] [stdout] | [INFO] [stdout] 198 | let microchip_regex = regex::Regex::new(r"(\w+)-compatible microchip").unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: move the regex construction outside this loop [INFO] [stdout] --> day11/src/main.rs:197:5 [INFO] [stdout] | [INFO] [stdout] 197 | for (i, line) in input.iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_creation_in_loops [INFO] [stdout] = note: `#[warn(clippy::regex_creation_in_loops)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: compiling a regex in a loop [INFO] [stdout] --> day11/src/main.rs:199:31 [INFO] [stdout] | [INFO] [stdout] 199 | let generator_regex = regex::Regex::new(r"(\w+) generator").unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: move the regex construction outside this loop [INFO] [stdout] --> day11/src/main.rs:197:5 [INFO] [stdout] | [INFO] [stdout] 197 | for (i, line) in input.iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_creation_in_loops [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> day10/src/main.rs:33:22 [INFO] [stdout] | [INFO] [stdout] 33 | queue.extend(next.into_iter()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/collect.rs:416:17 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 33 - queue.extend(next.into_iter()); [INFO] [stdout] 33 + queue.extend(next); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> day21/src/main.rs:154:17 [INFO] [stdout] | [INFO] [stdout] 154 | InvalidLine(String), [INFO] [stdout] | ----------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ParseOperationError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 154 - InvalidLine(String), [INFO] [stdout] 154 + InvalidLine(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> day08/src/main.rs:49:13 [INFO] [stdout] | [INFO] [stdout] 49 | return Ok(Rect { width, height }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 49 - return Ok(Rect { width, height }); [INFO] [stdout] 49 + Ok(Rect { width, height }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> day08/src/main.rs:53:13 [INFO] [stdout] | [INFO] [stdout] 53 | return Ok(RotateRow { y, by }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 53 - return Ok(RotateRow { y, by }); [INFO] [stdout] 53 + Ok(RotateRow { y, by }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> day08/src/main.rs:57:13 [INFO] [stdout] | [INFO] [stdout] 57 | return Ok(RotateColumn { x, by }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 57 - return Ok(RotateColumn { x, by }); [INFO] [stdout] 57 + Ok(RotateColumn { x, by }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> day08/src/main.rs:59:13 [INFO] [stdout] | [INFO] [stdout] 59 | return Err("Invalid operation".to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 59 - return Err("Invalid operation".to_string()); [INFO] [stdout] 59 + Err("Invalid operation".to_string()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> day10/src/main.rs:33:22 [INFO] [stdout] | [INFO] [stdout] 33 | queue.extend(next.into_iter()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/collect.rs:416:17 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 33 - queue.extend(next.into_iter()); [INFO] [stdout] 33 + queue.extend(next); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> day15/src/main.rs:47:16 [INFO] [stdout] | [INFO] [stdout] 47 | RegexError(regex::Error), [INFO] [stdout] | ---------- ^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `DiskParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 47 - RegexError(regex::Error), [INFO] [stdout] 47 + RegexError(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> day15/src/main.rs:48:14 [INFO] [stdout] | [INFO] [stdout] 48 | IntError(std::num::ParseIntError), [INFO] [stdout] | -------- ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `DiskParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 48 - IntError(std::num::ParseIntError), [INFO] [stdout] 48 + IntError(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `operations` [INFO] [stdout] --> day21/src/main.rs:335:13 [INFO] [stdout] | [INFO] [stdout] 335 | let operations = invert(&OPERATIONS); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_operations` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> day21/src/main.rs:154:17 [INFO] [stdout] | [INFO] [stdout] 154 | InvalidLine(String), [INFO] [stdout] | ----------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ParseOperationError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 154 - InvalidLine(String), [INFO] [stdout] 154 + InvalidLine(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Configuration` which implements the `Copy` trait [INFO] [stdout] --> day11/src/main.rs:16:21 [INFO] [stdout] | [INFO] [stdout] 16 | let mut part2 = PART1.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*PART1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: compiling a regex in a loop [INFO] [stdout] --> day11/src/main.rs:198:31 [INFO] [stdout] | [INFO] [stdout] 198 | let microchip_regex = regex::Regex::new(r"(\w+)-compatible microchip").unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: move the regex construction outside this loop [INFO] [stdout] --> day11/src/main.rs:197:5 [INFO] [stdout] | [INFO] [stdout] 197 | for (i, line) in input.iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_creation_in_loops [INFO] [stdout] = note: `#[warn(clippy::regex_creation_in_loops)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: compiling a regex in a loop [INFO] [stdout] --> day11/src/main.rs:199:31 [INFO] [stdout] | [INFO] [stdout] 199 | let generator_regex = regex::Regex::new(r"(\w+) generator").unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: move the regex construction outside this loop [INFO] [stdout] --> day11/src/main.rs:197:5 [INFO] [stdout] | [INFO] [stdout] 197 | for (i, line) in input.iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_creation_in_loops [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking tokio-util v0.7.15 [INFO] [stderr] Checking tower v0.5.2 [INFO] [stderr] Checking tower-http v0.6.6 [INFO] [stderr] Checking serde_json v1.0.140 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking h2 v0.4.11 [INFO] [stderr] Checking cookie_store v0.21.1 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking hyper v1.6.0 [INFO] [stderr] Checking hyper-util v0.1.15 [INFO] [stderr] Checking hyper-tls v0.6.0 [INFO] [stderr] Checking reqwest v0.12.22 [INFO] [stderr] Checking downloader v0.1.0 (/opt/rustwide/workdir/downloader) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 22.36s [INFO] running `Command { std: "docker" "inspect" "ed1b2162bfe37275a33679bb5cb7181ceb158c570acaf000756fd2e4a78d4bde", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ed1b2162bfe37275a33679bb5cb7181ceb158c570acaf000756fd2e4a78d4bde", kill_on_drop: false }` [INFO] [stdout] ed1b2162bfe37275a33679bb5cb7181ceb158c570acaf000756fd2e4a78d4bde