[INFO] cloning repository https://github.com/TimJennings/aoc2024-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/TimJennings/aoc2024-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTimJennings%2Faoc2024-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTimJennings%2Faoc2024-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 040123379dcb51b0a8812223788d1b591d04e9a7
[INFO] testing TimJennings/aoc2024-rs against beta-2024-12-08 for beta-1.84.0-4-retry
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTimJennings%2Faoc2024-rs" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/TimJennings/aoc2024-rs on toolchain beta-2024-12-08
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2024-12-08" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/TimJennings/aoc2024-rs
[INFO] finished tweaking git repo https://github.com/TimJennings/aoc2024-rs
[INFO] tweaked toml for git repo https://github.com/TimJennings/aoc2024-rs written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/TimJennings/aoc2024-rs 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" "+beta-2024-12-08" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2024-12-08" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a9d9efefb57e785bd5d9a7d191ed69346a024aafb8e786a78aee2c53dc67cb5f
[INFO] running `Command { std: "docker" "start" "-a" "a9d9efefb57e785bd5d9a7d191ed69346a024aafb8e786a78aee2c53dc67cb5f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a9d9efefb57e785bd5d9a7d191ed69346a024aafb8e786a78aee2c53dc67cb5f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a9d9efefb57e785bd5d9a7d191ed69346a024aafb8e786a78aee2c53dc67cb5f", kill_on_drop: false }`
[INFO] [stdout] a9d9efefb57e785bd5d9a7d191ed69346a024aafb8e786a78aee2c53dc67cb5f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2024-12-08" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a9a1da68f3e48e5b7a079029deb3adea66562f834ab37f8714cb6fc412fea307
[INFO] running `Command { std: "docker" "start" "-a" "a9a1da68f3e48e5b7a079029deb3adea66562f834ab37f8714cb6fc412fea307", kill_on_drop: false }`
[INFO] [stderr]    Compiling memchr v2.7.4
[INFO] [stderr]    Compiling minimal-lexical v0.2.1
[INFO] [stderr]    Compiling either v1.13.0
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling aoc24 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `many0`
[INFO] [stdout]  --> src/day1/mod.rs:6:25
[INFO] [stdout]   |
[INFO] [stdout] 6 |     multi::{fold_many0, many0},
[INFO] [stdout]   |                         ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `many0`
[INFO] [stdout]  --> src/day3/mod.rs:5:25
[INFO] [stdout]   |
[INFO] [stdout] 5 |     multi::{fold_many0, many0},
[INFO] [stdout]   |                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/day5/mod.rs:22:19
[INFO] [stdout]    |
[INFO] [stdout] 22 |         let mid = (update.len() / 2);
[INFO] [stdout]    |                   ^                ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 22 -         let mid = (update.len() / 2);
[INFO] [stdout] 22 +         let mid = update.len() / 2;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/day5/mod.rs:50:19
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let mid = (update.len() / 2);
[INFO] [stdout]    |                   ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 50 -         let mid = (update.len() / 2);
[INFO] [stdout] 50 +         let mid = update.len() / 2;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::combinator::peek`
[INFO] [stdout]  --> src/day6/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use nom::combinator::peek;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Grid`
[INFO] [stdout]  --> src/day6/mod.rs:6:29
[INFO] [stdout]   |
[INFO] [stdout] 6 |     grid::{self, Direction, Grid},
[INFO] [stdout]   |                             ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `string_utils::read_file_to_string`
[INFO] [stdout]   --> src/day7/mod.rs:10:50
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::common::{self, nom_utils::parser_u64, string_utils::read_file_to_string};
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/day7/mod.rs:44:50
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn parse_equations(input: &str) -> IResult<&str, (Vec<(u64, Vec<u64>)>)> {
[INFO] [stdout]    |                                                  ^                    ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 44 - fn parse_equations(input: &str) -> IResult<&str, (Vec<(u64, Vec<u64>)>)> {
[INFO] [stdout] 44 + fn parse_equations(input: &str) -> IResult<&str, Vec<(u64, Vec<u64>)>> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]   --> src/day9/mod.rs:68:29
[INFO] [stdout]    |
[INFO] [stdout] 68 |             file_map.insert((next_id), (memory.len(), digit));
[INFO] [stdout]    |                             ^       ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 68 -             file_map.insert((next_id), (memory.len(), digit));
[INFO] [stdout] 68 +             file_map.insert(next_id, (memory.len(), digit));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/day9/mod.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout] 127 |         if (next_id == 0) {
[INFO] [stdout]     |            ^            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 127 -         if (next_id == 0) {
[INFO] [stdout] 127 +         if next_id == 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/common/grid.rs:17:16
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn new(mut input: &str) -> Self {
[INFO] [stdout]    |                ----^^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day10/mod.rs:73:25
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn walk(x: i32, y: i32, mut nines: &mut HashSet<(usize, usize)>, grid: &Grid, current_value: u32) {
[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/day10/mod.rs:115:26
[INFO] [stdout]     |
[INFO] [stdout] 115 | fn walk2(x: i32, y: i32, mut nines: &mut Vec<(usize, usize)>, grid: &Grid, current_value: u32) {
[INFO] [stdout]     |                          ----^^^^^
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `directions`
[INFO] [stdout]   --> src/day4/mod.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 67 |     let directions: Vec<Direction> = vec![NORTH, NE, EAST, SE, SOUTH, SW, WEST, NW];
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_directions`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day4/mod.rs:138:16
[INFO] [stdout]     |
[INFO] [stdout] 138 |     pub fn new(mut input: &str) -> Self {
[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/day6/mod.rs:105:13
[INFO] [stdout]     |
[INFO] [stdout] 105 |         let mut walk_set = HashSet::new();
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_file_to_vec` is never used
[INFO] [stdout]  --> src/common/string_utils.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub fn read_file_to_vec(file_path: &str) -> Vec<String> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NORTH` is never used
[INFO] [stdout]  --> src/day12/mod.rs:5:7
[INFO] [stdout]   |
[INFO] [stdout] 5 | const NORTH: Direction = Direction { x: 0, y: -1 };
[INFO] [stdout]   |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NORTH_EAST` is never used
[INFO] [stdout]  --> src/day12/mod.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const NORTH_EAST: Direction = Direction { x: 1, y: -1 };
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EAST` is never used
[INFO] [stdout]  --> src/day12/mod.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | const EAST: Direction = Direction { x: 1, y: 0 };
[INFO] [stdout]   |       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SOUTH_EAST` is never used
[INFO] [stdout]  --> src/day12/mod.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const SOUTH_EAST: Direction = Direction { x: 1, y: 1 };
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SOUTH` is never used
[INFO] [stdout]  --> src/day12/mod.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const SOUTH: Direction = Direction { x: 0, y: 1 };
[INFO] [stdout]   |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SOUTH_WEST` is never used
[INFO] [stdout]   --> src/day12/mod.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const SOUTH_WEST: Direction = Direction { x: -1, y: 1 };
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WEST` is never used
[INFO] [stdout]   --> src/day12/mod.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const WEST: Direction = Direction { x: -1, y: 0 };
[INFO] [stdout]    |       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NORTH_WEST` is never used
[INFO] [stdout]   --> src/day12/mod.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const NORTH_WEST: Direction = Direction { x: -1, y: -1 };
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/day3/mod.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 29 |     Char(&'a str),
[INFO] [stdout]    |     ---- ^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Token` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 29 |     Char(()),
[INFO] [stdout]    |          ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/day3/mod.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 |     Do(&'a str),
[INFO] [stdout]    |     -- ^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Token` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 31 |     Do(()),
[INFO] [stdout]    |        ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/day3/mod.rs:32:10
[INFO] [stdout]    |
[INFO] [stdout] 32 |     Dont(&'a str),
[INFO] [stdout]    |     ---- ^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Token` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 32 |     Dont(()),
[INFO] [stdout]    |          ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vecI` should have a snake case name
[INFO] [stdout]   --> src/common/grid.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |         let vecI = string_utils::string_to_vec(input);
[INFO] [stdout]    |             ^^^^ help: convert the identifier to snake case: `vec_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `currentX` should have a snake case name
[INFO] [stdout]   --> src/day10/mod.rs:25:13
[INFO] [stdout]    |
[INFO] [stdout] 25 |         let currentX = trailhead.0;
[INFO] [stdout]    |             ^^^^^^^^ help: convert the identifier to snake case: `current_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `currentY` should have a snake case name
[INFO] [stdout]   --> src/day10/mod.rs:26:13
[INFO] [stdout]    |
[INFO] [stdout] 26 |         let currentY = trailhead.1;
[INFO] [stdout]    |             ^^^^^^^^ help: convert the identifier to snake case: `current_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `currentX` should have a snake case name
[INFO] [stdout]   --> src/day10/mod.rs:55:13
[INFO] [stdout]    |
[INFO] [stdout] 55 |         let currentX = trailhead.0;
[INFO] [stdout]    |             ^^^^^^^^ help: convert the identifier to snake case: `current_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `currentY` should have a snake case name
[INFO] [stdout]   --> src/day10/mod.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let currentY = trailhead.1;
[INFO] [stdout]    |             ^^^^^^^^ help: convert the identifier to snake case: `current_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `NORTH` should have a snake case name
[INFO] [stdout]  --> src/day4/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let NORTH = Direction { x: -1, y: 0 };
[INFO] [stdout]   |         ^^^^^ help: convert the identifier to snake case: `north`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `NE` should have a snake case name
[INFO] [stdout]  --> src/day4/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let NE: Direction = Direction { x: -1, y: 1 };
[INFO] [stdout]   |         ^^ help: convert the identifier to snake case: `ne`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `EAST` should have a snake case name
[INFO] [stdout]  --> src/day4/mod.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let EAST: Direction = Direction { x: 0, y: 1 };
[INFO] [stdout]   |         ^^^^ help: convert the identifier to snake case: `east`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `SE` should have a snake case name
[INFO] [stdout]   --> src/day4/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let SE: Direction = Direction { x: 1, y: 1 };
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `se`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `SOUTH` should have a snake case name
[INFO] [stdout]   --> src/day4/mod.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let SOUTH: Direction = Direction { x: 1, y: 0 };
[INFO] [stdout]    |         ^^^^^ help: convert the identifier to snake case: `south`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `SW` should have a snake case name
[INFO] [stdout]   --> src/day4/mod.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let SW: Direction = Direction { x: 1, y: -1 };
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case (notice the capitalization): `sw`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `WEST` should have a snake case name
[INFO] [stdout]   --> src/day4/mod.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let WEST: Direction = Direction { x: 0, y: -1 };
[INFO] [stdout]    |         ^^^^ help: convert the identifier to snake case: `west`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `NW` should have a snake case name
[INFO] [stdout]   --> src/day4/mod.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let NW: Direction = Direction { x: -1, y: -1 };
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `nw`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `checkX` should have a snake case name
[INFO] [stdout]   --> src/day4/mod.rs:27:29
[INFO] [stdout]    |
[INFO] [stdout] 27 |                     let mut checkX = x + direction.x;
[INFO] [stdout]    |                             ^^^^^^ help: convert the identifier to snake case: `check_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `checkY` should have a snake case name
[INFO] [stdout]   --> src/day4/mod.rs:28:29
[INFO] [stdout]    |
[INFO] [stdout] 28 |                     let mut checkY = y + direction.y;
[INFO] [stdout]    |                             ^^^^^^ help: convert the identifier to snake case: `check_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `NORTH` should have a snake case name
[INFO] [stdout]   --> src/day4/mod.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let NORTH = Direction { x: -1, y: 0 };
[INFO] [stdout]    |         ^^^^^ help: convert the identifier to snake case: `north`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `NE` should have a snake case name
[INFO] [stdout]   --> src/day4/mod.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |     let NE: Direction = Direction { x: -1, y: 1 };
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `ne`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `EAST` should have a snake case name
[INFO] [stdout]   --> src/day4/mod.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let EAST: Direction = Direction { x: 0, y: 1 };
[INFO] [stdout]    |         ^^^^ help: convert the identifier to snake case: `east`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `SE` should have a snake case name
[INFO] [stdout]   --> src/day4/mod.rs:61:9
[INFO] [stdout]    |
[INFO] [stdout] 61 |     let SE: Direction = Direction { x: 1, y: 1 };
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `se`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `SOUTH` should have a snake case name
[INFO] [stdout]   --> src/day4/mod.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |     let SOUTH: Direction = Direction { x: 1, y: 0 };
[INFO] [stdout]    |         ^^^^^ help: convert the identifier to snake case: `south`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `SW` should have a snake case name
[INFO] [stdout]   --> src/day4/mod.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 |     let SW: Direction = Direction { x: 1, y: -1 };
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case (notice the capitalization): `sw`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `WEST` should have a snake case name
[INFO] [stdout]   --> src/day4/mod.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let WEST: Direction = Direction { x: 0, y: -1 };
[INFO] [stdout]    |         ^^^^ help: convert the identifier to snake case: `west`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `NW` should have a snake case name
[INFO] [stdout]   --> src/day4/mod.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let NW: Direction = Direction { x: -1, y: -1 };
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `nw`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `firstDiag` should have a snake case name
[INFO] [stdout]   --> src/day4/mod.rs:77:25
[INFO] [stdout]    |
[INFO] [stdout] 77 |                 let mut firstDiag = false;
[INFO] [stdout]    |                         ^^^^^^^^^ help: convert the identifier to snake case: `first_diag`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vecI` should have a snake case name
[INFO] [stdout]    --> src/day4/mod.rs:139:13
[INFO] [stdout]     |
[INFO] [stdout] 139 |         let vecI = common::string_utils::string_to_vec(input);
[INFO] [stdout]     |             ^^^^ help: convert the identifier to snake case: `vec_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `E` should have a snake case name
[INFO] [stdout]    --> src/day5/mod.rs:122:13
[INFO] [stdout]     |
[INFO] [stdout] 122 |         Err(E) => Err(E),
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `E` should have a snake case name
[INFO] [stdout]    --> src/day5/mod.rs:137:13
[INFO] [stdout]     |
[INFO] [stdout] 137 |         Err(E) => Err(E),
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `guardX` should have a snake case name
[INFO] [stdout]   --> src/day6/mod.rs:20:14
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let (mut guardX, mut guardY) = grid.find_first('^').unwrap();
[INFO] [stdout]    |              ^^^^^^ help: convert the identifier to snake case: `guard_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `guardY` should have a snake case name
[INFO] [stdout]   --> src/day6/mod.rs:20:26
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let (mut guardX, mut guardY) = grid.find_first('^').unwrap();
[INFO] [stdout]    |                          ^^^^^^ help: convert the identifier to snake case: `guard_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `guardDirection` should have a snake case name
[INFO] [stdout]   --> src/day6/mod.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 |     let mut guardDirection = NORTH;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `guard_direction`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `guardX` should have a snake case name
[INFO] [stdout]   --> src/day6/mod.rs:65:14
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let (mut guardX, mut guardY) = grid.find_first('^').unwrap();
[INFO] [stdout]    |              ^^^^^^ help: convert the identifier to snake case: `guard_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `guardY` should have a snake case name
[INFO] [stdout]   --> src/day6/mod.rs:65:26
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let (mut guardX, mut guardY) = grid.find_first('^').unwrap();
[INFO] [stdout]    |                          ^^^^^^ help: convert the identifier to snake case: `guard_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `guardDirection` should have a snake case name
[INFO] [stdout]   --> src/day6/mod.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |     let mut guardDirection = NORTH;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `guard_direction`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `newGuardX` should have a snake case name
[INFO] [stdout]   --> src/day6/mod.rs:98:10
[INFO] [stdout]    |
[INFO] [stdout] 98 |     let (newGuardX, newGuardY) = grid.find_first('^').unwrap();
[INFO] [stdout]    |          ^^^^^^^^^ help: convert the identifier to snake case: `new_guard_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `newGuardY` should have a snake case name
[INFO] [stdout]   --> src/day6/mod.rs:98:21
[INFO] [stdout]    |
[INFO] [stdout] 98 |     let (newGuardX, newGuardY) = grid.find_first('^').unwrap();
[INFO] [stdout]    |                     ^^^^^^^^^ help: convert the identifier to snake case: `new_guard_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `guardX` should have a snake case name
[INFO] [stdout]    --> src/day6/mod.rs:135:9
[INFO] [stdout]     |
[INFO] [stdout] 135 |     mut guardX: i32,
[INFO] [stdout]     |         ^^^^^^ help: convert the identifier to snake case: `guard_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `guardY` should have a snake case name
[INFO] [stdout]    --> src/day6/mod.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 |     mut guardY: i32,
[INFO] [stdout]     |         ^^^^^^ help: convert the identifier to snake case: `guard_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `guardDirection` should have a snake case name
[INFO] [stdout]    --> src/day6/mod.rs:137:9
[INFO] [stdout]     |
[INFO] [stdout] 137 |     mut guardDirection: Direction,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `guard_direction`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/day9/mod.rs:86:11
[INFO] [stdout]    |
[INFO] [stdout] 86 |     while next_id >= 0 {
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.04s
[INFO] running `Command { std: "docker" "inspect" "a9a1da68f3e48e5b7a079029deb3adea66562f834ab37f8714cb6fc412fea307", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a9a1da68f3e48e5b7a079029deb3adea66562f834ab37f8714cb6fc412fea307", kill_on_drop: false }`
[INFO] [stdout] a9a1da68f3e48e5b7a079029deb3adea66562f834ab37f8714cb6fc412fea307
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2024-12-08" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e48977d07c8c45caa8ff94a32c5d48688b2584437775a4d0060a33dc7cba4d6c
[INFO] running `Command { std: "docker" "start" "-a" "e48977d07c8c45caa8ff94a32c5d48688b2584437775a4d0060a33dc7cba4d6c", kill_on_drop: false }`
[INFO] [stderr]    Compiling aoc24 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]   --> src/day12/mod.rs:16:37
[INFO] [stdout]    |
[INFO] [stdout] 16 |     use std::collections::{HashMap, HashSet};
[INFO] [stdout]    |                                     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `NORTH_EAST` and `NORTH_WEST`
[INFO] [stdout]   --> src/day12/mod.rs:25:30
[INFO] [stdout]    |
[INFO] [stdout] 25 |         day12::{EAST, NORTH, NORTH_EAST, NORTH_WEST, SOUTH, SOUTH_EAST, SOUTH_WEST, WEST},
[INFO] [stdout]    |                              ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]   --> src/day12/mod.rs:98:30
[INFO] [stdout]    |
[INFO] [stdout] 98 |                         .get((&(current_char, (x + direction.x, y + direction.y))))
[INFO] [stdout]    |                              ^                                                   ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 98 -                         .get((&(current_char, (x + direction.x, y + direction.y))))
[INFO] [stdout] 98 +                         .get(&(current_char, (x + direction.x, y + direction.y)))
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/day12/mod.rs:338:22
[INFO] [stdout]     |
[INFO] [stdout] 338 |                 .get((&(current_char, (x + direction.x, y + direction.y))))
[INFO] [stdout]     |                      ^                                                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 338 -                 .get((&(current_char, (x + direction.x, y + direction.y))))
[INFO] [stdout] 338 +                 .get(&(current_char, (x + direction.x, y + direction.y)))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/day12/mod.rs:353:22
[INFO] [stdout]     |
[INFO] [stdout] 353 |                 .get((&(current_char, (x + direction.x, y + direction.y))))
[INFO] [stdout]     |                      ^                                                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 353 -                 .get((&(current_char, (x + direction.x, y + direction.y))))
[INFO] [stdout] 353 +                 .get(&(current_char, (x + direction.x, y + direction.y)))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `many0`
[INFO] [stdout]  --> src/day3/mod.rs:5:25
[INFO] [stdout]   |
[INFO] [stdout] 5 |     multi::{fold_many0, many0},
[INFO] [stdout]   |                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::common`
[INFO] [stdout]    --> src/day4/mod.rs:165:9
[INFO] [stdout]     |
[INFO] [stdout] 165 |     use crate::common;
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `*`
[INFO] [stdout]    --> src/day4/mod.rs:167:34
[INFO] [stdout]     |
[INFO] [stdout] 167 |     use super::{Direction, Grid, *};
[INFO] [stdout]     |                                  ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/day5/mod.rs:22:19
[INFO] [stdout]    |
[INFO] [stdout] 22 |         let mid = (update.len() / 2);
[INFO] [stdout]    |                   ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 22 -         let mid = (update.len() / 2);
[INFO] [stdout] 22 +         let mid = update.len() / 2;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/day5/mod.rs:50:19
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let mid = (update.len() / 2);
[INFO] [stdout]    |                   ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 50 -         let mid = (update.len() / 2);
[INFO] [stdout] 50 +         let mid = update.len() / 2;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `common` and `update_is_broken`
[INFO] [stdout]    --> src/day5/mod.rs:149:9
[INFO] [stdout]     |
[INFO] [stdout] 149 |         common,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 150 |         day5::{get_invalid_updates, get_valid_updates, parse_update, update_is_broken},
[INFO] [stdout]     |                                                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/day5/mod.rs:219:23
[INFO] [stdout]     |
[INFO] [stdout] 219 |             let mid = (update.len() / 2);
[INFO] [stdout]     |                       ^                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 219 -             let mid = (update.len() / 2);
[INFO] [stdout] 219 +             let mid = update.len() / 2;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::combinator::peek`
[INFO] [stdout]  --> src/day6/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use nom::combinator::peek;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Grid`
[INFO] [stdout]  --> src/day6/mod.rs:6:29
[INFO] [stdout]   |
[INFO] [stdout] 6 |     grid::{self, Direction, Grid},
[INFO] [stdout]   |                             ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]    --> src/day6/mod.rs:186:13
[INFO] [stdout]     |
[INFO] [stdout] 186 |             self,
[INFO] [stdout]     |             ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `string_utils::read_file_to_string`
[INFO] [stdout]   --> src/day7/mod.rs:10:50
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::common::{self, nom_utils::parser_u64, string_utils::read_file_to_string};
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/day7/mod.rs:44:50
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn parse_equations(input: &str) -> IResult<&str, (Vec<(u64, Vec<u64>)>)> {
[INFO] [stdout]    |                                                  ^                    ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 44 - fn parse_equations(input: &str) -> IResult<&str, (Vec<(u64, Vec<u64>)>)> {
[INFO] [stdout] 44 + fn parse_equations(input: &str) -> IResult<&str, Vec<(u64, Vec<u64>)>> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/day8/mod.rs:60:29
[INFO] [stdout]    |
[INFO] [stdout] 60 |                 let antix = (firstx - secondx);
[INFO] [stdout]    |                             ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 60 -                 let antix = (firstx - secondx);
[INFO] [stdout] 60 +                 let antix = firstx - secondx;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/day8/mod.rs:61:29
[INFO] [stdout]    |
[INFO] [stdout] 61 |                 let antiy = (firsty - secondy);
[INFO] [stdout]    |                             ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 61 -                 let antiy = (firsty - secondy);
[INFO] [stdout] 61 +                 let antiy = firsty - secondy;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/day8/mod.rs:132:29
[INFO] [stdout]     |
[INFO] [stdout] 132 |                 let antix = (firstx - secondx);
[INFO] [stdout]     |                             ^                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 132 -                 let antix = (firstx - secondx);
[INFO] [stdout] 132 +                 let antix = firstx - secondx;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/day8/mod.rs:133:29
[INFO] [stdout]     |
[INFO] [stdout] 133 |                 let antiy = (firsty - secondy);
[INFO] [stdout]     |                             ^                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 133 -                 let antiy = (firsty - secondy);
[INFO] [stdout] 133 +                 let antiy = firsty - secondy;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/day8/mod.rs:204:29
[INFO] [stdout]     |
[INFO] [stdout] 204 |                 let antix = (firstx - secondx);
[INFO] [stdout]     |                             ^                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 204 -                 let antix = (firstx - secondx);
[INFO] [stdout] 204 +                 let antix = firstx - secondx;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/day8/mod.rs:205:29
[INFO] [stdout]     |
[INFO] [stdout] 205 |                 let antiy = (firsty - secondy);
[INFO] [stdout]     |                             ^                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 205 -                 let antiy = (firsty - secondy);
[INFO] [stdout] 205 +                 let antiy = firsty - secondy;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/day8/mod.rs:266:29
[INFO] [stdout]     |
[INFO] [stdout] 266 |                 let antix = (firstx - secondx);
[INFO] [stdout]     |                             ^                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 266 -                 let antix = (firstx - secondx);
[INFO] [stdout] 266 +                 let antix = firstx - secondx;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/day8/mod.rs:267:29
[INFO] [stdout]     |
[INFO] [stdout] 267 |                 let antiy = (firsty - secondy);
[INFO] [stdout]     |                             ^                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 267 -                 let antiy = (firsty - secondy);
[INFO] [stdout] 267 +                 let antiy = firsty - secondy;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]   --> src/day9/mod.rs:68:29
[INFO] [stdout]    |
[INFO] [stdout] 68 |             file_map.insert((next_id), (memory.len(), digit));
[INFO] [stdout]    |                             ^       ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 68 -             file_map.insert((next_id), (memory.len(), digit));
[INFO] [stdout] 68 +             file_map.insert(next_id, (memory.len(), digit));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/day9/mod.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout] 127 |         if (next_id == 0) {
[INFO] [stdout]     |            ^            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 127 -         if (next_id == 0) {
[INFO] [stdout] 127 +         if next_id == 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/day9/mod.rs:213:33
[INFO] [stdout]     |
[INFO] [stdout] 213 |                 file_map.insert((next_id), (memory.len(), digit));
[INFO] [stdout]     |                                 ^       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 213 -                 file_map.insert((next_id), (memory.len(), digit));
[INFO] [stdout] 213 +                 file_map.insert(next_id, (memory.len(), digit));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/day9/mod.rs:272:16
[INFO] [stdout]     |
[INFO] [stdout] 272 |             if (next_id == 0) {
[INFO] [stdout]     |                ^            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 272 -             if (next_id == 0) {
[INFO] [stdout] 272 +             if next_id == 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]    --> src/day5/mod.rs:145:9
[INFO] [stdout]     |
[INFO] [stdout] 145 |     use itertools::Itertools;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/common/grid.rs:17:16
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn new(mut input: &str) -> Self {
[INFO] [stdout]    |                ----^^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day10/mod.rs:73:25
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn walk(x: i32, y: i32, mut nines: &mut HashSet<(usize, usize)>, grid: &Grid, current_value: u32) {
[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/day10/mod.rs:115:26
[INFO] [stdout]     |
[INFO] [stdout] 115 | fn walk2(x: i32, y: i32, mut nines: &mut Vec<(usize, usize)>, grid: &Grid, current_value: u32) {
[INFO] [stdout]     |                          ----^^^^^
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]    --> src/day11/mod.rs:135:13
[INFO] [stdout]     |
[INFO] [stdout] 135 |         let input = read_file_to_string("input/day11.txt");
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day11/mod.rs:141:13
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let mut stones: Vec<u64> = TEST_DATA
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `directions`
[INFO] [stdout]   --> src/day4/mod.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 67 |     let directions: Vec<Direction> = vec![NORTH, NE, EAST, SE, SOUTH, SW, WEST, NW];
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_directions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day4/mod.rs:138:16
[INFO] [stdout]     |
[INFO] [stdout] 138 |     pub fn new(mut input: &str) -> Self {
[INFO] [stdout]     |                ----^^^^^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `directions`
[INFO] [stdout]    --> src/day4/mod.rs:215:13
[INFO] [stdout]     |
[INFO] [stdout] 215 |         let directions: Vec<Direction> = vec![NORTH, NE, EAST, SE, SOUTH, SW, WEST, NW];
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_directions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day6/mod.rs:105:13
[INFO] [stdout]     |
[INFO] [stdout] 105 |         let mut walk_set = HashSet::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/day6/mod.rs:304:17
[INFO] [stdout]     |
[INFO] [stdout] 304 |             let mut walk_set = HashSet::new();
[INFO] [stdout]     |                 ----^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_file_to_vec` is never used
[INFO] [stdout]  --> src/common/string_utils.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub fn read_file_to_vec(file_path: &str) -> Vec<String> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NORTH_EAST` is never used
[INFO] [stdout]  --> src/day12/mod.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const NORTH_EAST: Direction = Direction { x: 1, y: -1 };
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NORTH_WEST` is never used
[INFO] [stdout]   --> src/day12/mod.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const NORTH_WEST: Direction = Direction { x: -1, y: -1 };
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TEST_DATA_1` is never used
[INFO] [stdout]   --> src/day12/mod.rs:28:11
[INFO] [stdout]    |
[INFO] [stdout] 28 |     const TEST_DATA_1: &str = r"AAAA
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TEST_DATA_2` is never used
[INFO] [stdout]   --> src/day12/mod.rs:33:11
[INFO] [stdout]    |
[INFO] [stdout] 33 |     const TEST_DATA_2: &str = r"OOOOO
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TEST_DATA_3` is never used
[INFO] [stdout]   --> src/day12/mod.rs:39:11
[INFO] [stdout]    |
[INFO] [stdout] 39 |     const TEST_DATA_3: &str = r"RRRRIICCFF
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TEST_DATA_4` is never used
[INFO] [stdout]   --> src/day12/mod.rs:50:11
[INFO] [stdout]    |
[INFO] [stdout] 50 |     const TEST_DATA_4: &str = r"EEEEE
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TEST_DATA_5` is never used
[INFO] [stdout]   --> src/day12/mod.rs:56:11
[INFO] [stdout]    |
[INFO] [stdout] 56 |     const TEST_DATA_5: &str = r"AAAAAA
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/day3/mod.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 29 |     Char(&'a str),
[INFO] [stdout]    |     ---- ^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Token` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 29 |     Char(()),
[INFO] [stdout]    |          ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/day3/mod.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 |     Do(&'a str),
[INFO] [stdout]    |     -- ^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Token` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 31 |     Do(()),
[INFO] [stdout]    |        ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/day3/mod.rs:32:10
[INFO] [stdout]    |
[INFO] [stdout] 32 |     Dont(&'a str),
[INFO] [stdout]    |     ---- ^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Token` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 32 |     Dont(()),
[INFO] [stdout]    |          ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vecI` should have a snake case name
[INFO] [stdout]   --> src/common/grid.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |         let vecI = string_utils::string_to_vec(input);
[INFO] [stdout]    |             ^^^^ help: convert the identifier to snake case: `vec_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `currentX` should have a snake case name
[INFO] [stdout]   --> src/day10/mod.rs:25:13
[INFO] [stdout]    |
[INFO] [stdout] 25 |         let currentX = trailhead.0;
[INFO] [stdout]    |             ^^^^^^^^ help: convert the identifier to snake case: `current_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `currentY` should have a snake case name
[INFO] [stdout]   --> src/day10/mod.rs:26:13
[INFO] [stdout]    |
[INFO] [stdout] 26 |         let currentY = trailhead.1;
[INFO] [stdout]    |             ^^^^^^^^ help: convert the identifier to snake case: `current_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `currentX` should have a snake case name
[INFO] [stdout]   --> src/day10/mod.rs:55:13
[INFO] [stdout]    |
[INFO] [stdout] 55 |         let currentX = trailhead.0;
[INFO] [stdout]    |             ^^^^^^^^ help: convert the identifier to snake case: `current_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `currentY` should have a snake case name
[INFO] [stdout]   --> src/day10/mod.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let currentY = trailhead.1;
[INFO] [stdout]    |             ^^^^^^^^ help: convert the identifier to snake case: `current_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `currentX` should have a snake case name
[INFO] [stdout]    --> src/day10/mod.rs:192:17
[INFO] [stdout]     |
[INFO] [stdout] 192 |             let currentX = trailhead.0;
[INFO] [stdout]     |                 ^^^^^^^^ help: convert the identifier to snake case: `current_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `currentY` should have a snake case name
[INFO] [stdout]    --> src/day10/mod.rs:193:17
[INFO] [stdout]     |
[INFO] [stdout] 193 |             let currentY = trailhead.1;
[INFO] [stdout]     |                 ^^^^^^^^ help: convert the identifier to snake case: `current_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `currentX` should have a snake case name
[INFO] [stdout]    --> src/day10/mod.rs:222:17
[INFO] [stdout]     |
[INFO] [stdout] 222 |             let currentX = trailhead.0;
[INFO] [stdout]     |                 ^^^^^^^^ help: convert the identifier to snake case: `current_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `currentY` should have a snake case name
[INFO] [stdout]    --> src/day10/mod.rs:223:17
[INFO] [stdout]     |
[INFO] [stdout] 223 |             let currentY = trailhead.1;
[INFO] [stdout]     |                 ^^^^^^^^ help: convert the identifier to snake case: `current_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `NORTH` should have a snake case name
[INFO] [stdout]  --> src/day4/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let NORTH = Direction { x: -1, y: 0 };
[INFO] [stdout]   |         ^^^^^ help: convert the identifier to snake case: `north`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `NE` should have a snake case name
[INFO] [stdout]  --> src/day4/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let NE: Direction = Direction { x: -1, y: 1 };
[INFO] [stdout]   |         ^^ help: convert the identifier to snake case: `ne`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `EAST` should have a snake case name
[INFO] [stdout]  --> src/day4/mod.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let EAST: Direction = Direction { x: 0, y: 1 };
[INFO] [stdout]   |         ^^^^ help: convert the identifier to snake case: `east`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `SE` should have a snake case name
[INFO] [stdout]   --> src/day4/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let SE: Direction = Direction { x: 1, y: 1 };
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `se`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `SOUTH` should have a snake case name
[INFO] [stdout]   --> src/day4/mod.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let SOUTH: Direction = Direction { x: 1, y: 0 };
[INFO] [stdout]    |         ^^^^^ help: convert the identifier to snake case: `south`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `SW` should have a snake case name
[INFO] [stdout]   --> src/day4/mod.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let SW: Direction = Direction { x: 1, y: -1 };
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case (notice the capitalization): `sw`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `WEST` should have a snake case name
[INFO] [stdout]   --> src/day4/mod.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let WEST: Direction = Direction { x: 0, y: -1 };
[INFO] [stdout]    |         ^^^^ help: convert the identifier to snake case: `west`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `NW` should have a snake case name
[INFO] [stdout]   --> src/day4/mod.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let NW: Direction = Direction { x: -1, y: -1 };
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `nw`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `checkX` should have a snake case name
[INFO] [stdout]   --> src/day4/mod.rs:27:29
[INFO] [stdout]    |
[INFO] [stdout] 27 |                     let mut checkX = x + direction.x;
[INFO] [stdout]    |                             ^^^^^^ help: convert the identifier to snake case: `check_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `checkY` should have a snake case name
[INFO] [stdout]   --> src/day4/mod.rs:28:29
[INFO] [stdout]    |
[INFO] [stdout] 28 |                     let mut checkY = y + direction.y;
[INFO] [stdout]    |                             ^^^^^^ help: convert the identifier to snake case: `check_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `NORTH` should have a snake case name
[INFO] [stdout]   --> src/day4/mod.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let NORTH = Direction { x: -1, y: 0 };
[INFO] [stdout]    |         ^^^^^ help: convert the identifier to snake case: `north`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `NE` should have a snake case name
[INFO] [stdout]   --> src/day4/mod.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |     let NE: Direction = Direction { x: -1, y: 1 };
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `ne`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `EAST` should have a snake case name
[INFO] [stdout]   --> src/day4/mod.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let EAST: Direction = Direction { x: 0, y: 1 };
[INFO] [stdout]    |         ^^^^ help: convert the identifier to snake case: `east`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `SE` should have a snake case name
[INFO] [stdout]   --> src/day4/mod.rs:61:9
[INFO] [stdout]    |
[INFO] [stdout] 61 |     let SE: Direction = Direction { x: 1, y: 1 };
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `se`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `SOUTH` should have a snake case name
[INFO] [stdout]   --> src/day4/mod.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |     let SOUTH: Direction = Direction { x: 1, y: 0 };
[INFO] [stdout]    |         ^^^^^ help: convert the identifier to snake case: `south`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `SW` should have a snake case name
[INFO] [stdout]   --> src/day4/mod.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 |     let SW: Direction = Direction { x: 1, y: -1 };
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case (notice the capitalization): `sw`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `WEST` should have a snake case name
[INFO] [stdout]   --> src/day4/mod.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let WEST: Direction = Direction { x: 0, y: -1 };
[INFO] [stdout]    |         ^^^^ help: convert the identifier to snake case: `west`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `NW` should have a snake case name
[INFO] [stdout]   --> src/day4/mod.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let NW: Direction = Direction { x: -1, y: -1 };
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case: `nw`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `firstDiag` should have a snake case name
[INFO] [stdout]   --> src/day4/mod.rs:77:25
[INFO] [stdout]    |
[INFO] [stdout] 77 |                 let mut firstDiag = false;
[INFO] [stdout]    |                         ^^^^^^^^^ help: convert the identifier to snake case: `first_diag`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `vecI` should have a snake case name
[INFO] [stdout]    --> src/day4/mod.rs:139:13
[INFO] [stdout]     |
[INFO] [stdout] 139 |         let vecI = common::string_utils::string_to_vec(input);
[INFO] [stdout]     |             ^^^^ help: convert the identifier to snake case: `vec_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `NORTH` should have a snake case name
[INFO] [stdout]    --> src/day4/mod.rs:206:13
[INFO] [stdout]     |
[INFO] [stdout] 206 |         let NORTH = Direction { x: -1, y: 0 };
[INFO] [stdout]     |             ^^^^^ help: convert the identifier to snake case: `north`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `NE` should have a snake case name
[INFO] [stdout]    --> src/day4/mod.rs:207:13
[INFO] [stdout]     |
[INFO] [stdout] 207 |         let NE: Direction = Direction { x: -1, y: 1 };
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case: `ne`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `EAST` should have a snake case name
[INFO] [stdout]    --> src/day4/mod.rs:208:13
[INFO] [stdout]     |
[INFO] [stdout] 208 |         let EAST: Direction = Direction { x: 0, y: 1 };
[INFO] [stdout]     |             ^^^^ help: convert the identifier to snake case: `east`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `SE` should have a snake case name
[INFO] [stdout]    --> src/day4/mod.rs:209:13
[INFO] [stdout]     |
[INFO] [stdout] 209 |         let SE: Direction = Direction { x: 1, y: 1 };
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case: `se`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `SOUTH` should have a snake case name
[INFO] [stdout]    --> src/day4/mod.rs:210:13
[INFO] [stdout]     |
[INFO] [stdout] 210 |         let SOUTH: Direction = Direction { x: 1, y: 0 };
[INFO] [stdout]     |             ^^^^^ help: convert the identifier to snake case: `south`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `SW` should have a snake case name
[INFO] [stdout]    --> src/day4/mod.rs:211:13
[INFO] [stdout]     |
[INFO] [stdout] 211 |         let SW: Direction = Direction { x: 1, y: -1 };
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case (notice the capitalization): `sw`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `WEST` should have a snake case name
[INFO] [stdout]    --> src/day4/mod.rs:212:13
[INFO] [stdout]     |
[INFO] [stdout] 212 |         let WEST: Direction = Direction { x: 0, y: -1 };
[INFO] [stdout]     |             ^^^^ help: convert the identifier to snake case: `west`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `NW` should have a snake case name
[INFO] [stdout]    --> src/day4/mod.rs:213:13
[INFO] [stdout]     |
[INFO] [stdout] 213 |         let NW: Direction = Direction { x: -1, y: -1 };
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case: `nw`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `firstDiag` should have a snake case name
[INFO] [stdout]    --> src/day4/mod.rs:225:29
[INFO] [stdout]     |
[INFO] [stdout] 225 |                     let mut firstDiag = false;
[INFO] [stdout]     |                             ^^^^^^^^^ help: convert the identifier to snake case: `first_diag`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `NORTH` should have a snake case name
[INFO] [stdout]    --> src/day4/mod.rs:274:13
[INFO] [stdout]     |
[INFO] [stdout] 274 |         let NORTH = Direction { x: -1, y: 0 };
[INFO] [stdout]     |             ^^^^^ help: convert the identifier to snake case: `north`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `NE` should have a snake case name
[INFO] [stdout]    --> src/day4/mod.rs:275:13
[INFO] [stdout]     |
[INFO] [stdout] 275 |         let NE: Direction = Direction { x: -1, y: 1 };
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case: `ne`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `EAST` should have a snake case name
[INFO] [stdout]    --> src/day4/mod.rs:276:13
[INFO] [stdout]     |
[INFO] [stdout] 276 |         let EAST: Direction = Direction { x: 0, y: 1 };
[INFO] [stdout]     |             ^^^^ help: convert the identifier to snake case: `east`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `SE` should have a snake case name
[INFO] [stdout]    --> src/day4/mod.rs:277:13
[INFO] [stdout]     |
[INFO] [stdout] 277 |         let SE: Direction = Direction { x: 1, y: 1 };
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case: `se`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `SOUTH` should have a snake case name
[INFO] [stdout]    --> src/day4/mod.rs:278:13
[INFO] [stdout]     |
[INFO] [stdout] 278 |         let SOUTH: Direction = Direction { x: 1, y: 0 };
[INFO] [stdout]     |             ^^^^^ help: convert the identifier to snake case: `south`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `SW` should have a snake case name
[INFO] [stdout]    --> src/day4/mod.rs:279:13
[INFO] [stdout]     |
[INFO] [stdout] 279 |         let SW: Direction = Direction { x: 1, y: -1 };
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case (notice the capitalization): `sw`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `WEST` should have a snake case name
[INFO] [stdout]    --> src/day4/mod.rs:280:13
[INFO] [stdout]     |
[INFO] [stdout] 280 |         let WEST: Direction = Direction { x: 0, y: -1 };
[INFO] [stdout]     |             ^^^^ help: convert the identifier to snake case: `west`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `NW` should have a snake case name
[INFO] [stdout]    --> src/day4/mod.rs:281:13
[INFO] [stdout]     |
[INFO] [stdout] 281 |         let NW: Direction = Direction { x: -1, y: -1 };
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case: `nw`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `checkX` should have a snake case name
[INFO] [stdout]    --> src/day4/mod.rs:294:33
[INFO] [stdout]     |
[INFO] [stdout] 294 |                         let mut checkX = x + direction.x;
[INFO] [stdout]     |                                 ^^^^^^ help: convert the identifier to snake case: `check_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `checkY` should have a snake case name
[INFO] [stdout]    --> src/day4/mod.rs:295:33
[INFO] [stdout]     |
[INFO] [stdout] 295 |                         let mut checkY = y + direction.y;
[INFO] [stdout]     |                                 ^^^^^^ help: convert the identifier to snake case: `check_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `E` should have a snake case name
[INFO] [stdout]    --> src/day5/mod.rs:122:13
[INFO] [stdout]     |
[INFO] [stdout] 122 |         Err(E) => Err(E),
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `E` should have a snake case name
[INFO] [stdout]    --> src/day5/mod.rs:137:13
[INFO] [stdout]     |
[INFO] [stdout] 137 |         Err(E) => Err(E),
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `guardX` should have a snake case name
[INFO] [stdout]   --> src/day6/mod.rs:20:14
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let (mut guardX, mut guardY) = grid.find_first('^').unwrap();
[INFO] [stdout]    |              ^^^^^^ help: convert the identifier to snake case: `guard_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `guardY` should have a snake case name
[INFO] [stdout]   --> src/day6/mod.rs:20:26
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let (mut guardX, mut guardY) = grid.find_first('^').unwrap();
[INFO] [stdout]    |                          ^^^^^^ help: convert the identifier to snake case: `guard_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `guardDirection` should have a snake case name
[INFO] [stdout]   --> src/day6/mod.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 |     let mut guardDirection = NORTH;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `guard_direction`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `guardX` should have a snake case name
[INFO] [stdout]   --> src/day6/mod.rs:65:14
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let (mut guardX, mut guardY) = grid.find_first('^').unwrap();
[INFO] [stdout]    |              ^^^^^^ help: convert the identifier to snake case: `guard_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `guardY` should have a snake case name
[INFO] [stdout]   --> src/day6/mod.rs:65:26
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let (mut guardX, mut guardY) = grid.find_first('^').unwrap();
[INFO] [stdout]    |                          ^^^^^^ help: convert the identifier to snake case: `guard_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `guardDirection` should have a snake case name
[INFO] [stdout]   --> src/day6/mod.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |     let mut guardDirection = NORTH;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `guard_direction`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `newGuardX` should have a snake case name
[INFO] [stdout]   --> src/day6/mod.rs:98:10
[INFO] [stdout]    |
[INFO] [stdout] 98 |     let (newGuardX, newGuardY) = grid.find_first('^').unwrap();
[INFO] [stdout]    |          ^^^^^^^^^ help: convert the identifier to snake case: `new_guard_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `newGuardY` should have a snake case name
[INFO] [stdout]   --> src/day6/mod.rs:98:21
[INFO] [stdout]    |
[INFO] [stdout] 98 |     let (newGuardX, newGuardY) = grid.find_first('^').unwrap();
[INFO] [stdout]    |                     ^^^^^^^^^ help: convert the identifier to snake case: `new_guard_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `guardX` should have a snake case name
[INFO] [stdout]    --> src/day6/mod.rs:135:9
[INFO] [stdout]     |
[INFO] [stdout] 135 |     mut guardX: i32,
[INFO] [stdout]     |         ^^^^^^ help: convert the identifier to snake case: `guard_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `guardY` should have a snake case name
[INFO] [stdout]    --> src/day6/mod.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 |     mut guardY: i32,
[INFO] [stdout]     |         ^^^^^^ help: convert the identifier to snake case: `guard_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `guardDirection` should have a snake case name
[INFO] [stdout]    --> src/day6/mod.rs:137:9
[INFO] [stdout]     |
[INFO] [stdout] 137 |     mut guardDirection: Direction,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `guard_direction`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `guardX` should have a snake case name
[INFO] [stdout]    --> src/day6/mod.rs:213:18
[INFO] [stdout]     |
[INFO] [stdout] 213 |         let (mut guardX, mut guardY) = grid.find_first('^').unwrap();
[INFO] [stdout]     |                  ^^^^^^ help: convert the identifier to snake case: `guard_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `guardY` should have a snake case name
[INFO] [stdout]    --> src/day6/mod.rs:213:30
[INFO] [stdout]     |
[INFO] [stdout] 213 |         let (mut guardX, mut guardY) = grid.find_first('^').unwrap();
[INFO] [stdout]     |                              ^^^^^^ help: convert the identifier to snake case: `guard_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `guardDirection` should have a snake case name
[INFO] [stdout]    --> src/day6/mod.rs:215:17
[INFO] [stdout]     |
[INFO] [stdout] 215 |         let mut guardDirection = NORTH;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `guard_direction`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `guardX` should have a snake case name
[INFO] [stdout]    --> src/day6/mod.rs:260:18
[INFO] [stdout]     |
[INFO] [stdout] 260 |         let (mut guardX, mut guardY) = grid.find_first('^').unwrap();
[INFO] [stdout]     |                  ^^^^^^ help: convert the identifier to snake case: `guard_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `guardY` should have a snake case name
[INFO] [stdout]    --> src/day6/mod.rs:260:30
[INFO] [stdout]     |
[INFO] [stdout] 260 |         let (mut guardX, mut guardY) = grid.find_first('^').unwrap();
[INFO] [stdout]     |                              ^^^^^^ help: convert the identifier to snake case: `guard_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `guardDirection` should have a snake case name
[INFO] [stdout]    --> src/day6/mod.rs:262:17
[INFO] [stdout]     |
[INFO] [stdout] 262 |         let mut guardDirection = NORTH;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `guard_direction`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `newGuardX` should have a snake case name
[INFO] [stdout]    --> src/day6/mod.rs:297:14
[INFO] [stdout]     |
[INFO] [stdout] 297 |         let (newGuardX, newGuardY) = grid.find_first('^').unwrap();
[INFO] [stdout]     |              ^^^^^^^^^ help: convert the identifier to snake case: `new_guard_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `newGuardY` should have a snake case name
[INFO] [stdout]    --> src/day6/mod.rs:297:25
[INFO] [stdout]     |
[INFO] [stdout] 297 |         let (newGuardX, newGuardY) = grid.find_first('^').unwrap();
[INFO] [stdout]     |                         ^^^^^^^^^ help: convert the identifier to snake case: `new_guard_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/day9/mod.rs:86:11
[INFO] [stdout]    |
[INFO] [stdout] 86 |     while next_id >= 0 {
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/day9/mod.rs:231:15
[INFO] [stdout]     |
[INFO] [stdout] 231 |         while next_id >= 0 {
[INFO] [stdout]     |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.73s
[INFO] running `Command { std: "docker" "inspect" "e48977d07c8c45caa8ff94a32c5d48688b2584437775a4d0060a33dc7cba4d6c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e48977d07c8c45caa8ff94a32c5d48688b2584437775a4d0060a33dc7cba4d6c", kill_on_drop: false }`
[INFO] [stdout] e48977d07c8c45caa8ff94a32c5d48688b2584437775a4d0060a33dc7cba4d6c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2024-12-08" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 7546e6a661348062a008ad435056749d5adbf732fdac80adb6fd105d5c7de2fd
[INFO] running `Command { std: "docker" "start" "-a" "7546e6a661348062a008ad435056749d5adbf732fdac80adb6fd105d5c7de2fd", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `HashSet`
[INFO] [stderr]   --> src/day12/mod.rs:16:37
[INFO] [stderr]    |
[INFO] [stderr] 16 |     use std::collections::{HashMap, HashSet};
[INFO] [stderr]    |                                     ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `NORTH_EAST` and `NORTH_WEST`
[INFO] [stderr]   --> src/day12/mod.rs:25:30
[INFO] [stderr]    |
[INFO] [stderr] 25 |         day12::{EAST, NORTH, NORTH_EAST, NORTH_WEST, SOUTH, SOUTH_EAST, SOUTH_WEST, WEST},
[INFO] [stderr]    |                              ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around method argument
[INFO] [stderr]   --> src/day12/mod.rs:98:30
[INFO] [stderr]    |
[INFO] [stderr] 98 |                         .get((&(current_char, (x + direction.x, y + direction.y))))
[INFO] [stderr]    |                              ^                                                   ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 98 -                         .get((&(current_char, (x + direction.x, y + direction.y))))
[INFO] [stderr] 98 +                         .get(&(current_char, (x + direction.x, y + direction.y)))
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around method argument
[INFO] [stderr]    --> src/day12/mod.rs:338:22
[INFO] [stderr]     |
[INFO] [stderr] 338 |                 .get((&(current_char, (x + direction.x, y + direction.y))))
[INFO] [stderr]     |                      ^                                                   ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 338 -                 .get((&(current_char, (x + direction.x, y + direction.y))))
[INFO] [stderr] 338 +                 .get(&(current_char, (x + direction.x, y + direction.y)))
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around method argument
[INFO] [stderr]    --> src/day12/mod.rs:353:22
[INFO] [stderr]     |
[INFO] [stderr] 353 |                 .get((&(current_char, (x + direction.x, y + direction.y))))
[INFO] [stderr]     |                      ^                                                   ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 353 -                 .get((&(current_char, (x + direction.x, y + direction.y))))
[INFO] [stderr] 353 +                 .get(&(current_char, (x + direction.x, y + direction.y)))
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `many0`
[INFO] [stderr]  --> src/day3/mod.rs:5:25
[INFO] [stderr]   |
[INFO] [stderr] 5 |     multi::{fold_many0, many0},
[INFO] [stderr]   |                         ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::common`
[INFO] [stderr]    --> src/day4/mod.rs:165:9
[INFO] [stderr]     |
[INFO] [stderr] 165 |     use crate::common;
[INFO] [stderr]     |         ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `*`
[INFO] [stderr]    --> src/day4/mod.rs:167:34
[INFO] [stderr]     |
[INFO] [stderr] 167 |     use super::{Direction, Grid, *};
[INFO] [stderr]     |                                  ^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]   --> src/day5/mod.rs:22:19
[INFO] [stderr]    |
[INFO] [stderr] 22 |         let mid = (update.len() / 2);
[INFO] [stderr]    |                   ^                ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 22 -         let mid = (update.len() / 2);
[INFO] [stderr] 22 +         let mid = update.len() / 2;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]   --> src/day5/mod.rs:50:19
[INFO] [stderr]    |
[INFO] [stderr] 50 |         let mid = (update.len() / 2);
[INFO] [stderr]    |                   ^                ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 50 -         let mid = (update.len() / 2);
[INFO] [stderr] 50 +         let mid = update.len() / 2;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `common` and `update_is_broken`
[INFO] [stderr]    --> src/day5/mod.rs:149:9
[INFO] [stderr]     |
[INFO] [stderr] 149 |         common,
[INFO] [stderr]     |         ^^^^^^
[INFO] [stderr] 150 |         day5::{get_invalid_updates, get_valid_updates, parse_update, update_is_broken},
[INFO] [stderr]     |                                                                      ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/day5/mod.rs:219:23
[INFO] [stderr]     |
[INFO] [stderr] 219 |             let mid = (update.len() / 2);
[INFO] [stderr]     |                       ^                ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 219 -             let mid = (update.len() / 2);
[INFO] [stderr] 219 +             let mid = update.len() / 2;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `nom::combinator::peek`
[INFO] [stderr]  --> src/day6/mod.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use nom::combinator::peek;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Grid`
[INFO] [stderr]  --> src/day6/mod.rs:6:29
[INFO] [stderr]   |
[INFO] [stderr] 6 |     grid::{self, Direction, Grid},
[INFO] [stderr]   |                             ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `self`
[INFO] [stderr]    --> src/day6/mod.rs:186:13
[INFO] [stderr]     |
[INFO] [stderr] 186 |             self,
[INFO] [stderr]     |             ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `string_utils::read_file_to_string`
[INFO] [stderr]   --> src/day7/mod.rs:10:50
[INFO] [stderr]    |
[INFO] [stderr] 10 | use crate::common::{self, nom_utils::parser_u64, string_utils::read_file_to_string};
[INFO] [stderr]    |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/day7/mod.rs:44:50
[INFO] [stderr]    |
[INFO] [stderr] 44 | fn parse_equations(input: &str) -> IResult<&str, (Vec<(u64, Vec<u64>)>)> {
[INFO] [stderr]    |                                                  ^                    ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 44 - fn parse_equations(input: &str) -> IResult<&str, (Vec<(u64, Vec<u64>)>)> {
[INFO] [stderr] 44 + fn parse_equations(input: &str) -> IResult<&str, Vec<(u64, Vec<u64>)>> {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]   --> src/day8/mod.rs:60:29
[INFO] [stderr]    |
[INFO] [stderr] 60 |                 let antix = (firstx - secondx);
[INFO] [stderr]    |                             ^                ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 60 -                 let antix = (firstx - secondx);
[INFO] [stderr] 60 +                 let antix = firstx - secondx;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]   --> src/day8/mod.rs:61:29
[INFO] [stderr]    |
[INFO] [stderr] 61 |                 let antiy = (firsty - secondy);
[INFO] [stderr]    |                             ^                ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 61 -                 let antiy = (firsty - secondy);
[INFO] [stderr] 61 +                 let antiy = firsty - secondy;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/day8/mod.rs:132:29
[INFO] [stderr]     |
[INFO] [stderr] 132 |                 let antix = (firstx - secondx);
[INFO] [stderr]     |                             ^                ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 132 -                 let antix = (firstx - secondx);
[INFO] [stderr] 132 +                 let antix = firstx - secondx;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/day8/mod.rs:133:29
[INFO] [stderr]     |
[INFO] [stderr] 133 |                 let antiy = (firsty - secondy);
[INFO] [stderr]     |                             ^                ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 133 -                 let antiy = (firsty - secondy);
[INFO] [stderr] 133 +                 let antiy = firsty - secondy;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/day8/mod.rs:204:29
[INFO] [stderr]     |
[INFO] [stderr] 204 |                 let antix = (firstx - secondx);
[INFO] [stderr]     |                             ^                ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 204 -                 let antix = (firstx - secondx);
[INFO] [stderr] 204 +                 let antix = firstx - secondx;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/day8/mod.rs:205:29
[INFO] [stderr]     |
[INFO] [stderr] 205 |                 let antiy = (firsty - secondy);
[INFO] [stderr]     |                             ^                ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 205 -                 let antiy = (firsty - secondy);
[INFO] [stderr] 205 +                 let antiy = firsty - secondy;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/day8/mod.rs:266:29
[INFO] [stderr]     |
[INFO] [stderr] 266 |                 let antix = (firstx - secondx);
[INFO] [stderr]     |                             ^                ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 266 -                 let antix = (firstx - secondx);
[INFO] [stderr] 266 +                 let antix = firstx - secondx;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/day8/mod.rs:267:29
[INFO] [stderr]     |
[INFO] [stderr] 267 |                 let antiy = (firsty - secondy);
[INFO] [stderr]     |                             ^                ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 267 -                 let antiy = (firsty - secondy);
[INFO] [stderr] 267 +                 let antiy = firsty - secondy;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around method argument
[INFO] [stderr]   --> src/day9/mod.rs:68:29
[INFO] [stderr]    |
[INFO] [stderr] 68 |             file_map.insert((next_id), (memory.len(), digit));
[INFO] [stderr]    |                             ^       ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 68 -             file_map.insert((next_id), (memory.len(), digit));
[INFO] [stderr] 68 +             file_map.insert(next_id, (memory.len(), digit));
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/day9/mod.rs:127:12
[INFO] [stderr]     |
[INFO] [stderr] 127 |         if (next_id == 0) {
[INFO] [stderr]     |            ^            ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 127 -         if (next_id == 0) {
[INFO] [stderr] 127 +         if next_id == 0 {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around method argument
[INFO] [stderr]    --> src/day9/mod.rs:213:33
[INFO] [stderr]     |
[INFO] [stderr] 213 |                 file_map.insert((next_id), (memory.len(), digit));
[INFO] [stderr]     |                                 ^       ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 213 -                 file_map.insert((next_id), (memory.len(), digit));
[INFO] [stderr] 213 +                 file_map.insert(next_id, (memory.len(), digit));
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/day9/mod.rs:272:16
[INFO] [stderr]     |
[INFO] [stderr] 272 |             if (next_id == 0) {
[INFO] [stderr]     |                ^            ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 272 -             if (next_id == 0) {
[INFO] [stderr] 272 +             if next_id == 0 {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `itertools::Itertools`
[INFO] [stderr]    --> src/day5/mod.rs:145:9
[INFO] [stderr]     |
[INFO] [stderr] 145 |     use itertools::Itertools;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/common/grid.rs:17:16
[INFO] [stderr]    |
[INFO] [stderr] 17 |     pub fn new(mut input: &str) -> Self {
[INFO] [stderr]    |                ----^^^^^
[INFO] [stderr]    |                |
[INFO] [stderr]    |                help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/day10/mod.rs:73:25
[INFO] [stderr]    |
[INFO] [stderr] 73 | fn walk(x: i32, y: i32, mut nines: &mut HashSet<(usize, usize)>, grid: &Grid, current_value: u32) {
[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/day10/mod.rs:115:26
[INFO] [stderr]     |
[INFO] [stderr] 115 | fn walk2(x: i32, y: i32, mut nines: &mut Vec<(usize, usize)>, grid: &Grid, current_value: u32) {
[INFO] [stderr]     |                          ----^^^^^
[INFO] [stderr]     |                          |
[INFO] [stderr]     |                          help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `input`
[INFO] [stderr]    --> src/day11/mod.rs:135:13
[INFO] [stderr]     |
[INFO] [stderr] 135 |         let input = read_file_to_string("input/day11.txt");
[INFO] [stderr]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/day11/mod.rs:141:13
[INFO] [stderr]     |
[INFO] [stderr] 141 |         let mut stones: Vec<u64> = TEST_DATA
[INFO] [stderr]     |             ----^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `directions`
[INFO] [stderr]   --> src/day4/mod.rs:67:9
[INFO] [stderr]    |
[INFO] [stderr] 67 |     let directions: Vec<Direction> = vec![NORTH, NE, EAST, SE, SOUTH, SW, WEST, NW];
[INFO] [stderr]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_directions`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/day4/mod.rs:138:16
[INFO] [stderr]     |
[INFO] [stderr] 138 |     pub fn new(mut input: &str) -> Self {
[INFO] [stderr]     |                ----^^^^^
[INFO] [stderr]     |                |
[INFO] [stderr]     |                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `directions`
[INFO] [stderr]    --> src/day4/mod.rs:215:13
[INFO] [stderr]     |
[INFO] [stderr] 215 |         let directions: Vec<Direction> = vec![NORTH, NE, EAST, SE, SOUTH, SW, WEST, NW];
[INFO] [stderr]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_directions`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/day6/mod.rs:105:13
[INFO] [stderr]     |
[INFO] [stderr] 105 |         let mut walk_set = HashSet::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/day6/mod.rs:304:17
[INFO] [stderr]     |
[INFO] [stderr] 304 |             let mut walk_set = HashSet::new();
[INFO] [stderr]     |                 ----^^^^^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: function `read_file_to_vec` is never used
[INFO] [stderr]  --> src/common/string_utils.rs:2:8
[INFO] [stderr]   |
[INFO] [stderr] 2 | pub fn read_file_to_vec(file_path: &str) -> Vec<String> {
[INFO] [stderr]   |        ^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NORTH_EAST` is never used
[INFO] [stderr]  --> src/day12/mod.rs:6:7
[INFO] [stderr]   |
[INFO] [stderr] 6 | const NORTH_EAST: Direction = Direction { x: 1, y: -1 };
[INFO] [stderr]   |       ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NORTH_WEST` is never used
[INFO] [stderr]   --> src/day12/mod.rs:12:7
[INFO] [stderr]    |
[INFO] [stderr] 12 | const NORTH_WEST: Direction = Direction { x: -1, y: -1 };
[INFO] [stderr]    |       ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TEST_DATA_1` is never used
[INFO] [stderr]   --> src/day12/mod.rs:28:11
[INFO] [stderr]    |
[INFO] [stderr] 28 |     const TEST_DATA_1: &str = r"AAAA
[INFO] [stderr]    |           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TEST_DATA_2` is never used
[INFO] [stderr]   --> src/day12/mod.rs:33:11
[INFO] [stderr]    |
[INFO] [stderr] 33 |     const TEST_DATA_2: &str = r"OOOOO
[INFO] [stderr]    |           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TEST_DATA_3` is never used
[INFO] [stderr]   --> src/day12/mod.rs:39:11
[INFO] [stderr]    |
[INFO] [stderr] 39 |     const TEST_DATA_3: &str = r"RRRRIICCFF
[INFO] [stderr]    |           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TEST_DATA_4` is never used
[INFO] [stderr]   --> src/day12/mod.rs:50:11
[INFO] [stderr]    |
[INFO] [stderr] 50 |     const TEST_DATA_4: &str = r"EEEEE
[INFO] [stderr]    |           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TEST_DATA_5` is never used
[INFO] [stderr]   --> src/day12/mod.rs:56:11
[INFO] [stderr]    |
[INFO] [stderr] 56 |     const TEST_DATA_5: &str = r"AAAAAA
[INFO] [stderr]    |           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/day3/mod.rs:29:10
[INFO] [stderr]    |
[INFO] [stderr] 29 |     Char(&'a str),
[INFO] [stderr]    |     ---- ^^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Token` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]    |
[INFO] [stderr] 29 |     Char(()),
[INFO] [stderr]    |          ~~
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/day3/mod.rs:31:8
[INFO] [stderr]    |
[INFO] [stderr] 31 |     Do(&'a str),
[INFO] [stderr]    |     -- ^^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Token` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]    |
[INFO] [stderr] 31 |     Do(()),
[INFO] [stderr]    |        ~~
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/day3/mod.rs:32:10
[INFO] [stderr]    |
[INFO] [stderr] 32 |     Dont(&'a str),
[INFO] [stderr]    |     ---- ^^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Token` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]    |
[INFO] [stderr] 32 |     Dont(()),
[INFO] [stderr]    |          ~~
[INFO] [stderr] 
[INFO] [stderr] warning: variable `vecI` should have a snake case name
[INFO] [stderr]   --> src/common/grid.rs:18:13
[INFO] [stderr]    |
[INFO] [stderr] 18 |         let vecI = string_utils::string_to_vec(input);
[INFO] [stderr]    |             ^^^^ help: convert the identifier to snake case: `vec_i`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `currentX` should have a snake case name
[INFO] [stderr]   --> src/day10/mod.rs:25:13
[INFO] [stderr]    |
[INFO] [stderr] 25 |         let currentX = trailhead.0;
[INFO] [stderr]    |             ^^^^^^^^ help: convert the identifier to snake case: `current_x`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `currentY` should have a snake case name
[INFO] [stderr]   --> src/day10/mod.rs:26:13
[INFO] [stderr]    |
[INFO] [stderr] 26 |         let currentY = trailhead.1;
[INFO] [stderr]    |             ^^^^^^^^ help: convert the identifier to snake case: `current_y`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `currentX` should have a snake case name
[INFO] [stderr]   --> src/day10/mod.rs:55:13
[INFO] [stderr]    |
[INFO] [stderr] 55 |         let currentX = trailhead.0;
[INFO] [stderr]    |             ^^^^^^^^ help: convert the identifier to snake case: `current_x`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `currentY` should have a snake case name
[INFO] [stderr]   --> src/day10/mod.rs:56:13
[INFO] [stderr]    |
[INFO] [stderr] 56 |         let currentY = trailhead.1;
[INFO] [stderr]    |             ^^^^^^^^ help: convert the identifier to snake case: `current_y`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `currentX` should have a snake case name
[INFO] [stderr]    --> src/day10/mod.rs:192:17
[INFO] [stderr]     |
[INFO] [stderr] 192 |             let currentX = trailhead.0;
[INFO] [stderr]     |                 ^^^^^^^^ help: convert the identifier to snake case: `current_x`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `currentY` should have a snake case name
[INFO] [stderr]    --> src/day10/mod.rs:193:17
[INFO] [stderr]     |
[INFO] [stderr] 193 |             let currentY = trailhead.1;
[INFO] [stderr]     |                 ^^^^^^^^ help: convert the identifier to snake case: `current_y`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `currentX` should have a snake case name
[INFO] [stderr]    --> src/day10/mod.rs:222:17
[INFO] [stderr]     |
[INFO] [stderr] 222 |             let currentX = trailhead.0;
[INFO] [stderr]     |                 ^^^^^^^^ help: convert the identifier to snake case: `current_x`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `currentY` should have a snake case name
[INFO] [stderr]    --> src/day10/mod.rs:223:17
[INFO] [stderr]     |
[INFO] [stderr] 223 |             let currentY = trailhead.1;
[INFO] [stderr]     |                 ^^^^^^^^ help: convert the identifier to snake case: `current_y`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `NORTH` should have a snake case name
[INFO] [stderr]  --> src/day4/mod.rs:7:9
[INFO] [stderr]   |
[INFO] [stderr] 7 |     let NORTH = Direction { x: -1, y: 0 };
[INFO] [stderr]   |         ^^^^^ help: convert the identifier to snake case: `north`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `NE` should have a snake case name
[INFO] [stderr]  --> src/day4/mod.rs:8:9
[INFO] [stderr]   |
[INFO] [stderr] 8 |     let NE: Direction = Direction { x: -1, y: 1 };
[INFO] [stderr]   |         ^^ help: convert the identifier to snake case: `ne`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `EAST` should have a snake case name
[INFO] [stderr]  --> src/day4/mod.rs:9:9
[INFO] [stderr]   |
[INFO] [stderr] 9 |     let EAST: Direction = Direction { x: 0, y: 1 };
[INFO] [stderr]   |         ^^^^ help: convert the identifier to snake case: `east`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `SE` should have a snake case name
[INFO] [stderr]   --> src/day4/mod.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr] 10 |     let SE: Direction = Direction { x: 1, y: 1 };
[INFO] [stderr]    |         ^^ help: convert the identifier to snake case: `se`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `SOUTH` should have a snake case name
[INFO] [stderr]   --> src/day4/mod.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 11 |     let SOUTH: Direction = Direction { x: 1, y: 0 };
[INFO] [stderr]    |         ^^^^^ help: convert the identifier to snake case: `south`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `SW` should have a snake case name
[INFO] [stderr]   --> src/day4/mod.rs:12:9
[INFO] [stderr]    |
[INFO] [stderr] 12 |     let SW: Direction = Direction { x: 1, y: -1 };
[INFO] [stderr]    |         ^^ help: convert the identifier to snake case (notice the capitalization): `sw`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `WEST` should have a snake case name
[INFO] [stderr]   --> src/day4/mod.rs:13:9
[INFO] [stderr]    |
[INFO] [stderr] 13 |     let WEST: Direction = Direction { x: 0, y: -1 };
[INFO] [stderr]    |         ^^^^ help: convert the identifier to snake case: `west`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `NW` should have a snake case name
[INFO] [stderr]   --> src/day4/mod.rs:14:9
[INFO] [stderr]    |
[INFO] [stderr] 14 |     let NW: Direction = Direction { x: -1, y: -1 };
[INFO] [stderr]    |         ^^ help: convert the identifier to snake case: `nw`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `checkX` should have a snake case name
[INFO] [stderr]   --> src/day4/mod.rs:27:29
[INFO] [stderr]    |
[INFO] [stderr] 27 |                     let mut checkX = x + direction.x;
[INFO] [stderr]    |                             ^^^^^^ help: convert the identifier to snake case: `check_x`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `checkY` should have a snake case name
[INFO] [stderr]   --> src/day4/mod.rs:28:29
[INFO] [stderr]    |
[INFO] [stderr] 28 |                     let mut checkY = y + direction.y;
[INFO] [stderr]    |                             ^^^^^^ help: convert the identifier to snake case: `check_y`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `NORTH` should have a snake case name
[INFO] [stderr]   --> src/day4/mod.rs:58:9
[INFO] [stderr]    |
[INFO] [stderr] 58 |     let NORTH = Direction { x: -1, y: 0 };
[INFO] [stderr]    |         ^^^^^ help: convert the identifier to snake case: `north`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `NE` should have a snake case name
[INFO] [stderr]   --> src/day4/mod.rs:59:9
[INFO] [stderr]    |
[INFO] [stderr] 59 |     let NE: Direction = Direction { x: -1, y: 1 };
[INFO] [stderr]    |         ^^ help: convert the identifier to snake case: `ne`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `EAST` should have a snake case name
[INFO] [stderr]   --> src/day4/mod.rs:60:9
[INFO] [stderr]    |
[INFO] [stderr] 60 |     let EAST: Direction = Direction { x: 0, y: 1 };
[INFO] [stderr]    |         ^^^^ help: convert the identifier to snake case: `east`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `SE` should have a snake case name
[INFO] [stderr]   --> src/day4/mod.rs:61:9
[INFO] [stderr]    |
[INFO] [stderr] 61 |     let SE: Direction = Direction { x: 1, y: 1 };
[INFO] [stderr]    |         ^^ help: convert the identifier to snake case: `se`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `SOUTH` should have a snake case name
[INFO] [stderr]   --> src/day4/mod.rs:62:9
[INFO] [stdout] 
[INFO] [stderr]    |
[INFO] [stdout] running 31 tests
[INFO] [stderr] 62 |     let SOUTH: Direction = Direction { x: 1, y: 0 };
[INFO] [stderr]    |         ^^^^^ help: convert the identifier to snake case: `south`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `SW` should have a snake case name
[INFO] [stderr]   --> src/day4/mod.rs:63:9
[INFO] [stderr]    |
[INFO] [stderr] 63 |     let SW: Direction = Direction { x: 1, y: -1 };
[INFO] [stderr]    |         ^^ help: convert the identifier to snake case (notice the capitalization): `sw`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `WEST` should have a snake case name
[INFO] [stderr]   --> src/day4/mod.rs:64:9
[INFO] [stderr]    |
[INFO] [stderr] 64 |     let WEST: Direction = Direction { x: 0, y: -1 };
[INFO] [stderr]    |         ^^^^ help: convert the identifier to snake case: `west`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `NW` should have a snake case name
[INFO] [stderr]   --> src/day4/mod.rs:65:9
[INFO] [stderr]    |
[INFO] [stderr] 65 |     let NW: Direction = Direction { x: -1, y: -1 };
[INFO] [stderr]    |         ^^ help: convert the identifier to snake case: `nw`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `firstDiag` should have a snake case name
[INFO] [stderr]   --> src/day4/mod.rs:77:25
[INFO] [stderr]    |
[INFO] [stderr] 77 |                 let mut firstDiag = false;
[INFO] [stderr]    |                         ^^^^^^^^^ help: convert the identifier to snake case: `first_diag`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `vecI` should have a snake case name
[INFO] [stderr]    --> src/day4/mod.rs:139:13
[INFO] [stderr]     |
[INFO] [stderr] 139 |         let vecI = common::string_utils::string_to_vec(input);
[INFO] [stderr]     |             ^^^^ help: convert the identifier to snake case: `vec_i`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `NORTH` should have a snake case name
[INFO] [stderr]    --> src/day4/mod.rs:206:13
[INFO] [stderr]     |
[INFO] [stderr] 206 |         let NORTH = Direction { x: -1, y: 0 };
[INFO] [stderr]     |             ^^^^^ help: convert the identifier to snake case: `north`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `NE` should have a snake case name
[INFO] [stderr]    --> src/day4/mod.rs:207:13
[INFO] [stderr]     |
[INFO] [stderr] 207 |         let NE: Direction = Direction { x: -1, y: 1 };
[INFO] [stderr]     |             ^^ help: convert the identifier to snake case: `ne`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `EAST` should have a snake case name
[INFO] [stderr]    --> src/day4/mod.rs:208:13
[INFO] [stderr]     |
[INFO] [stderr] 208 |         let EAST: Direction = Direction { x: 0, y: 1 };
[INFO] [stderr]     |             ^^^^ help: convert the identifier to snake case: `east`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `SE` should have a snake case name
[INFO] [stderr]    --> src/day4/mod.rs:209:13
[INFO] [stderr]     |
[INFO] [stderr] 209 |         let SE: Direction = Direction { x: 1, y: 1 };
[INFO] [stderr]     |             ^^ help: convert the identifier to snake case: `se`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `SOUTH` should have a snake case name
[INFO] [stderr]    --> src/day4/mod.rs:210:13
[INFO] [stderr]     |
[INFO] [stderr] 210 |         let SOUTH: Direction = Direction { x: 1, y: 0 };
[INFO] [stderr]     |             ^^^^^ help: convert the identifier to snake case: `south`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `SW` should have a snake case name
[INFO] [stderr]    --> src/day4/mod.rs:211:13
[INFO] [stderr]     |
[INFO] [stderr] 211 |         let SW: Direction = Direction { x: 1, y: -1 };
[INFO] [stderr]     |             ^^ help: convert the identifier to snake case (notice the capitalization): `sw`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `WEST` should have a snake case name
[INFO] [stderr]    --> src/day4/mod.rs:212:13
[INFO] [stderr]     |
[INFO] [stderr] 212 |         let WEST: Direction = Direction { x: 0, y: -1 };
[INFO] [stderr]     |             ^^^^ help: convert the identifier to snake case: `west`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `NW` should have a snake case name
[INFO] [stderr]    --> src/day4/mod.rs:213:13
[INFO] [stderr]     |
[INFO] [stderr] 213 |         let NW: Direction = Direction { x: -1, y: -1 };
[INFO] [stderr]     |             ^^ help: convert the identifier to snake case: `nw`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `firstDiag` should have a snake case name
[INFO] [stderr]    --> src/day4/mod.rs:225:29
[INFO] [stderr]     |
[INFO] [stderr] 225 |                     let mut firstDiag = false;
[INFO] [stderr]     |                             ^^^^^^^^^ help: convert the identifier to snake case: `first_diag`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `NORTH` should have a snake case name
[INFO] [stderr]    --> src/day4/mod.rs:274:13
[INFO] [stderr]     |
[INFO] [stderr] 274 |         let NORTH = Direction { x: -1, y: 0 };
[INFO] [stderr]     |             ^^^^^ help: convert the identifier to snake case: `north`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `NE` should have a snake case name
[INFO] [stderr]    --> src/day4/mod.rs:275:13
[INFO] [stderr]     |
[INFO] [stderr] 275 |         let NE: Direction = Direction { x: -1, y: 1 };
[INFO] [stderr]     |             ^^ help: convert the identifier to snake case: `ne`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `EAST` should have a snake case name
[INFO] [stderr]    --> src/day4/mod.rs:276:13
[INFO] [stderr]     |
[INFO] [stderr] 276 |         let EAST: Direction = Direction { x: 0, y: 1 };
[INFO] [stderr]     |             ^^^^ help: convert the identifier to snake case: `east`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `SE` should have a snake case name
[INFO] [stderr]    --> src/day4/mod.rs:277:13
[INFO] [stderr]     |
[INFO] [stderr] 277 |         let SE: Direction = Direction { x: 1, y: 1 };
[INFO] [stderr]     |             ^^ help: convert the identifier to snake case: `se`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `SOUTH` should have a snake case name
[INFO] [stderr]    --> src/day4/mod.rs:278:13
[INFO] [stderr]     |
[INFO] [stderr] 278 |         let SOUTH: Direction = Direction { x: 1, y: 0 };
[INFO] [stderr]     |             ^^^^^ help: convert the identifier to snake case: `south`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `SW` should have a snake case name
[INFO] [stderr]    --> src/day4/mod.rs:279:13
[INFO] [stderr]     |
[INFO] [stderr] 279 |         let SW: Direction = Direction { x: 1, y: -1 };
[INFO] [stderr]     |             ^^ help: convert the identifier to snake case (notice the capitalization): `sw`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `WEST` should have a snake case name
[INFO] [stderr]    --> src/day4/mod.rs:280:13
[INFO] [stderr]     |
[INFO] [stderr] 280 |         let WEST: Direction = Direction { x: 0, y: -1 };
[INFO] [stderr]     |             ^^^^ help: convert the identifier to snake case: `west`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `NW` should have a snake case name
[INFO] [stderr]    --> src/day4/mod.rs:281:13
[INFO] [stderr]     |
[INFO] [stderr] 281 |         let NW: Direction = Direction { x: -1, y: -1 };
[INFO] [stderr]     |             ^^ help: convert the identifier to snake case: `nw`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `checkX` should have a snake case name
[INFO] [stderr]    --> src/day4/mod.rs:294:33
[INFO] [stderr]     |
[INFO] [stderr] 294 |                         let mut checkX = x + direction.x;
[INFO] [stderr]     |                                 ^^^^^^ help: convert the identifier to snake case: `check_x`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `checkY` should have a snake case name
[INFO] [stderr]    --> src/day4/mod.rs:295:33
[INFO] [stderr]     |
[INFO] [stderr] 295 |                         let mut checkY = y + direction.y;
[INFO] [stderr]     |                                 ^^^^^^ help: convert the identifier to snake case: `check_y`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `E` should have a snake case name
[INFO] [stderr]    --> src/day5/mod.rs:122:13
[INFO] [stderr]     |
[INFO] [stderr] 122 |         Err(E) => Err(E),
[INFO] [stderr]     |             ^ help: convert the identifier to snake case: `e`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `E` should have a snake case name
[INFO] [stderr]    --> src/day5/mod.rs:137:13
[INFO] [stderr]     |
[INFO] [stderr] 137 |         Err(E) => Err(E),
[INFO] [stderr]     |             ^ help: convert the identifier to snake case: `e`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `guardX` should have a snake case name
[INFO] [stderr]   --> src/day6/mod.rs:20:14
[INFO] [stderr]    |
[INFO] [stderr] 20 |     let (mut guardX, mut guardY) = grid.find_first('^').unwrap();
[INFO] [stderr]    |              ^^^^^^ help: convert the identifier to snake case: `guard_x`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `guardY` should have a snake case name
[INFO] [stderr]   --> src/day6/mod.rs:20:26
[INFO] [stderr]    |
[INFO] [stderr] 20 |     let (mut guardX, mut guardY) = grid.find_first('^').unwrap();
[INFO] [stderr]    |                          ^^^^^^ help: convert the identifier to snake case: `guard_y`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `guardDirection` should have a snake case name
[INFO] [stderr]   --> src/day6/mod.rs:22:13
[INFO] [stderr]    |
[INFO] [stderr] 22 |     let mut guardDirection = NORTH;
[INFO] [stderr]    |             ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `guard_direction`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `guardX` should have a snake case name
[INFO] [stderr]   --> src/day6/mod.rs:65:14
[INFO] [stderr]    |
[INFO] [stderr] 65 |     let (mut guardX, mut guardY) = grid.find_first('^').unwrap();
[INFO] [stderr]    |              ^^^^^^ help: convert the identifier to snake case: `guard_x`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `guardY` should have a snake case name
[INFO] [stderr]   --> src/day6/mod.rs:65:26
[INFO] [stderr]    |
[INFO] [stderr] 65 |     let (mut guardX, mut guardY) = grid.find_first('^').unwrap();
[INFO] [stderr]    |                          ^^^^^^ help: convert the identifier to snake case: `guard_y`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `guardDirection` should have a snake case name
[INFO] [stderr]   --> src/day6/mod.rs:67:13
[INFO] [stderr]    |
[INFO] [stderr] 67 |     let mut guardDirection = NORTH;
[INFO] [stderr]    |             ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `guard_direction`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `newGuardX` should have a snake case name
[INFO] [stderr]   --> src/day6/mod.rs:98:10
[INFO] [stderr]    |
[INFO] [stderr] 98 |     let (newGuardX, newGuardY) = grid.find_first('^').unwrap();
[INFO] [stderr]    |          ^^^^^^^^^ help: convert the identifier to snake case: `new_guard_x`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `newGuardY` should have a snake case name
[INFO] [stderr]   --> src/day6/mod.rs:98:21
[INFO] [stderr]    |
[INFO] [stderr] 98 |     let (newGuardX, newGuardY) = grid.find_first('^').unwrap();
[INFO] [stderr]    |                     ^^^^^^^^^ help: convert the identifier to snake case: `new_guard_y`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `guardX` should have a snake case name
[INFO] [stderr]    --> src/day6/mod.rs:135:9
[INFO] [stderr]     |
[INFO] [stderr] 135 |     mut guardX: i32,
[INFO] [stderr]     |         ^^^^^^ help: convert the identifier to snake case: `guard_x`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `guardY` should have a snake case name
[INFO] [stderr]    --> src/day6/mod.rs:136:9
[INFO] [stderr]     |
[INFO] [stderr] 136 |     mut guardY: i32,
[INFO] [stderr]     |         ^^^^^^ help: convert the identifier to snake case: `guard_y`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `guardDirection` should have a snake case name
[INFO] [stderr]    --> src/day6/mod.rs:137:9
[INFO] [stderr]     |
[INFO] [stderr] 137 |     mut guardDirection: Direction,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `guard_direction`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `guardX` should have a snake case name
[INFO] [stderr]    --> src/day6/mod.rs:213:18
[INFO] [stderr]     |
[INFO] [stderr] 213 |         let (mut guardX, mut guardY) = grid.find_first('^').unwrap();
[INFO] [stderr]     |                  ^^^^^^ help: convert the identifier to snake case: `guard_x`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `guardY` should have a snake case name
[INFO] [stderr]    --> src/day6/mod.rs:213:30
[INFO] [stderr]     |
[INFO] [stderr] 213 |         let (mut guardX, mut guardY) = grid.find_first('^').unwrap();
[INFO] [stderr]     |                              ^^^^^^ help: convert the identifier to snake case: `guard_y`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `guardDirection` should have a snake case name
[INFO] [stderr]    --> src/day6/mod.rs:215:17
[INFO] [stderr]     |
[INFO] [stderr] 215 |         let mut guardDirection = NORTH;
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `guard_direction`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `guardX` should have a snake case name
[INFO] [stderr]    --> src/day6/mod.rs:260:18
[INFO] [stderr]     |
[INFO] [stderr] 260 |         let (mut guardX, mut guardY) = grid.find_first('^').unwrap();
[INFO] [stderr]     |                  ^^^^^^ help: convert the identifier to snake case: `guard_x`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `guardY` should have a snake case name
[INFO] [stderr]    --> src/day6/mod.rs:260:30
[INFO] [stderr]     |
[INFO] [stderr] 260 |         let (mut guardX, mut guardY) = grid.find_first('^').unwrap();
[INFO] [stderr]     |                              ^^^^^^ help: convert the identifier to snake case: `guard_y`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `guardDirection` should have a snake case name
[INFO] [stderr]    --> src/day6/mod.rs:262:17
[INFO] [stderr]     |
[INFO] [stderr] 262 |         let mut guardDirection = NORTH;
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `guard_direction`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `newGuardX` should have a snake case name
[INFO] [stderr]    --> src/day6/mod.rs:297:14
[INFO] [stderr]     |
[INFO] [stderr] 297 |         let (newGuardX, newGuardY) = grid.find_first('^').unwrap();
[INFO] [stderr]     |              ^^^^^^^^^ help: convert the identifier to snake case: `new_guard_x`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `newGuardY` should have a snake case name
[INFO] [stderr]    --> src/day6/mod.rs:297:25
[INFO] [stderr]     |
[INFO] [stderr] 297 |         let (newGuardX, newGuardY) = grid.find_first('^').unwrap();
[INFO] [stderr]     |                         ^^^^^^^^^ help: convert the identifier to snake case: `new_guard_y`
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]   --> src/day9/mod.rs:86:11
[INFO] [stderr]    |
[INFO] [stderr] 86 |     while next_id >= 0 {
[INFO] [stderr]    |           ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/day9/mod.rs:231:15
[INFO] [stderr]     |
[INFO] [stderr] 231 |         while next_id >= 0 {
[INFO] [stderr]     |               ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `aoc24` (bin "aoc24" test) generated 122 warnings (run `cargo fix --bin "aoc24" --tests` to apply 36 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.03s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/aoc24-422acbde3c63fcdc)
[INFO] [stdout] test day10::test::test1 ... ok
[INFO] [stdout] test day1::test::test_one_line ... ok
[INFO] [stdout] test day10::test::test2 ... ok
[INFO] [stdout] test day2::test::test_one_line ... ok
[INFO] [stdout] test day2::test::test_safe ... ok
[INFO] [stdout] test day2::test::test_unsafe ... ok
[INFO] [stdout] test day1::test::test_fold ... FAILED
[INFO] [stdout] test day12::test::test ... FAILED
[INFO] [stdout] test day12::test::test2 ... FAILED
[INFO] [stdout] test day3::test::fold ... FAILED
[INFO] [stdout] test day3::test::test2 ... ok
[INFO] [stdout] test day4::test::test_2 ... ok
[INFO] [stdout] test day11::test::test2 ... FAILED
[INFO] [stdout] test day4::test::test_parse ... ok
[INFO] [stdout] test day4::test::test_find ... ok
[INFO] [stdout] test day2::test::test_parse_all ... FAILED
[INFO] [stdout] test day3::test::test ... ok
[INFO] [stdout] test day1::test::test_full_file ... FAILED
[INFO] [stdout] test day7::test::test2 ... ok
[INFO] [stdout] test day8::test::test1 ... ok
[INFO] [stdout] test day8::test::test2 ... ok
[INFO] [stdout] test day8::test::test_full2 ... FAILED
[INFO] [stdout] test day9::test::test ... ok
[INFO] [stdout] test day9::test::test2 ... ok
[INFO] [stdout] test day5::test::test_2 ... ok
[INFO] [stdout] test day6::test::test ... ok
[INFO] [stdout] test day5::test::test_parse ... ok
[INFO] [stdout] test day7::test::test ... ok
[INFO] [stdout] test day8::test::test_full ... FAILED
[INFO] [stdout] test day6::test::loop_trace ... ok
[INFO] [stdout] test day11::test::test ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- day1::test::test_fold stdout ----
[INFO] [stdout] thread 'day1::test::test_fold' panicked at src/common/string_utils.rs:19:35:
[INFO] [stdout] error reading file: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x55df68feecca - std::backtrace_rs::backtrace::libunwind::trace::h8810477743020387
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/../../backtrace/src/backtrace/libunwind.rs:116:5
[INFO] [stdout]    1:     0x55df68feecca - std::backtrace_rs::backtrace::trace_unsynchronized::h3aa55355dd6c54a6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x55df68feecca - std::sys::backtrace::_print_fmt::h8588b0f62410823f
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x55df68feecca - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h98c26ac25ffe89bb
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x55df69014bc3 - core::fmt::rt::Argument::fmt::hf95377f4aebd453b
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/fmt/rt.rs:177:76
[INFO] [stdout]    5:     0x55df69014bc3 - core::fmt::write::h0dd5f6e2238c7982
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/fmt/mod.rs:1189:21
[INFO] [stdout]    6:     0x55df68febe63 - std::io::Write::write_fmt::h03bb0ca26e6faf8c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/io/mod.rs:1884:15
[INFO] [stdout]    7:     0x55df68feeb12 - std::sys::backtrace::BacktraceLock::print::h5c19c1c038ee186d
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    8:     0x55df68ff014d - std::panicking::default_hook::{{closure}}::h77172f079a1fcb13
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:268:22
[INFO] [stdout]    9:     0x55df68feff57 - std::panicking::default_hook::he5f8e3b203ccddba
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:292:9
[INFO] [stdout]   10:     0x55df68fb4227 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h7a3c7b4a1ae77f2f
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1986:9
[INFO] [stdout]   11:     0x55df68fb4227 - test::test_main::{{closure}}::hf0d3b69ae9b353d1
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:134:21
[INFO] [stdout]   12:     0x55df68ff07f8 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h6332e82e7b189abd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1986:9
[INFO] [stdout]   13:     0x55df68ff07f8 - std::panicking::rust_panic_with_hook::h53863d4e9018df39
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:809:13
[INFO] [stdout]   14:     0x55df68ff05ba - std::panicking::begin_panic_handler::{{closure}}::h67280e6fa0757873
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:674:13
[INFO] [stdout]   15:     0x55df68fef1a9 - std::sys::backtrace::__rust_end_short_backtrace::h1dac3f54d6fbbeb2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:170:18
[INFO] [stdout]   16:     0x55df68ff024c - rust_begin_unwind
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:665:5
[INFO] [stdout]   17:     0x55df68f14b50 - core::panicking::panic_fmt::h6792bd1b2bf01041
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panicking.rs:76:14
[INFO] [stdout]   18:     0x55df68f14f96 - core::result::unwrap_failed::h05e0602ed34287c5
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/result.rs:1699:5
[INFO] [stdout]   19:     0x55df68f66a34 - core::result::Result<T,E>::expect::h3337807fbf523ef7
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/result.rs:1061:23
[INFO] [stdout]   20:     0x55df68f5cac2 - aoc24::common::string_utils::read_file_to_string::hd89d2086929db9a1
[INFO] [stdout]                                at /opt/rustwide/workdir/src/common/string_utils.rs:19:5
[INFO] [stdout]   21:     0x55df68f6a3dd - aoc24::day1::test::test_fold::hf43631f12fbcb0cc
[INFO] [stdout]                                at /opt/rustwide/workdir/src/day1/mod.rs:107:21
[INFO] [stdout]   22:     0x55df68f6a3a7 - aoc24::day1::test::test_fold::{{closure}}::h8875202319619027
[INFO] [stdout]                                at /opt/rustwide/workdir/src/day1/mod.rs:106:23
[INFO] [stdout]   23:     0x55df68f3b396 - core::ops::function::FnOnce::call_once::h2a5c3feb78db10d5
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x55df68fb8d4b - core::ops::function::FnOnce::call_once::h871bf86719ec9aa4
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x55df68fb8d4b - test::__rust_begin_short_backtrace::h2167df1e2b7d76fd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:632:18
[INFO] [stdout]   26:     0x55df68fb8738 - test::run_test_in_process::{{closure}}::h15d92f75a3adfb79
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:655:60
[INFO] [stdout]   27:     0x55df68fb8738 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hb6c8955835a8dbbb
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   28:     0x55df68fb8738 - std::panicking::try::do_call::hc79d0fc888a0bd30
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:557:40
[INFO] [stdout]   29:     0x55df68fb8738 - std::panicking::try::hb8a7878e3a8589d6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:520:19
[INFO] [stdout]   30:     0x55df68fb8738 - std::panic::catch_unwind::hb8e4600ff0ff5cfa
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panic.rs:358:14
[INFO] [stdout]   31:     0x55df68fb8738 - test::run_test_in_process::hc2900b0b18688dd6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:655:27
[INFO] [stdout]   32:     0x55df68fb8738 - test::run_test::{{closure}}::hac2a9cb07be3d48d
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:576:43
[INFO] [stdout]   33:     0x55df68f7c1da - test::run_test::{{closure}}::h4a5b729e66a38cd8
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:606:41
[INFO] [stdout]   34:     0x55df68f7c1da - std::sys::backtrace::__rust_begin_short_backtrace::h0496fb742492f573
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:154:18
[INFO] [stdout]   35:     0x55df68f7fb54 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hbb6d257c550a54bd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/thread/mod.rs:561:17
[INFO] [stdout]   36:     0x55df68f7fb54 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h46696fe4a6832328
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   37:     0x55df68f7fb54 - std::panicking::try::do_call::h2625a51b667bfb64
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:557:40
[INFO] [stdout]   38:     0x55df68f7fb54 - std::panicking::try::hb956a59a1973aa4c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:520:19
[INFO] [stdout]   39:     0x55df68f7fb54 - std::panic::catch_unwind::h64f3b9d1067ef6a0
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panic.rs:358:14
[INFO] [stdout]   40:     0x55df68f7fb54 - std::thread::Builder::spawn_unchecked_::{{closure}}::h42b2841295b6c0b2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/thread/mod.rs:559:30
[INFO] [stdout]   41:     0x55df68f7fb54 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h6127de71b8124639
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x55df68ff473b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h42f0ba71002a1b2c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1972:9
[INFO] [stdout]   43:     0x55df68ff473b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::had9e47d7a3dcecb8
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1972:9
[INFO] [stdout]   44:     0x55df68ff473b - std::sys::pal::unix::thread::Thread::new::thread_start::h48cf765408f6f5f2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/pal/unix/thread.rs:105:17
[INFO] [stdout]   45:     0x79ffb9826ac3 - <unknown>
[INFO] [stdout]   46:     0x79ffb98b7a04 - clone
[INFO] [stdout]   47:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- day12::test::test stdout ----
[INFO] [stdout] thread 'day12::test::test' panicked at src/common/string_utils.rs:19:35:
[INFO] [stdout] error reading file: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x55df68feecca - std::backtrace_rs::backtrace::libunwind::trace::h8810477743020387
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/../../backtrace/src/backtrace/libunwind.rs:116:5
[INFO] [stdout]    1:     0x55df68feecca - std::backtrace_rs::backtrace::trace_unsynchronized::h3aa55355dd6c54a6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x55df68feecca - std::sys::backtrace::_print_fmt::h8588b0f62410823f
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x55df68feecca - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h98c26ac25ffe89bb
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x55df69014bc3 - core::fmt::rt::Argument::fmt::hf95377f4aebd453b
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/fmt/rt.rs:177:76
[INFO] [stdout]    5:     0x55df69014bc3 - core::fmt::write::h0dd5f6e2238c7982
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/fmt/mod.rs:1189:21
[INFO] [stdout]    6:     0x55df68febe63 - std::io::Write::write_fmt::h03bb0ca26e6faf8c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/io/mod.rs:1884:15
[INFO] [stdout]    7:     0x55df68feeb12 - std::sys::backtrace::BacktraceLock::print::h5c19c1c038ee186d
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    8:     0x55df68ff014d - std::panicking::default_hook::{{closure}}::h77172f079a1fcb13
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:268:22
[INFO] [stdout]    9:     0x55df68feff57 - std::panicking::default_hook::he5f8e3b203ccddba
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:292:9
[INFO] [stdout]   10:     0x55df68fb4227 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h7a3c7b4a1ae77f2f
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1986:9
[INFO] [stdout]   11:     0x55df68fb4227 - test::test_main::{{closure}}::hf0d3b69ae9b353d1
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:134:21
[INFO] [stdout]   12:     0x55df68ff07f8 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h6332e82e7b189abd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1986:9
[INFO] [stdout]   13:     0x55df68ff07f8 - std::panicking::rust_panic_with_hook::h53863d4e9018df39
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:809:13
[INFO] [stdout]   14:     0x55df68ff05ba - std::panicking::begin_panic_handler::{{closure}}::h67280e6fa0757873
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:674:13
[INFO] [stdout]   15:     0x55df68fef1a9 - std::sys::backtrace::__rust_end_short_backtrace::h1dac3f54d6fbbeb2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:170:18
[INFO] [stdout]   16:     0x55df68ff024c - rust_begin_unwind
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:665:5
[INFO] [stdout]   17:     0x55df68f14b50 - core::panicking::panic_fmt::h6792bd1b2bf01041
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panicking.rs:76:14
[INFO] [stdout]   18:     0x55df68f14f96 - core::result::unwrap_failed::h05e0602ed34287c5
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/result.rs:1699:5
[INFO] [stdout]   19:     0x55df68f66a34 - core::result::Result<T,E>::expect::h3337807fbf523ef7
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/result.rs:1061:23
[INFO] [stdout]   20:     0x55df68f5cac2 - aoc24::common::string_utils::read_file_to_string::hd89d2086929db9a1
[INFO] [stdout]                                at /opt/rustwide/workdir/src/common/string_utils.rs:19:5
[INFO] [stdout]   21:     0x55df68f35938 - aoc24::day12::test::test::he1e38af96a8afbe6
[INFO] [stdout]                                at /opt/rustwide/workdir/src/day12/mod.rs:67:21
[INFO] [stdout]   22:     0x55df68f358f7 - aoc24::day12::test::test::{{closure}}::hf63392903c5f73e2
[INFO] [stdout]                                at /opt/rustwide/workdir/src/day12/mod.rs:66:18
[INFO] [stdout]   23:     0x55df68f3b876 - core::ops::function::FnOnce::call_once::h5d9846eaa9cd9a86
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x55df68fb8d4b - core::ops::function::FnOnce::call_once::h871bf86719ec9aa4
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x55df68fb8d4b - test::__rust_begin_short_backtrace::h2167df1e2b7d76fd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:632:18
[INFO] [stdout]   26:     0x55df68fb8738 - test::run_test_in_process::{{closure}}::h15d92f75a3adfb79
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:655:60
[INFO] [stdout]   27:     0x55df68fb8738 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hb6c8955835a8dbbb
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   28:     0x55df68fb8738 - std::panicking::try::do_call::hc79d0fc888a0bd30
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:557:40
[INFO] [stdout]   29:     0x55df68fb8738 - std::panicking::try::hb8a7878e3a8589d6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:520:19
[INFO] [stdout]   30:     0x55df68fb8738 - std::panic::catch_unwind::hb8e4600ff0ff5cfa
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panic.rs:358:14
[INFO] [stdout]   31:     0x55df68fb8738 - test::run_test_in_process::hc2900b0b18688dd6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:655:27
[INFO] [stdout]   32:     0x55df68fb8738 - test::run_test::{{closure}}::hac2a9cb07be3d48d
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:576:43
[INFO] [stdout]   33:     0x55df68f7c1da - test::run_test::{{closure}}::h4a5b729e66a38cd8
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:606:41
[INFO] [stdout]   34:     0x55df68f7c1da - std::sys::backtrace::__rust_begin_short_backtrace::h0496fb742492f573
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:154:18
[INFO] [stdout]   35:     0x55df68f7fb54 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hbb6d257c550a54bd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/thread/mod.rs:561:17
[INFO] [stdout]   36:     0x55df68f7fb54 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h46696fe4a6832328
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   37:     0x55df68f7fb54 - std::panicking::try::do_call::h2625a51b667bfb64
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:557:40
[INFO] [stdout]   38:     0x55df68f7fb54 - std::panicking::try::hb956a59a1973aa4c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:520:19
[INFO] [stdout]   39:     0x55df68f7fb54 - std::panic::catch_unwind::h64f3b9d1067ef6a0
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panic.rs:358:14
[INFO] [stdout]   40:     0x55df68f7fb54 - std::thread::Builder::spawn_unchecked_::{{closure}}::h42b2841295b6c0b2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/thread/mod.rs:559:30
[INFO] [stdout]   41:     0x55df68f7fb54 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h6127de71b8124639
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x55df68ff473b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h42f0ba71002a1b2c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1972:9
[INFO] [stdout]   43:     0x55df68ff473b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::had9e47d7a3dcecb8
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1972:9
[INFO] [stdout]   44:     0x55df68ff473b - std::sys::pal::unix::thread::Thread::new::thread_start::h48cf765408f6f5f2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/pal/unix/thread.rs:105:17
[INFO] [stdout]   45:     0x79ffb9826ac3 - <unknown>
[INFO] [stdout]   46:     0x79ffb98b7a04 - clone
[INFO] [stdout]   47:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- day12::test::test2 stdout ----
[INFO] [stdout] thread 'day12::test::test2' panicked at src/common/string_utils.rs:19:35:
[INFO] [stdout] error reading file: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x55df68feecca - std::backtrace_rs::backtrace::libunwind::trace::h8810477743020387
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/../../backtrace/src/backtrace/libunwind.rs:116:5
[INFO] [stdout]    1:     0x55df68feecca - std::backtrace_rs::backtrace::trace_unsynchronized::h3aa55355dd6c54a6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x55df68feecca - std::sys::backtrace::_print_fmt::h8588b0f62410823f
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x55df68feecca - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h98c26ac25ffe89bb
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x55df69014bc3 - core::fmt::rt::Argument::fmt::hf95377f4aebd453b
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/fmt/rt.rs:177:76
[INFO] [stdout]    5:     0x55df69014bc3 - core::fmt::write::h0dd5f6e2238c7982
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/fmt/mod.rs:1189:21
[INFO] [stdout]    6:     0x55df68febe63 - std::io::Write::write_fmt::h03bb0ca26e6faf8c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/io/mod.rs:1884:15
[INFO] [stdout]    7:     0x55df68feeb12 - std::sys::backtrace::BacktraceLock::print::h5c19c1c038ee186d
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    8:     0x55df68ff014d - std::panicking::default_hook::{{closure}}::h77172f079a1fcb13
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:268:22
[INFO] [stdout]    9:     0x55df68feff57 - std::panicking::default_hook::he5f8e3b203ccddba
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:292:9
[INFO] [stdout]   10:     0x55df68fb4227 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h7a3c7b4a1ae77f2f
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1986:9
[INFO] [stdout]   11:     0x55df68fb4227 - test::test_main::{{closure}}::hf0d3b69ae9b353d1
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:134:21
[INFO] [stdout]   12:     0x55df68ff07f8 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h6332e82e7b189abd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1986:9
[INFO] [stdout]   13:     0x55df68ff07f8 - std::panicking::rust_panic_with_hook::h53863d4e9018df39
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:809:13
[INFO] [stdout]   14:     0x55df68ff05ba - std::panicking::begin_panic_handler::{{closure}}::h67280e6fa0757873
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:674:13
[INFO] [stdout]   15:     0x55df68fef1a9 - std::sys::backtrace::__rust_end_short_backtrace::h1dac3f54d6fbbeb2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:170:18
[INFO] [stdout]   16:     0x55df68ff024c - rust_begin_unwind
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:665:5
[INFO] [stdout]   17:     0x55df68f14b50 - core::panicking::panic_fmt::h6792bd1b2bf01041
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panicking.rs:76:14
[INFO] [stdout]   18:     0x55df68f14f96 - core::result::unwrap_failed::h05e0602ed34287c5
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/result.rs:1699:5
[INFO] [stdout]   19:     0x55df68f66a34 - core::result::Result<T,E>::expect::h3337807fbf523ef7
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/result.rs:1061:23
[INFO] [stdout]   20:     0x55df68f5cac2 - aoc24::common::string_utils::read_file_to_string::hd89d2086929db9a1
[INFO] [stdout]                                at /opt/rustwide/workdir/src/common/string_utils.rs:19:5
[INFO] [stdout]   21:     0x55df68f36738 - aoc24::day12::test::test2::hd47a9d3802e1f8e6
[INFO] [stdout]                                at /opt/rustwide/workdir/src/day12/mod.rs:137:21
[INFO] [stdout]   22:     0x55df68f366f7 - aoc24::day12::test::test2::{{closure}}::h41cb5d5f5786c6ae
[INFO] [stdout]                                at /opt/rustwide/workdir/src/day12/mod.rs:136:19
[INFO] [stdout]   23:     0x55df68f3bf66 - core::ops::function::FnOnce::call_once::hd6ce2e57904db92c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x55df68fb8d4b - core::ops::function::FnOnce::call_once::h871bf86719ec9aa4
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x55df68fb8d4b - test::__rust_begin_short_backtrace::h2167df1e2b7d76fd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:632:18
[INFO] [stdout]   26:     0x55df68fb8738 - test::run_test_in_process::{{closure}}::h15d92f75a3adfb79
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:655:60
[INFO] [stdout]   27:     0x55df68fb8738 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hb6c8955835a8dbbb
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   28:     0x55df68fb8738 - std::panicking::try::do_call::hc79d0fc888a0bd30
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:557:40
[INFO] [stdout]   29:     0x55df68fb8738 - std::panicking::try::hb8a7878e3a8589d6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:520:19
[INFO] [stdout]   30:     0x55df68fb8738 - std::panic::catch_unwind::hb8e4600ff0ff5cfa
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panic.rs:358:14
[INFO] [stdout]   31:     0x55df68fb8738 - test::run_test_in_process::hc2900b0b18688dd6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:655:27
[INFO] [stdout]   32:     0x55df68fb8738 - test::run_test::{{closure}}::hac2a9cb07be3d48d
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:576:43
[INFO] [stdout]   33:     0x55df68f7c1da - test::run_test::{{closure}}::h4a5b729e66a38cd8
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:606:41
[INFO] [stdout]   34:     0x55df68f7c1da - std::sys::backtrace::__rust_begin_short_backtrace::h0496fb742492f573
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:154:18
[INFO] [stdout]   35:     0x55df68f7fb54 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hbb6d257c550a54bd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/thread/mod.rs:561:17
[INFO] [stdout]   36:     0x55df68f7fb54 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h46696fe4a6832328
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   37:     0x55df68f7fb54 - std::panicking::try::do_call::h2625a51b667bfb64
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:557:40
[INFO] [stdout]   38:     0x55df68f7fb54 - std::panicking::try::hb956a59a1973aa4c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:520:19
[INFO] [stdout]   39:     0x55df68f7fb54 - std::panic::catch_unwind::h64f3b9d1067ef6a0
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panic.rs:358:14
[INFO] [stdout]   40:     0x55df68f7fb54 - std::thread::Builder::spawn_unchecked_::{{closure}}::h42b2841295b6c0b2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/thread/mod.rs:559:30
[INFO] [stdout]   41:     0x55df68f7fb54 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h6127de71b8124639
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x55df68ff473b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h42f0ba71002a1b2c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1972:9
[INFO] [stdout]   43:     0x55df68ff473b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::had9e47d7a3dcecb8
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1972:9
[INFO] [stdout]   44:     0x55df68ff473b - std::sys::pal::unix::thread::Thread::new::thread_start::h48cf765408f6f5f2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/pal/unix/thread.rs:105:17
[INFO] [stdout]   45:     0x79ffb9826ac3 - <unknown>
[INFO] [stdout]   46:     0x79ffb98b7a04 - clone
[INFO] [stdout]   47:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- day3::test::fold stdout ----
[INFO] [stdout] thread 'day3::test::fold' panicked at src/common/string_utils.rs:19:35:
[INFO] [stdout] error reading file: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x55df68feecca - std::backtrace_rs::backtrace::libunwind::trace::h8810477743020387
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/../../backtrace/src/backtrace/libunwind.rs:116:5
[INFO] [stdout]    1:     0x55df68feecca - std::backtrace_rs::backtrace::trace_unsynchronized::h3aa55355dd6c54a6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x55df68feecca - std::sys::backtrace::_print_fmt::h8588b0f62410823f
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x55df68feecca - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h98c26ac25ffe89bb
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x55df69014bc3 - core::fmt::rt::Argument::fmt::hf95377f4aebd453b
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/fmt/rt.rs:177:76
[INFO] [stdout]    5:     0x55df69014bc3 - core::fmt::write::h0dd5f6e2238c7982
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/fmt/mod.rs:1189:21
[INFO] [stdout]    6:     0x55df68febe63 - std::io::Write::write_fmt::h03bb0ca26e6faf8c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/io/mod.rs:1884:15
[INFO] [stdout]    7:     0x55df68feeb12 - std::sys::backtrace::BacktraceLock::print::h5c19c1c038ee186d
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    8:     0x55df68ff014d - std::panicking::default_hook::{{closure}}::h77172f079a1fcb13
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:268:22
[INFO] [stdout]    9:     0x55df68feff57 - std::panicking::default_hook::he5f8e3b203ccddba
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:292:9
[INFO] [stdout]   10:     0x55df68fb4227 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h7a3c7b4a1ae77f2f
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1986:9
[INFO] [stdout]   11:     0x55df68fb4227 - test::test_main::{{closure}}::hf0d3b69ae9b353d1
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:134:21
[INFO] [stdout]   12:     0x55df68ff07f8 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h6332e82e7b189abd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1986:9
[INFO] [stdout]   13:     0x55df68ff07f8 - std::panicking::rust_panic_with_hook::h53863d4e9018df39
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:809:13
[INFO] [stdout]   14:     0x55df68ff05ba - std::panicking::begin_panic_handler::{{closure}}::h67280e6fa0757873
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:674:13
[INFO] [stdout]   15:     0x55df68fef1a9 - std::sys::backtrace::__rust_end_short_backtrace::h1dac3f54d6fbbeb2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:170:18
[INFO] [stdout]   16:     0x55df68ff024c - rust_begin_unwind
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:665:5
[INFO] [stdout]   17:     0x55df68f14b50 - core::panicking::panic_fmt::h6792bd1b2bf01041
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panicking.rs:76:14
[INFO] [stdout]   18:     0x55df68f14f96 - core::result::unwrap_failed::h05e0602ed34287c5
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/result.rs:1699:5
[INFO] [stdout]   19:     0x55df68f66a34 - core::result::Result<T,E>::expect::h3337807fbf523ef7
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/result.rs:1061:23
[INFO] [stdout]   20:     0x55df68f5cac2 - aoc24::common::string_utils::read_file_to_string::hd89d2086929db9a1
[INFO] [stdout]                                at /opt/rustwide/workdir/src/common/string_utils.rs:19:5
[INFO] [stdout]   21:     0x55df68f5cf1d - aoc24::day3::test::fold::h59e915d04f9bab27
[INFO] [stdout]                                at /opt/rustwide/workdir/src/day3/mod.rs:94:21
[INFO] [stdout]   22:     0x55df68f5cee7 - aoc24::day3::test::fold::{{closure}}::hbcd7a4b98e4fdbf3
[INFO] [stdout]                                at /opt/rustwide/workdir/src/day3/mod.rs:93:18
[INFO] [stdout]   23:     0x55df68f3b546 - core::ops::function::FnOnce::call_once::h388d42760e44a391
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x55df68fb8d4b - core::ops::function::FnOnce::call_once::h871bf86719ec9aa4
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x55df68fb8d4b - test::__rust_begin_short_backtrace::h2167df1e2b7d76fd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:632:18
[INFO] [stdout]   26:     0x55df68fb8738 - test::run_test_in_process::{{closure}}::h15d92f75a3adfb79
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:655:60
[INFO] [stdout]   27:     0x55df68fb8738 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hb6c8955835a8dbbb
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   28:     0x55df68fb8738 - std::panicking::try::do_call::hc79d0fc888a0bd30
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:557:40
[INFO] [stdout]   29:     0x55df68fb8738 - std::panicking::try::hb8a7878e3a8589d6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:520:19
[INFO] [stdout]   30:     0x55df68fb8738 - std::panic::catch_unwind::hb8e4600ff0ff5cfa
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panic.rs:358:14
[INFO] [stdout]   31:     0x55df68fb8738 - test::run_test_in_process::hc2900b0b18688dd6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:655:27
[INFO] [stdout]   32:     0x55df68fb8738 - test::run_test::{{closure}}::hac2a9cb07be3d48d
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:576:43
[INFO] [stdout]   33:     0x55df68f7c1da - test::run_test::{{closure}}::h4a5b729e66a38cd8
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:606:41
[INFO] [stdout]   34:     0x55df68f7c1da - std::sys::backtrace::__rust_begin_short_backtrace::h0496fb742492f573
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:154:18
[INFO] [stdout]   35:     0x55df68f7fb54 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hbb6d257c550a54bd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/thread/mod.rs:561:17
[INFO] [stdout]   36:     0x55df68f7fb54 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h46696fe4a6832328
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   37:     0x55df68f7fb54 - std::panicking::try::do_call::h2625a51b667bfb64
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:557:40
[INFO] [stdout]   38:     0x55df68f7fb54 - std::panicking::try::hb956a59a1973aa4c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:520:19
[INFO] [stdout]   39:     0x55df68f7fb54 - std::panic::catch_unwind::h64f3b9d1067ef6a0
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panic.rs:358:14
[INFO] [stdout]   40:     0x55df68f7fb54 - std::thread::Builder::spawn_unchecked_::{{closure}}::h42b2841295b6c0b2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/thread/mod.rs:559:30
[INFO] [stdout]   41:     0x55df68f7fb54 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h6127de71b8124639
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x55df68ff473b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h42f0ba71002a1b2c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1972:9
[INFO] [stdout]   43:     0x55df68ff473b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::had9e47d7a3dcecb8
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1972:9
[INFO] [stdout]   44:     0x55df68ff473b - std::sys::pal::unix::thread::Thread::new::thread_start::h48cf765408f6f5f2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/pal/unix/thread.rs:105:17
[INFO] [stdout]   45:     0x79ffb9826ac3 - <unknown>
[INFO] [stdout]   46:     0x79ffb98b7a04 - clone
[INFO] [stdout]   47:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- day11::test::test2 stdout ----
[INFO] [stdout] thread 'day11::test::test2' panicked at src/common/string_utils.rs:19:35:
[INFO] [stdout] error reading file: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x55df68feecca - std::backtrace_rs::backtrace::libunwind::trace::h8810477743020387
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/../../backtrace/src/backtrace/libunwind.rs:116:5
[INFO] [stdout]    1:     0x55df68feecca - std::backtrace_rs::backtrace::trace_unsynchronized::h3aa55355dd6c54a6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x55df68feecca - std::sys::backtrace::_print_fmt::h8588b0f62410823f
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x55df68feecca - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h98c26ac25ffe89bb
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x55df69014bc3 - core::fmt::rt::Argument::fmt::hf95377f4aebd453b
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/fmt/rt.rs:177:76
[INFO] [stdout]    5:     0x55df69014bc3 - core::fmt::write::h0dd5f6e2238c7982
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/fmt/mod.rs:1189:21
[INFO] [stdout]    6:     0x55df68febe63 - std::io::Write::write_fmt::h03bb0ca26e6faf8c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/io/mod.rs:1884:15
[INFO] [stdout]    7:     0x55df68feeb12 - std::sys::backtrace::BacktraceLock::print::h5c19c1c038ee186d
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    8:     0x55df68ff014d - std::panicking::default_hook::{{closure}}::h77172f079a1fcb13
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:268:22
[INFO] [stdout]    9:     0x55df68feff57 - std::panicking::default_hook::he5f8e3b203ccddba
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:292:9
[INFO] [stdout]   10:     0x55df68fb4227 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h7a3c7b4a1ae77f2f
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1986:9
[INFO] [stdout]   11:     0x55df68fb4227 - test::test_main::{{closure}}::hf0d3b69ae9b353d1
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:134:21
[INFO] [stdout]   12:     0x55df68ff07f8 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h6332e82e7b189abd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1986:9
[INFO] [stdout]   13:     0x55df68ff07f8 - std::panicking::rust_panic_with_hook::h53863d4e9018df39
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:809:13
[INFO] [stdout]   14:     0x55df68ff05ba - std::panicking::begin_panic_handler::{{closure}}::h67280e6fa0757873
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:674:13
[INFO] [stdout]   15:     0x55df68fef1a9 - std::sys::backtrace::__rust_end_short_backtrace::h1dac3f54d6fbbeb2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:170:18
[INFO] [stdout]   16:     0x55df68ff024c - rust_begin_unwind
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:665:5
[INFO] [stdout]   17:     0x55df68f14b50 - core::panicking::panic_fmt::h6792bd1b2bf01041
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panicking.rs:76:14
[INFO] [stdout]   18:     0x55df68f14f96 - core::result::unwrap_failed::h05e0602ed34287c5
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/result.rs:1699:5
[INFO] [stdout]   19:     0x55df68f66a34 - core::result::Result<T,E>::expect::h3337807fbf523ef7
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/result.rs:1061:23
[INFO] [stdout]   20:     0x55df68f5cac2 - aoc24::common::string_utils::read_file_to_string::hd89d2086929db9a1
[INFO] [stdout]                                at /opt/rustwide/workdir/src/common/string_utils.rs:19:5
[INFO] [stdout]   21:     0x55df68f7137d - aoc24::day11::test::test2::h82b1b8493234eb2e
[INFO] [stdout]                                at /opt/rustwide/workdir/src/day11/mod.rs:135:21
[INFO] [stdout]   22:     0x55df68f71337 - aoc24::day11::test::test2::{{closure}}::h6010070e5356c9bc
[INFO] [stdout]                                at /opt/rustwide/workdir/src/day11/mod.rs:132:19
[INFO] [stdout]   23:     0x55df68f3b246 - core::ops::function::FnOnce::call_once::h1bb78a0592a79888
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x55df68fb8d4b - core::ops::function::FnOnce::call_once::h871bf86719ec9aa4
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x55df68fb8d4b - test::__rust_begin_short_backtrace::h2167df1e2b7d76fd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:632:18
[INFO] [stdout]   26:     0x55df68fb8738 - test::run_test_in_process::{{closure}}::h15d92f75a3adfb79
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:655:60
[INFO] [stdout]   27:     0x55df68fb8738 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hb6c8955835a8dbbb
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   28:     0x55df68fb8738 - std::panicking::try::do_call::hc79d0fc888a0bd30
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:557:40
[INFO] [stdout]   29:     0x55df68fb8738 - std::panicking::try::hb8a7878e3a8589d6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:520:19
[INFO] [stdout]   30:     0x55df68fb8738 - std::panic::catch_unwind::hb8e4600ff0ff5cfa
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panic.rs:358:14
[INFO] [stdout]   31:     0x55df68fb8738 - test::run_test_in_process::hc2900b0b18688dd6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:655:27
[INFO] [stdout]   32:     0x55df68fb8738 - test::run_test::{{closure}}::hac2a9cb07be3d48d
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:576:43
[INFO] [stdout]   33:     0x55df68f7c1da - test::run_test::{{closure}}::h4a5b729e66a38cd8
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:606:41
[INFO] [stdout]   34:     0x55df68f7c1da - std::sys::backtrace::__rust_begin_short_backtrace::h0496fb742492f573
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:154:18
[INFO] [stdout]   35:     0x55df68f7fb54 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hbb6d257c550a54bd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/thread/mod.rs:561:17
[INFO] [stdout]   36:     0x55df68f7fb54 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h46696fe4a6832328
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   37:     0x55df68f7fb54 - std::panicking::try::do_call::h2625a51b667bfb64
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:557:40
[INFO] [stdout]   38:     0x55df68f7fb54 - std::panicking::try::hb956a59a1973aa4c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:520:19
[INFO] [stdout]   39:     0x55df68f7fb54 - std::panic::catch_unwind::h64f3b9d1067ef6a0
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panic.rs:358:14
[INFO] [stdout]   40:     0x55df68f7fb54 - std::thread::Builder::spawn_unchecked_::{{closure}}::h42b2841295b6c0b2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/thread/mod.rs:559:30
[INFO] [stdout]   41:     0x55df68f7fb54 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h6127de71b8124639
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x55df68ff473b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h42f0ba71002a1b2c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1972:9
[INFO] [stdout]   43:     0x55df68ff473b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::had9e47d7a3dcecb8
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1972:9
[INFO] [stdout]   44:     0x55df68ff473b - std::sys::pal::unix::thread::Thread::new::thread_start::h48cf765408f6f5f2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/pal/unix/thread.rs:105:17
[INFO] [stdout]   45:     0x79ffb9826ac3 - <unknown>
[INFO] [stdout]   46:     0x79ffb98b7a04 - clone
[INFO] [stdout]   47:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- day2::test::test_parse_all stdout ----
[INFO] [stdout] thread 'day2::test::test_parse_all' panicked at src/common/string_utils.rs:19:35:
[INFO] [stdout] error reading file: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x55df68feecca - std::backtrace_rs::backtrace::libunwind::trace::h8810477743020387
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/../../backtrace/src/backtrace/libunwind.rs:116:5
[INFO] [stdout]    1:     0x55df68feecca - std::backtrace_rs::backtrace::trace_unsynchronized::h3aa55355dd6c54a6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x55df68feecca - std::sys::backtrace::_print_fmt::h8588b0f62410823f
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x55df68feecca - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h98c26ac25ffe89bb
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x55df69014bc3 - core::fmt::rt::Argument::fmt::hf95377f4aebd453b
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/fmt/rt.rs:177:76
[INFO] [stdout]    5:     0x55df69014bc3 - core::fmt::write::h0dd5f6e2238c7982
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/fmt/mod.rs:1189:21
[INFO] [stdout]    6:     0x55df68febe63 - std::io::Write::write_fmt::h03bb0ca26e6faf8c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/io/mod.rs:1884:15
[INFO] [stdout]    7:     0x55df68feeb12 - std::sys::backtrace::BacktraceLock::print::h5c19c1c038ee186d
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    8:     0x55df68ff014d - std::panicking::default_hook::{{closure}}::h77172f079a1fcb13
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:268:22
[INFO] [stdout]    9:     0x55df68feff57 - std::panicking::default_hook::he5f8e3b203ccddba
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:292:9
[INFO] [stdout]   10:     0x55df68fb4227 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h7a3c7b4a1ae77f2f
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1986:9
[INFO] [stdout]   11:     0x55df68fb4227 - test::test_main::{{closure}}::hf0d3b69ae9b353d1
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:134:21
[INFO] [stdout]   12:     0x55df68ff07f8 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h6332e82e7b189abd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1986:9
[INFO] [stdout]   13:     0x55df68ff07f8 - std::panicking::rust_panic_with_hook::h53863d4e9018df39
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:809:13
[INFO] [stdout]   14:     0x55df68ff05ba - std::panicking::begin_panic_handler::{{closure}}::h67280e6fa0757873
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:674:13
[INFO] [stdout]   15:     0x55df68fef1a9 - std::sys::backtrace::__rust_end_short_backtrace::h1dac3f54d6fbbeb2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:170:18
[INFO] [stdout]   16:     0x55df68ff024c - rust_begin_unwind
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:665:5
[INFO] [stdout]   17:     0x55df68f14b50 - core::panicking::panic_fmt::h6792bd1b2bf01041
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panicking.rs:76:14
[INFO] [stdout]   18:     0x55df68f14f96 - core::result::unwrap_failed::h05e0602ed34287c5
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/result.rs:1699:5
[INFO] [stdout]   19:     0x55df68f66a34 - core::result::Result<T,E>::expect::h3337807fbf523ef7
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/result.rs:1061:23
[INFO] [stdout]   20:     0x55df68f5cac2 - aoc24::common::string_utils::read_file_to_string::hd89d2086929db9a1
[INFO] [stdout]                                at /opt/rustwide/workdir/src/common/string_utils.rs:19:5
[INFO] [stdout]   21:     0x55df68f55915 - aoc24::day2::test::test_parse_all::h675a69d253186fb6
[INFO] [stdout]                                at /opt/rustwide/workdir/src/day2/mod.rs:128:21
[INFO] [stdout]   22:     0x55df68f558d7 - aoc24::day2::test::test_parse_all::{{closure}}::h1ef8df2181e61082
[INFO] [stdout]                                at /opt/rustwide/workdir/src/day2/mod.rs:127:28
[INFO] [stdout]   23:     0x55df68f3b9a6 - core::ops::function::FnOnce::call_once::h86477e3243cdeb56
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x55df68fb8d4b - core::ops::function::FnOnce::call_once::h871bf86719ec9aa4
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x55df68fb8d4b - test::__rust_begin_short_backtrace::h2167df1e2b7d76fd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:632:18
[INFO] [stdout]   26:     0x55df68fb8738 - test::run_test_in_process::{{closure}}::h15d92f75a3adfb79
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:655:60
[INFO] [stdout]   27:     0x55df68fb8738 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hb6c8955835a8dbbb
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   28:     0x55df68fb8738 - std::panicking::try::do_call::hc79d0fc888a0bd30
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:557:40
[INFO] [stdout]   29:     0x55df68fb8738 - std::panicking::try::hb8a7878e3a8589d6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:520:19
[INFO] [stdout]   30:     0x55df68fb8738 - std::panic::catch_unwind::hb8e4600ff0ff5cfa
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panic.rs:358:14
[INFO] [stdout]   31:     0x55df68fb8738 - test::run_test_in_process::hc2900b0b18688dd6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:655:27
[INFO] [stdout]   32:     0x55df68fb8738 - test::run_test::{{closure}}::hac2a9cb07be3d48d
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:576:43
[INFO] [stdout]   33:     0x55df68f7c1da - test::run_test::{{closure}}::h4a5b729e66a38cd8
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:606:41
[INFO] [stdout]   34:     0x55df68f7c1da - std::sys::backtrace::__rust_begin_short_backtrace::h0496fb742492f573
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:154:18
[INFO] [stdout]   35:     0x55df68f7fb54 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hbb6d257c550a54bd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/thread/mod.rs:561:17
[INFO] [stdout]   36:     0x55df68f7fb54 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h46696fe4a6832328
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   37:     0x55df68f7fb54 - std::panicking::try::do_call::h2625a51b667bfb64
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:557:40
[INFO] [stdout]   38:     0x55df68f7fb54 - std::panicking::try::hb956a59a1973aa4c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:520:19
[INFO] [stdout]   39:     0x55df68f7fb54 - std::panic::catch_unwind::h64f3b9d1067ef6a0
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panic.rs:358:14
[INFO] [stdout]   40:     0x55df68f7fb54 - std::thread::Builder::spawn_unchecked_::{{closure}}::h42b2841295b6c0b2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/thread/mod.rs:559:30
[INFO] [stdout]   41:     0x55df68f7fb54 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h6127de71b8124639
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x55df68ff473b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h42f0ba71002a1b2c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1972:9
[INFO] [stdout]   43:     0x55df68ff473b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::had9e47d7a3dcecb8
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1972:9
[INFO] [stdout]   44:     0x55df68ff473b - std::sys::pal::unix::thread::Thread::new::thread_start::h48cf765408f6f5f2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/pal/unix/thread.rs:105:17
[INFO] [stdout]   45:     0x79ffb9826ac3 - <unknown>
[INFO] [stdout]   46:     0x79ffb98b7a04 - clone
[INFO] [stdout]   47:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- day1::test::test_full_file stdout ----
[INFO] [stdout] thread 'day1::test::test_full_file' panicked at src/common/string_utils.rs:19:35:
[INFO] [stdout] error reading file: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x55df68feecca - std::backtrace_rs::backtrace::libunwind::trace::h8810477743020387
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/../../backtrace/src/backtrace/libunwind.rs:116:5
[INFO] [stdout]    1:     0x55df68feecca - std::backtrace_rs::backtrace::trace_unsynchronized::h3aa55355dd6c54a6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x55df68feecca - std::sys::backtrace::_print_fmt::h8588b0f62410823f
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x55df68feecca - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h98c26ac25ffe89bb
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x55df69014bc3 - core::fmt::rt::Argument::fmt::hf95377f4aebd453b
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/fmt/rt.rs:177:76
[INFO] [stdout]    5:     0x55df69014bc3 - core::fmt::write::h0dd5f6e2238c7982
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/fmt/mod.rs:1189:21
[INFO] [stdout]    6:     0x55df68febe63 - std::io::Write::write_fmt::h03bb0ca26e6faf8c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/io/mod.rs:1884:15
[INFO] [stdout]    7:     0x55df68feeb12 - std::sys::backtrace::BacktraceLock::print::h5c19c1c038ee186d
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    8:     0x55df68ff014d - std::panicking::default_hook::{{closure}}::h77172f079a1fcb13
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:268:22
[INFO] [stdout]    9:     0x55df68feff57 - std::panicking::default_hook::he5f8e3b203ccddba
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:292:9
[INFO] [stdout]   10:     0x55df68fb4227 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h7a3c7b4a1ae77f2f
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1986:9
[INFO] [stdout]   11:     0x55df68fb4227 - test::test_main::{{closure}}::hf0d3b69ae9b353d1
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:134:21
[INFO] [stdout]   12:     0x55df68ff07f8 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h6332e82e7b189abd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1986:9
[INFO] [stdout]   13:     0x55df68ff07f8 - std::panicking::rust_panic_with_hook::h53863d4e9018df39
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:809:13
[INFO] [stdout]   14:     0x55df68ff05ba - std::panicking::begin_panic_handler::{{closure}}::h67280e6fa0757873
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:674:13
[INFO] [stdout]   15:     0x55df68fef1a9 - std::sys::backtrace::__rust_end_short_backtrace::h1dac3f54d6fbbeb2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:170:18
[INFO] [stdout]   16:     0x55df68ff024c - rust_begin_unwind
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:665:5
[INFO] [stdout]   17:     0x55df68f14b50 - core::panicking::panic_fmt::h6792bd1b2bf01041
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panicking.rs:76:14
[INFO] [stdout]   18:     0x55df68f14f96 - core::result::unwrap_failed::h05e0602ed34287c5
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/result.rs:1699:5
[INFO] [stderr] error: test failed, to rerun pass `--bin aoc24`
[INFO] [stdout]   19:     0x55df68f66a34 - core::result::Result<T,E>::expect::h3337807fbf523ef7
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/result.rs:1061:23
[INFO] [stdout]   20:     0x55df68f5cac2 - aoc24::common::string_utils::read_file_to_string::hd89d2086929db9a1
[INFO] [stdout]                                at /opt/rustwide/workdir/src/common/string_utils.rs:19:5
[INFO] [stdout]   21:     0x55df68f69f8d - aoc24::day1::test::test_full_file::hcef5f0bcda43c6b1
[INFO] [stdout]                                at /opt/rustwide/workdir/src/day1/mod.rs:96:21
[INFO] [stdout]   22:     0x55df68f69f57 - aoc24::day1::test::test_full_file::{{closure}}::h9d6ad205b7f1133f
[INFO] [stdout]                                at /opt/rustwide/workdir/src/day1/mod.rs:95:28
[INFO] [stdout]   23:     0x55df68f3b966 - core::ops::function::FnOnce::call_once::h85026a37fb641a20
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x55df68fb8d4b - core::ops::function::FnOnce::call_once::h871bf86719ec9aa4
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x55df68fb8d4b - test::__rust_begin_short_backtrace::h2167df1e2b7d76fd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:632:18
[INFO] [stdout]   26:     0x55df68fb8738 - test::run_test_in_process::{{closure}}::h15d92f75a3adfb79
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:655:60
[INFO] [stdout]   27:     0x55df68fb8738 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hb6c8955835a8dbbb
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   28:     0x55df68fb8738 - std::panicking::try::do_call::hc79d0fc888a0bd30
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:557:40
[INFO] [stdout]   29:     0x55df68fb8738 - std::panicking::try::hb8a7878e3a8589d6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:520:19
[INFO] [stdout]   30:     0x55df68fb8738 - std::panic::catch_unwind::hb8e4600ff0ff5cfa
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panic.rs:358:14
[INFO] [stdout]   31:     0x55df68fb8738 - test::run_test_in_process::hc2900b0b18688dd6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:655:27
[INFO] [stdout]   32:     0x55df68fb8738 - test::run_test::{{closure}}::hac2a9cb07be3d48d
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:576:43
[INFO] [stdout]   33:     0x55df68f7c1da - test::run_test::{{closure}}::h4a5b729e66a38cd8
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:606:41
[INFO] [stdout]   34:     0x55df68f7c1da - std::sys::backtrace::__rust_begin_short_backtrace::h0496fb742492f573
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:154:18
[INFO] [stdout]   35:     0x55df68f7fb54 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hbb6d257c550a54bd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/thread/mod.rs:561:17
[INFO] [stdout]   36:     0x55df68f7fb54 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h46696fe4a6832328
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   37:     0x55df68f7fb54 - std::panicking::try::do_call::h2625a51b667bfb64
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:557:40
[INFO] [stdout]   38:     0x55df68f7fb54 - std::panicking::try::hb956a59a1973aa4c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:520:19
[INFO] [stdout]   39:     0x55df68f7fb54 - std::panic::catch_unwind::h64f3b9d1067ef6a0
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panic.rs:358:14
[INFO] [stdout]   40:     0x55df68f7fb54 - std::thread::Builder::spawn_unchecked_::{{closure}}::h42b2841295b6c0b2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/thread/mod.rs:559:30
[INFO] [stdout]   41:     0x55df68f7fb54 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h6127de71b8124639
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x55df68ff473b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h42f0ba71002a1b2c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1972:9
[INFO] [stdout]   43:     0x55df68ff473b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::had9e47d7a3dcecb8
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1972:9
[INFO] [stdout]   44:     0x55df68ff473b - std::sys::pal::unix::thread::Thread::new::thread_start::h48cf765408f6f5f2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/pal/unix/thread.rs:105:17
[INFO] [stdout]   45:     0x79ffb9826ac3 - <unknown>
[INFO] [stdout]   46:     0x79ffb98b7a04 - clone
[INFO] [stdout]   47:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- day8::test::test_full2 stdout ----
[INFO] [stdout] thread 'day8::test::test_full2' panicked at src/common/string_utils.rs:19:35:
[INFO] [stdout] error reading file: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x55df68feecca - std::backtrace_rs::backtrace::libunwind::trace::h8810477743020387
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/../../backtrace/src/backtrace/libunwind.rs:116:5
[INFO] [stdout]    1:     0x55df68feecca - std::backtrace_rs::backtrace::trace_unsynchronized::h3aa55355dd6c54a6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x55df68feecca - std::sys::backtrace::_print_fmt::h8588b0f62410823f
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x55df68feecca - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h98c26ac25ffe89bb
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x55df69014bc3 - core::fmt::rt::Argument::fmt::hf95377f4aebd453b
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/fmt/rt.rs:177:76
[INFO] [stdout]    5:     0x55df69014bc3 - core::fmt::write::h0dd5f6e2238c7982
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/fmt/mod.rs:1189:21
[INFO] [stdout]    6:     0x55df68febe63 - std::io::Write::write_fmt::h03bb0ca26e6faf8c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/io/mod.rs:1884:15
[INFO] [stdout]    7:     0x55df68feeb12 - std::sys::backtrace::BacktraceLock::print::h5c19c1c038ee186d
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    8:     0x55df68ff014d - std::panicking::default_hook::{{closure}}::h77172f079a1fcb13
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:268:22
[INFO] [stdout]    9:     0x55df68feff57 - std::panicking::default_hook::he5f8e3b203ccddba
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:292:9
[INFO] [stdout]   10:     0x55df68fb4227 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h7a3c7b4a1ae77f2f
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1986:9
[INFO] [stdout]   11:     0x55df68fb4227 - test::test_main::{{closure}}::hf0d3b69ae9b353d1
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:134:21
[INFO] [stdout]   12:     0x55df68ff07f8 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h6332e82e7b189abd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1986:9
[INFO] [stdout]   13:     0x55df68ff07f8 - std::panicking::rust_panic_with_hook::h53863d4e9018df39
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:809:13
[INFO] [stdout]   14:     0x55df68ff05ba - std::panicking::begin_panic_handler::{{closure}}::h67280e6fa0757873
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:674:13
[INFO] [stdout]   15:     0x55df68fef1a9 - std::sys::backtrace::__rust_end_short_backtrace::h1dac3f54d6fbbeb2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:170:18
[INFO] [stdout]   16:     0x55df68ff024c - rust_begin_unwind
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:665:5
[INFO] [stdout]   17:     0x55df68f14b50 - core::panicking::panic_fmt::h6792bd1b2bf01041
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panicking.rs:76:14
[INFO] [stdout]   18:     0x55df68f14f96 - core::result::unwrap_failed::h05e0602ed34287c5
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/result.rs:1699:5
[INFO] [stdout]   19:     0x55df68f66a34 - core::result::Result<T,E>::expect::h3337807fbf523ef7
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/result.rs:1061:23
[INFO] [stdout]   20:     0x55df68f5cac2 - aoc24::common::string_utils::read_file_to_string::hd89d2086929db9a1
[INFO] [stdout]                                at /opt/rustwide/workdir/src/common/string_utils.rs:19:5
[INFO] [stdout]   21:     0x55df68f4d578 - aoc24::day8::test::test_full2::h0220002758bc8842
[INFO] [stdout]                                at /opt/rustwide/workdir/src/day8/mod.rs:229:21
[INFO] [stdout]   22:     0x55df68f4d537 - aoc24::day8::test::test_full2::{{closure}}::h347056cf5a172780
[INFO] [stdout]                                at /opt/rustwide/workdir/src/day8/mod.rs:228:24
[INFO] [stdout]   23:     0x55df68f3c036 - core::ops::function::FnOnce::call_once::he8c5e1eed92fdc50
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x55df68fb8d4b - core::ops::function::FnOnce::call_once::h871bf86719ec9aa4
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x55df68fb8d4b - test::__rust_begin_short_backtrace::h2167df1e2b7d76fd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:632:18
[INFO] [stdout]   26:     0x55df68fb8738 - test::run_test_in_process::{{closure}}::h15d92f75a3adfb79
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:655:60
[INFO] [stdout]   27:     0x55df68fb8738 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hb6c8955835a8dbbb
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   28:     0x55df68fb8738 - std::panicking::try::do_call::hc79d0fc888a0bd30
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:557:40
[INFO] [stdout]   29:     0x55df68fb8738 - std::panicking::try::hb8a7878e3a8589d6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:520:19
[INFO] [stdout]   30:     0x55df68fb8738 - std::panic::catch_unwind::hb8e4600ff0ff5cfa
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panic.rs:358:14
[INFO] [stdout]   31:     0x55df68fb8738 - test::run_test_in_process::hc2900b0b18688dd6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:655:27
[INFO] [stdout]   32:     0x55df68fb8738 - test::run_test::{{closure}}::hac2a9cb07be3d48d
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:576:43
[INFO] [stdout]   33:     0x55df68f7c1da - test::run_test::{{closure}}::h4a5b729e66a38cd8
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:606:41
[INFO] [stdout]   34:     0x55df68f7c1da - std::sys::backtrace::__rust_begin_short_backtrace::h0496fb742492f573
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:154:18
[INFO] [stdout]   35:     0x55df68f7fb54 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hbb6d257c550a54bd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/thread/mod.rs:561:17
[INFO] [stdout]   36:     0x55df68f7fb54 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h46696fe4a6832328
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   37:     0x55df68f7fb54 - std::panicking::try::do_call::h2625a51b667bfb64
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:557:40
[INFO] [stdout]   38:     0x55df68f7fb54 - std::panicking::try::hb956a59a1973aa4c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:520:19
[INFO] [stdout]   39:     0x55df68f7fb54 - std::panic::catch_unwind::h64f3b9d1067ef6a0
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panic.rs:358:14
[INFO] [stdout]   40:     0x55df68f7fb54 - std::thread::Builder::spawn_unchecked_::{{closure}}::h42b2841295b6c0b2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/thread/mod.rs:559:30
[INFO] [stdout]   41:     0x55df68f7fb54 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h6127de71b8124639
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x55df68ff473b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h42f0ba71002a1b2c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1972:9
[INFO] [stdout]   43:     0x55df68ff473b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::had9e47d7a3dcecb8
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1972:9
[INFO] [stdout]   44:     0x55df68ff473b - std::sys::pal::unix::thread::Thread::new::thread_start::h48cf765408f6f5f2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/pal/unix/thread.rs:105:17
[INFO] [stdout]   45:     0x79ffb9826ac3 - <unknown>
[INFO] [stdout]   46:     0x79ffb98b7a04 - clone
[INFO] [stdout]   47:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- day8::test::test_full stdout ----
[INFO] [stdout] thread 'day8::test::test_full' panicked at src/common/string_utils.rs:19:35:
[INFO] [stdout] error reading file: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x55df68feecca - std::backtrace_rs::backtrace::libunwind::trace::h8810477743020387
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/../../backtrace/src/backtrace/libunwind.rs:116:5
[INFO] [stdout]    1:     0x55df68feecca - std::backtrace_rs::backtrace::trace_unsynchronized::h3aa55355dd6c54a6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x55df68feecca - std::sys::backtrace::_print_fmt::h8588b0f62410823f
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x55df68feecca - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h98c26ac25ffe89bb
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x55df69014bc3 - core::fmt::rt::Argument::fmt::hf95377f4aebd453b
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/fmt/rt.rs:177:76
[INFO] [stdout]    5:     0x55df69014bc3 - core::fmt::write::h0dd5f6e2238c7982
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/fmt/mod.rs:1189:21
[INFO] [stdout]    6:     0x55df68febe63 - std::io::Write::write_fmt::h03bb0ca26e6faf8c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/io/mod.rs:1884:15
[INFO] [stdout]    7:     0x55df68feeb12 - std::sys::backtrace::BacktraceLock::print::h5c19c1c038ee186d
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    8:     0x55df68ff014d - std::panicking::default_hook::{{closure}}::h77172f079a1fcb13
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:268:22
[INFO] [stdout]    9:     0x55df68feff57 - std::panicking::default_hook::he5f8e3b203ccddba
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:292:9
[INFO] [stdout]   10:     0x55df68fb4227 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h7a3c7b4a1ae77f2f
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1986:9
[INFO] [stdout]   11:     0x55df68fb4227 - test::test_main::{{closure}}::hf0d3b69ae9b353d1
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:134:21
[INFO] [stdout]   12:     0x55df68ff07f8 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h6332e82e7b189abd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1986:9
[INFO] [stdout]   13:     0x55df68ff07f8 - std::panicking::rust_panic_with_hook::h53863d4e9018df39
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:809:13
[INFO] [stdout]   14:     0x55df68ff05ba - std::panicking::begin_panic_handler::{{closure}}::h67280e6fa0757873
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:674:13
[INFO] [stdout]   15:     0x55df68fef1a9 - std::sys::backtrace::__rust_end_short_backtrace::h1dac3f54d6fbbeb2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:170:18
[INFO] [stdout]   16:     0x55df68ff024c - rust_begin_unwind
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:665:5
[INFO] [stdout]   17:     0x55df68f14b50 - core::panicking::panic_fmt::h6792bd1b2bf01041
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panicking.rs:76:14
[INFO] [stdout]   18:     0x55df68f14f96 - core::result::unwrap_failed::h05e0602ed34287c5
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/result.rs:1699:5
[INFO] [stdout]   19:     0x55df68f66a34 - core::result::Result<T,E>::expect::h3337807fbf523ef7
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/result.rs:1061:23
[INFO] [stdout]   20:     0x55df68f5cac2 - aoc24::common::string_utils::read_file_to_string::hd89d2086929db9a1
[INFO] [stdout]                                at /opt/rustwide/workdir/src/common/string_utils.rs:19:5
[INFO] [stdout]   21:     0x55df68f4c948 - aoc24::day8::test::test_full::h1810e77411c5532c
[INFO] [stdout]                                at /opt/rustwide/workdir/src/day8/mod.rs:167:21
[INFO] [stdout]   22:     0x55df68f4c907 - aoc24::day8::test::test_full::{{closure}}::he913af06b774e3af
[INFO] [stdout]                                at /opt/rustwide/workdir/src/day8/mod.rs:166:23
[INFO] [stdout]   23:     0x55df68f3bf26 - core::ops::function::FnOnce::call_once::hd1910a615253a919
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x55df68fb8d4b - core::ops::function::FnOnce::call_once::h871bf86719ec9aa4
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x55df68fb8d4b - test::__rust_begin_short_backtrace::h2167df1e2b7d76fd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:632:18
[INFO] [stdout]   26:     0x55df68fb8738 - test::run_test_in_process::{{closure}}::h15d92f75a3adfb79
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:655:60
[INFO] [stdout]   27:     0x55df68fb8738 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hb6c8955835a8dbbb
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   28:     0x55df68fb8738 - std::panicking::try::do_call::hc79d0fc888a0bd30
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:557:40
[INFO] [stdout]   29:     0x55df68fb8738 - std::panicking::try::hb8a7878e3a8589d6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:520:19
[INFO] [stdout]   30:     0x55df68fb8738 - std::panic::catch_unwind::hb8e4600ff0ff5cfa
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panic.rs:358:14
[INFO] [stdout]   31:     0x55df68fb8738 - test::run_test_in_process::hc2900b0b18688dd6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:655:27
[INFO] [stdout]   32:     0x55df68fb8738 - test::run_test::{{closure}}::hac2a9cb07be3d48d
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:576:43
[INFO] [stdout]   33:     0x55df68f7c1da - test::run_test::{{closure}}::h4a5b729e66a38cd8
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:606:41
[INFO] [stdout]   34:     0x55df68f7c1da - std::sys::backtrace::__rust_begin_short_backtrace::h0496fb742492f573
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:154:18
[INFO] [stdout]   35:     0x55df68f7fb54 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hbb6d257c550a54bd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/thread/mod.rs:561:17
[INFO] [stdout]   36:     0x55df68f7fb54 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h46696fe4a6832328
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   37:     0x55df68f7fb54 - std::panicking::try::do_call::h2625a51b667bfb64
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:557:40
[INFO] [stdout]   38:     0x55df68f7fb54 - std::panicking::try::hb956a59a1973aa4c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:520:19
[INFO] [stdout]   39:     0x55df68f7fb54 - std::panic::catch_unwind::h64f3b9d1067ef6a0
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panic.rs:358:14
[INFO] [stdout]   40:     0x55df68f7fb54 - std::thread::Builder::spawn_unchecked_::{{closure}}::h42b2841295b6c0b2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/thread/mod.rs:559:30
[INFO] [stdout]   41:     0x55df68f7fb54 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h6127de71b8124639
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x55df68ff473b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h42f0ba71002a1b2c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1972:9
[INFO] [stdout]   43:     0x55df68ff473b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::had9e47d7a3dcecb8
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1972:9
[INFO] [stdout]   44:     0x55df68ff473b - std::sys::pal::unix::thread::Thread::new::thread_start::h48cf765408f6f5f2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/pal/unix/thread.rs:105:17
[INFO] [stdout]   45:     0x79ffb9826ac3 - <unknown>
[INFO] [stdout]   46:     0x79ffb98b7a04 - clone
[INFO] [stdout]   47:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     day11::test::test2
[INFO] [stdout]     day12::test::test
[INFO] [stdout]     day12::test::test2
[INFO] [stdout]     day1::test::test_fold
[INFO] [stdout]     day1::test::test_full_file
[INFO] [stdout]     day2::test::test_parse_all
[INFO] [stdout]     day3::test::fold
[INFO] [stdout]     day8::test::test_full
[INFO] [stdout]     day8::test::test_full2
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 22 passed; 9 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "7546e6a661348062a008ad435056749d5adbf732fdac80adb6fd105d5c7de2fd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7546e6a661348062a008ad435056749d5adbf732fdac80adb6fd105d5c7de2fd", kill_on_drop: false }`
[INFO] [stdout] 7546e6a661348062a008ad435056749d5adbf732fdac80adb6fd105d5c7de2fd
