[INFO] cloning repository https://github.com/tomchaplin/aoc_2024 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/tomchaplin/aoc_2024" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftomchaplin%2Faoc_2024", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftomchaplin%2Faoc_2024'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] bb385a81d04ba058ea76c2360dd9bea6b4f28c3d [INFO] linting tomchaplin/aoc_2024 against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftomchaplin%2Faoc_2024" "/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/tomchaplin/aoc_2024 [INFO] finished tweaking git repo https://github.com/tomchaplin/aoc_2024 [INFO] tweaked toml for git repo https://github.com/tomchaplin/aoc_2024 written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/tomchaplin/aoc_2024 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/tomchaplin/aoc_2024 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 counter v0.6.0 [INFO] [stderr] Downloaded rational v1.6.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] ce1d7b0b1d48386e2abdb65d6de3d08f5da18c350558b2e38b7e97af28de55f0 [INFO] running `Command { std: "docker" "start" "-a" "ce1d7b0b1d48386e2abdb65d6de3d08f5da18c350558b2e38b7e97af28de55f0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ce1d7b0b1d48386e2abdb65d6de3d08f5da18c350558b2e38b7e97af28de55f0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ce1d7b0b1d48386e2abdb65d6de3d08f5da18c350558b2e38b7e97af28de55f0", kill_on_drop: false }` [INFO] [stdout] ce1d7b0b1d48386e2abdb65d6de3d08f5da18c350558b2e38b7e97af28de55f0 [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] 0c150f61ee295ef48cffca73ff53dbbd4580648b6ea5c2e238674ee5353e7fa2 [INFO] running `Command { std: "docker" "start" "-a" "0c150f61ee295ef48cffca73ff53dbbd4580648b6ea5c2e238674ee5353e7fa2", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.89 [INFO] [stderr] Checking tuple_utils v0.4.0 [INFO] [stderr] Checking either v1.13.0 [INFO] [stderr] Checking rustc-hash v2.1.0 [INFO] [stderr] Checking rational v1.6.0 [INFO] [stderr] Checking aho-corasick v1.1.3 [INFO] [stderr] Checking counter v0.6.0 [INFO] [stderr] Checking itertools v0.13.0 [INFO] [stderr] Compiling quote v1.0.37 [INFO] [stderr] Checking regex-automata v0.4.8 [INFO] [stderr] Compiling syn v2.0.87 [INFO] [stderr] Checking regex v1.11.1 [INFO] [stderr] Compiling thiserror-impl v1.0.68 [INFO] [stderr] Checking thiserror v1.0.68 [INFO] [stderr] Checking aoc-parse v0.2.18 [INFO] [stderr] Checking aoc_2024 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: this is a decimal constant [INFO] [stdout] --> src/days/mod.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | 01 => Ok(Box::new(day01::Solution {})), [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stdout] = note: `#[warn(clippy::zero_prefixed_literal)]` on by default [INFO] [stdout] help: if you mean to use a decimal constant, remove the `0` to avoid confusion [INFO] [stdout] | [INFO] [stdout] 32 - 01 => Ok(Box::new(day01::Solution {})), [INFO] [stdout] 32 + 1 => Ok(Box::new(day01::Solution {})), [INFO] [stdout] | [INFO] [stdout] help: if you mean to use an octal constant, use `0o` [INFO] [stdout] | [INFO] [stdout] 32 | 0o1 => Ok(Box::new(day01::Solution {})), [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this is a decimal constant [INFO] [stdout] --> src/days/mod.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | 02 => Ok(Box::new(day02::Solution {})), [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stdout] help: if you mean to use a decimal constant, remove the `0` to avoid confusion [INFO] [stdout] | [INFO] [stdout] 33 - 02 => Ok(Box::new(day02::Solution {})), [INFO] [stdout] 33 + 2 => Ok(Box::new(day02::Solution {})), [INFO] [stdout] | [INFO] [stdout] help: if you mean to use an octal constant, use `0o` [INFO] [stdout] | [INFO] [stdout] 33 | 0o2 => Ok(Box::new(day02::Solution {})), [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this is a decimal constant [INFO] [stdout] --> src/days/mod.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 34 | 03 => Ok(Box::new(day03::Solution {})), [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stdout] help: if you mean to use a decimal constant, remove the `0` to avoid confusion [INFO] [stdout] | [INFO] [stdout] 34 - 03 => Ok(Box::new(day03::Solution {})), [INFO] [stdout] 34 + 3 => Ok(Box::new(day03::Solution {})), [INFO] [stdout] | [INFO] [stdout] help: if you mean to use an octal constant, use `0o` [INFO] [stdout] | [INFO] [stdout] 34 | 0o3 => Ok(Box::new(day03::Solution {})), [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this is a decimal constant [INFO] [stdout] --> src/days/mod.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 35 | 04 => Ok(Box::new(day04::Solution {})), [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stdout] help: if you mean to use a decimal constant, remove the `0` to avoid confusion [INFO] [stdout] | [INFO] [stdout] 35 - 04 => Ok(Box::new(day04::Solution {})), [INFO] [stdout] 35 + 4 => Ok(Box::new(day04::Solution {})), [INFO] [stdout] | [INFO] [stdout] help: if you mean to use an octal constant, use `0o` [INFO] [stdout] | [INFO] [stdout] 35 | 0o4 => Ok(Box::new(day04::Solution {})), [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this is a decimal constant [INFO] [stdout] --> src/days/mod.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | 05 => Ok(Box::new(day05::Solution {})), [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stdout] help: if you mean to use a decimal constant, remove the `0` to avoid confusion [INFO] [stdout] | [INFO] [stdout] 36 - 05 => Ok(Box::new(day05::Solution {})), [INFO] [stdout] 36 + 5 => Ok(Box::new(day05::Solution {})), [INFO] [stdout] | [INFO] [stdout] help: if you mean to use an octal constant, use `0o` [INFO] [stdout] | [INFO] [stdout] 36 | 0o5 => Ok(Box::new(day05::Solution {})), [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this is a decimal constant [INFO] [stdout] --> src/days/mod.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | 06 => Ok(Box::new(day06::Solution {})), [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stdout] help: if you mean to use a decimal constant, remove the `0` to avoid confusion [INFO] [stdout] | [INFO] [stdout] 37 - 06 => Ok(Box::new(day06::Solution {})), [INFO] [stdout] 37 + 6 => Ok(Box::new(day06::Solution {})), [INFO] [stdout] | [INFO] [stdout] help: if you mean to use an octal constant, use `0o` [INFO] [stdout] | [INFO] [stdout] 37 | 0o6 => Ok(Box::new(day06::Solution {})), [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this is a decimal constant [INFO] [stdout] --> src/days/mod.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 38 | 07 => Ok(Box::new(day07::Solution {})), [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stdout] help: if you mean to use a decimal constant, remove the `0` to avoid confusion [INFO] [stdout] | [INFO] [stdout] 38 - 07 => Ok(Box::new(day07::Solution {})), [INFO] [stdout] 38 + 7 => Ok(Box::new(day07::Solution {})), [INFO] [stdout] | [INFO] [stdout] help: if you mean to use an octal constant, use `0o` [INFO] [stdout] | [INFO] [stdout] 38 | 0o7 => Ok(Box::new(day07::Solution {})), [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this is a decimal constant [INFO] [stdout] --> src/days/mod.rs:39:9 [INFO] [stdout] | [INFO] [stdout] 39 | 08 => Ok(Box::new(day08::Solution {})), [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stdout] help: if you mean to use a decimal constant, remove the `0` to avoid confusion [INFO] [stdout] | [INFO] [stdout] 39 - 08 => Ok(Box::new(day08::Solution {})), [INFO] [stdout] 39 + 8 => Ok(Box::new(day08::Solution {})), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this is a decimal constant [INFO] [stdout] --> src/days/mod.rs:40:9 [INFO] [stdout] | [INFO] [stdout] 40 | 09 => Ok(Box::new(day09::Solution {})), [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stdout] help: if you mean to use a decimal constant, remove the `0` to avoid confusion [INFO] [stdout] | [INFO] [stdout] 40 - 09 => Ok(Box::new(day09::Solution {})), [INFO] [stdout] 40 + 9 => Ok(Box::new(day09::Solution {})), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this is a decimal constant [INFO] [stdout] --> src/days/mod.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | 01 => Ok(Box::new(day01::Solution {})), [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stdout] = note: `#[warn(clippy::zero_prefixed_literal)]` on by default [INFO] [stdout] help: if you mean to use a decimal constant, remove the `0` to avoid confusion [INFO] [stdout] | [INFO] [stdout] 32 - 01 => Ok(Box::new(day01::Solution {})), [INFO] [stdout] 32 + 1 => Ok(Box::new(day01::Solution {})), [INFO] [stdout] | [INFO] [stdout] help: if you mean to use an octal constant, use `0o` [INFO] [stdout] | [INFO] [stdout] 32 | 0o1 => Ok(Box::new(day01::Solution {})), [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this is a decimal constant [INFO] [stdout] --> src/days/mod.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | 02 => Ok(Box::new(day02::Solution {})), [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stdout] help: if you mean to use a decimal constant, remove the `0` to avoid confusion [INFO] [stdout] | [INFO] [stdout] 33 - 02 => Ok(Box::new(day02::Solution {})), [INFO] [stdout] 33 + 2 => Ok(Box::new(day02::Solution {})), [INFO] [stdout] | [INFO] [stdout] help: if you mean to use an octal constant, use `0o` [INFO] [stdout] | [INFO] [stdout] 33 | 0o2 => Ok(Box::new(day02::Solution {})), [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this is a decimal constant [INFO] [stdout] --> src/days/mod.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 34 | 03 => Ok(Box::new(day03::Solution {})), [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stdout] help: if you mean to use a decimal constant, remove the `0` to avoid confusion [INFO] [stdout] | [INFO] [stdout] 34 - 03 => Ok(Box::new(day03::Solution {})), [INFO] [stdout] 34 + 3 => Ok(Box::new(day03::Solution {})), [INFO] [stdout] | [INFO] [stdout] help: if you mean to use an octal constant, use `0o` [INFO] [stdout] | [INFO] [stdout] 34 | 0o3 => Ok(Box::new(day03::Solution {})), [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this is a decimal constant [INFO] [stdout] --> src/days/mod.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 35 | 04 => Ok(Box::new(day04::Solution {})), [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stdout] help: if you mean to use a decimal constant, remove the `0` to avoid confusion [INFO] [stdout] | [INFO] [stdout] 35 - 04 => Ok(Box::new(day04::Solution {})), [INFO] [stdout] 35 + 4 => Ok(Box::new(day04::Solution {})), [INFO] [stdout] | [INFO] [stdout] help: if you mean to use an octal constant, use `0o` [INFO] [stdout] | [INFO] [stdout] 35 | 0o4 => Ok(Box::new(day04::Solution {})), [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this is a decimal constant [INFO] [stdout] --> src/days/mod.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | 05 => Ok(Box::new(day05::Solution {})), [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stdout] help: if you mean to use a decimal constant, remove the `0` to avoid confusion [INFO] [stdout] | [INFO] [stdout] 36 - 05 => Ok(Box::new(day05::Solution {})), [INFO] [stdout] 36 + 5 => Ok(Box::new(day05::Solution {})), [INFO] [stdout] | [INFO] [stdout] help: if you mean to use an octal constant, use `0o` [INFO] [stdout] | [INFO] [stdout] 36 | 0o5 => Ok(Box::new(day05::Solution {})), [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this is a decimal constant [INFO] [stdout] --> src/days/mod.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | 06 => Ok(Box::new(day06::Solution {})), [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stdout] help: if you mean to use a decimal constant, remove the `0` to avoid confusion [INFO] [stdout] | [INFO] [stdout] 37 - 06 => Ok(Box::new(day06::Solution {})), [INFO] [stdout] 37 + 6 => Ok(Box::new(day06::Solution {})), [INFO] [stdout] | [INFO] [stdout] help: if you mean to use an octal constant, use `0o` [INFO] [stdout] | [INFO] [stdout] 37 | 0o6 => Ok(Box::new(day06::Solution {})), [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this is a decimal constant [INFO] [stdout] --> src/days/mod.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 38 | 07 => Ok(Box::new(day07::Solution {})), [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stdout] help: if you mean to use a decimal constant, remove the `0` to avoid confusion [INFO] [stdout] | [INFO] [stdout] 38 - 07 => Ok(Box::new(day07::Solution {})), [INFO] [stdout] 38 + 7 => Ok(Box::new(day07::Solution {})), [INFO] [stdout] | [INFO] [stdout] help: if you mean to use an octal constant, use `0o` [INFO] [stdout] | [INFO] [stdout] 38 | 0o7 => Ok(Box::new(day07::Solution {})), [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this is a decimal constant [INFO] [stdout] --> src/days/mod.rs:39:9 [INFO] [stdout] | [INFO] [stdout] 39 | 08 => Ok(Box::new(day08::Solution {})), [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stdout] help: if you mean to use a decimal constant, remove the `0` to avoid confusion [INFO] [stdout] | [INFO] [stdout] 39 - 08 => Ok(Box::new(day08::Solution {})), [INFO] [stdout] 39 + 8 => Ok(Box::new(day08::Solution {})), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this is a decimal constant [INFO] [stdout] --> src/days/mod.rs:40:9 [INFO] [stdout] | [INFO] [stdout] 40 | 09 => Ok(Box::new(day09::Solution {})), [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stdout] help: if you mean to use a decimal constant, remove the `0` to avoid confusion [INFO] [stdout] | [INFO] [stdout] 40 - 09 => Ok(Box::new(day09::Solution {})), [INFO] [stdout] 40 + 9 => Ok(Box::new(day09::Solution {})), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/days/day01.rs:37:18 [INFO] [stdout] | [INFO] [stdout] 37 | .zip(right_nums.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/91021ccc790478a1a89c003e7d32b8d155ae6aae/library/core/src/iter/traits/iterator.rs:629:11 [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] 37 - .zip(right_nums.into_iter()) [INFO] [stdout] 37 + .zip(right_nums) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/days/day04.rs:61:49 [INFO] [stdout] | [INFO] [stdout] 61 | self.check_for_string(mas0_start, dir0, &MAS) [INFO] [stdout] | ^^^^ help: change this to: `MAS` [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/days/day04.rs:62:56 [INFO] [stdout] | [INFO] [stdout] 62 | && self.check_for_string(mas1_start, dir1, &MAS) [INFO] [stdout] | ^^^^ help: change this to: `MAS` [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/days/day04.rs:79:68 [INFO] [stdout] | [INFO] [stdout] 79 | .filter(|(pos, off)| grid.check_for_string(*pos, *off, &XMAS)) [INFO] [stdout] | ^^^^^ help: change this to: `XMAS` [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: length comparison to zero [INFO] [stdout] --> src/days/day05.rs:29:8 [INFO] [stdout] | [INFO] [stdout] 29 | if numbers.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `numbers.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` 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/days/day05.rs:32:41 [INFO] [stdout] | [INFO] [stdout] 32 | let minimal_idx = rule_set.minimize(&numbers, 0); [INFO] [stdout] | ^^^^^^^^ help: change this to: `numbers` [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: unneeded `return` statement [INFO] [stdout] --> src/days/day06.rs:105:9 [INFO] [stdout] | [INFO] [stdout] 105 | return true; [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] 105 - return true; [INFO] [stdout] 105 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/days/day06.rs:146:9 [INFO] [stdout] | [INFO] [stdout] 146 | return found_loop; [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] 146 - return found_loop; [INFO] [stdout] 146 + found_loop [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `(usize, usize)` which implements the `Copy` trait [INFO] [stdout] --> src/days/day06.rs:196:48 [INFO] [stdout] | [INFO] [stdout] 196 | looping_inserts.insert(pos.clone()); [INFO] [stdout] | ^^^^^^^^^^^ help: try removing the `clone` call: `pos` [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: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/days/day07.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | a as usize * 10usize.pow(b.ilog10() + 1) + b as usize [INFO] [stdout] | ^^^^^^^^^^ help: try: `a` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/days/day07.rs:33:48 [INFO] [stdout] | [INFO] [stdout] 33 | a as usize * 10usize.pow(b.ilog10() + 1) + b as usize [INFO] [stdout] | ^^^^^^^^^^ help: try: `b` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/days/day08.rs:65:20 [INFO] [stdout] | [INFO] [stdout] 65 | positions: &'a Vec<(usize, usize)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 65 - positions: &'a Vec<(usize, usize)>, [INFO] [stdout] 65 + positions: &'a [(usize, usize)], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/days/day09.rs:30:25 [INFO] [stdout] | [INFO] [stdout] 30 | fn get_checksum(blocks: &Vec) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 30 - fn get_checksum(blocks: &Vec) -> usize { [INFO] [stdout] 30 + fn get_checksum(blocks: &[BlockDescriptor]) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `repeat().take()` can be written more concisely [INFO] [stdout] --> src/days/day09.rs:35:33 [INFO] [stdout] | [INFO] [stdout] 35 | .flat_map(|(id, count)| iter::repeat(id).take(count)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `repeat_n()` instead: `std::iter::repeat_n(id, count)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_repeat_n [INFO] [stdout] = note: `#[warn(clippy::manual_repeat_n)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/days/day09.rs:56:41 [INFO] [stdout] | [INFO] [stdout] 56 | fn find_defrag_opportunity(descriptors: &Vec) -> Option<(usize, usize)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 56 - fn find_defrag_opportunity(descriptors: &Vec) -> Option<(usize, usize)> { [INFO] [stdout] 56 + fn find_defrag_opportunity(descriptors: &[BlockDescriptor]) -> Option<(usize, usize)> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/days/day09.rs:101:12 [INFO] [stdout] | [INFO] [stdout] 101 | if !map[i].is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `map[i].is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/days/day09.rs:105:12 [INFO] [stdout] | [INFO] [stdout] 105 | if !map[j].is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `map[j].is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/days/day09.rs:94:23 [INFO] [stdout] | [INFO] [stdout] 94 | fn sort_disk_map(map: &mut Vec>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 94 - fn sort_disk_map(map: &mut Vec>) { [INFO] [stdout] 94 + fn sort_disk_map(map: &mut [Option]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `repeat().take()` can be written more concisely [INFO] [stdout] --> src/days/day09.rs:117:33 [INFO] [stdout] | [INFO] [stdout] 117 | .flat_map(|(id, count)| iter::repeat(id).take(count)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `repeat_n()` instead: `std::iter::repeat_n(id, count)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_repeat_n [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/days/day09.rs:121:25 [INFO] [stdout] | [INFO] [stdout] 121 | let ids = (0..).map(|i| Some(i)); [INFO] [stdout] | ^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Some` [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: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/days/day01.rs:37:18 [INFO] [stdout] | [INFO] [stdout] 37 | .zip(right_nums.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/91021ccc790478a1a89c003e7d32b8d155ae6aae/library/core/src/iter/traits/iterator.rs:629:11 [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] 37 - .zip(right_nums.into_iter()) [INFO] [stdout] 37 + .zip(right_nums) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/days/day11.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | if n_digits % 2 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace with: `n_digits.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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/days/day04.rs:61:49 [INFO] [stdout] | [INFO] [stdout] 61 | self.check_for_string(mas0_start, dir0, &MAS) [INFO] [stdout] | ^^^^ help: change this to: `MAS` [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/days/day04.rs:62:56 [INFO] [stdout] | [INFO] [stdout] 62 | && self.check_for_string(mas1_start, dir1, &MAS) [INFO] [stdout] | ^^^^ help: change this to: `MAS` [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/days/day04.rs:79:68 [INFO] [stdout] | [INFO] [stdout] 79 | .filter(|(pos, off)| grid.check_for_string(*pos, *off, &XMAS)) [INFO] [stdout] | ^^^^^ help: change this to: `XMAS` [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: using `clone` on type `usize` which implements the `Copy` trait [INFO] [stdout] --> src/days/day11.rs:40:16 [INFO] [stdout] | [INFO] [stdout] 40 | return cache.get(&(stone, count)).unwrap().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*cache.get(&(stone, count)).unwrap()` [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: length comparison to zero [INFO] [stdout] --> src/days/day05.rs:29:8 [INFO] [stdout] | [INFO] [stdout] 29 | if numbers.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `numbers.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` 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/days/day05.rs:32:41 [INFO] [stdout] | [INFO] [stdout] 32 | let minimal_idx = rule_set.minimize(&numbers, 0); [INFO] [stdout] | ^^^^^^^^ help: change this to: `numbers` [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 if-then-else expression returns a bool literal [INFO] [stdout] --> src/days/day12.rs:39:17 [INFO] [stdout] | [INFO] [stdout] 39 | / if other.label() != self.label() { [INFO] [stdout] 40 | | true [INFO] [stdout] 41 | | } else { [INFO] [stdout] 42 | | false [INFO] [stdout] 43 | | } [INFO] [stdout] | |_________________^ help: you can reduce it to: `other.label() != self.label()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_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/days/day12.rs:151:34 [INFO] [stdout] | [INFO] [stdout] 151 | remaining.remove(&pos); [INFO] [stdout] | ^^^^ help: change this to: `pos` [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: unneeded `return` statement [INFO] [stdout] --> src/days/day06.rs:105:9 [INFO] [stdout] | [INFO] [stdout] 105 | return true; [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] 105 - return true; [INFO] [stdout] 105 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/days/day06.rs:146:9 [INFO] [stdout] | [INFO] [stdout] 146 | return found_loop; [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] 146 - return found_loop; [INFO] [stdout] 146 + found_loop [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> src/days/day13.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | println!(""); [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] = note: `#[warn(clippy::println_empty_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> src/days/day13.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | println!(""); [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/days/day13.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | return Some(am); [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] 51 - return Some(am); [INFO] [stdout] 51 + Some(am) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `(usize, usize)` which implements the `Copy` trait [INFO] [stdout] --> src/days/day06.rs:196:48 [INFO] [stdout] | [INFO] [stdout] 196 | looping_inserts.insert(pos.clone()); [INFO] [stdout] | ^^^^^^^^^^^ help: try removing the `clone` call: `pos` [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: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/days/day07.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | a as usize * 10usize.pow(b.ilog10() + 1) + b as usize [INFO] [stdout] | ^^^^^^^^^^ help: try: `a` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/days/day07.rs:33:48 [INFO] [stdout] | [INFO] [stdout] 33 | a as usize * 10usize.pow(b.ilog10() + 1) + b as usize [INFO] [stdout] | ^^^^^^^^^^ help: try: `b` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/days/day14.rs:59:27 [INFO] [stdout] | [INFO] [stdout] 59 | fn display_robots(robots: &Vec, bounds: (isize, isize)) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 59 - fn display_robots(robots: &Vec, bounds: (isize, isize)) { [INFO] [stdout] 59 + fn display_robots(robots: &[Robot], bounds: (isize, isize)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> src/days/day14.rs:73:9 [INFO] [stdout] | [INFO] [stdout] 73 | println!(""); [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/days/day08.rs:65:20 [INFO] [stdout] | [INFO] [stdout] 65 | positions: &'a Vec<(usize, usize)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 65 - positions: &'a Vec<(usize, usize)>, [INFO] [stdout] 65 + positions: &'a [(usize, usize)], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/days/day09.rs:30:25 [INFO] [stdout] | [INFO] [stdout] 30 | fn get_checksum(blocks: &Vec) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 30 - fn get_checksum(blocks: &Vec) -> usize { [INFO] [stdout] 30 + fn get_checksum(blocks: &[BlockDescriptor]) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `repeat().take()` can be written more concisely [INFO] [stdout] --> src/days/day09.rs:35:33 [INFO] [stdout] | [INFO] [stdout] 35 | .flat_map(|(id, count)| iter::repeat(id).take(count)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `repeat_n()` instead: `std::iter::repeat_n(id, count)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_repeat_n [INFO] [stdout] = note: `#[warn(clippy::manual_repeat_n)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `writeln!` [INFO] [stdout] --> src/days/day15.rs:51:13 [INFO] [stdout] | [INFO] [stdout] 51 | writeln!(f, "")?; [INFO] [stdout] | ^^^^^^^^^^----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#writeln_empty_string [INFO] [stdout] = note: `#[warn(clippy::writeln_empty_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/days/day09.rs:56:41 [INFO] [stdout] | [INFO] [stdout] 56 | fn find_defrag_opportunity(descriptors: &Vec) -> Option<(usize, usize)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 56 - fn find_defrag_opportunity(descriptors: &Vec) -> Option<(usize, usize)> { [INFO] [stdout] 56 + fn find_defrag_opportunity(descriptors: &[BlockDescriptor]) -> Option<(usize, usize)> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/days/day15.rs:68:29 [INFO] [stdout] | [INFO] [stdout] 68 | State::Empty => return true, [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] 68 - State::Empty => return true, [INFO] [stdout] 68 + State::Empty => true, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/days/day09.rs:101:12 [INFO] [stdout] | [INFO] [stdout] 101 | if !map[i].is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `map[i].is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/days/day09.rs:105:12 [INFO] [stdout] | [INFO] [stdout] 105 | if !map[j].is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `map[j].is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/days/day09.rs:94:23 [INFO] [stdout] | [INFO] [stdout] 94 | fn sort_disk_map(map: &mut Vec>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 94 - fn sort_disk_map(map: &mut Vec>) { [INFO] [stdout] 94 + fn sort_disk_map(map: &mut [Option]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/days/day15.rs:69:28 [INFO] [stdout] | [INFO] [stdout] 69 | State::Wall => return false, [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] 69 - State::Wall => return false, [INFO] [stdout] 69 + State::Wall => false, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `repeat().take()` can be written more concisely [INFO] [stdout] --> src/days/day09.rs:117:33 [INFO] [stdout] | [INFO] [stdout] 117 | .flat_map(|(id, count)| iter::repeat(id).take(count)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `repeat_n()` instead: `std::iter::repeat_n(id, count)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_repeat_n [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/days/day09.rs:121:25 [INFO] [stdout] | [INFO] [stdout] 121 | let ids = (0..).map(|i| Some(i)); [INFO] [stdout] | ^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Some` [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: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/days/day11.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | if n_digits % 2 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace with: `n_digits.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: using `clone` on type `usize` which implements the `Copy` trait [INFO] [stdout] --> src/days/day11.rs:40:16 [INFO] [stdout] | [INFO] [stdout] 40 | return cache.get(&(stone, count)).unwrap().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*cache.get(&(stone, count)).unwrap()` [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: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/days/day16.rs:24:17 [INFO] [stdout] | [INFO] [stdout] 24 | fn to_delta(&self) -> (isize, isize) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/days/day12.rs:39:17 [INFO] [stdout] | [INFO] [stdout] 39 | / if other.label() != self.label() { [INFO] [stdout] 40 | | true [INFO] [stdout] 41 | | } else { [INFO] [stdout] 42 | | false [INFO] [stdout] 43 | | } [INFO] [stdout] | |_________________^ help: you can reduce it to: `other.label() != self.label()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/days/day16.rs:141:30 [INFO] [stdout] | [INFO] [stdout] 141 | fn advance(&mut self) -> Option<(ReindeerState, (FxHashSet>, usize))> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` 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/days/day12.rs:151:34 [INFO] [stdout] | [INFO] [stdout] 151 | remaining.remove(&pos); [INFO] [stdout] | ^^^^ help: change this to: `pos` [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: empty string literal in `println!` [INFO] [stdout] --> src/days/day13.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | println!(""); [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] = note: `#[warn(clippy::println_empty_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> src/days/day13.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | println!(""); [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/days/day13.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | return Some(am); [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] 51 - return Some(am); [INFO] [stdout] 51 + Some(am) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/days/day14.rs:59:27 [INFO] [stdout] | [INFO] [stdout] 59 | fn display_robots(robots: &Vec, bounds: (isize, isize)) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 59 - fn display_robots(robots: &Vec, bounds: (isize, isize)) { [INFO] [stdout] 59 + fn display_robots(robots: &[Robot], bounds: (isize, isize)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> src/days/day14.rs:73:9 [INFO] [stdout] | [INFO] [stdout] 73 | println!(""); [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `writeln!` [INFO] [stdout] --> src/days/day15.rs:51:13 [INFO] [stdout] | [INFO] [stdout] 51 | writeln!(f, "")?; [INFO] [stdout] | ^^^^^^^^^^----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#writeln_empty_string [INFO] [stdout] = note: `#[warn(clippy::writeln_empty_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/days/day15.rs:68:29 [INFO] [stdout] | [INFO] [stdout] 68 | State::Empty => return true, [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] 68 - State::Empty => return true, [INFO] [stdout] 68 + State::Empty => true, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/days/day15.rs:69:28 [INFO] [stdout] | [INFO] [stdout] 69 | State::Wall => return false, [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] 69 - State::Wall => return false, [INFO] [stdout] 69 + State::Wall => false, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/days/day16.rs:24:17 [INFO] [stdout] | [INFO] [stdout] 24 | fn to_delta(&self) -> (isize, isize) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/days/day16.rs:141:30 [INFO] [stdout] | [INFO] [stdout] 141 | fn advance(&mut self) -> Option<(ReindeerState, (FxHashSet>, usize))> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.53s [INFO] running `Command { std: "docker" "inspect" "0c150f61ee295ef48cffca73ff53dbbd4580648b6ea5c2e238674ee5353e7fa2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0c150f61ee295ef48cffca73ff53dbbd4580648b6ea5c2e238674ee5353e7fa2", kill_on_drop: false }` [INFO] [stdout] 0c150f61ee295ef48cffca73ff53dbbd4580648b6ea5c2e238674ee5353e7fa2