[INFO] cloning repository https://github.com/speezepearson/aoc [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/speezepearson/aoc" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fspeezepearson%2Faoc", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fspeezepearson%2Faoc'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 8745e12fe391c49398e71e20723715e9e89070ec [INFO] linting speezepearson/aoc against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fspeezepearson%2Faoc" "/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/speezepearson/aoc [INFO] finished tweaking git repo https://github.com/speezepearson/aoc [INFO] tweaked toml for git repo https://github.com/speezepearson/aoc written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/speezepearson/aoc 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/speezepearson/aoc 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] 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] ced0074212bbe668780e7c77fe81b8c31b6f6544ec90a2d071451b49c9f258e2 [INFO] running `Command { std: "docker" "start" "-a" "ced0074212bbe668780e7c77fe81b8c31b6f6544ec90a2d071451b49c9f258e2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ced0074212bbe668780e7c77fe81b8c31b6f6544ec90a2d071451b49c9f258e2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ced0074212bbe668780e7c77fe81b8c31b6f6544ec90a2d071451b49c9f258e2", kill_on_drop: false }` [INFO] [stdout] ced0074212bbe668780e7c77fe81b8c31b6f6544ec90a2d071451b49c9f258e2 [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] 2f4a2dd7f2d91c1ba7e4cd226e6e7ffacc41bdfc8839b8109ab79138c41160f1 [INFO] running `Command { std: "docker" "start" "-a" "2f4a2dd7f2d91c1ba7e4cd226e6e7ffacc41bdfc8839b8109ab79138c41160f1", kill_on_drop: false }` [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking aho-corasick v1.1.3 [INFO] [stderr] Checking regex-automata v0.4.9 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Checking num-complex v0.4.6 [INFO] [stderr] Checking num-bigint v0.4.6 [INFO] [stderr] Checking num-iter v0.1.45 [INFO] [stderr] Checking num-rational v0.4.2 [INFO] [stderr] Checking num v0.4.3 [INFO] [stderr] Checking regex v1.11.1 [INFO] [stderr] Checking aoc v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/template/main.rs:2:10 [INFO] [stdout] | [INFO] [stdout] 2 | fn parse(s: &str) -> File { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/template/main.rs:33:11 [INFO] [stdout] | [INFO] [stdout] 33 | fn part_1(data: &File) -> u64 { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/template/main.rs:37:11 [INFO] [stdout] | [INFO] [stdout] 37 | fn part_2(data: &File) -> u64 { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/template/main.rs:15:1 [INFO] [stdout] | [INFO] [stdout] 15 | mod test { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | fn part_1(data: &File) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | fn part_2(data: &File) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = note: `#[warn(clippy::items_after_test_module)]` on by default [INFO] [stdout] = help: move the items to before the test module was defined [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/2024/11/main.rs:125:16 [INFO] [stdout] | [INFO] [stdout] 125 | if n_steps % 35 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace with: `n_steps.is_multiple_of(35)` [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: unneeded `return` statement [INFO] [stdout] --> src/2024/02/main.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | return None; [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] 33 - return None; [INFO] [stdout] 33 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/2024/11/main.rs:55:1 [INFO] [stdout] | [INFO] [stdout] 55 | mod test { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | fn part_1(data: &File) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | fn part_2(data: &File) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = note: `#[warn(clippy::items_after_test_module)]` on by default [INFO] [stdout] = help: move the items to before the test module was defined [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> src/2024/10/main.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 | mod test { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | fn part_1(data: &File) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 150 | fn part_2(data: &File) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = note: `#[warn(clippy::items_after_test_module)]` on by default [INFO] [stdout] = help: move the items to before the test module was defined [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/2024/05/main.rs:90:40 [INFO] [stdout] | [INFO] [stdout] 90 | ... obeys_rule(&u, &r), [INFO] [stdout] | ^^ help: change this to: `u` [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] --> src/2024/05/main.rs:90:44 [INFO] [stdout] | [INFO] [stdout] 90 | ... obeys_rule(&u, &r), [INFO] [stdout] | ^^ help: change this to: `r` [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 `flat_map` with an identity function [INFO] [stdout] --> src/2024/10/main.rs:133:34 [INFO] [stdout] | [INFO] [stdout] 133 | ... .flat_map(|x| x) [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `flatten()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#flat_map_identity [INFO] [stdout] = note: `#[warn(clippy::flat_map_identity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/2024/10/main.rs:130:75 [INFO] [stdout] | [INFO] [stdout] 130 | ... .filter_map(|step| lookup_offset(&(i, j), &step, data)) [INFO] [stdout] | ^^^^^ help: change this to: `step` [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: unneeded `return` statement [INFO] [stdout] --> src/2024/02/main.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | return None; [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] 33 - return None; [INFO] [stdout] 33 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/2024/04/main.rs:55:20 [INFO] [stdout] | [INFO] [stdout] 55 | if !(grid[i][j] == 'A') { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `(grid[i][j] != 'A')` [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: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/2024/11/main.rs:125:16 [INFO] [stdout] | [INFO] [stdout] 125 | if n_steps % 35 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace with: `n_steps.is_multiple_of(35)` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/2024/05/main.rs:102:63 [INFO] [stdout] | [INFO] [stdout] 102 | .filter(|u| file.rules.iter().any(|r| !obeys_rule(&u, &r))); [INFO] [stdout] | ^^ help: change this to: `u` [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] --> src/2024/05/main.rs:102:67 [INFO] [stdout] | [INFO] [stdout] 102 | .filter(|u| file.rules.iter().any(|r| !obeys_rule(&u, &r))); [INFO] [stdout] | ^^ help: change this to: `r` [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] --> src/2024/04/main.rs:15:51 [INFO] [stdout] | [INFO] [stdout] 15 | start = match add_posn_in(&start, &dir, &grid) { [INFO] [stdout] | ^^^^ help: change this to: `dir` [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: unused variable: `dims` [INFO] [stdout] --> src/2024/08/main.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | let dims = (data.len(), data[0].len()); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_dims` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's values [INFO] [stdout] --> src/2024/08/main.rs:41:26 [INFO] [stdout] | [INFO] [stdout] 41 | for (_, locs) in &antenna_locs_by_freq { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] = note: `#[warn(clippy::for_kv_map)]` on by default [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 41 - for (_, locs) in &antenna_locs_by_freq { [INFO] [stdout] 41 + for locs in antenna_locs_by_freq.values() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/2024/05/main.rs:90:40 [INFO] [stdout] | [INFO] [stdout] 90 | ... obeys_rule(&u, &r), [INFO] [stdout] | ^^ help: change this to: `u` [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] --> src/2024/05/main.rs:90:44 [INFO] [stdout] | [INFO] [stdout] 90 | ... obeys_rule(&u, &r), [INFO] [stdout] | ^^ help: change this to: `r` [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] --> src/2024/05/main.rs:102:63 [INFO] [stdout] | [INFO] [stdout] 102 | .filter(|u| file.rules.iter().any(|r| !obeys_rule(&u, &r))); [INFO] [stdout] | ^^ help: change this to: `u` [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] --> src/2024/05/main.rs:102:67 [INFO] [stdout] | [INFO] [stdout] 102 | .filter(|u| file.rules.iter().any(|r| !obeys_rule(&u, &r))); [INFO] [stdout] | ^^ help: change this to: `r` [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: you seem to want to iterate on a map's values [INFO] [stdout] --> src/2024/08/main.rs:81:26 [INFO] [stdout] | [INFO] [stdout] 81 | for (_, locs) in &antenna_locs_by_freq { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 81 - for (_, locs) in &antenna_locs_by_freq { [INFO] [stdout] 81 + for locs in antenna_locs_by_freq.values() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/2024/07/main.rs:43:33 [INFO] [stdout] | [INFO] [stdout] 43 | Self::Concat => vec![lhs.to_string(), rhs.to_string()] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `[lhs.to_string(), rhs.to_string()]` [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] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/2024/01/main.rs:32:11 [INFO] [stdout] | [INFO] [stdout] 32 | )(&s) [INFO] [stdout] | ^^ help: change this to: `s` [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] --> src/2024/08/main.rs:97:43 [INFO] [stdout] | [INFO] [stdout] 97 | ... lookup_offset(&a, &(sign * i * d.0, sign * i * d.1), &data) [INFO] [stdout] | ^^ help: change this to: `a` [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: items after a test module [INFO] [stdout] --> src/2024/09/main.rs:15:1 [INFO] [stdout] | [INFO] [stdout] 15 | mod test { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | fn parse(s: &str) -> File { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 47 | type Id = u64; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 48 | type Tape = Vec>; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 49 | fn fmt_tape(tape: &Tape) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | fn frag_compact(tape: &Tape) -> Tape { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | fn checksum(tape: &Tape) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | fn part_1(data: File) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | fn part_2(data: File) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 163 | fn unpack(data: File) -> Tape { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = note: `#[warn(clippy::items_after_test_module)]` on by default [INFO] [stdout] = help: move the items to before the test module was defined [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/2024/09/main.rs:97:35 [INFO] [stdout] | [INFO] [stdout] 97 | .filter_map(|(id, mut g)| match id { [INFO] [stdout] | ___________________________________^ [INFO] [stdout] 98 | | Some(id) => Some((id, g.next().unwrap().0, g.count() + 1)), [INFO] [stdout] 99 | | None => None, [INFO] [stdout] 100 | | }) [INFO] [stdout] | |_________^ help: try: `id.map(|id| (id, g.next().unwrap().0, g.count() + 1))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `chunks_processed` is used as a loop counter [INFO] [stdout] --> src/2024/09/main.rs:112:5 [INFO] [stdout] | [INFO] [stdout] 112 | / for (_src_id, src_start, src_len) in tape [INFO] [stdout] 113 | | .iter() [INFO] [stdout] 114 | | .enumerate() [INFO] [stdout] 115 | | .chunk_by(|(_, &id)| id) [INFO] [stdout] ... | [INFO] [stdout] 122 | | .iter() [INFO] [stdout] 123 | | .rev() [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] help: consider using [INFO] [stdout] | [INFO] [stdout] 112 ~ for (chunks_processed, (_src_id, src_start, src_len)) in tape [INFO] [stdout] 113 + .iter() [INFO] [stdout] 114 + .enumerate() [INFO] [stdout] 115 + .chunk_by(|(_, &id)| id) [INFO] [stdout] 116 + .into_iter() [INFO] [stdout] 117 + .filter_map(|(id, mut g)| match id { [INFO] [stdout] 118 + Some(id) => Some((id, g.next().unwrap().0, g.count() + 1)), [INFO] [stdout] 119 + None => None, [INFO] [stdout] 120 + }) [INFO] [stdout] 121 + .collect::>() [INFO] [stdout] 122 + .iter() [INFO] [stdout] 123 + .rev().enumerate() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/2024/09/main.rs:117:35 [INFO] [stdout] | [INFO] [stdout] 117 | .filter_map(|(id, mut g)| match id { [INFO] [stdout] | ___________________________________^ [INFO] [stdout] 118 | | Some(id) => Some((id, g.next().unwrap().0, g.count() + 1)), [INFO] [stdout] 119 | | None => None, [INFO] [stdout] 120 | | }) [INFO] [stdout] | |_________^ help: try: `id.map(|id| (id, g.next().unwrap().0, g.count() + 1))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/2024/07/main.rs:43:33 [INFO] [stdout] | [INFO] [stdout] 43 | Self::Concat => vec![lhs.to_string(), rhs.to_string()] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `[lhs.to_string(), rhs.to_string()]` [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] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/template/main.rs:2:10 [INFO] [stdout] | [INFO] [stdout] 2 | fn parse(s: &str) -> File { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/template/main.rs:33:11 [INFO] [stdout] | [INFO] [stdout] 33 | fn part_1(data: &File) -> u64 { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/template/main.rs:37:11 [INFO] [stdout] | [INFO] [stdout] 37 | fn part_2(data: &File) -> u64 { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dims` [INFO] [stdout] --> src/2024/08/main.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | let dims = (data.len(), data[0].len()); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_dims` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's values [INFO] [stdout] --> src/2024/08/main.rs:41:26 [INFO] [stdout] | [INFO] [stdout] 41 | for (_, locs) in &antenna_locs_by_freq { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] = note: `#[warn(clippy::for_kv_map)]` on by default [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 41 - for (_, locs) in &antenna_locs_by_freq { [INFO] [stdout] 41 + for locs in antenna_locs_by_freq.values() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's values [INFO] [stdout] --> src/2024/08/main.rs:81:26 [INFO] [stdout] | [INFO] [stdout] 81 | for (_, locs) in &antenna_locs_by_freq { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 81 - for (_, locs) in &antenna_locs_by_freq { [INFO] [stdout] 81 + for locs in antenna_locs_by_freq.values() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/2024/08/main.rs:97:43 [INFO] [stdout] | [INFO] [stdout] 97 | ... lookup_offset(&a, &(sign * i * d.0, sign * i * d.1), &data) [INFO] [stdout] | ^^ help: change this to: `a` [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: use of `flat_map` with an identity function [INFO] [stdout] --> src/2024/10/main.rs:133:34 [INFO] [stdout] | [INFO] [stdout] 133 | ... .flat_map(|x| x) [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `flatten()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#flat_map_identity [INFO] [stdout] = note: `#[warn(clippy::flat_map_identity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/2024/10/main.rs:130:75 [INFO] [stdout] | [INFO] [stdout] 130 | ... .filter_map(|step| lookup_offset(&(i, j), &step, data)) [INFO] [stdout] | ^^^^^ help: change this to: `step` [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: constant `TESTFILE` is never used [INFO] [stdout] --> src/2024/09/main.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | const TESTFILE: &str = "src/2024/09/test.txt"; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/2024/09/main.rs:97:35 [INFO] [stdout] | [INFO] [stdout] 97 | .filter_map(|(id, mut g)| match id { [INFO] [stdout] | ___________________________________^ [INFO] [stdout] 98 | | Some(id) => Some((id, g.next().unwrap().0, g.count() + 1)), [INFO] [stdout] 99 | | None => None, [INFO] [stdout] 100 | | }) [INFO] [stdout] | |_________^ help: try: `id.map(|id| (id, g.next().unwrap().0, g.count() + 1))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `chunks_processed` is used as a loop counter [INFO] [stdout] --> src/2024/09/main.rs:112:5 [INFO] [stdout] | [INFO] [stdout] 112 | / for (_src_id, src_start, src_len) in tape [INFO] [stdout] 113 | | .iter() [INFO] [stdout] 114 | | .enumerate() [INFO] [stdout] 115 | | .chunk_by(|(_, &id)| id) [INFO] [stdout] ... | [INFO] [stdout] 122 | | .iter() [INFO] [stdout] 123 | | .rev() [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] help: consider using [INFO] [stdout] | [INFO] [stdout] 112 ~ for (chunks_processed, (_src_id, src_start, src_len)) in tape [INFO] [stdout] 113 + .iter() [INFO] [stdout] 114 + .enumerate() [INFO] [stdout] 115 + .chunk_by(|(_, &id)| id) [INFO] [stdout] 116 + .into_iter() [INFO] [stdout] 117 + .filter_map(|(id, mut g)| match id { [INFO] [stdout] 118 + Some(id) => Some((id, g.next().unwrap().0, g.count() + 1)), [INFO] [stdout] 119 + None => None, [INFO] [stdout] 120 + }) [INFO] [stdout] 121 + .collect::>() [INFO] [stdout] 122 + .iter() [INFO] [stdout] 123 + .rev().enumerate() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/2024/09/main.rs:117:35 [INFO] [stdout] | [INFO] [stdout] 117 | .filter_map(|(id, mut g)| match id { [INFO] [stdout] | ___________________________________^ [INFO] [stdout] 118 | | Some(id) => Some((id, g.next().unwrap().0, g.count() + 1)), [INFO] [stdout] 119 | | None => None, [INFO] [stdout] 120 | | }) [INFO] [stdout] | |_________^ help: try: `id.map(|id| (id, g.next().unwrap().0, g.count() + 1))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/2024/04/main.rs:55:20 [INFO] [stdout] | [INFO] [stdout] 55 | if !(grid[i][j] == 'A') { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `(grid[i][j] != 'A')` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/2024/04/main.rs:15:51 [INFO] [stdout] | [INFO] [stdout] 15 | start = match add_posn_in(&start, &dir, &grid) { [INFO] [stdout] | ^^^^ help: change this to: `dir` [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] --> src/2024/01/main.rs:32:11 [INFO] [stdout] | [INFO] [stdout] 32 | )(&s) [INFO] [stdout] | ^^ help: change this to: `s` [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] Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.56s [INFO] running `Command { std: "docker" "inspect" "2f4a2dd7f2d91c1ba7e4cd226e6e7ffacc41bdfc8839b8109ab79138c41160f1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2f4a2dd7f2d91c1ba7e4cd226e6e7ffacc41bdfc8839b8109ab79138c41160f1", kill_on_drop: false }` [INFO] [stdout] 2f4a2dd7f2d91c1ba7e4cd226e6e7ffacc41bdfc8839b8109ab79138c41160f1