[INFO] cloning repository https://github.com/iamorozov/advent2024-Rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/iamorozov/advent2024-Rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fiamorozov%2Fadvent2024-Rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fiamorozov%2Fadvent2024-Rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 92fa0f6bdb0c724f0f8e7f371080498d3b29283f
[INFO] checking iamorozov/advent2024-Rust against master#642c19bfc3a5c1de985bf5d0cc8207ac9d22708a for pr-148577
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fiamorozov%2Fadvent2024-Rust" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-7-tc1/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/iamorozov/advent2024-Rust
[INFO] finished tweaking git repo https://github.com/iamorozov/advent2024-Rust
[INFO] tweaked toml for git repo https://github.com/iamorozov/advent2024-Rust written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/iamorozov/advent2024-Rust on toolchain 642c19bfc3a5c1de985bf5d0cc8207ac9d22708a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/iamorozov/advent2024-Rust 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" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded dhat v0.3.3
[INFO] [stderr]   Downloaded tinyjson v2.5.1
[INFO] [stderr]   Downloaded memoize-inner v0.4.3
[INFO] [stderr]   Downloaded sscanf v0.4.2
[INFO] [stderr]   Downloaded mintex v0.1.2
[INFO] [stderr]   Downloaded const_format v0.2.31
[INFO] [stderr]   Downloaded sscanf_macro v0.4.2
[INFO] [stderr]   Downloaded const_format_proc_macros v0.2.31
[INFO] [stderr]   Downloaded memoize v0.4.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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 94c2ec163251aa879da446aad1c8ec10a0705552fe9abc2e775c5aaa333e4e19
[INFO] running `Command { std: "docker" "start" "-a" "94c2ec163251aa879da446aad1c8ec10a0705552fe9abc2e775c5aaa333e4e19", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "94c2ec163251aa879da446aad1c8ec10a0705552fe9abc2e775c5aaa333e4e19", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "94c2ec163251aa879da446aad1c8ec10a0705552fe9abc2e775c5aaa333e4e19", kill_on_drop: false }`
[INFO] [stdout] 94c2ec163251aa879da446aad1c8ec10a0705552fe9abc2e775c5aaa333e4e19
[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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3227b9d5fd7a0b8cf7326ac4547f96daaace099344109be6774cbda665c135a4
[INFO] running `Command { std: "docker" "start" "-a" "3227b9d5fd7a0b8cf7326ac4547f96daaace099344109be6774cbda665c135a4", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.70
[INFO] [stderr]    Compiling libc v0.2.167
[INFO] [stderr]     Checking memchr v2.6.4
[INFO] [stderr]     Checking once_cell v1.19.0
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]    Compiling unicode-width v0.1.12
[INFO] [stderr]    Compiling regex-syntax v0.6.29
[INFO] [stderr]    Compiling ahash v0.7.8
[INFO] [stderr]     Checking pico-args v0.5.0
[INFO] [stderr]     Checking tinyjson v2.5.1
[INFO] [stderr]    Compiling convert_case v0.6.0
[INFO] [stderr]    Compiling quote v1.0.33
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling syn v2.0.39
[INFO] [stderr]    Compiling const_format_proc_macros v0.2.31
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]     Checking const_format v0.2.31
[INFO] [stderr]     Checking regex-automata v0.4.9
[INFO] [stderr]     Checking hashbrown v0.12.3
[INFO] [stderr]     Checking lru v0.7.8
[INFO] [stderr]    Compiling memoize-inner v0.4.3
[INFO] [stderr]     Checking regex v1.11.1
[INFO] [stderr]     Checking memoize v0.4.2
[INFO] [stderr]    Compiling sscanf_macro v0.4.2
[INFO] [stderr]     Checking sscanf v0.4.2
[INFO] [stderr]     Checking advent_of_code v0.11.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::cmp::min`
[INFO] [stdout]  --> src/bin/15.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cmp::min;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `cmp::max` and `hash::Hash`
[INFO] [stdout]  --> src/bin/22.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{cmp::max, collections::HashMap, hash::Hash};
[INFO] [stdout]   |           ^^^^^^^^                        ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]  --> src/bin/20.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use itertools::Itertools;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bin/20.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let mut maze = get_char_matrix(input);
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bin/20.rs:87:9
[INFO] [stdout]    |
[INFO] [stdout] 87 |     let mut maze = get_char_matrix(input);
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::result`
[INFO] [stdout]  --> src/bin/17.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::result;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::result`
[INFO] [stdout]  --> src/bin/17.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::result;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `result`
[INFO] [stdout]  --> src/bin/24.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, result};
[INFO] [stdout]   |                                 ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `hash::Hash`, `mem`, and `result`
[INFO] [stdout]  --> src/bin/19.rs:1:43
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{cmp::min, collections::HashSet, hash::Hash, mem, result};
[INFO] [stdout]   |                                           ^^^^^^^^^^  ^^^  ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/bin/25.rs:42:17
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn part_two(input: &str) -> Option<u32> {
[INFO] [stdout]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bin/16.rs:115:25
[INFO] [stdout]     |
[INFO] [stdout] 115 | fn shortest_paths_tiles(mut map: Vec<Vec<char>>) -> usize {
[INFO] [stdout]     |                         ----^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dir`
[INFO] [stdout]    --> src/bin/16.rs:187:19
[INFO] [stdout]     |
[INFO] [stdout] 187 |     .min_by_key(|(dir, (v, _))| *v)
[INFO] [stdout]     |                   ^^^ help: if this is intentional, prefix it with an underscore: `_dir`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/bin/25.rs:42:17
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn part_two(input: &str) -> Option<u32> {
[INFO] [stdout]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bin/17.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let mut A = sscanf::sscanf!(&lines[0], "Register A: {}", i64).unwrap();
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bin/17.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let mut B = sscanf::sscanf!(&lines[1], "Register B: {}", i64).unwrap();
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bin/17.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let mut C = sscanf::sscanf!(&lines[2], "Register C: {}", i64).unwrap();
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `hash::Hash`, `mem`, and `result`
[INFO] [stdout]  --> src/bin/19.rs:1:43
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{cmp::min, collections::HashSet, hash::Hash, mem, result};
[INFO] [stdout]   |                                           ^^^^^^^^^^  ^^^  ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]   --> src/bin/17.rs:10:13
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let mut A = sscanf::sscanf!(&lines[0], "Register A: {}", i64).unwrap();
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `a`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `B` should have a snake case name
[INFO] [stdout]   --> src/bin/17.rs:11:13
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let mut B = sscanf::sscanf!(&lines[1], "Register B: {}", i64).unwrap();
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `C` should have a snake case name
[INFO] [stdout]   --> src/bin/17.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let mut C = sscanf::sscanf!(&lines[2], "Register C: {}", i64).unwrap();
[INFO] [stdout]    |             ^ help: convert the identifier to snake case (notice the capitalization): `c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]   --> src/bin/17.rs:26:33
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn eval(program: &Vec<i64>, mut A: i64, mut B: i64, mut C: i64) -> Vec<i64> {
[INFO] [stdout]    |                                 ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `B` should have a snake case name
[INFO] [stdout]   --> src/bin/17.rs:26:45
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn eval(program: &Vec<i64>, mut A: i64, mut B: i64, mut C: i64) -> Vec<i64> {
[INFO] [stdout]    |                                             ^ help: convert the identifier to snake case: `b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `C` should have a snake case name
[INFO] [stdout]   --> src/bin/17.rs:26:57
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn eval(program: &Vec<i64>, mut A: i64, mut B: i64, mut C: i64) -> Vec<i64> {
[INFO] [stdout]    |                                                         ^ help: convert the identifier to snake case (notice the capitalization): `c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]   --> src/bin/17.rs:63:24
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn combo(operand: i64, A: i64, B: i64, C: i64) -> i64 {
[INFO] [stdout]    |                        ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `B` should have a snake case name
[INFO] [stdout]   --> src/bin/17.rs:63:32
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn combo(operand: i64, A: i64, B: i64, C: i64) -> i64 {
[INFO] [stdout]    |                                ^ help: convert the identifier to snake case: `b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `C` should have a snake case name
[INFO] [stdout]   --> src/bin/17.rs:63:40
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn combo(operand: i64, A: i64, B: i64, C: i64) -> i64 {
[INFO] [stdout]    |                                        ^ help: convert the identifier to snake case (notice the capitalization): `c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]    --> src/bin/17.rs:110:13
[INFO] [stdout]     |
[INFO] [stdout] 110 |         let A: i64 = factors.iter().enumerate().map(|(index, v)| v * 2i64.pow(3 * index as u32)).sum();
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bin/24.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |     let mut gates: HashMap<String, Gate> = input.lines().skip(p + 1)
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `wires`
[INFO] [stdout]   --> src/bin/24.rs:88:10
[INFO] [stdout]    |
[INFO] [stdout] 88 |     let (wires, gates) = get_wires_and_gates(input);
[INFO] [stdout]    |          ^^^^^ help: if this is intentional, prefix it with an underscore: `_wires`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]  --> src/bin/20.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use itertools::Itertools;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bin/20.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let mut maze = get_char_matrix(input);
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bin/20.rs:87:9
[INFO] [stdout]    |
[INFO] [stdout] 87 |     let mut maze = get_char_matrix(input);
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::min`
[INFO] [stdout]  --> src/bin/15.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cmp::min;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bin/16.rs:115:25
[INFO] [stdout]     |
[INFO] [stdout] 115 | fn shortest_paths_tiles(mut map: Vec<Vec<char>>) -> usize {
[INFO] [stdout]     |                         ----^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dir`
[INFO] [stdout]    --> src/bin/16.rs:187:19
[INFO] [stdout]     |
[INFO] [stdout] 187 |     .min_by_key(|(dir, (v, _))| *v)
[INFO] [stdout]     |                   ^^^ help: if this is intentional, prefix it with an underscore: `_dir`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bin/17.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let mut A = sscanf::sscanf!(&lines[0], "Register A: {}", i64).unwrap();
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bin/17.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let mut B = sscanf::sscanf!(&lines[1], "Register B: {}", i64).unwrap();
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bin/17.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let mut C = sscanf::sscanf!(&lines[2], "Register C: {}", i64).unwrap();
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]   --> src/bin/17.rs:10:13
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let mut A = sscanf::sscanf!(&lines[0], "Register A: {}", i64).unwrap();
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `a`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `B` should have a snake case name
[INFO] [stdout]   --> src/bin/17.rs:11:13
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let mut B = sscanf::sscanf!(&lines[1], "Register B: {}", i64).unwrap();
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `C` should have a snake case name
[INFO] [stdout]   --> src/bin/17.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let mut C = sscanf::sscanf!(&lines[2], "Register C: {}", i64).unwrap();
[INFO] [stdout]    |             ^ help: convert the identifier to snake case (notice the capitalization): `c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]   --> src/bin/17.rs:26:33
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn eval(program: &Vec<i64>, mut A: i64, mut B: i64, mut C: i64) -> Vec<i64> {
[INFO] [stdout]    |                                 ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `B` should have a snake case name
[INFO] [stdout]   --> src/bin/17.rs:26:45
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn eval(program: &Vec<i64>, mut A: i64, mut B: i64, mut C: i64) -> Vec<i64> {
[INFO] [stdout]    |                                             ^ help: convert the identifier to snake case: `b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `C` should have a snake case name
[INFO] [stdout]   --> src/bin/17.rs:26:57
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn eval(program: &Vec<i64>, mut A: i64, mut B: i64, mut C: i64) -> Vec<i64> {
[INFO] [stdout]    |                                                         ^ help: convert the identifier to snake case (notice the capitalization): `c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]   --> src/bin/17.rs:63:24
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn combo(operand: i64, A: i64, B: i64, C: i64) -> i64 {
[INFO] [stdout]    |                        ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `B` should have a snake case name
[INFO] [stdout]   --> src/bin/17.rs:63:32
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn combo(operand: i64, A: i64, B: i64, C: i64) -> i64 {
[INFO] [stdout]    |                                ^ help: convert the identifier to snake case: `b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `C` should have a snake case name
[INFO] [stdout]   --> src/bin/17.rs:63:40
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn combo(operand: i64, A: i64, B: i64, C: i64) -> i64 {
[INFO] [stdout]    |                                        ^ help: convert the identifier to snake case (notice the capitalization): `c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]    --> src/bin/17.rs:110:13
[INFO] [stdout]     |
[INFO] [stdout] 110 |         let A: i64 = factors.iter().enumerate().map(|(index, v)| v * 2i64.pow(3 * index as u32)).sum();
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/bin/18.rs:2:61
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{cmp::Ordering, collections::{BinaryHeap, HashMap, HashSet}};
[INFO] [stdout]   |                                                             ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/bin/18.rs:2:61
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{cmp::Ordering, collections::{BinaryHeap, HashMap, HashSet}};
[INFO] [stdout]   |                                                             ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `cmp::max` and `hash::Hash`
[INFO] [stdout]  --> src/bin/22.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{cmp::max, collections::HashMap, hash::Hash};
[INFO] [stdout]   |           ^^^^^^^^                        ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `result`
[INFO] [stdout]  --> src/bin/24.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, result};
[INFO] [stdout]   |                                 ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bin/24.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |     let mut gates: HashMap<String, Gate> = input.lines().skip(p + 1)
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `wires`
[INFO] [stdout]   --> src/bin/24.rs:88:10
[INFO] [stdout]    |
[INFO] [stdout] 88 |     let (wires, gates) = get_wires_and_gates(input);
[INFO] [stdout]    |          ^^^^^ help: if this is intentional, prefix it with an underscore: `_wires`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 14.41s
[INFO] running `Command { std: "docker" "inspect" "3227b9d5fd7a0b8cf7326ac4547f96daaace099344109be6774cbda665c135a4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3227b9d5fd7a0b8cf7326ac4547f96daaace099344109be6774cbda665c135a4", kill_on_drop: false }`
[INFO] [stdout] 3227b9d5fd7a0b8cf7326ac4547f96daaace099344109be6774cbda665c135a4
