[INFO] cloning repository https://github.com/Kezahh/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/Kezahh/AOC_2024" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKezahh%2FAOC_2024", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKezahh%2FAOC_2024'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 9fc770487dfc23c2c909274c9cc4ae01b492eb86
[INFO] testing Kezahh/AOC_2024 against 1.94.0 for beta-1.95-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKezahh%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/Kezahh/AOC_2024
[INFO] finished tweaking git repo https://github.com/Kezahh/AOC_2024
[INFO] tweaked toml for git repo https://github.com/Kezahh/AOC_2024 written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Kezahh/AOC_2024 on toolchain 1.94.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.94.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Kezahh/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" "+1.94.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[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" "+1.94.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e704cdc1cdd3d2b188ae381ef3e1bb3c23d756e4309e2d120ecd13480ab5648c
[INFO] running `Command { std: "docker" "start" "-a" "e704cdc1cdd3d2b188ae381ef3e1bb3c23d756e4309e2d120ecd13480ab5648c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e704cdc1cdd3d2b188ae381ef3e1bb3c23d756e4309e2d120ecd13480ab5648c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e704cdc1cdd3d2b188ae381ef3e1bb3c23d756e4309e2d120ecd13480ab5648c", kill_on_drop: false }`
[INFO] [stdout] e704cdc1cdd3d2b188ae381ef3e1bb3c23d756e4309e2d120ecd13480ab5648c
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+1.94.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] adf7ee252dddd779af32fa736a95d035e60b10b21e3556b8d84d9f5d52c715ce
[INFO] running `Command { std: "docker" "start" "-a" "adf7ee252dddd779af32fa736a95d035e60b10b21e3556b8d84d9f5d52c715ce", kill_on_drop: false }`
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]    Compiling AOC_2024 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/day_4.rs:147:20
[INFO] [stdout]     |
[INFO] [stdout] 147 |                 if (row < XMAS_LENGTH - 1) {
[INFO] [stdout]     |                    ^                     ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 147 -                 if (row < XMAS_LENGTH - 1) {
[INFO] [stdout] 147 +                 if row < XMAS_LENGTH - 1  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/day_4.rs:152:20
[INFO] [stdout]     |
[INFO] [stdout] 152 |                 if (row + XMAS_LENGTH > self.row_count()) {
[INFO] [stdout]     |                    ^                                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 152 -                 if (row + XMAS_LENGTH > self.row_count()) {
[INFO] [stdout] 152 +                 if row + XMAS_LENGTH > self.row_count()  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/day_4.rs:157:20
[INFO] [stdout]     |
[INFO] [stdout] 157 |                 if (col < XMAS_LENGTH - 1) {
[INFO] [stdout]     |                    ^                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 157 -                 if (col < XMAS_LENGTH - 1) {
[INFO] [stdout] 157 +                 if col < XMAS_LENGTH - 1  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/day_4.rs:162:20
[INFO] [stdout]     |
[INFO] [stdout] 162 |                 if (col + XMAS_LENGTH > self.col_count()) {
[INFO] [stdout]     |                    ^                                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 162 -                 if (col + XMAS_LENGTH > self.col_count()) {
[INFO] [stdout] 162 +                 if col + XMAS_LENGTH > self.col_count()  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/day_6.rs:352:20
[INFO] [stdout]     |
[INFO] [stdout] 352 |                 if (guard_on_map) {
[INFO] [stdout]     |                    ^            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 352 -                 if (guard_on_map) {
[INFO] [stdout] 352 +                 if guard_on_map  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]    --> src/day_6.rs:357:26
[INFO] [stdout]     |
[INFO] [stdout] 357 |                 for r in (row..(row + new_distance + 1)) {
[INFO] [stdout]     |                          ^                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 357 -                 for r in (row..(row + new_distance + 1)) {
[INFO] [stdout] 357 +                 for r in row..(row + new_distance + 1)  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/day_6.rs:361:20
[INFO] [stdout]     |
[INFO] [stdout] 361 |                 if (guard_on_map) {
[INFO] [stdout]     |                    ^            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 361 -                 if (guard_on_map) {
[INFO] [stdout] 361 +                 if guard_on_map  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]    --> src/day_6.rs:366:26
[INFO] [stdout]     |
[INFO] [stdout] 366 |                 for c in ((col - new_distance)..col) {
[INFO] [stdout]     |                          ^                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 366 -                 for c in ((col - new_distance)..col) {
[INFO] [stdout] 366 +                 for c in (col - new_distance)..col  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/day_6.rs:370:20
[INFO] [stdout]     |
[INFO] [stdout] 370 |                 if (guard_on_map) {
[INFO] [stdout]     |                    ^            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 370 -                 if (guard_on_map) {
[INFO] [stdout] 370 +                 if guard_on_map  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]    --> src/day_6.rs:375:26
[INFO] [stdout]     |
[INFO] [stdout] 375 |                 for c in (col..(col + new_distance + 1)) {
[INFO] [stdout]     |                          ^                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 375 -                 for c in (col..(col + new_distance + 1)) {
[INFO] [stdout] 375 +                 for c in col..(col + new_distance + 1)  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/day_6.rs:379:20
[INFO] [stdout]     |
[INFO] [stdout] 379 |                 if (guard_on_map) {
[INFO] [stdout]     |                    ^            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 379 -                 if (guard_on_map) {
[INFO] [stdout] 379 +                 if guard_on_map  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]    --> src/day_6.rs:459:34
[INFO] [stdout]     |
[INFO] [stdout] 459 |                         for r in (row..(row + new_distance + 1)) {
[INFO] [stdout]     |                                  ^                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 459 -                         for r in (row..(row + new_distance + 1)) {
[INFO] [stdout] 459 +                         for r in row..(row + new_distance + 1)  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]    --> src/day_6.rs:466:34
[INFO] [stdout]     |
[INFO] [stdout] 466 |                         for c in ((col - new_distance)..col) {
[INFO] [stdout]     |                                  ^                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 466 -                         for c in ((col - new_distance)..col) {
[INFO] [stdout] 466 +                         for c in (col - new_distance)..col  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]    --> src/day_6.rs:473:34
[INFO] [stdout]     |
[INFO] [stdout] 473 |                         for c in (col..(col + new_distance + 1)) {
[INFO] [stdout]     |                                  ^                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 473 -                         for c in (col..(col + new_distance + 1)) {
[INFO] [stdout] 473 +                         for c in col..(col + new_distance + 1)  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::num`
[INFO] [stdout]  --> src/day_7.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use core::num;
[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::rev`
[INFO] [stdout]  --> src/day_9.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use itertools::rev;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/day_9.rs:147:22
[INFO] [stdout]     |
[INFO] [stdout] 147 |         final_sum += (x * i);
[INFO] [stdout]     |                      ^     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 147 -         final_sum += (x * i);
[INFO] [stdout] 147 +         final_sum += x * i ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/day_9.rs:159:28
[INFO] [stdout]     |
[INFO] [stdout] 159 |     let max_index: usize = (original.len() / 2);
[INFO] [stdout]     |                            ^                  ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 159 -     let max_index: usize = (original.len() / 2);
[INFO] [stdout] 159 +     let max_index: usize = original.len() / 2 ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Direction`
[INFO] [stdout]  --> src/day_14.rs:6:32
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::generic::{Position, Direction};
[INFO] [stdout]   |                                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/day_14.rs:52:28
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let mid_width: usize = (width / 2);
[INFO] [stdout]    |                            ^         ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 52 -     let mid_width: usize = (width / 2);
[INFO] [stdout] 52 +     let mid_width: usize = width / 2 ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/day_14.rs:53:29
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let mid_height: usize = (height / 2);
[INFO] [stdout]    |                             ^          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 53 -     let mid_height: usize = (height / 2);
[INFO] [stdout] 53 +     let mid_height: usize = height / 2 ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]    --> src/day_14.rs:100:15
[INFO] [stdout]     |
[INFO] [stdout] 100 |         while (!found_tree) {
[INFO] [stdout]     |               ^           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 100 -         while (!found_tree) {
[INFO] [stdout] 100 +         while !found_tree  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::all`
[INFO] [stdout]  --> src/day_16.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use itertools::all;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::btree_map::Values`
[INFO] [stdout]  --> src/day_17.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::{collections::btree_map::Values, ops::BitXor};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/day_17.rs:152:119
[INFO] [stdout]     |
[INFO] [stdout] 152 | fn do_program(program: Vec<usize>, register_a: &mut i64, register_b: &mut i64, register_c: &mut i64, part_2: bool) -> (String) {
[INFO] [stdout]     |                                                                                                                       ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 152 - fn do_program(program: Vec<usize>, register_a: &mut i64, register_b: &mut i64, register_c: &mut i64, part_2: bool) -> (String) {
[INFO] [stdout] 152 + fn do_program(program: Vec<usize>, register_a: &mut i64, register_b: &mut i64, register_c: &mut i64, part_2: bool) -> String  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/day_22.rs:3:34
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::{collections::{HashMap, HashSet}, ops::BitXor};
[INFO] [stdout]   |                                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `all`
[INFO] [stdout]  --> src/day_24.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 | use itertools::{all, Itertools};
[INFO] [stdout]   |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/day_24.rs:404:12
[INFO] [stdout]     |
[INFO] [stdout] 404 |         if (g.inputs[0] == inputs[0] && g.inputs[1] == inputs[1] || g.inputs[1] == inputs[0] && g.inputs[0] == inputs[1]) {
[INFO] [stdout]     |            ^                                                                                                            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 404 -         if (g.inputs[0] == inputs[0] && g.inputs[1] == inputs[1] || g.inputs[1] == inputs[0] && g.inputs[0] == inputs[1]) {
[INFO] [stdout] 404 +         if g.inputs[0] == inputs[0] && g.inputs[1] == inputs[1] || g.inputs[1] == inputs[0] && g.inputs[0] == inputs[1]  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `return` value
[INFO] [stdout]    --> src/day_24.rs:412:12
[INFO] [stdout]     |
[INFO] [stdout] 412 |     return (gate.gate_type == GateType::XOR && (
[INFO] [stdout]     |            ^
[INFO] [stdout] ...
[INFO] [stdout] 415 |     ));
[INFO] [stdout]     |      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 412 ~     return gate.gate_type == GateType::XOR && (
[INFO] [stdout] 413 |         (gate.inputs[0].starts_with("x") && gate.inputs[1].starts_with("y")) ||
[INFO] [stdout] 414 |         (gate.inputs[1].starts_with("x") && gate.inputs[0].starts_with("y"))
[INFO] [stdout] 415 ~     ) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::all`
[INFO] [stdout]  --> src/day_25.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use itertools::all;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Itertools`
[INFO] [stdout]  --> src/day_12.rs:5:25
[INFO] [stdout]   |
[INFO] [stdout] 5 | use itertools::{sorted, Itertools};
[INFO] [stdout]   |                         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error_msg`
[INFO] [stdout]   --> src/generic.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let error_msg = format!("unable to write to file {}", output_filename);
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_error_msg`
[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/generic.rs:114:13
[INFO] [stdout]     |
[INFO] [stdout] 114 |         let mut row: i32 = self.row as i32;
[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/generic.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 115 |         let mut col: i32 = self.col as i32;
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row`
[INFO] [stdout]    --> src/generic.rs:114:13
[INFO] [stdout]     |
[INFO] [stdout] 114 |         let mut row: i32 = self.row as i32;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `col`
[INFO] [stdout]    --> src/generic.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 115 |         let mut col: i32 = self.col as i32;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day_2.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let mut increases_1_problem: bool = false;
[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/day_2.rs:58:13
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let mut decreases_1_problem: bool = false;
[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/day_2.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let mut difference_1_problem: bool = false;
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `difference_1_problem`
[INFO] [stdout]   --> src/day_2.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let mut difference_1_problem: bool = false;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_difference_1_problem`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day_4.rs:109:13
[INFO] [stdout]     |
[INFO] [stdout] 109 |         let mut temp_sum: usize = 0;
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `temp_sum`
[INFO] [stdout]    --> src/day_4.rs:109:13
[INFO] [stdout]     |
[INFO] [stdout] 109 |         let mut temp_sum: usize = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_temp_sum`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row`
[INFO] [stdout]    --> src/day_4.rs:246:9
[INFO] [stdout]     |
[INFO] [stdout] 246 |     let mut row: usize;
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `col`
[INFO] [stdout]    --> src/day_4.rs:247:9
[INFO] [stdout]     |
[INFO] [stdout] 247 |     let mut col: usize;
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `good_productions_sum` is assigned to, but never used
[INFO] [stdout]   --> src/day_5.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |     let mut good_productions_sum = 0;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_good_productions_sum` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rule_result`
[INFO] [stdout]   --> src/day_5.rs:76:17
[INFO] [stdout]    |
[INFO] [stdout] 76 |             let rule_result: OrderingRuleResult = p.check_rule(r);
[INFO] [stdout]    |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rule_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `good_productions_sum` is never read
[INFO] [stdout]   --> src/day_5.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 85 |             good_productions_sum += 1;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `return_bool` is never read
[INFO] [stdout]    --> src/day_6.rs:178:37
[INFO] [stdout]     |
[INFO] [stdout] 178 |         let mut return_bool: bool = false;
[INFO] [stdout]     |                                     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day_6.rs:193:13
[INFO] [stdout]     |
[INFO] [stdout] 193 |         let mut path = self.get_path_to_obstacle_from_position(&start_position, &direction.rotate_90_CW());
[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/day_6.rs:214:13
[INFO] [stdout]     |
[INFO] [stdout] 214 |         let mut path = self.get_path_to_obstacle_from_position(&offset_position, &direction.reverse());
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `total_distance` is assigned to, but never used
[INFO] [stdout]    --> src/day_6.rs:331:9
[INFO] [stdout]     |
[INFO] [stdout] 331 |     let mut total_distance: usize = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_total_distance` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `total_distance` is never read
[INFO] [stdout]    --> src/day_6.rs:345:9
[INFO] [stdout]     |
[INFO] [stdout] 345 |         total_distance += new_distance;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `new_distance` is never read
[INFO] [stdout]    --> src/day_6.rs:335:35
[INFO] [stdout]     |
[INFO] [stdout] 335 |     let mut new_distance: usize = 0;
[INFO] [stdout]     |                                   ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `print_char` is never read
[INFO] [stdout]    --> src/day_6.rs:497:26
[INFO] [stdout]     |
[INFO] [stdout] 497 |     let mut print_char = '.';
[INFO] [stdout]     |                          ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `number_combinations`
[INFO] [stdout]   --> src/day_7.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |         let mut number_combinations: Vec<i64>;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_number_combinations`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]   --> src/day_8.rs:40:10
[INFO] [stdout]    |
[INFO] [stdout] 40 |     for (k, v) in antennas.iter() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/day_9.rs:110:106
[INFO] [stdout]     |
[INFO] [stdout] 110 | ...ter(|(i, x)| i % 2 != 0).map(|(i, x)| *x).collect::<Vec<usize>>();
[INFO] [stdout]     |                                   ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/day_9.rs:110:84
[INFO] [stdout]     |
[INFO] [stdout] 110 | ...iter().enumerate().filter(|(i, x)| i % 2 != 0).map(|(i, x)| *x).collect::<Vec<usize>>();
[INFO] [stdout]     |                                   ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/day_9.rs:109:106
[INFO] [stdout]     |
[INFO] [stdout] 109 | ...ter(|(i, x)| i % 2 == 0).map(|(i, x)| *x).collect::<Vec<usize>>();
[INFO] [stdout]     |                                   ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/day_9.rs:109:84
[INFO] [stdout]     |
[INFO] [stdout] 109 | ...iter().enumerate().filter(|(i, x)| i % 2 == 0).map(|(i, x)| *x).collect::<Vec<usize>>();
[INFO] [stdout]     |                                   ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day_9.rs:135:9
[INFO] [stdout]     |
[INFO] [stdout] 135 |     let mut disk_map: DiskMap = DiskMap::from(input_lines[0].clone());
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `final_sum` is assigned to, but never used
[INFO] [stdout]    --> src/day_9.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 142 |     let mut final_sum: usize = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_final_sum` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `all_spaces_sum`
[INFO] [stdout]    --> src/day_9.rs:158:9
[INFO] [stdout]     |
[INFO] [stdout] 158 |     let all_spaces_sum: usize = original.iter().sum::<usize>();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_all_spaces_sum`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]    --> src/day_9.rs:168:13
[INFO] [stdout]     |
[INFO] [stdout] 168 |         for j in 0..original[2 * i] {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]    --> src/day_9.rs:176:13
[INFO] [stdout]     |
[INFO] [stdout] 176 |         for j in 0..original[(2*i) +1] {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/day_9.rs:241:17
[INFO] [stdout]     |
[INFO] [stdout] 241 |             for y in 0..x.file_size {
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `final_sum` is never read
[INFO] [stdout]    --> src/day_9.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 147 |         final_sum += (x * i);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day_10.rs:79:13
[INFO] [stdout]    |
[INFO] [stdout] 79 |         let mut row: i32 = p.row as i32;
[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/day_10.rs:80:13
[INFO] [stdout]    |
[INFO] [stdout] 80 |         let mut col: i32 = p.col as i32;
[INFO] [stdout]    |             ----^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row`
[INFO] [stdout]   --> src/day_10.rs:79:13
[INFO] [stdout]    |
[INFO] [stdout] 79 |         let mut row: i32 = p.row as i32;
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `col`
[INFO] [stdout]   --> src/day_10.rs:80:13
[INFO] [stdout]    |
[INFO] [stdout] 80 |         let mut col: i32 = p.col as i32;
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day_10.rs:113:9
[INFO] [stdout]     |
[INFO] [stdout] 113 |     let mut trail_map: TrailMap = TrailMap::from(input_lines);
[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/day_11.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let mut stones: Vec<usize> = input_lines[0].split(" ").map(|x| x.parse::<usize>().unwrap()).collect::<Vec<usize>>();
[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/day_11.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let mut new_stones: Vec<usize> = Vec::new();
[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/day_11.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let mut previous_stones: HashMap<usize, Vec<usize>> = HashMap::new();
[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/day_11.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |     let mut previous_stones_by_5: HashMap<usize, Vec<usize>> = HashMap::new();
[INFO] [stdout]    |         ----^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_stones`
[INFO] [stdout]   --> src/day_11.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let mut new_stones: Vec<usize> = Vec::new();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_stones`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `previous_stones`
[INFO] [stdout]   --> src/day_11.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let mut previous_stones: HashMap<usize, Vec<usize>> = HashMap::new();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_previous_stones`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `previous_stones_by_5`
[INFO] [stdout]   --> src/day_11.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |     let mut previous_stones_by_5: HashMap<usize, Vec<usize>> = HashMap::new();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_previous_stones_by_5`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day_11.rs:52:13
[INFO] [stdout]    |
[INFO] [stdout] 52 |         let mut new_stone: usize;
[INFO] [stdout]    |             ----^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `return_length` is never read
[INFO] [stdout]   --> src/day_11.rs:41:36
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let mut return_length: usize = 0;
[INFO] [stdout]    |                                    ^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day_11.rs:105:17
[INFO] [stdout]     |
[INFO] [stdout] 105 |             let mut new_stone: usize;
[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/day_12.rs:137:13
[INFO] [stdout]     |
[INFO] [stdout] 137 |         let mut row: i32 = p.row as i32;
[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/day_12.rs:138:13
[INFO] [stdout]     |
[INFO] [stdout] 138 |         let mut col: i32 = p.col as i32;
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row`
[INFO] [stdout]    --> src/day_12.rs:137:13
[INFO] [stdout]     |
[INFO] [stdout] 137 |         let mut row: i32 = p.row as i32;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `col`
[INFO] [stdout]    --> src/day_12.rs:138:13
[INFO] [stdout]     |
[INFO] [stdout] 138 |         let mut col: i32 = p.col as i32;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/day_13.rs:112:10
[INFO] [stdout]     |
[INFO] [stdout] 112 |     for (i, m) in machines.iter().enumerate() {
[INFO] [stdout]     |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `steps`
[INFO] [stdout]   --> src/day_14.rs:42:31
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn walk_modify(&mut self, steps: usize, max_width: usize, max_height: usize) {
[INFO] [stdout]    |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_steps`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day_14.rs:57:13
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let mut robot_end_positions: Vec<Position> = robots.iter().map(|x| x.walk(100, width, height)).collect::<Vec<Position>>();
[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/day_15.rs:38:13
[INFO] [stdout]    |
[INFO] [stdout] 38 |         let mut char_count: usize;
[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/day_15.rs:101:18
[INFO] [stdout]     |
[INFO] [stdout] 101 |             let (mut next_position, next_tile) = neighbour.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/day_15.rs:151:13
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let mut possible_to_push: Vec<bool> = Vec::new();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `possible_to_push`
[INFO] [stdout]    --> src/day_15.rs:151:13
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let mut possible_to_push: Vec<bool> = Vec::new();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_possible_to_push`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day_16.rs:317:9
[INFO] [stdout]     |
[INFO] [stdout] 317 |     let mut tile_map: TileMap = TileMap::new(input_lines);
[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/day_16.rs:358:17
[INFO] [stdout]     |
[INFO] [stdout] 358 |             let mut b: Position = block_sites[block_index];
[INFO] [stdout]     |                 ----^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/day_16.rs:330:9
[INFO] [stdout]     |
[INFO] [stdout] 330 |     for i in 0..2 {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/day_16.rs:371:17
[INFO] [stdout]     |
[INFO] [stdout] 371 |             for i in 0..20 {
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `register_c`
[INFO] [stdout]   --> src/day_17.rs:42:77
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn run(&self, value: usize, register_a: &mut i64, register_b: &mut i64, register_c: &mut i64) -> Option<usize> {
[INFO] [stdout]    |                                                                             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_register_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `total_loops`
[INFO] [stdout]    --> src/day_17.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let total_loops: usize = 29000000 - 3518400;
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_total_loops`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day_17.rs:156:9
[INFO] [stdout]     |
[INFO] [stdout] 156 |     let mut output_matches: Vec<bool> = Vec::new();
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `part_2`
[INFO] [stdout]    --> src/day_17.rs:152:102
[INFO] [stdout]     |
[INFO] [stdout] 152 | fn do_program(program: Vec<usize>, register_a: &mut i64, register_b: &mut i64, register_c: &mut i64, part_2: bool) -> (String) {
[INFO] [stdout]     |                                                                                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_part_2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `instruction_count` is assigned to, but never used
[INFO] [stdout]    --> src/day_17.rs:155:9
[INFO] [stdout]     |
[INFO] [stdout] 155 |     let mut instruction_count: usize = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_instruction_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output_matches`
[INFO] [stdout]    --> src/day_17.rs:156:9
[INFO] [stdout]     |
[INFO] [stdout] 156 |     let mut output_matches: Vec<bool> = Vec::new();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_matches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `instruction_count` is never read
[INFO] [stdout]    --> src/day_17.rs:159:9
[INFO] [stdout]     |
[INFO] [stdout] 159 |         instruction_count += 1;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `free_points`
[INFO] [stdout]   --> src/day_18.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let free_points: Vec<Position> = all_points_hash.difference(&corrupt_points_hash).copied().collect_vec();
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_free_points`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `neighbour_is_edge`
[INFO] [stdout]    --> src/day_20.rs:180:17
[INFO] [stdout]     |
[INFO] [stdout] 180 |             let neighbour_is_edge: bool = n.row ==0 || n.row == self.row_count() - 1 || n.col == 0 || n.col == self.col_count() - 1;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_neighbour_is_edge`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `base_time`
[INFO] [stdout]    --> src/day_20.rs:205:10
[INFO] [stdout]     |
[INFO] [stdout] 205 |     let (base_time, base_path): (usize, Vec<Position>) = map.djikstra(&walls).unwrap();
[INFO] [stdout]     |          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_base_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `base_path_hash`
[INFO] [stdout]    --> src/day_20.rs:206:9
[INFO] [stdout]     |
[INFO] [stdout] 206 |     let base_path_hash: HashSet<Position> = HashSet::from_iter(base_path.clone());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_base_path_hash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `codes`
[INFO] [stdout]    --> src/day_21.rs:145:22
[INFO] [stdout]     |
[INFO] [stdout] 145 | fn code_combinations(codes: &Vec<Vec<String>>, ) {
[INFO] [stdout]     |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_codes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day_24.rs:155:13
[INFO] [stdout]     |
[INFO] [stdout] 155 |         let mut loop_count: usize = 0;
[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/day_24.rs:231:13
[INFO] [stdout]     |
[INFO] [stdout] 231 |         let mut xy_XOR_gates: Vec<&Gate> = xy_gates.iter().cloned().filter(|x| x.gate_type == GateType::XOR).collect::<Vec<&Gate>>();
[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/day_24.rs:232:13
[INFO] [stdout]     |
[INFO] [stdout] 232 |         let mut xy_AND_gates: Vec<&Gate> = xy_gates.iter().cloned().filter(|x| x.gate_type == GateType::AND).collect::<Vec<&Gate>>();
[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/day_24.rs:306:13
[INFO] [stdout]     |
[INFO] [stdout] 306 | ...   let mut available_indices: Vec<usize> = (0..all_gates.len()).filter(|x| !target_outputs_indices.contains(x)).collect::<Vec<us...
[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/day_24.rs:312:17
[INFO] [stdout]     |
[INFO] [stdout] 312 |             let mut attempt_indices = target_outputs_indices.clone();
[INFO] [stdout]     |                 ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `z_gate`
[INFO] [stdout]    --> src/day_24.rs:126:13
[INFO] [stdout]     |
[INFO] [stdout] 126 |         for z_gate in z_gates.iter() {
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_z_gate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `loop_count`
[INFO] [stdout]    --> src/day_24.rs:155:13
[INFO] [stdout]     |
[INFO] [stdout] 155 |         let mut loop_count: usize = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loop_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `g`
[INFO] [stdout]    --> src/day_24.rs:182:13
[INFO] [stdout]     |
[INFO] [stdout] 182 |         for g in processed_gates {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day_24.rs:461:9
[INFO] [stdout]     |
[INFO] [stdout] 461 |     let mut gate_count: usize = all_gates.len() * 2;
[INFO] [stdout]     |         ----^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `count` is assigned to, but never used
[INFO] [stdout]    --> src/day_24.rs:458:9
[INFO] [stdout]     |
[INFO] [stdout] 458 |     let mut count: usize = 0;
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `count` is never read
[INFO] [stdout]    --> src/day_24.rs:471:9
[INFO] [stdout]     |
[INFO] [stdout] 471 |         count += 1;
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `part_2`
[INFO] [stdout]   --> src/day_25.rs:33:41
[INFO] [stdout]    |
[INFO] [stdout] 33 | fn solve_puzzle(input_filename: String, part_2: bool) -> usize {
[INFO] [stdout]    |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_part_2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/generic.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     writeln!(&mut f, "{}", output_data);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let _ = writeln!(&mut f, "{}", output_data);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `X` should have a snake case name
[INFO] [stdout]   --> src/day_5.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     X: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Y` should have a snake case name
[INFO] [stdout]   --> src/day_5.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     Y: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case (notice the capitalization): `y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `rotate_90_CW` should have a snake case name
[INFO] [stdout]   --> src/day_6.rs:97:8
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn rotate_90_CW(&self) -> Self {
[INFO] [stdout]    |        ^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `rotate_90_cw`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `rotate_90_CCW` should have a snake case name
[INFO] [stdout]    --> src/day_6.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn rotate_90_CCW(&self) -> Self {
[INFO] [stdout]     |        ^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `rotate_90_ccw`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_CW_guard_position` should have a snake case name
[INFO] [stdout]    --> src/day_6.rs:191:8
[INFO] [stdout]     |
[INFO] [stdout] 191 |     fn get_CW_guard_position(&self, start_position: &Position, direction: &Direction) -> Option<Position> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `get_cw_guard_position`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_CCW_guard_position` should have a snake case name
[INFO] [stdout]    --> src/day_6.rs:205:8
[INFO] [stdout]     |
[INFO] [stdout] 205 |     fn get_CCW_guard_position(&self, start_position: &Position, direction: &Direction) -> Option<Position> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `get_ccw_guard_position`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `xy_XOR_gates` should have a snake case name
[INFO] [stdout]    --> src/day_24.rs:231:17
[INFO] [stdout]     |
[INFO] [stdout] 231 |         let mut xy_XOR_gates: Vec<&Gate> = xy_gates.iter().cloned().filter(|x| x.gate_type == GateType::XOR).collect::<Vec<&Gate>>();
[INFO] [stdout]     |                 ^^^^^^^^^^^^ help: convert the identifier to snake case: `xy_xor_gates`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `xy_AND_gates` should have a snake case name
[INFO] [stdout]    --> src/day_24.rs:232:17
[INFO] [stdout]     |
[INFO] [stdout] 232 |         let mut xy_AND_gates: Vec<&Gate> = xy_gates.iter().cloned().filter(|x| x.gate_type == GateType::AND).collect::<Vec<&Gate>>();
[INFO] [stdout]     |                 ^^^^^^^^^^^^ help: convert the identifier to snake case: `xy_and_gates`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `xy_XOR_gates_outputs` should have a snake case name
[INFO] [stdout]    --> src/day_24.rs:234:13
[INFO] [stdout]     |
[INFO] [stdout] 234 |         let xy_XOR_gates_outputs: Vec<String> = xy_XOR_gates.iter().map(|x| x.output.clone()).collect::<Vec<String>>();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `xy_xor_gates_outputs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.55s
[INFO] running `Command { std: "docker" "inspect" "adf7ee252dddd779af32fa736a95d035e60b10b21e3556b8d84d9f5d52c715ce", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "adf7ee252dddd779af32fa736a95d035e60b10b21e3556b8d84d9f5d52c715ce", kill_on_drop: false }`
[INFO] [stdout] adf7ee252dddd779af32fa736a95d035e60b10b21e3556b8d84d9f5d52c715ce
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+1.94.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 10d2e615dcba9c435cf37e49cc6340c03573f539a87ebdf49151b27f965221ca
[INFO] running `Command { std: "docker" "start" "-a" "10d2e615dcba9c435cf37e49cc6340c03573f539a87ebdf49151b27f965221ca", kill_on_drop: false }`
[INFO] [stderr]    Compiling AOC_2024 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/day_4.rs:147:20
[INFO] [stdout]     |
[INFO] [stdout] 147 |                 if (row < XMAS_LENGTH - 1) {
[INFO] [stdout]     |                    ^                     ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 147 -                 if (row < XMAS_LENGTH - 1) {
[INFO] [stdout] 147 +                 if row < XMAS_LENGTH - 1  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/day_4.rs:152:20
[INFO] [stdout]     |
[INFO] [stdout] 152 |                 if (row + XMAS_LENGTH > self.row_count()) {
[INFO] [stdout]     |                    ^                                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 152 -                 if (row + XMAS_LENGTH > self.row_count()) {
[INFO] [stdout] 152 +                 if row + XMAS_LENGTH > self.row_count()  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/day_4.rs:157:20
[INFO] [stdout]     |
[INFO] [stdout] 157 |                 if (col < XMAS_LENGTH - 1) {
[INFO] [stdout]     |                    ^                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 157 -                 if (col < XMAS_LENGTH - 1) {
[INFO] [stdout] 157 +                 if col < XMAS_LENGTH - 1  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/day_4.rs:162:20
[INFO] [stdout]     |
[INFO] [stdout] 162 |                 if (col + XMAS_LENGTH > self.col_count()) {
[INFO] [stdout]     |                    ^                                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 162 -                 if (col + XMAS_LENGTH > self.col_count()) {
[INFO] [stdout] 162 +                 if col + XMAS_LENGTH > self.col_count()  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/day_6.rs:352:20
[INFO] [stdout]     |
[INFO] [stdout] 352 |                 if (guard_on_map) {
[INFO] [stdout]     |                    ^            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 352 -                 if (guard_on_map) {
[INFO] [stdout] 352 +                 if guard_on_map  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]    --> src/day_6.rs:357:26
[INFO] [stdout]     |
[INFO] [stdout] 357 |                 for r in (row..(row + new_distance + 1)) {
[INFO] [stdout]     |                          ^                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 357 -                 for r in (row..(row + new_distance + 1)) {
[INFO] [stdout] 357 +                 for r in row..(row + new_distance + 1)  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/day_6.rs:361:20
[INFO] [stdout]     |
[INFO] [stdout] 361 |                 if (guard_on_map) {
[INFO] [stdout]     |                    ^            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 361 -                 if (guard_on_map) {
[INFO] [stdout] 361 +                 if guard_on_map  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]    --> src/day_6.rs:366:26
[INFO] [stdout]     |
[INFO] [stdout] 366 |                 for c in ((col - new_distance)..col) {
[INFO] [stdout]     |                          ^                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 366 -                 for c in ((col - new_distance)..col) {
[INFO] [stdout] 366 +                 for c in (col - new_distance)..col  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/day_6.rs:370:20
[INFO] [stdout]     |
[INFO] [stdout] 370 |                 if (guard_on_map) {
[INFO] [stdout]     |                    ^            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 370 -                 if (guard_on_map) {
[INFO] [stdout] 370 +                 if guard_on_map  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]    --> src/day_6.rs:375:26
[INFO] [stdout]     |
[INFO] [stdout] 375 |                 for c in (col..(col + new_distance + 1)) {
[INFO] [stdout]     |                          ^                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 375 -                 for c in (col..(col + new_distance + 1)) {
[INFO] [stdout] 375 +                 for c in col..(col + new_distance + 1)  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/day_6.rs:379:20
[INFO] [stdout]     |
[INFO] [stdout] 379 |                 if (guard_on_map) {
[INFO] [stdout]     |                    ^            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 379 -                 if (guard_on_map) {
[INFO] [stdout] 379 +                 if guard_on_map  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]    --> src/day_6.rs:459:34
[INFO] [stdout]     |
[INFO] [stdout] 459 |                         for r in (row..(row + new_distance + 1)) {
[INFO] [stdout]     |                                  ^                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 459 -                         for r in (row..(row + new_distance + 1)) {
[INFO] [stdout] 459 +                         for r in row..(row + new_distance + 1)  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]    --> src/day_6.rs:466:34
[INFO] [stdout]     |
[INFO] [stdout] 466 |                         for c in ((col - new_distance)..col) {
[INFO] [stdout]     |                                  ^                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 466 -                         for c in ((col - new_distance)..col) {
[INFO] [stdout] 466 +                         for c in (col - new_distance)..col  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]    --> src/day_6.rs:473:34
[INFO] [stdout]     |
[INFO] [stdout] 473 |                         for c in (col..(col + new_distance + 1)) {
[INFO] [stdout]     |                                  ^                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 473 -                         for c in (col..(col + new_distance + 1)) {
[INFO] [stdout] 473 +                         for c in col..(col + new_distance + 1)  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::num`
[INFO] [stdout]  --> src/day_7.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use core::num;
[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::rev`
[INFO] [stdout]  --> src/day_9.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use itertools::rev;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/day_9.rs:147:22
[INFO] [stdout]     |
[INFO] [stdout] 147 |         final_sum += (x * i);
[INFO] [stdout]     |                      ^     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 147 -         final_sum += (x * i);
[INFO] [stdout] 147 +         final_sum += x * i ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/day_9.rs:159:28
[INFO] [stdout]     |
[INFO] [stdout] 159 |     let max_index: usize = (original.len() / 2);
[INFO] [stdout]     |                            ^                  ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 159 -     let max_index: usize = (original.len() / 2);
[INFO] [stdout] 159 +     let max_index: usize = original.len() / 2 ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Direction`
[INFO] [stdout]  --> src/day_14.rs:6:32
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::generic::{Position, Direction};
[INFO] [stdout]   |                                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/day_14.rs:52:28
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let mid_width: usize = (width / 2);
[INFO] [stdout]    |                            ^         ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 52 -     let mid_width: usize = (width / 2);
[INFO] [stdout] 52 +     let mid_width: usize = width / 2 ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/day_14.rs:53:29
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let mid_height: usize = (height / 2);
[INFO] [stdout]    |                             ^          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 53 -     let mid_height: usize = (height / 2);
[INFO] [stdout] 53 +     let mid_height: usize = height / 2 ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]    --> src/day_14.rs:100:15
[INFO] [stdout]     |
[INFO] [stdout] 100 |         while (!found_tree) {
[INFO] [stdout]     |               ^           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 100 -         while (!found_tree) {
[INFO] [stdout] 100 +         while !found_tree  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]    --> src/day_14.rs:196:9
[INFO] [stdout]     |
[INFO] [stdout] 196 |     use itertools::Itertools;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::all`
[INFO] [stdout]  --> src/day_16.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use itertools::all;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::btree_map::Values`
[INFO] [stdout]  --> src/day_17.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::{collections::btree_map::Values, ops::BitXor};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/day_17.rs:152:119
[INFO] [stdout]     |
[INFO] [stdout] 152 | fn do_program(program: Vec<usize>, register_a: &mut i64, register_b: &mut i64, register_c: &mut i64, part_2: bool) -> (String) {
[INFO] [stdout]     |                                                                                                                       ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 152 - fn do_program(program: Vec<usize>, register_a: &mut i64, register_b: &mut i64, register_c: &mut i64, part_2: bool) -> (String) {
[INFO] [stdout] 152 + fn do_program(program: Vec<usize>, register_a: &mut i64, register_b: &mut i64, register_c: &mut i64, part_2: bool) -> String  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/day_22.rs:3:34
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::{collections::{HashMap, HashSet}, ops::BitXor};
[INFO] [stdout]   |                                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `all`
[INFO] [stdout]  --> src/day_24.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 | use itertools::{all, Itertools};
[INFO] [stdout]   |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/day_24.rs:404:12
[INFO] [stdout]     |
[INFO] [stdout] 404 |         if (g.inputs[0] == inputs[0] && g.inputs[1] == inputs[1] || g.inputs[1] == inputs[0] && g.inputs[0] == inputs[1]) {
[INFO] [stdout]     |            ^                                                                                                            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 404 -         if (g.inputs[0] == inputs[0] && g.inputs[1] == inputs[1] || g.inputs[1] == inputs[0] && g.inputs[0] == inputs[1]) {
[INFO] [stdout] 404 +         if g.inputs[0] == inputs[0] && g.inputs[1] == inputs[1] || g.inputs[1] == inputs[0] && g.inputs[0] == inputs[1]  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `return` value
[INFO] [stdout]    --> src/day_24.rs:412:12
[INFO] [stdout]     |
[INFO] [stdout] 412 |     return (gate.gate_type == GateType::XOR && (
[INFO] [stdout]     |            ^
[INFO] [stdout] ...
[INFO] [stdout] 415 |     ));
[INFO] [stdout]     |      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 412 ~     return gate.gate_type == GateType::XOR && (
[INFO] [stdout] 413 |         (gate.inputs[0].starts_with("x") && gate.inputs[1].starts_with("y")) ||
[INFO] [stdout] 414 |         (gate.inputs[1].starts_with("x") && gate.inputs[0].starts_with("y"))
[INFO] [stdout] 415 ~     ) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::all`
[INFO] [stdout]  --> src/day_25.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use itertools::all;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Itertools`
[INFO] [stdout]  --> src/day_12.rs:5:25
[INFO] [stdout]   |
[INFO] [stdout] 5 | use itertools::{sorted, Itertools};
[INFO] [stdout]   |                         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error_msg`
[INFO] [stdout]   --> src/generic.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let error_msg = format!("unable to write to file {}", output_filename);
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_error_msg`
[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/generic.rs:114:13
[INFO] [stdout]     |
[INFO] [stdout] 114 |         let mut row: i32 = self.row as i32;
[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/generic.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 115 |         let mut col: i32 = self.col as i32;
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row`
[INFO] [stdout]    --> src/generic.rs:114:13
[INFO] [stdout]     |
[INFO] [stdout] 114 |         let mut row: i32 = self.row as i32;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `col`
[INFO] [stdout]    --> src/generic.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 115 |         let mut col: i32 = self.col as i32;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day_2.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let mut increases_1_problem: bool = false;
[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/day_2.rs:58:13
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let mut decreases_1_problem: bool = false;
[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/day_2.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let mut difference_1_problem: bool = false;
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `difference_1_problem`
[INFO] [stdout]   --> src/day_2.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let mut difference_1_problem: bool = false;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_difference_1_problem`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day_4.rs:109:13
[INFO] [stdout]     |
[INFO] [stdout] 109 |         let mut temp_sum: usize = 0;
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `temp_sum`
[INFO] [stdout]    --> src/day_4.rs:109:13
[INFO] [stdout]     |
[INFO] [stdout] 109 |         let mut temp_sum: usize = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_temp_sum`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row`
[INFO] [stdout]    --> src/day_4.rs:246:9
[INFO] [stdout]     |
[INFO] [stdout] 246 |     let mut row: usize;
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `col`
[INFO] [stdout]    --> src/day_4.rs:247:9
[INFO] [stdout]     |
[INFO] [stdout] 247 |     let mut col: usize;
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `good_productions_sum` is assigned to, but never used
[INFO] [stdout]   --> src/day_5.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |     let mut good_productions_sum = 0;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_good_productions_sum` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rule_result`
[INFO] [stdout]   --> src/day_5.rs:76:17
[INFO] [stdout]    |
[INFO] [stdout] 76 |             let rule_result: OrderingRuleResult = p.check_rule(r);
[INFO] [stdout]    |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rule_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `good_productions_sum` is never read
[INFO] [stdout]   --> src/day_5.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 85 |             good_productions_sum += 1;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `return_bool` is never read
[INFO] [stdout]    --> src/day_6.rs:178:37
[INFO] [stdout]     |
[INFO] [stdout] 178 |         let mut return_bool: bool = false;
[INFO] [stdout]     |                                     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day_6.rs:193:13
[INFO] [stdout]     |
[INFO] [stdout] 193 |         let mut path = self.get_path_to_obstacle_from_position(&start_position, &direction.rotate_90_CW());
[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/day_6.rs:214:13
[INFO] [stdout]     |
[INFO] [stdout] 214 |         let mut path = self.get_path_to_obstacle_from_position(&offset_position, &direction.reverse());
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `total_distance` is assigned to, but never used
[INFO] [stdout]    --> src/day_6.rs:331:9
[INFO] [stdout]     |
[INFO] [stdout] 331 |     let mut total_distance: usize = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_total_distance` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `total_distance` is never read
[INFO] [stdout]    --> src/day_6.rs:345:9
[INFO] [stdout]     |
[INFO] [stdout] 345 |         total_distance += new_distance;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `new_distance` is never read
[INFO] [stdout]    --> src/day_6.rs:335:35
[INFO] [stdout]     |
[INFO] [stdout] 335 |     let mut new_distance: usize = 0;
[INFO] [stdout]     |                                   ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `print_char` is never read
[INFO] [stdout]    --> src/day_6.rs:497:26
[INFO] [stdout]     |
[INFO] [stdout] 497 |     let mut print_char = '.';
[INFO] [stdout]     |                          ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day_6.rs:542:13
[INFO] [stdout]     |
[INFO] [stdout] 542 |         let mut next_CW_guard_position: Option<Position> = tile_map.get_CW_guard_position(&start_guard_position, &Direction::Up);
[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/day_6.rs:544:13
[INFO] [stdout]     |
[INFO] [stdout] 544 | ...   let mut next_CW_guard_position: Option<Position> = tile_map.get_CW_guard_position(&next_CW_guard_position.unwrap(), &Directio...
[INFO] [stdout]     |           ----^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |           |
[INFO] [stdout]     |           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `number_combinations`
[INFO] [stdout]   --> src/day_7.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |         let mut number_combinations: Vec<i64>;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_number_combinations`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `combined_numbers`
[INFO] [stdout]    --> src/day_7.rs:283:13
[INFO] [stdout]     |
[INFO] [stdout] 283 | ...   let combined_numbers = (0..(numbers.len() - 1)).map(|x| numbers[x] * 10i64.pow(numbers[x + 1].ilog10() + 1) + numbers[x+1]).c...
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_combined_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day_7.rs:332:17
[INFO] [stdout]     |
[INFO] [stdout] 332 |             let mut quick_numbers: Vec<i64> = Vec::new();
[INFO] [stdout]     |                 ----^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `combinations`
[INFO] [stdout]    --> src/day_7.rs:330:13
[INFO] [stdout]     |
[INFO] [stdout] 330 |         let mut combinations: Vec<Vec<i64>>;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_combinations`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/day_7.rs:331:13
[INFO] [stdout]     |
[INFO] [stdout] 331 |         for i in 0..(numbers.len()) {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `quick_numbers`
[INFO] [stdout]    --> src/day_7.rs:332:17
[INFO] [stdout]     |
[INFO] [stdout] 332 |             let mut quick_numbers: Vec<i64> = Vec::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_quick_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]    --> src/day_7.rs:333:17
[INFO] [stdout]     |
[INFO] [stdout] 333 |             for j in 0..numbers.len() {
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]   --> src/day_8.rs:40:10
[INFO] [stdout]    |
[INFO] [stdout] 40 |     for (k, v) in antennas.iter() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/day_9.rs:110:106
[INFO] [stdout]     |
[INFO] [stdout] 110 | ...ter(|(i, x)| i % 2 != 0).map(|(i, x)| *x).collect::<Vec<usize>>();
[INFO] [stdout]     |                                   ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/day_9.rs:110:84
[INFO] [stdout]     |
[INFO] [stdout] 110 | ...iter().enumerate().filter(|(i, x)| i % 2 != 0).map(|(i, x)| *x).collect::<Vec<usize>>();
[INFO] [stdout]     |                                   ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/day_9.rs:109:106
[INFO] [stdout]     |
[INFO] [stdout] 109 | ...ter(|(i, x)| i % 2 == 0).map(|(i, x)| *x).collect::<Vec<usize>>();
[INFO] [stdout]     |                                   ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/day_9.rs:109:84
[INFO] [stdout]     |
[INFO] [stdout] 109 | ...iter().enumerate().filter(|(i, x)| i % 2 == 0).map(|(i, x)| *x).collect::<Vec<usize>>();
[INFO] [stdout]     |                                   ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day_9.rs:135:9
[INFO] [stdout]     |
[INFO] [stdout] 135 |     let mut disk_map: DiskMap = DiskMap::from(input_lines[0].clone());
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `final_sum` is assigned to, but never used
[INFO] [stdout]    --> src/day_9.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 142 |     let mut final_sum: usize = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_final_sum` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `all_spaces_sum`
[INFO] [stdout]    --> src/day_9.rs:158:9
[INFO] [stdout]     |
[INFO] [stdout] 158 |     let all_spaces_sum: usize = original.iter().sum::<usize>();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_all_spaces_sum`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]    --> src/day_9.rs:168:13
[INFO] [stdout]     |
[INFO] [stdout] 168 |         for j in 0..original[2 * i] {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]    --> src/day_9.rs:176:13
[INFO] [stdout]     |
[INFO] [stdout] 176 |         for j in 0..original[(2*i) +1] {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/day_9.rs:241:17
[INFO] [stdout]     |
[INFO] [stdout] 241 |             for y in 0..x.file_size {
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `final_sum` is never read
[INFO] [stdout]    --> src/day_9.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 147 |         final_sum += (x * i);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day_10.rs:79:13
[INFO] [stdout]    |
[INFO] [stdout] 79 |         let mut row: i32 = p.row as i32;
[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/day_10.rs:80:13
[INFO] [stdout]    |
[INFO] [stdout] 80 |         let mut col: i32 = p.col as i32;
[INFO] [stdout]    |             ----^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row`
[INFO] [stdout]   --> src/day_10.rs:79:13
[INFO] [stdout]    |
[INFO] [stdout] 79 |         let mut row: i32 = p.row as i32;
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `col`
[INFO] [stdout]   --> src/day_10.rs:80:13
[INFO] [stdout]    |
[INFO] [stdout] 80 |         let mut col: i32 = p.col as i32;
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day_10.rs:113:9
[INFO] [stdout]     |
[INFO] [stdout] 113 |     let mut trail_map: TrailMap = TrailMap::from(input_lines);
[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/day_11.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let mut stones: Vec<usize> = input_lines[0].split(" ").map(|x| x.parse::<usize>().unwrap()).collect::<Vec<usize>>();
[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/day_11.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let mut new_stones: Vec<usize> = Vec::new();
[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/day_11.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let mut previous_stones: HashMap<usize, Vec<usize>> = HashMap::new();
[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/day_11.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |     let mut previous_stones_by_5: HashMap<usize, Vec<usize>> = HashMap::new();
[INFO] [stdout]    |         ----^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_stones`
[INFO] [stdout]   --> src/day_11.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let mut new_stones: Vec<usize> = Vec::new();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_stones`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `previous_stones`
[INFO] [stdout]   --> src/day_11.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let mut previous_stones: HashMap<usize, Vec<usize>> = HashMap::new();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_previous_stones`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `previous_stones_by_5`
[INFO] [stdout]   --> src/day_11.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |     let mut previous_stones_by_5: HashMap<usize, Vec<usize>> = HashMap::new();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_previous_stones_by_5`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day_11.rs:52:13
[INFO] [stdout]    |
[INFO] [stdout] 52 |         let mut new_stone: usize;
[INFO] [stdout]    |             ----^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `return_length` is never read
[INFO] [stdout]   --> src/day_11.rs:41:36
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let mut return_length: usize = 0;
[INFO] [stdout]    |                                    ^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day_11.rs:105:17
[INFO] [stdout]     |
[INFO] [stdout] 105 |             let mut new_stone: usize;
[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/day_12.rs:137:13
[INFO] [stdout]     |
[INFO] [stdout] 137 |         let mut row: i32 = p.row as i32;
[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/day_12.rs:138:13
[INFO] [stdout]     |
[INFO] [stdout] 138 |         let mut col: i32 = p.col as i32;
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row`
[INFO] [stdout]    --> src/day_12.rs:137:13
[INFO] [stdout]     |
[INFO] [stdout] 137 |         let mut row: i32 = p.row as i32;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `col`
[INFO] [stdout]    --> src/day_12.rs:138:13
[INFO] [stdout]     |
[INFO] [stdout] 138 |         let mut col: i32 = p.col as i32;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/day_13.rs:112:10
[INFO] [stdout]     |
[INFO] [stdout] 112 |     for (i, m) in machines.iter().enumerate() {
[INFO] [stdout]     |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `steps`
[INFO] [stdout]   --> src/day_14.rs:42:31
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn walk_modify(&mut self, steps: usize, max_width: usize, max_height: usize) {
[INFO] [stdout]    |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_steps`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day_14.rs:57:13
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let mut robot_end_positions: Vec<Position> = robots.iter().map(|x| x.walk(100, width, height)).collect::<Vec<Position>>();
[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/day_15.rs:38:13
[INFO] [stdout]    |
[INFO] [stdout] 38 |         let mut char_count: usize;
[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/day_15.rs:101:18
[INFO] [stdout]     |
[INFO] [stdout] 101 |             let (mut next_position, next_tile) = neighbour.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/day_15.rs:151:13
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let mut possible_to_push: Vec<bool> = Vec::new();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `possible_to_push`
[INFO] [stdout]    --> src/day_15.rs:151:13
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let mut possible_to_push: Vec<bool> = Vec::new();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_possible_to_push`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day_16.rs:317:9
[INFO] [stdout]     |
[INFO] [stdout] 317 |     let mut tile_map: TileMap = TileMap::new(input_lines);
[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/day_16.rs:358:17
[INFO] [stdout]     |
[INFO] [stdout] 358 |             let mut b: Position = block_sites[block_index];
[INFO] [stdout]     |                 ----^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/day_16.rs:330:9
[INFO] [stdout]     |
[INFO] [stdout] 330 |     for i in 0..2 {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/day_16.rs:371:17
[INFO] [stdout]     |
[INFO] [stdout] 371 |             for i in 0..20 {
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `register_c`
[INFO] [stdout]   --> src/day_17.rs:42:77
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn run(&self, value: usize, register_a: &mut i64, register_b: &mut i64, register_c: &mut i64) -> Option<usize> {
[INFO] [stdout]    |                                                                             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_register_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `total_loops`
[INFO] [stdout]    --> src/day_17.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let total_loops: usize = 29000000 - 3518400;
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_total_loops`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day_17.rs:156:9
[INFO] [stdout]     |
[INFO] [stdout] 156 |     let mut output_matches: Vec<bool> = Vec::new();
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `part_2`
[INFO] [stdout]    --> src/day_17.rs:152:102
[INFO] [stdout]     |
[INFO] [stdout] 152 | fn do_program(program: Vec<usize>, register_a: &mut i64, register_b: &mut i64, register_c: &mut i64, part_2: bool) -> (String) {
[INFO] [stdout]     |                                                                                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_part_2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `instruction_count` is assigned to, but never used
[INFO] [stdout]    --> src/day_17.rs:155:9
[INFO] [stdout]     |
[INFO] [stdout] 155 |     let mut instruction_count: usize = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_instruction_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output_matches`
[INFO] [stdout]    --> src/day_17.rs:156:9
[INFO] [stdout]     |
[INFO] [stdout] 156 |     let mut output_matches: Vec<bool> = Vec::new();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_matches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `instruction_count` is never read
[INFO] [stdout]    --> src/day_17.rs:159:9
[INFO] [stdout]     |
[INFO] [stdout] 159 |         instruction_count += 1;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `register_a` is never read
[INFO] [stdout]    --> src/day_17.rs:233:35
[INFO] [stdout]     |
[INFO] [stdout] 233 |         let mut register_a: i64 = 0;
[INFO] [stdout]     |                                   ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `free_points`
[INFO] [stdout]   --> src/day_18.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let free_points: Vec<Position> = all_points_hash.difference(&corrupt_points_hash).copied().collect_vec();
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_free_points`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `neighbour_is_edge`
[INFO] [stdout]    --> src/day_20.rs:180:17
[INFO] [stdout]     |
[INFO] [stdout] 180 |             let neighbour_is_edge: bool = n.row ==0 || n.row == self.row_count() - 1 || n.col == 0 || n.col == self.col_count() - 1;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_neighbour_is_edge`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `base_time`
[INFO] [stdout]    --> src/day_20.rs:205:10
[INFO] [stdout]     |
[INFO] [stdout] 205 |     let (base_time, base_path): (usize, Vec<Position>) = map.djikstra(&walls).unwrap();
[INFO] [stdout]     |          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_base_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `base_path_hash`
[INFO] [stdout]    --> src/day_20.rs:206:9
[INFO] [stdout]     |
[INFO] [stdout] 206 |     let base_path_hash: HashSet<Position> = HashSet::from_iter(base_path.clone());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_base_path_hash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `codes`
[INFO] [stdout]    --> src/day_21.rs:145:22
[INFO] [stdout]     |
[INFO] [stdout] 145 | fn code_combinations(codes: &Vec<Vec<String>>, ) {
[INFO] [stdout]     |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_codes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day_24.rs:155:13
[INFO] [stdout]     |
[INFO] [stdout] 155 |         let mut loop_count: usize = 0;
[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/day_24.rs:231:13
[INFO] [stdout]     |
[INFO] [stdout] 231 |         let mut xy_XOR_gates: Vec<&Gate> = xy_gates.iter().cloned().filter(|x| x.gate_type == GateType::XOR).collect::<Vec<&Gate>>();
[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/day_24.rs:232:13
[INFO] [stdout]     |
[INFO] [stdout] 232 |         let mut xy_AND_gates: Vec<&Gate> = xy_gates.iter().cloned().filter(|x| x.gate_type == GateType::AND).collect::<Vec<&Gate>>();
[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/day_24.rs:306:13
[INFO] [stdout]     |
[INFO] [stdout] 306 | ...   let mut available_indices: Vec<usize> = (0..all_gates.len()).filter(|x| !target_outputs_indices.contains(x)).collect::<Vec<us...
[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/day_24.rs:312:17
[INFO] [stdout]     |
[INFO] [stdout] 312 |             let mut attempt_indices = target_outputs_indices.clone();
[INFO] [stdout]     |                 ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `z_gate`
[INFO] [stdout]    --> src/day_24.rs:126:13
[INFO] [stdout]     |
[INFO] [stdout] 126 |         for z_gate in z_gates.iter() {
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_z_gate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `loop_count`
[INFO] [stdout]    --> src/day_24.rs:155:13
[INFO] [stdout]     |
[INFO] [stdout] 155 |         let mut loop_count: usize = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loop_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `g`
[INFO] [stdout]    --> src/day_24.rs:182:13
[INFO] [stdout]     |
[INFO] [stdout] 182 |         for g in processed_gates {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day_24.rs:461:9
[INFO] [stdout]     |
[INFO] [stdout] 461 |     let mut gate_count: usize = all_gates.len() * 2;
[INFO] [stdout]     |         ----^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `count` is assigned to, but never used
[INFO] [stdout]    --> src/day_24.rs:458:9
[INFO] [stdout]     |
[INFO] [stdout] 458 |     let mut count: usize = 0;
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `count` is never read
[INFO] [stdout]    --> src/day_24.rs:471:9
[INFO] [stdout]     |
[INFO] [stdout] 471 |         count += 1;
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `part_2`
[INFO] [stdout]   --> src/day_25.rs:33:41
[INFO] [stdout]    |
[INFO] [stdout] 33 | fn solve_puzzle(input_filename: String, part_2: bool) -> usize {
[INFO] [stdout]    |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_part_2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/generic.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     writeln!(&mut f, "{}", output_data);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let _ = writeln!(&mut f, "{}", output_data);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `X` should have a snake case name
[INFO] [stdout]   --> src/day_5.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     X: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `Y` should have a snake case name
[INFO] [stdout]   --> src/day_5.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     Y: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case (notice the capitalization): `y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `rotate_90_CW` should have a snake case name
[INFO] [stdout]   --> src/day_6.rs:97:8
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn rotate_90_CW(&self) -> Self {
[INFO] [stdout]    |        ^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `rotate_90_cw`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `rotate_90_CCW` should have a snake case name
[INFO] [stdout]    --> src/day_6.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn rotate_90_CCW(&self) -> Self {
[INFO] [stdout]     |        ^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `rotate_90_ccw`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_CW_guard_position` should have a snake case name
[INFO] [stdout]    --> src/day_6.rs:191:8
[INFO] [stdout]     |
[INFO] [stdout] 191 |     fn get_CW_guard_position(&self, start_position: &Position, direction: &Direction) -> Option<Position> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `get_cw_guard_position`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_CCW_guard_position` should have a snake case name
[INFO] [stdout]    --> src/day_6.rs:205:8
[INFO] [stdout]     |
[INFO] [stdout] 205 |     fn get_CCW_guard_position(&self, start_position: &Position, direction: &Direction) -> Option<Position> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `get_ccw_guard_position`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `next_CW_guard_position` should have a snake case name
[INFO] [stdout]    --> src/day_6.rs:542:17
[INFO] [stdout]     |
[INFO] [stdout] 542 |         let mut next_CW_guard_position: Option<Position> = tile_map.get_CW_guard_position(&start_guard_position, &Direction::Up);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `next_cw_guard_position`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `next_CW_guard_position` should have a snake case name
[INFO] [stdout]    --> src/day_6.rs:544:17
[INFO] [stdout]     |
[INFO] [stdout] 544 | ...mut next_CW_guard_position: Option<Position> = tile_map.get_CW_guard_position(&next_CW_guard_position.unwrap(), &Direction::Right);
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `next_cw_guard_position`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `next_CCW_guard_position` should have a snake case name
[INFO] [stdout]    --> src/day_6.rs:549:17
[INFO] [stdout]     |
[INFO] [stdout] 549 |         let mut next_CCW_guard_position: Option<Position>;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `next_ccw_guard_position`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `xy_XOR_gates` should have a snake case name
[INFO] [stdout]    --> src/day_24.rs:231:17
[INFO] [stdout]     |
[INFO] [stdout] 231 |         let mut xy_XOR_gates: Vec<&Gate> = xy_gates.iter().cloned().filter(|x| x.gate_type == GateType::XOR).collect::<Vec<&Gate>>();
[INFO] [stdout]     |                 ^^^^^^^^^^^^ help: convert the identifier to snake case: `xy_xor_gates`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `xy_AND_gates` should have a snake case name
[INFO] [stdout]    --> src/day_24.rs:232:17
[INFO] [stdout]     |
[INFO] [stdout] 232 |         let mut xy_AND_gates: Vec<&Gate> = xy_gates.iter().cloned().filter(|x| x.gate_type == GateType::AND).collect::<Vec<&Gate>>();
[INFO] [stdout]     |                 ^^^^^^^^^^^^ help: convert the identifier to snake case: `xy_and_gates`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `xy_XOR_gates_outputs` should have a snake case name
[INFO] [stdout]    --> src/day_24.rs:234:13
[INFO] [stdout]     |
[INFO] [stdout] 234 |         let xy_XOR_gates_outputs: Vec<String> = xy_XOR_gates.iter().map(|x| x.output.clone()).collect::<Vec<String>>();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `xy_xor_gates_outputs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 3.71s
[INFO] running `Command { std: "docker" "inspect" "10d2e615dcba9c435cf37e49cc6340c03573f539a87ebdf49151b27f965221ca", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "10d2e615dcba9c435cf37e49cc6340c03573f539a87ebdf49151b27f965221ca", kill_on_drop: false }`
[INFO] [stdout] 10d2e615dcba9c435cf37e49cc6340c03573f539a87ebdf49151b27f965221ca
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+1.94.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 16e1606931fc1e010515341521be02c099d59a3458e9ba4bb81f567ce9603d7a
[INFO] running `Command { std: "docker" "start" "-a" "16e1606931fc1e010515341521be02c099d59a3458e9ba4bb81f567ce9603d7a", kill_on_drop: false }`
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/day_4.rs:147:20
[INFO] [stderr]     |
[INFO] [stderr] 147 |                 if (row < XMAS_LENGTH - 1) {
[INFO] [stderr]     |                    ^                     ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 147 -                 if (row < XMAS_LENGTH - 1) {
[INFO] [stderr] 147 +                 if row < XMAS_LENGTH - 1  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/day_4.rs:152:20
[INFO] [stderr]     |
[INFO] [stderr] 152 |                 if (row + XMAS_LENGTH > self.row_count()) {
[INFO] [stderr]     |                    ^                                    ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 152 -                 if (row + XMAS_LENGTH > self.row_count()) {
[INFO] [stderr] 152 +                 if row + XMAS_LENGTH > self.row_count()  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/day_4.rs:157:20
[INFO] [stderr]     |
[INFO] [stderr] 157 |                 if (col < XMAS_LENGTH - 1) {
[INFO] [stderr]     |                    ^                     ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 157 -                 if (col < XMAS_LENGTH - 1) {
[INFO] [stderr] 157 +                 if col < XMAS_LENGTH - 1  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/day_4.rs:162:20
[INFO] [stderr]     |
[INFO] [stderr] 162 |                 if (col + XMAS_LENGTH > self.col_count()) {
[INFO] [stderr]     |                    ^                                    ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 162 -                 if (col + XMAS_LENGTH > self.col_count()) {
[INFO] [stderr] 162 +                 if col + XMAS_LENGTH > self.col_count()  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/day_6.rs:352:20
[INFO] [stderr]     |
[INFO] [stderr] 352 |                 if (guard_on_map) {
[INFO] [stderr]     |                    ^            ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 352 -                 if (guard_on_map) {
[INFO] [stderr] 352 +                 if guard_on_map  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stderr]    --> src/day_6.rs:357:26
[INFO] [stderr]     |
[INFO] [stderr] 357 |                 for r in (row..(row + new_distance + 1)) {
[INFO] [stderr]     |                          ^                             ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 357 -                 for r in (row..(row + new_distance + 1)) {
[INFO] [stderr] 357 +                 for r in row..(row + new_distance + 1)  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/day_6.rs:361:20
[INFO] [stderr]     |
[INFO] [stderr] 361 |                 if (guard_on_map) {
[INFO] [stderr]     |                    ^            ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 361 -                 if (guard_on_map) {
[INFO] [stderr] 361 +                 if guard_on_map  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stderr]    --> src/day_6.rs:366:26
[INFO] [stderr]     |
[INFO] [stderr] 366 |                 for c in ((col - new_distance)..col) {
[INFO] [stderr]     |                          ^                         ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 366 -                 for c in ((col - new_distance)..col) {
[INFO] [stderr] 366 +                 for c in (col - new_distance)..col  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/day_6.rs:370:20
[INFO] [stderr]     |
[INFO] [stderr] 370 |                 if (guard_on_map) {
[INFO] [stderr]     |                    ^            ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 370 -                 if (guard_on_map) {
[INFO] [stderr] 370 +                 if guard_on_map  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stderr]    --> src/day_6.rs:375:26
[INFO] [stderr]     |
[INFO] [stderr] 375 |                 for c in (col..(col + new_distance + 1)) {
[INFO] [stderr]     |                          ^                             ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 375 -                 for c in (col..(col + new_distance + 1)) {
[INFO] [stderr] 375 +                 for c in col..(col + new_distance + 1)  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/day_6.rs:379:20
[INFO] [stderr]     |
[INFO] [stderr] 379 |                 if (guard_on_map) {
[INFO] [stderr]     |                    ^            ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 379 -                 if (guard_on_map) {
[INFO] [stderr] 379 +                 if guard_on_map  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stderr]    --> src/day_6.rs:459:34
[INFO] [stderr]     |
[INFO] [stderr] 459 |                         for r in (row..(row + new_distance + 1)) {
[INFO] [stderr]     |                                  ^                             ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 459 -                         for r in (row..(row + new_distance + 1)) {
[INFO] [stderr] 459 +                         for r in row..(row + new_distance + 1)  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stderr]    --> src/day_6.rs:466:34
[INFO] [stderr]     |
[INFO] [stderr] 466 |                         for c in ((col - new_distance)..col) {
[INFO] [stderr]     |                                  ^                         ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 466 -                         for c in ((col - new_distance)..col) {
[INFO] [stderr] 466 +                         for c in (col - new_distance)..col  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stderr]    --> src/day_6.rs:473:34
[INFO] [stderr]     |
[INFO] [stderr] 473 |                         for c in (col..(col + new_distance + 1)) {
[INFO] [stderr]     |                                  ^                             ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 473 -                         for c in (col..(col + new_distance + 1)) {
[INFO] [stderr] 473 +                         for c in col..(col + new_distance + 1)  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `core::num`
[INFO] [stderr]  --> src/day_7.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use core::num;
[INFO] [stderr]   |     ^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `itertools::rev`
[INFO] [stderr]  --> src/day_9.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use itertools::rev;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/day_9.rs:147:22
[INFO] [stderr]     |
[INFO] [stderr] 147 |         final_sum += (x * i);
[INFO] [stderr]     |                      ^     ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 147 -         final_sum += (x * i);
[INFO] [stderr] 147 +         final_sum += x * i ;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/day_9.rs:159:28
[INFO] [stderr]     |
[INFO] [stderr] 159 |     let max_index: usize = (original.len() / 2);
[INFO] [stderr]     |                            ^                  ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 159 -     let max_index: usize = (original.len() / 2);
[INFO] [stderr] 159 +     let max_index: usize = original.len() / 2 ;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Direction`
[INFO] [stderr]  --> src/day_14.rs:6:32
[INFO] [stderr]   |
[INFO] [stderr] 6 | use crate::generic::{Position, Direction};
[INFO] [stderr]   |                                ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]   --> src/day_14.rs:52:28
[INFO] [stderr]    |
[INFO] [stderr] 52 |     let mid_width: usize = (width / 2);
[INFO] [stderr]    |                            ^         ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 52 -     let mid_width: usize = (width / 2);
[INFO] [stderr] 52 +     let mid_width: usize = width / 2 ;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]   --> src/day_14.rs:53:29
[INFO] [stderr]    |
[INFO] [stderr] 53 |     let mid_height: usize = (height / 2);
[INFO] [stderr]    |                             ^          ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 53 -     let mid_height: usize = (height / 2);
[INFO] [stderr] 53 +     let mid_height: usize = height / 2 ;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `while` condition
[INFO] [stderr]    --> src/day_14.rs:100:15
[INFO] [stderr]     |
[INFO] [stderr] 100 |         while (!found_tree) {
[INFO] [stderr]     |               ^           ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 100 -         while (!found_tree) {
[INFO] [stderr] 100 +         while !found_tree  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `itertools::Itertools`
[INFO] [stderr]    --> src/day_14.rs:196:9
[INFO] [stderr]     |
[INFO] [stderr] 196 |     use itertools::Itertools;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `itertools::all`
[INFO] [stderr]  --> src/day_16.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use itertools::all;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `collections::btree_map::Values`
[INFO] [stderr]  --> src/day_17.rs:3:11
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::{collections::btree_map::Values, ops::BitXor};
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/day_17.rs:152:119
[INFO] [stderr]     |
[INFO] [stderr] 152 | fn do_program(program: Vec<usize>, register_a: &mut i64, register_b: &mut i64, register_c: &mut i64, part_2: bool) -> (String) {
[INFO] [stderr]     |                                                                                                                       ^      ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 152 - fn do_program(program: Vec<usize>, register_a: &mut i64, register_b: &mut i64, register_c: &mut i64, part_2: bool) -> (String) {
[INFO] [stderr] 152 + fn do_program(program: Vec<usize>, register_a: &mut i64, register_b: &mut i64, register_c: &mut i64, part_2: bool) -> String  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `HashSet`
[INFO] [stderr]  --> src/day_22.rs:3:34
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::{collections::{HashMap, HashSet}, ops::BitXor};
[INFO] [stderr]   |                                  ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `all`
[INFO] [stderr]  --> src/day_24.rs:5:17
[INFO] [stderr]   |
[INFO] [stderr] 5 | use itertools::{all, Itertools};
[INFO] [stderr]   |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/day_24.rs:404:12
[INFO] [stderr]     |
[INFO] [stderr] 404 |         if (g.inputs[0] == inputs[0] && g.inputs[1] == inputs[1] || g.inputs[1] == inputs[0] && g.inputs[0] == inputs[1]) {
[INFO] [stderr]     |            ^                                                                                                            ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 404 -         if (g.inputs[0] == inputs[0] && g.inputs[1] == inputs[1] || g.inputs[1] == inputs[0] && g.inputs[0] == inputs[1]) {
[INFO] [stderr] 404 +         if g.inputs[0] == inputs[0] && g.inputs[1] == inputs[1] || g.inputs[1] == inputs[0] && g.inputs[0] == inputs[1]  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `return` value
[INFO] [stderr]    --> src/day_24.rs:412:12
[INFO] [stderr]     |
[INFO] [stderr] 412 |     return (gate.gate_type == GateType::XOR && (
[INFO] [stderr]     |            ^
[INFO] [stderr] ...
[INFO] [stderr] 415 |     ));
[INFO] [stderr]     |      ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 412 ~     return gate.gate_type == GateType::XOR && (
[INFO] [stderr] 413 |         (gate.inputs[0].starts_with("x") && gate.inputs[1].starts_with("y")) ||
[INFO] [stderr] 414 |         (gate.inputs[1].starts_with("x") && gate.inputs[0].starts_with("y"))
[INFO] [stderr] 415 ~     ) ;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `itertools::all`
[INFO] [stderr]  --> src/day_25.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use itertools::all;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Itertools`
[INFO] [stderr]  --> src/day_12.rs:5:25
[INFO] [stderr]   |
[INFO] [stderr] 5 | use itertools::{sorted, Itertools};
[INFO] [stderr]   |                         ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `error_msg`
[INFO] [stderr]   --> src/generic.rs:12:9
[INFO] [stderr]    |
[INFO] [stderr] 12 |     let error_msg = format!("unable to write to file {}", output_filename);
[INFO] [stderr]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_error_msg`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/generic.rs:114:13
[INFO] [stderr]     |
[INFO] [stderr] 114 |         let mut row: i32 = self.row as i32;
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/generic.rs:115:13
[INFO] [stderr]     |
[INFO] [stderr] 115 |         let mut col: i32 = self.col as i32;
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `row`
[INFO] [stderr]    --> src/generic.rs:114:13
[INFO] [stderr]     |
[INFO] [stderr] 114 |         let mut row: i32 = self.row as i32;
[INFO] [stderr]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_row`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `col`
[INFO] [stderr]    --> src/generic.rs:115:13
[INFO] [stderr]     |
[INFO] [stderr] 115 |         let mut col: i32 = self.col as i32;
[INFO] [stderr]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_col`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/day_2.rs:56:13
[INFO] [stderr]    |
[INFO] [stderr] 56 |         let mut increases_1_problem: bool = false;
[INFO] [stderr]    |             ----^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/day_2.rs:58:13
[INFO] [stderr]    |
[INFO] [stderr] 58 |         let mut decreases_1_problem: bool = false;
[INFO] [stderr]    |             ----^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/day_2.rs:60:13
[INFO] [stderr]    |
[INFO] [stderr] 60 |         let mut difference_1_problem: bool = false;
[INFO] [stderr]    |             ----^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `difference_1_problem`
[INFO] [stderr]   --> src/day_2.rs:60:13
[INFO] [stderr]    |
[INFO] [stderr] 60 |         let mut difference_1_problem: bool = false;
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_difference_1_problem`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/day_4.rs:109:13
[INFO] [stderr]     |
[INFO] [stderr] 109 |         let mut temp_sum: usize = 0;
[INFO] [stderr]     |             ----^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `temp_sum`
[INFO] [stderr]    --> src/day_4.rs:109:13
[INFO] [stderr]     |
[INFO] [stderr] 109 |         let mut temp_sum: usize = 0;
[INFO] [stderr]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_temp_sum`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `row`
[INFO] [stderr]    --> src/day_4.rs:246:9
[INFO] [stderr]     |
[INFO] [stderr] 246 |     let mut row: usize;
[INFO] [stderr]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_row`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `col`
[INFO] [stderr]    --> src/day_4.rs:247:9
[INFO] [stderr]     |
[INFO] [stderr] 247 |     let mut col: usize;
[INFO] [stderr]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_col`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `good_productions_sum` is assigned to, but never used
[INFO] [stderr]   --> src/day_5.rs:66:9
[INFO] [stderr]    |
[INFO] [stderr] 66 |     let mut good_productions_sum = 0;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: consider using `_good_productions_sum` instead
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rule_result`
[INFO] [stderr]   --> src/day_5.rs:76:17
[INFO] [stderr]    |
[INFO] [stderr] 76 |             let rule_result: OrderingRuleResult = p.check_rule(r);
[INFO] [stderr]    |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rule_result`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `good_productions_sum` is never read
[INFO] [stderr]   --> src/day_5.rs:85:13
[INFO] [stderr]    |
[INFO] [stderr] 85 |             good_productions_sum += 1;
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = help: maybe it is overwritten before being read?
[INFO] [stderr]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `return_bool` is never read
[INFO] [stderr]    --> src/day_6.rs:178:37
[INFO] [stderr]     |
[INFO] [stderr] 178 |         let mut return_bool: bool = false;
[INFO] [stderr]     |                                     ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/day_6.rs:193:13
[INFO] [stderr]     |
[INFO] [stderr] 193 |         let mut path = self.get_path_to_obstacle_from_position(&start_position, &direction.rotate_90_CW());
[INFO] [stderr]     |             ----^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/day_6.rs:214:13
[INFO] [stderr]     |
[INFO] [stderr] 214 |         let mut path = self.get_path_to_obstacle_from_position(&offset_position, &direction.reverse());
[INFO] [stderr]     |             ----^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `total_distance` is assigned to, but never used
[INFO] [stderr]    --> src/day_6.rs:331:9
[INFO] [stderr]     |
[INFO] [stderr] 331 |     let mut total_distance: usize = 0;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: consider using `_total_distance` instead
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `total_distance` is never read
[INFO] [stderr]    --> src/day_6.rs:345:9
[INFO] [stderr]     |
[INFO] [stderr] 345 |         total_distance += new_distance;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `new_distance` is never read
[INFO] [stderr]    --> src/day_6.rs:335:35
[INFO] [stderr]     |
[INFO] [stderr] 335 |     let mut new_distance: usize = 0;
[INFO] [stderr]     |                                   ^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `print_char` is never read
[INFO] [stderr]    --> src/day_6.rs:497:26
[INFO] [stderr]     |
[INFO] [stderr] 497 |     let mut print_char = '.';
[INFO] [stderr]     |                          ^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/day_6.rs:542:13
[INFO] [stderr]     |
[INFO] [stderr] 542 |         let mut next_CW_guard_position: Option<Position> = tile_map.get_CW_guard_position(&start_guard_position, &Direction::Up);
[INFO] [stderr]     |             ----^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/day_6.rs:544:13
[INFO] [stderr]     |
[INFO] [stderr] 544 | ...   let mut next_CW_guard_position: Option<Position> = tile_map.get_CW_guard_position(&next_CW_guard_position.unwrap(), &Directio...
[INFO] [stderr]     |           ----^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |           |
[INFO] [stderr]     |           help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `number_combinations`
[INFO] [stderr]   --> src/day_7.rs:70:13
[INFO] [stderr]    |
[INFO] [stderr] 70 |         let mut number_combinations: Vec<i64>;
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_number_combinations`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `combined_numbers`
[INFO] [stderr]    --> src/day_7.rs:283:13
[INFO] [stderr]     |
[INFO] [stderr] 283 | ...   let combined_numbers = (0..(numbers.len() - 1)).map(|x| numbers[x] * 10i64.pow(numbers[x + 1].ilog10() + 1) + numbers[x+1]).c...
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_combined_numbers`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/day_7.rs:332:17
[INFO] [stderr]     |
[INFO] [stderr] 332 |             let mut quick_numbers: Vec<i64> = Vec::new();
[INFO] [stderr]     |                 ----^^^^^^^^^^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `combinations`
[INFO] [stderr]    --> src/day_7.rs:330:13
[INFO] [stderr]     |
[INFO] [stderr] 330 |         let mut combinations: Vec<Vec<i64>>;
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_combinations`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/day_7.rs:331:13
[INFO] [stderr]     |
[INFO] [stderr] 331 |         for i in 0..(numbers.len()) {
[INFO] [stderr]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `quick_numbers`
[INFO] [stderr]    --> src/day_7.rs:332:17
[INFO] [stderr]     |
[INFO] [stderr] 332 |             let mut quick_numbers: Vec<i64> = Vec::new();
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_quick_numbers`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `j`
[INFO] [stderr]    --> src/day_7.rs:333:17
[INFO] [stderr]     |
[INFO] [stderr] 333 |             for j in 0..numbers.len() {
[INFO] [stderr]     |                 ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `k`
[INFO] [stderr]   --> src/day_8.rs:40:10
[INFO] [stderr]    |
[INFO] [stderr] 40 |     for (k, v) in antennas.iter() {
[INFO] [stderr]    |          ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/day_9.rs:110:106
[INFO] [stderr]     |
[INFO] [stderr] 110 | ...ter(|(i, x)| i % 2 != 0).map(|(i, x)| *x).collect::<Vec<usize>>();
[INFO] [stderr]     |                                   ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/day_9.rs:110:84
[INFO] [stderr]     |
[INFO] [stderr] 110 | ...iter().enumerate().filter(|(i, x)| i % 2 != 0).map(|(i, x)| *x).collect::<Vec<usize>>();
[INFO] [stderr]     |                                   ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/day_9.rs:109:106
[INFO] [stderr]     |
[INFO] [stderr] 109 | ...ter(|(i, x)| i % 2 == 0).map(|(i, x)| *x).collect::<Vec<usize>>();
[INFO] [stderr]     |                                   ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/day_9.rs:109:84
[INFO] [stderr]     |
[INFO] [stderr] 109 | ...iter().enumerate().filter(|(i, x)| i % 2 == 0).map(|(i, x)| *x).collect::<Vec<usize>>();
[INFO] [stderr]     |                                   ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/day_9.rs:135:9
[INFO] [stderr]     |
[INFO] [stderr] 135 |     let mut disk_map: DiskMap = DiskMap::from(input_lines[0].clone());
[INFO] [stderr]     |         ----^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `final_sum` is assigned to, but never used
[INFO] [stderr]    --> src/day_9.rs:142:9
[INFO] [stderr]     |
[INFO] [stderr] 142 |     let mut final_sum: usize = 0;
[INFO] [stderr]     |         ^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: consider using `_final_sum` instead
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `all_spaces_sum`
[INFO] [stderr]    --> src/day_9.rs:158:9
[INFO] [stderr]     |
[INFO] [stderr] 158 |     let all_spaces_sum: usize = original.iter().sum::<usize>();
[INFO] [stderr]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_all_spaces_sum`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `j`
[INFO] [stderr]    --> src/day_9.rs:168:13
[INFO] [stderr]     |
[INFO] [stderr] 168 |         for j in 0..original[2 * i] {
[INFO] [stderr]     |             ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `j`
[INFO] [stderr]    --> src/day_9.rs:176:13
[INFO] [stderr]     |
[INFO] [stderr] 176 |         for j in 0..original[(2*i) +1] {
[INFO] [stderr]     |             ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `y`
[INFO] [stderr]    --> src/day_9.rs:241:17
[INFO] [stderr]     |
[INFO] [stderr] 241 |             for y in 0..x.file_size {
[INFO] [stderr]     |                 ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `final_sum` is never read
[INFO] [stderr]    --> src/day_9.rs:147:9
[INFO] [stderr]     |
[INFO] [stderr] 147 |         final_sum += (x * i);
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/day_10.rs:79:13
[INFO] [stderr]    |
[INFO] [stderr] 79 |         let mut row: i32 = p.row as i32;
[INFO] [stderr]    |             ----^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/day_10.rs:80:13
[INFO] [stderr]    |
[INFO] [stderr] 80 |         let mut col: i32 = p.col as i32;
[INFO] [stderr]    |             ----^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `row`
[INFO] [stderr]   --> src/day_10.rs:79:13
[INFO] [stderr]    |
[INFO] [stderr] 79 |         let mut row: i32 = p.row as i32;
[INFO] [stderr]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_row`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `col`
[INFO] [stderr]   --> src/day_10.rs:80:13
[INFO] [stderr]    |
[INFO] [stderr] 80 |         let mut col: i32 = p.col as i32;
[INFO] [stderr]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_col`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/day_10.rs:113:9
[INFO] [stderr]     |
[INFO] [stderr] 113 |     let mut trail_map: TrailMap = TrailMap::from(input_lines);
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/day_11.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr] 10 |     let mut stones: Vec<usize> = input_lines[0].split(" ").map(|x| x.parse::<usize>().unwrap()).collect::<Vec<usize>>();
[INFO] [stderr]    |         ----^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/day_11.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 11 |     let mut new_stones: Vec<usize> = Vec::new();
[INFO] [stderr]    |         ----^^^^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/day_11.rs:21:9
[INFO] [stderr]    |
[INFO] [stderr] 21 |     let mut previous_stones: HashMap<usize, Vec<usize>> = HashMap::new();
[INFO] [stderr]    |         ----^^^^^^^^^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/day_11.rs:22:9
[INFO] [stderr]    |
[INFO] [stderr] 22 |     let mut previous_stones_by_5: HashMap<usize, Vec<usize>> = HashMap::new();
[INFO] [stderr]    |         ----^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `new_stones`
[INFO] [stderr]   --> src/day_11.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 11 |     let mut new_stones: Vec<usize> = Vec::new();
[INFO] [stderr]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_stones`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `previous_stones`
[INFO] [stderr]   --> src/day_11.rs:21:9
[INFO] [stderr]    |
[INFO] [stderr] 21 |     let mut previous_stones: HashMap<usize, Vec<usize>> = HashMap::new();
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_previous_stones`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `previous_stones_by_5`
[INFO] [stderr]   --> src/day_11.rs:22:9
[INFO] [stderr]    |
[INFO] [stderr] 22 |     let mut previous_stones_by_5: HashMap<usize, Vec<usize>> = HashMap::new();
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_previous_stones_by_5`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/day_11.rs:52:13
[INFO] [stderr]    |
[INFO] [stderr] 52 |         let mut new_stone: usize;
[INFO] [stderr]    |             ----^^^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `return_length` is never read
[INFO] [stderr]   --> src/day_11.rs:41:36
[INFO] [stderr]    |
[INFO] [stderr] 41 |     let mut return_length: usize = 0;
[INFO] [stderr]    |                                    ^
[INFO] [stderr]    |
[INFO] [stderr]    = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/day_11.rs:105:17
[INFO] [stderr]     |
[INFO] [stderr] 105 |             let mut new_stone: usize;
[INFO] [stderr]     |                 ----^^^^^^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/day_12.rs:137:13
[INFO] [stderr]     |
[INFO] [stderr] 137 |         let mut row: i32 = p.row as i32;
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/day_12.rs:138:13
[INFO] [stderr]     |
[INFO] [stderr] 138 |         let mut col: i32 = p.col as i32;
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `row`
[INFO] [stderr]    --> src/day_12.rs:137:13
[INFO] [stderr]     |
[INFO] [stderr] 137 |         let mut row: i32 = p.row as i32;
[INFO] [stderr]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_row`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `col`
[INFO] [stderr]    --> src/day_12.rs:138:13
[INFO] [stderr]     |
[INFO] [stderr] 138 |         let mut col: i32 = p.col as i32;
[INFO] [stderr]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_col`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/day_13.rs:112:10
[INFO] [stderr]     |
[INFO] [stderr] 112 |     for (i, m) in machines.iter().enumerate() {
[INFO] [stderr]     |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `steps`
[INFO] [stderr]   --> src/day_14.rs:42:31
[INFO] [stderr]    |
[INFO] [stderr] 42 |     fn walk_modify(&mut self, steps: usize, max_width: usize, max_height: usize) {
[INFO] [stderr]    |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_steps`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/day_14.rs:57:13
[INFO] [stderr]    |
[INFO] [stderr] 57 |         let mut robot_end_positions: Vec<Position> = robots.iter().map(|x| x.walk(100, width, height)).collect::<Vec<Position>>();
[INFO] [stderr]    |             ----^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/day_15.rs:38:13
[INFO] [stderr]    |
[INFO] [stderr] 38 |         let mut char_count: usize;
[INFO] [stderr]    |             ----^^^^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/day_15.rs:101:18
[INFO] [stderr]     |
[INFO] [stderr] 101 |             let (mut next_position, next_tile) = neighbour.unwrap();
[INFO] [stderr]     |                  ----^^^^^^^^^^^^^
[INFO] [stderr]     |                  |
[INFO] [stderr]     |                  help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/day_15.rs:151:13
[INFO] [stderr]     |
[INFO] [stderr] 151 |         let mut possible_to_push: Vec<bool> = Vec::new();
[INFO] [stderr]     |             ----^^^^^^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `possible_to_push`
[INFO] [stderr]    --> src/day_15.rs:151:13
[INFO] [stderr]     |
[INFO] [stderr] 151 |         let mut possible_to_push: Vec<bool> = Vec::new();
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_possible_to_push`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/day_16.rs:317:9
[INFO] [stderr]     |
[INFO] [stderr] 317 |     let mut tile_map: TileMap = TileMap::new(input_lines);
[INFO] [stderr]     |         ----^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/day_16.rs:358:17
[INFO] [stderr]     |
[INFO] [stderr] 358 |             let mut b: Position = block_sites[block_index];
[INFO] [stderr]     |                 ----^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/day_16.rs:330:9
[INFO] [stderr]     |
[INFO] [stderr] 330 |     for i in 0..2 {
[INFO] [stderr]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/day_16.rs:371:17
[INFO] [stderr]     |
[INFO] [stderr] 371 |             for i in 0..20 {
[INFO] [stderr]     |                 ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `register_c`
[INFO] [stderr]   --> src/day_17.rs:42:77
[INFO] [stderr]    |
[INFO] [stderr] 42 |     fn run(&self, value: usize, register_a: &mut i64, register_b: &mut i64, register_c: &mut i64) -> Option<usize> {
[INFO] [stderr]    |                                                                             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_register_c`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `total_loops`
[INFO] [stderr]    --> src/day_17.rs:103:13
[INFO] [stderr]     |
[INFO] [stderr] 103 |         let total_loops: usize = 29000000 - 3518400;
[INFO] [stderr]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_total_loops`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/day_17.rs:156:9
[INFO] [stderr]     |
[INFO] [stderr] 156 |     let mut output_matches: Vec<bool> = Vec::new();
[INFO] [stderr]     |         ----^^^^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `part_2`
[INFO] [stderr]    --> src/day_17.rs:152:102
[INFO] [stderr]     |
[INFO] [stderr] 152 | fn do_program(program: Vec<usize>, register_a: &mut i64, register_b: &mut i64, register_c: &mut i64, part_2: bool) -> (String) {
[INFO] [stderr]     |                                                                                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_part_2`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `instruction_count` is assigned to, but never used
[INFO] [stderr]    --> src/day_17.rs:155:9
[INFO] [stderr]     |
[INFO] [stderr] 155 |     let mut instruction_count: usize = 0;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: consider using `_instruction_count` instead
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `output_matches`
[INFO] [stderr]    --> src/day_17.rs:156:9
[INFO] [stderr]     |
[INFO] [stderr] 156 |     let mut output_matches: Vec<bool> = Vec::new();
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_matches`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `instruction_count` is never read
[INFO] [stderr]    --> src/day_17.rs:159:9
[INFO] [stderr]     |
[INFO] [stderr] 159 |         instruction_count += 1;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `register_a` is never read
[INFO] [stderr]    --> src/day_17.rs:233:35
[INFO] [stderr]     |
[INFO] [stderr] 233 |         let mut register_a: i64 = 0;
[INFO] [stderr]     |                                   ^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `free_points`
[INFO] [stderr]   --> src/day_18.rs:26:9
[INFO] [stderr]    |
[INFO] [stderr] 26 |     let free_points: Vec<Position> = all_points_hash.difference(&corrupt_points_hash).copied().collect_vec();
[INFO] [stderr]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_free_points`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `neighbour_is_edge`
[INFO] [stderr]    --> src/day_20.rs:180:17
[INFO] [stderr]     |
[INFO] [stderr] 180 |             let neighbour_is_edge: bool = n.row ==0 || n.row == self.row_count() - 1 || n.col == 0 || n.col == self.col_count() - 1;
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_neighbour_is_edge`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `base_time`
[INFO] [stderr]    --> src/day_20.rs:205:10
[INFO] [stderr]     |
[INFO] [stderr] 205 |     let (base_time, base_path): (usize, Vec<Position>) = map.djikstra(&walls).unwrap();
[INFO] [stderr]     |          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_base_time`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `base_path_hash`
[INFO] [stderr]    --> src/day_20.rs:206:9
[INFO] [stderr]     |
[INFO] [stderr] 206 |     let base_path_hash: HashSet<Position> = HashSet::from_iter(base_path.clone());
[INFO] [stderr]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_base_path_hash`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `codes`
[INFO] [stderr]    --> src/day_21.rs:145:22
[INFO] [stderr]     |
[INFO] [stderr] 145 | fn code_combinations(codes: &Vec<Vec<String>>, ) {
[INFO] [stderr]     |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_codes`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/day_24.rs:155:13
[INFO] [stderr]     |
[INFO] [stderr] 155 |         let mut loop_count: usize = 0;
[INFO] [stderr]     |             ----^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/day_24.rs:231:13
[INFO] [stderr]     |
[INFO] [stderr] 231 |         let mut xy_XOR_gates: Vec<&Gate> = xy_gates.iter().cloned().filter(|x| x.gate_type == GateType::XOR).collect::<Vec<&Gate>>();
[INFO] [stderr]     |             ----^^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/day_24.rs:232:13
[INFO] [stderr]     |
[INFO] [stderr] 232 |         let mut xy_AND_gates: Vec<&Gate> = xy_gates.iter().cloned().filter(|x| x.gate_type == GateType::AND).collect::<Vec<&Gate>>();
[INFO] [stderr]     |             ----^^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/day_24.rs:306:13
[INFO] [stderr]     |
[INFO] [stderr] 306 | ...   let mut available_indices: Vec<usize> = (0..all_gates.len()).filter(|x| !target_outputs_indices.contains(x)).collect::<Vec<us...
[INFO] [stderr]     |           ----^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |           |
[INFO] [stderr]     |           help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/day_24.rs:312:17
[INFO] [stderr]     |
[INFO] [stderr] 312 |             let mut attempt_indices = target_outputs_indices.clone();
[INFO] [stderr]     |                 ----^^^^^^^^^^^^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `z_gate`
[INFO] [stderr]    --> src/day_24.rs:126:13
[INFO] [stderr]     |
[INFO] [stderr] 126 |         for z_gate in z_gates.iter() {
[INFO] [stderr]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_z_gate`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `loop_count`
[INFO] [stderr]    --> src/day_24.rs:155:13
[INFO] [stderr]     |
[INFO] [stderr] 155 |         let mut loop_count: usize = 0;
[INFO] [stderr]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loop_count`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `g`
[INFO] [stderr]    --> src/day_24.rs:182:13
[INFO] [stderr]     |
[INFO] [stderr] 182 |         for g in processed_gates {
[INFO] [stderr]     |             ^ help: if this is intentional, prefix it with an underscore: `_g`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/day_24.rs:461:9
[INFO] [stderr]     |
[INFO] [stderr] 461 |     let mut gate_count: usize = all_gates.len() * 2;
[INFO] [stderr]     |         ----^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `count` is assigned to, but never used
[INFO] [stderr]    --> src/day_24.rs:458:9
[INFO] [stderr]     |
[INFO] [stderr] 458 |     let mut count: usize = 0;
[INFO] [stderr]     |         ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: consider using `_count` instead
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `count` is never read
[INFO] [stderr]    --> src/day_24.rs:471:9
[INFO] [stderr]     |
[INFO] [stderr] 471 |         count += 1;
[INFO] [stderr]     |         ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `part_2`
[INFO] [stderr]   --> src/day_25.rs:33:41
[INFO] [stderr]    |
[INFO] [stderr] 33 | fn solve_puzzle(input_filename: String, part_2: bool) -> usize {
[INFO] [stderr]    |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_part_2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/generic.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 14 |     writeln!(&mut f, "{}", output_data);
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 14 |     let _ = writeln!(&mut f, "{}", output_data);
[INFO] [stderr]    |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: structure field `X` should have a snake case name
[INFO] [stderr]   --> src/day_5.rs:16:5
[INFO] [stderr]    |
[INFO] [stderr] 16 |     X: usize,
[INFO] [stderr]    |     ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: structure field `Y` should have a snake case name
[INFO] [stderr]   --> src/day_5.rs:17:5
[INFO] [stderr]    |
[INFO] [stderr] 17 |     Y: usize,
[INFO] [stderr]    |     ^ help: convert the identifier to snake case (notice the capitalization): `y`
[INFO] [stderr] 
[INFO] [stderr] warning: method `rotate_90_CW` should have a snake case name
[INFO] [stderr]   --> src/day_6.rs:97:8
[INFO] [stderr]    |
[INFO] [stderr] 97 |     fn rotate_90_CW(&self) -> Self {
[INFO] [stderr]    |        ^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `rotate_90_cw`
[INFO] [stderr] 
[INFO] [stderr] warning: method `rotate_90_CCW` should have a snake case name
[INFO] [stderr]    --> src/day_6.rs:106:8
[INFO] [stderr]     |
[INFO] [stderr] 106 |     fn rotate_90_CCW(&self) -> Self {
[INFO] [stderr]     |        ^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `rotate_90_ccw`
[INFO] [stderr] 
[INFO] [stderr] warning: method `get_CW_guard_position` should have a snake case name
[INFO] [stderr]    --> src/day_6.rs:191:8
[INFO] [stderr]     |
[INFO] [stderr] 191 |     fn get_CW_guard_position(&self, start_position: &Position, direction: &Direction) -> Option<Position> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `get_cw_guard_position`
[INFO] [stderr] 
[INFO] [stderr] warning: method `get_CCW_guard_position` should have a snake case name
[INFO] [stderr]    --> src/day_6.rs:205:8
[INFO] [stderr]     |
[INFO] [stderr] 205 |     fn get_CCW_guard_position(&self, start_position: &Position, direction: &Direction) -> Option<Position> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `get_ccw_guard_position`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `next_CW_guard_position` should have a snake case name
[INFO] [stderr]    --> src/day_6.rs:542:17
[INFO] [stderr]     |
[INFO] [stderr] 542 |         let mut next_CW_guard_position: Option<Position> = tile_map.get_CW_guard_position(&start_guard_position, &Direction::Up);
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `next_cw_guard_position`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `next_CW_guard_position` should have a snake case name
[INFO] [stderr]    --> src/day_6.rs:544:17
[INFO] [stderr]     |
[INFO] [stderr] 544 | ...mut next_CW_guard_position: Option<Position> = tile_map.get_CW_guard_position(&next_CW_guard_position.unwrap(), &Direction::Right);
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `next_cw_guard_position`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `next_CCW_guard_position` should have a snake case name
[INFO] [stderr]    --> src/day_6.rs:549:17
[INFO] [stderr]     |
[INFO] [stderr] 549 |         let mut next_CCW_guard_position: Option<Position>;
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `next_ccw_guard_position`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `xy_XOR_gates` should have a snake case name
[INFO] [stderr]    --> src/day_24.rs:231:17
[INFO] [stderr]     |
[INFO] [stderr] 231 |         let mut xy_XOR_gates: Vec<&Gate> = xy_gates.iter().cloned().filter(|x| x.gate_type == GateType::XOR).collect::<Vec<&Gate>>();
[INFO] [stderr]     |                 ^^^^^^^^^^^^ help: convert the identifier to snake case: `xy_xor_gates`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `xy_AND_gates` should have a snake case name
[INFO] [stderr]    --> src/day_24.rs:232:17
[INFO] [stderr]     |
[INFO] [stderr] 232 |         let mut xy_AND_gates: Vec<&Gate> = xy_gates.iter().cloned().filter(|x| x.gate_type == GateType::AND).collect::<Vec<&Gate>>();
[INFO] [stderr]     |                 ^^^^^^^^^^^^ help: convert the identifier to snake case: `xy_and_gates`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `xy_XOR_gates_outputs` should have a snake case name
[INFO] [stderr]    --> src/day_24.rs:234:13
[INFO] [stderr]     |
[INFO] [stderr] 234 |         let xy_XOR_gates_outputs: Vec<String> = xy_XOR_gates.iter().map(|x| x.output.clone()).collect::<Vec<String>>();
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `xy_xor_gates_outputs`
[INFO] [stderr] 
[INFO] [stderr] warning: `AOC_2024` (bin "AOC_2024" test) generated 144 warnings (run `cargo fix --bin "AOC_2024" -p AOC_2024 --tests` to apply 115 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/AOC_2024-fa4167950f45ee5f)
[INFO] [stdout] 
[INFO] [stdout] running 154 tests
[INFO] [stdout] test day_11::tests::quick_test ... ok
[INFO] [stdout] test day_10::tests::quick_test ... ok
[INFO] [stdout] test day_12::tests::quick_test ... ok
[INFO] [stdout] test day_10::tests::example_1 ... FAILED
[INFO] [stdout] test day_11::tests::example_1 ... FAILED
[INFO] [stdout] test day_10::tests::example_2 ... FAILED
[INFO] [stdout] test day_10::tests::part_1 ... FAILED
[INFO] [stdout] test day_13::tests::part_2 ... FAILED
[INFO] [stdout] test day_11::tests::part_2 ... FAILED
[INFO] [stdout] test day_11::tests::part_1 ... FAILED
[INFO] [stdout] test day_11::tests::example_2 ... FAILED
[INFO] [stdout] test day_12::tests::example_1 ... FAILED
[INFO] [stdout] test day_12::tests::example_2 ... FAILED
[INFO] [stdout] test day_10::tests::part_2 ... FAILED
[INFO] [stdout] test day_14::tests::quick_test2 ... ok
[INFO] [stdout] test day_12::tests::example_2_3 ... FAILED
[INFO] [stdout] test day_12::tests::example_2_2 ... FAILED
[INFO] [stdout] test day_12::tests::part_1 ... FAILED
[INFO] [stdout] test day_12::tests::example_2_4 ... FAILED
[INFO] [stdout] test day_14::tests::example_1 ... FAILED
[INFO] [stdout] test day_13::tests::example_2 ... FAILED
[INFO] [stdout] test day_14::tests::example_2 ... FAILED
[INFO] [stdout] test day_13::tests::example_1 ... FAILED
[INFO] [stdout] test day_14::tests::part_2 ... FAILED
[INFO] [stdout] test day_15::tests::example_2_2 ... FAILED
[INFO] [stdout] test day_15::tests::part_2 ... FAILED
[INFO] [stdout] test day_15::tests::quick_test ... ok
[INFO] [stdout] test day_16::tests::quick_test ... ok
[INFO] [stdout] test day_16::tests::example_1 ... FAILED
[INFO] [stdout] test day_15::tests::example_2 ... FAILED
[INFO] [stdout] test day_15::tests::example_1 ... FAILED
[INFO] [stdout] test day_16::tests::example_1_2 ... FAILED
[INFO] [stdout] test day_16::tests::example_2 ... FAILED
[INFO] [stdout] test day_15::tests::part_1 ... FAILED
[INFO] [stdout] test day_17::tests::example_1_1 ... FAILED
[INFO] [stdout] test day_15::tests::example_1_2 ... FAILED
[INFO] [stdout] test day_16::tests::example_2_2 ... FAILED
[INFO] [stdout] test day_16::tests::part_1 ... FAILED
[INFO] [stdout] test day_16::tests::part_2 ... FAILED
[INFO] [stdout] test day_17::tests::example_1_2 ... FAILED
[INFO] [stdout] test day_17::tests::example_1_5 ... FAILED
[INFO] [stdout] test day_17::tests::example_2 ... FAILED
[INFO] [stdout] test day_18::tests::part_1 ... FAILED
[INFO] [stdout] test day_17::tests::part_2 ... FAILED
[INFO] [stdout] test day_18::tests::example_1 ... FAILED
[INFO] [stdout] test day_18::tests::example_2 ... FAILED
[INFO] [stdout] test day_17::tests::part_1 ... FAILED
[INFO] [stdout] test day_18::tests::part_2 ... FAILED
[INFO] [stdout] test day_18::tests::quick_test ... ok
[INFO] [stdout] test day_19::tests::example_1 ... FAILED
[INFO] [stdout] test day_19::tests::example_2 ... FAILED
[INFO] [stdout] test day_13::tests::quick_test ... ok
[INFO] [stdout] test day_14::tests::quick_test ... ok
[INFO] [stdout] test day_17::tests::calc ... ok
[INFO] [stdout] test day_19::tests::part_1 ... FAILED
[INFO] [stdout] test day_19::tests::quick_test ... ok
[INFO] [stdout] test day_17::tests::example_1 ... FAILED
[INFO] [stdout] test day_1::tests::example_1 ... FAILED
[INFO] [stdout] test day_1::tests::quick_test ... ok
[INFO] [stdout] test day_20::tests::example_1 ... FAILED
[INFO] [stdout] test day_1::tests::part_2 ... FAILED
[INFO] [stdout] test day_21::tests::example_1 ... FAILED
[INFO] [stdout] test day_17::tests::example_1_4 ... FAILED
[INFO] [stdout] test day_17::tests::example_1_3 ... FAILED
[INFO] [stdout] test day_13::tests::part_1 ... FAILED
[INFO] [stdout] test day_21::tests::quick_test ... ok
[INFO] [stdout] test day_21::tests::quick_test2 ... ok
[INFO] [stdout] test day_21::tests::example_2 ... FAILED
[INFO] [stdout] test day_21::tests::part_1 ... FAILED
[INFO] [stdout] test day_20::tests::quick_test ... ok
[INFO] [stdout] test day_20::tests::part_2 ... FAILED
[INFO] [stdout] test day_17::tests::quick_test ... ok
[INFO] [stdout] test day_20::tests::example_2 ... FAILED
[INFO] [stdout] test day_19::tests::part_2 ... FAILED
[INFO] [stdout] test day_20::tests::part_1 ... FAILED
[INFO] [stdout] test day_1::tests::part_1 ... FAILED
[INFO] [stdout] test day_21::tests::part_2 ... FAILED
[INFO] [stdout] test day_1::tests::example_2 ... FAILED
[INFO] [stdout] test day_23::tests::quick_test ... ok
[INFO] [stdout] test day_23::tests::example_2 ... FAILED
[INFO] [stdout] test day_24::tests::part_2 ... FAILED
[INFO] [stdout] test day_22::tests::quick_test ... ok
[INFO] [stdout] test day_24::tests::example_2 ... FAILED
[INFO] [stdout] test day_23::tests::example_1 ... FAILED
[INFO] [stdout] test day_23::tests::part_2 ... FAILED
[INFO] [stdout] test day_22::tests::example_2 ... FAILED
[INFO] [stdout] test day_22::tests::part_1 ... FAILED
[INFO] [stdout] test day_22::tests::example_1 ... FAILED
[INFO] [stdout] test day_24::tests::quickerer_test ... FAILED
[INFO] [stdout] test day_25::tests::example_1 ... FAILED
[INFO] [stdout] test day_23::tests::part_1 ... FAILED
[INFO] [stdout] test day_22::tests::part_2 ... FAILED
[INFO] [stdout] test day_24::tests::example_1 ... FAILED
[INFO] [stdout] test day_21::tests::quick_test3 ... ok
[INFO] [stdout] test day_25::tests::example_2 ... FAILED
[INFO] [stdout] test day_25::tests::part_1 ... FAILED
[INFO] [stdout] test day_25::tests::quick_test ... ok
[INFO] [stdout] test day_2::tests::quick_test ... ok
[INFO] [stdout] test day_2::tests::part_1 ... FAILED
[INFO] [stdout] test day_25::tests::part_2 ... FAILED
[INFO] [stdout] test day_3::tests::example_2 ... FAILED
[INFO] [stdout] test day_3::tests::part_1 ... FAILED
[INFO] [stdout] test day_2::tests::example_2 ... FAILED
[INFO] [stdout] test day_3::tests::example_1 ... FAILED
[INFO] [stdout] test day_2::tests::part_2 ... FAILED
[INFO] [stdout] test day_2::tests::example_1 ... FAILED
[INFO] [stdout] test day_24::tests::quicker_test ... FAILED
[INFO] [stdout] test day_3::tests::part_2 ... FAILED
[INFO] [stdout] test day_3::tests::quick_test ... ok
[INFO] [stdout] test day_4::tests::example_1 ... FAILED
[INFO] [stdout] test day_4::tests::example_2 ... FAILED
[INFO] [stdout] test day_5::tests::quick_test ... ok
[INFO] [stdout] test day_5::tests::part_1 ... FAILED
[INFO] [stdout] test day_6::tests::part_1 ... FAILED
[INFO] [stdout] test day_6::tests::part_2 ... FAILED
[INFO] [stdout] test day_6::tests::quick_test ... ok
[INFO] [stdout] test day_6::tests::test_example_2 ... FAILED
[INFO] [stdout] test day_4::tests::part_1 ... FAILED
[INFO] [stdout] test day_4::tests::part_2 ... FAILED
[INFO] [stdout] test day_6::tests::walking ... ok
[INFO] [stdout] test day_5::tests::part_2 ... FAILED
[INFO] [stdout] test day_7::tests::example_1 ... FAILED
[INFO] [stdout] test day_7::tests::example_2 ... FAILED
[INFO] [stdout] test day_7::tests::number_combinations ... ok
[INFO] [stdout] test day_7::tests::part_1 ... FAILED
[INFO] [stdout] test day_6::tests::example_2 ... FAILED
[INFO] [stdout] test day_6::tests::example_1 ... FAILED
[INFO] [stdout] test day_7::tests::quick_test ... ok
[INFO] [stdout] test day_5::tests::example_2 ... FAILED
[INFO] [stdout] test day_7::tests::quick_test2 ... ok
[INFO] [stdout] test day_7::tests::part_2 ... FAILED
[INFO] [stdout] test day_7::tests::string_concat ... ok
[INFO] [stdout] test day_7::tests::test_logs ... ok
[INFO] [stdout] test day_4::tests::quick_test ... ok
[INFO] [stdout] test day_8::tests::quick_test ... ok
[INFO] [stdout] test day_8::tests::example_1 ... FAILED
[INFO] [stdout] test day_9::tests::example_1 ... FAILED
[INFO] [stdout] test day_9::tests::quick_test ... ok
[INFO] [stdout] test day_8::tests::example_2 ... FAILED
[INFO] [stdout] test day_9::tests::example_1_3 ... FAILED
[INFO] [stdout] test day_9::tests::example_2 ... FAILED
[INFO] [stdout] test tests::first_example ... ok
[INFO] [stdout] test day_8::tests::part_1 ... FAILED
[INFO] [stdout] test day_9::tests::example_1_2 ... FAILED
[INFO] [stdout] test day_9::tests::example_1_4 ... FAILED
[INFO] [stdout] test day_9::tests::example_1_5 ... FAILED
[INFO] [stdout] test day_9::tests::part_2 ... FAILED
[INFO] [stdout] test day_5::tests::example_1 ... FAILED
[INFO] [stdout] test day_8::tests::part_2 ... FAILED
[INFO] [stdout] test day_24::tests::part_1 ... FAILED
[INFO] [stdout] test day_14::tests::part_1 ... FAILED
[INFO] [stdout] test day_9::tests::part_1 ... FAILED
[INFO] [stdout] test day_12::tests::part_2 ... FAILED
[INFO] [stdout] test day_24::tests::quick_test has been running for over 60 seconds
[ERROR] error running command: no output for 300 seconds
[INFO] running `Command { std: "docker" "inspect" "16e1606931fc1e010515341521be02c099d59a3458e9ba4bb81f567ce9603d7a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "16e1606931fc1e010515341521be02c099d59a3458e9ba4bb81f567ce9603d7a", kill_on_drop: false }`
[INFO] [stdout] 16e1606931fc1e010515341521be02c099d59a3458e9ba4bb81f567ce9603d7a
