[INFO] cloning repository https://github.com/kojilin/advent_of_code
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/kojilin/advent_of_code" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkojilin%2Fadvent_of_code", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkojilin%2Fadvent_of_code'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] d5f91188ea1ed2d2063ae1aa5899413536ca7492
[INFO] testing kojilin/advent_of_code against master#1871252fc8bb672d40787e67404e6eaae7059369 for pr-125151
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkojilin%2Fadvent_of_code" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/kojilin/advent_of_code on toolchain 1871252fc8bb672d40787e67404e6eaae7059369
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/kojilin/advent_of_code
[INFO] finished tweaking git repo https://github.com/kojilin/advent_of_code
[INFO] tweaked toml for git repo https://github.com/kojilin/advent_of_code written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/kojilin/advent_of_code 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" "+1871252fc8bb672d40787e67404e6eaae7059369" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2a34d94ec9fd95048465e3fb73553ffb0771ebdc7c66e305ee2aa87078d923e2
[INFO] running `Command { std: "docker" "start" "-a" "2a34d94ec9fd95048465e3fb73553ffb0771ebdc7c66e305ee2aa87078d923e2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2a34d94ec9fd95048465e3fb73553ffb0771ebdc7c66e305ee2aa87078d923e2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2a34d94ec9fd95048465e3fb73553ffb0771ebdc7c66e305ee2aa87078d923e2", kill_on_drop: false }`
[INFO] [stdout] 2a34d94ec9fd95048465e3fb73553ffb0771ebdc7c66e305ee2aa87078d923e2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a77541ee3610f959e2bd825b77e2e96082996e1ca79a952c302818e53f0f0a06
[INFO] running `Command { std: "docker" "start" "-a" "a77541ee3610f959e2bd825b77e2e96082996e1ca79a952c302818e53f0f0a06", kill_on_drop: false }`
[INFO] [stderr]    Compiling memchr v2.3.4
[INFO] [stderr]    Compiling lazy_static v1.4.0
[INFO] [stderr]    Compiling regex-syntax v0.6.21
[INFO] [stderr]    Compiling thread_local v1.0.1
[INFO] [stderr]    Compiling aho-corasick v0.7.15
[INFO] [stderr]    Compiling regex v1.4.2
[INFO] [stderr]    Compiling advent_of_code v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]  --> src/solutions/year_2021/day17.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::error::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/solutions/year_2023/day2.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 |         if (counts(&re_green, line, 13) && counts(&re_red, line, 12) && counts(&re_blue, line, 14)) {
[INFO] [stdout]    |            ^                                                                                      ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 18 -         if (counts(&re_green, line, 13) && counts(&re_red, line, 12) && counts(&re_blue, line, 14)) {
[INFO] [stdout] 18 +         if counts(&re_green, line, 13) && counts(&re_red, line, 12) && counts(&re_blue, line, 14) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/solutions/year_2023/day2.rs:32:16
[INFO] [stdout]    |
[INFO] [stdout] 32 |             if (digit_match.as_str().parse::<i32>().unwrap() > max) {
[INFO] [stdout]    |                ^                                                  ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 32 -             if (digit_match.as_str().parse::<i32>().unwrap() > max) {
[INFO] [stdout] 32 +             if digit_match.as_str().parse::<i32>().unwrap() > max {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 |         if (new_y < height && new_y >= 0 && new_x >= 0 && new_x < width) {
[INFO] [stdout]    |            ^                                                           ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 54 -         if (new_y < height && new_y >= 0 && new_x >= 0 && new_x < width) {
[INFO] [stdout] 54 +         if new_y < height && new_y >= 0 && new_x >= 0 && new_x < width {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:55:16
[INFO] [stdout]    |
[INFO] [stdout] 55 |             if (!map[new_y as usize][new_x as usize].is_ascii_digit()
[INFO] [stdout]    |                ^
[INFO] [stdout] 56 |                 && map[new_y as usize][new_x as usize] != '.') {
[INFO] [stdout]    |                                                              ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 55 ~             if !map[new_y as usize][new_x as usize].is_ascii_digit()
[INFO] [stdout] 56 ~                 && map[new_y as usize][new_x as usize] != '.' {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 |     if (x >= width || !map[y][x].is_ascii_digit()) {
[INFO] [stdout]    |        ^                                         ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 66 -     if (x >= width || !map[y][x].is_ascii_digit()) {
[INFO] [stdout] 66 +     if x >= width || !map[y][x].is_ascii_digit() {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 |     if (map[y][x].is_ascii_digit()) {
[INFO] [stdout]    |        ^                          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 70 -     if (map[y][x].is_ascii_digit()) {
[INFO] [stdout] 70 +     if map[y][x].is_ascii_digit() {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/solutions/year_2023/day3.rs:128:12
[INFO] [stdout]     |
[INFO] [stdout] 128 |         if (new_y < height && new_y >= 0 && new_x >= 0 && new_x < width) {
[INFO] [stdout]     |            ^                                                           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 128 -         if (new_y < height && new_y >= 0 && new_x >= 0 && new_x < width) {
[INFO] [stdout] 128 +         if new_y < height && new_y >= 0 && new_x >= 0 && new_x < width {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/solutions/year_2023/day3.rs:129:16
[INFO] [stdout]     |
[INFO] [stdout] 129 |             if (!map[new_y as usize][new_x as usize].is_ascii_digit()
[INFO] [stdout]     |                ^
[INFO] [stdout] 130 |                 && map[new_y as usize][new_x as usize] == '*') {
[INFO] [stdout]     |                                                              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 129 ~             if !map[new_y as usize][new_x as usize].is_ascii_digit()
[INFO] [stdout] 130 ~                 && map[new_y as usize][new_x as usize] == '*' {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/solutions/year_2023/day3.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 |     if (x >= width || !map[y][x].is_ascii_digit()) {
[INFO] [stdout]     |        ^                                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 142 -     if (x >= width || !map[y][x].is_ascii_digit()) {
[INFO] [stdout] 142 +     if x >= width || !map[y][x].is_ascii_digit() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/solutions/year_2023/day3.rs:155:8
[INFO] [stdout]     |
[INFO] [stdout] 155 |     if (map[y][x].is_ascii_digit()) {
[INFO] [stdout]     |        ^                          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 155 -     if (map[y][x].is_ascii_digit()) {
[INFO] [stdout] 155 +     if map[y][x].is_ascii_digit() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Not`
[INFO] [stdout]  --> src/solutions/year_2023/day10.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::Not;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/solutions/year_2023/day11.rs:110:36
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 let expand_count = ((r2 - r1).abs() );
[INFO] [stdout]     |                                    ^               ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 110 -                 let expand_count = ((r2 - r1).abs() );
[INFO] [stdout] 110 +                 let expand_count = (r2 - r1).abs();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/solutions/year_2023/day11.rs:127:36
[INFO] [stdout]     |
[INFO] [stdout] 127 |                 let expand_count = ((c2 - c1).abs() );
[INFO] [stdout]     |                                    ^               ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 127 -                 let expand_count = ((c2 - c1).abs() );
[INFO] [stdout] 127 +                 let expand_count = (c2 - c1).abs();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:64:17
[INFO] [stdout]    |
[INFO] [stdout] 64 | fn trace_number(mut current: String, y: usize, x: usize, map: &Vec<Vec<char>>, visited: &mut Vec<Vec<bool>>, is_near_symbol: bool) -> i64 {
[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/solutions/year_2023/day3.rs:138:18
[INFO] [stdout]     |
[INFO] [stdout] 138 | fn trace_number2(mut current: String, y: usize, x: usize, map: &Vec<Vec<char>>, visited: &mut Vec<Vec<bool>>,
[INFO] [stdout]     |                  ----^^^^^^^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]   --> src/solutions/year_2023/day7.rs:27:18
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn eq(&self, other: &Self) -> bool {
[INFO] [stdout]    |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[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/solutions/year_2023/day7.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 142 |     let mut lines = content.lines();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/solutions/year_2023/day7.rs:163:18
[INFO] [stdout]     |
[INFO] [stdout] 163 |     fn eq(&self, other: &Self) -> bool {
[INFO] [stdout]     |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/year_2023/day7.rs:291:9
[INFO] [stdout]     |
[INFO] [stdout] 291 |     let mut lines = content.lines();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2023/day8.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let mut iter = lines.skip(1);
[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/solutions/year_2023/day8.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let mut iter = lines.skip(1);
[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/solutions/year_2023/day9.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let mut lines = content.lines();
[INFO] [stdout]   |         ----^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2023/day9.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let mut lines = content.lines();
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/solutions/year_2023/day10.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let mut lines = content.lines();
[INFO] [stdout]   |         ----^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/year_2023/day10.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 147 |     let mut lines = content.lines();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/solutions/year_2023/day11.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let mut lines = content.lines();
[INFO] [stdout]   |         ----^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2023/day11.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let mut lines = content.lines();
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day1` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day1.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day1() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day1_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day1.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn solve_day1_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solution` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day1.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn solution(numbers: Vec<i64>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solution2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day1.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn solution2(numbers: Vec<i64>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Input` is never constructed
[INFO] [stdout]  --> src/solutions/year_2020/day2.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Input {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_valid_by_count` and `is_valid_by_position` are never used
[INFO] [stdout]   --> src/solutions/year_2020/day2.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Input {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] 14 |     fn is_valid_by_count(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     fn is_valid_by_position(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day2.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn solve_day2(valid_function: fn(&Input) -> bool) -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solution` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day2.rs:59:4
[INFO] [stdout]    |
[INFO] [stdout] 59 | fn solution(inputs: &Vec<Input>, is_valid: fn(&Input) -> bool) -> usize {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day3` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day3.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day3(x_pattern: usize, y_pattern: usize) -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day4` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day4.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_day4(rules: &Vec<Rule>) -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Rule` is never constructed
[INFO] [stdout]   --> src/solutions/year_2020/day4.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | struct Rule {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_valid` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day4.rs:36:4
[INFO] [stdout]    |
[INFO] [stdout] 36 | fn is_valid(passport: &HashMap<String, String>, rules: &Vec<Rule>) -> bool {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day5` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day5.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day5() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day5_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day5.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn solve_day5_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solution1` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day5.rs:36:4
[INFO] [stdout]    |
[INFO] [stdout] 36 | fn solution1(seat: &str) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_value` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day5.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn find_value(min: i64, max: i64, input: &str, small_half: char) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day6` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day6.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day6() -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Edge` is never constructed
[INFO] [stdout]  --> src/solutions/year_2020/day7.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | struct Edge {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day7_1` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day7.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn solve_day7_1() -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dfs` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day7.rs:36:4
[INFO] [stdout]    |
[INFO] [stdout] 36 | fn dfs(current: &str, edges: &HashMap<String, Vec<Edge>>, dp: &mut HashSet<String>) {
[INFO] [stdout]    |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day7_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day7.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn solve_day7_2() -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dfs2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day7.rs:70:4
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn dfs2(current: &str, edges: &HashMap<String, Vec<Edge>>, dp: &mut HashMap<String, usize>) -> usize {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Context` is never constructed
[INFO] [stdout]  --> src/solutions/year_2020/day8.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Context {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `create` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day8.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl Context {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 12 |     fn create() -> Context {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Instruction` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day8.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | trait Instruction {
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day8.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn parse(raw_operation: &str, argument: i64) -> Box<dyn Instruction> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Accumulator` is never constructed
[INFO] [stdout]   --> src/solutions/year_2020/day8.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | struct Accumulator {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NoOp` is never constructed
[INFO] [stdout]   --> src/solutions/year_2020/day8.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | struct NoOp {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Jump` is never constructed
[INFO] [stdout]   --> src/solutions/year_2020/day8.rs:64:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | struct Jump {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day8_1` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day8.rs:80:4
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn solve_day8_1() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solution1` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day8.rs:91:4
[INFO] [stdout]    |
[INFO] [stdout] 91 | fn solution1(instructions: &mut Vec<Box<dyn Instruction>>) -> Context {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day8_2` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day8.rs:102:4
[INFO] [stdout]     |
[INFO] [stdout] 102 | fn solve_day8_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solution2` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day8.rs:113:4
[INFO] [stdout]     |
[INFO] [stdout] 113 | fn solution2(instructions: &mut Vec<Box<dyn Instruction>>) -> Context {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day9_1` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day9.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day9_1() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day9_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day9.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn solve_day9_2(target: i64) -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day10` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day10.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day10() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day10_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day10.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn solve_day10_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day11` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day11.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day11() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `increase_adjacent` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day11.rs:49:4
[INFO] [stdout]    |
[INFO] [stdout] 49 | fn increase_adjacent(count: &mut Vec<Vec<i32>>, next_c: &mut Vec<Vec<i32>>, y: usize, x: usize, diff: i32) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day11_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day11.rs:68:4
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn solve_day11_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `increase_adjacent2` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day11.rs:146:4
[INFO] [stdout]     |
[INFO] [stdout] 146 | fn increase_adjacent2(next_c: &mut Vec<Vec<i32>>, relations: &HashMap<(usize, usize), HashSet<(i64, i64)>>, y: usize, x: usize, diff: i32) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day12` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day12.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day12() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day12_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day12.rs:92:4
[INFO] [stdout]    |
[INFO] [stdout] 92 | fn solve_day12_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day13` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day13.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day13() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day13_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day13.rs:26:4
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn solve_day13_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day14` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day14.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_day14() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mask_value` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day14.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn mask_value(mask: &Vec<char>, value: i64) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day14_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day14.rs:38:4
[INFO] [stdout]    |
[INFO] [stdout] 38 | fn solve_day14_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mask_value_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day14.rs:62:4
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn mask_value_2(mask: &Vec<char>, address: i64) -> Vec<i64> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day15` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day15.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day15(input: Vec<usize>, turn: usize) -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day16` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day16.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_day16() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day16_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day16.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn solve_day16_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day17` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day17.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day17() -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_neighbor` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day17.rs:103:4
[INFO] [stdout]     |
[INFO] [stdout] 103 | fn count_neighbor(areas: &Vec<Vec<Vec<bool>>>, center_z: i64, center_y: i64, center_x: i64) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `neighbors` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day17.rs:119:4
[INFO] [stdout]     |
[INFO] [stdout] 119 | fn neighbors(upper: i64, center: i64) -> Vec<i64> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_empty` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day17.rs:126:4
[INFO] [stdout]     |
[INFO] [stdout] 126 | fn is_empty(area: &Vec<Vec<bool>>) -> bool {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_active` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day17.rs:130:4
[INFO] [stdout]     |
[INFO] [stdout] 130 | fn count_active(area: &Vec<Vec<bool>>) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day17_2` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day17.rs:137:4
[INFO] [stdout]     |
[INFO] [stdout] 137 | fn solve_day17_2() -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day18` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day18.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_day18() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Operator` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day18.rs:16:6
[INFO] [stdout]    |
[INFO] [stdout] 16 | enum Operator {
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day18.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn calculate(cursor: &mut usize, chars: &Vec<char>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `skip_space` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day18.rs:59:4
[INFO] [stdout]    |
[INFO] [stdout] 59 | fn skip_space(cursor: &mut usize, chars: &Vec<char>) {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_digit` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day18.rs:65:4
[INFO] [stdout]    |
[INFO] [stdout] 65 | fn read_digit(cursor: &mut usize, chars: &Vec<char>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day18_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day18.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn solve_day18_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day18.rs:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | fn calculate_2(cursor: &mut usize, chars: &Vec<char>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day19` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day19.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_day19() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day19_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day19.rs:22:4
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn solve_day19_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_input` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day19.rs:60:4
[INFO] [stdout]    |
[INFO] [stdout] 60 | fn read_input() -> Result<(Vec<String>, HashMap<i64, String>), Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_rule_pattern` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day19.rs:100:4
[INFO] [stdout]     |
[INFO] [stdout] 100 | fn make_rule_pattern(id: i64, rules: &HashMap<i64, Vec<Vec<&str>>>, end_rules: &HashMap<i64, &str>, dp: &mut HashMap<i64, String>) -> Str...
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_sub_rule` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day19.rs:130:4
[INFO] [stdout]     |
[INFO] [stdout] 130 | fn build_sub_rule(rules: &&HashMap<i64, Vec<Vec<&str>>>, end_rules: &&HashMap<i64, &str>, dp: &mut HashMap<i64, String>, rule: &Vec<&str>...
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Image` is never constructed
[INFO] [stdout]  --> src/solutions/year_2020/day20.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct Image {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/solutions/year_2020/day20.rs:15:8
[INFO] [stdout]     |
[INFO] [stdout] 14  | impl Image {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] 15  |     fn add_row(&mut self, row: Vec<char>) {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20  |     fn flip_vertically(&self) -> Image {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28  |     fn flip_horizontally(&self) -> Image {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35  |     fn rotate_clockwise(&self) -> Image {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43  |     fn compute_behavior(&self, target_number: i64, target_border: usize) -> Image {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     fn calculate_unified_row_pattern(&self, row_index: usize) -> i64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     fn calculate_row_pattern(&self, row_index: usize, reverse: bool) -> i64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     fn calculate_unified_col_pattern(&self, col_index: usize) -> i64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     fn calculate_col_pattern(&self, col_index: usize, reverse: bool) -> i64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     fn list_unified_border_numbers(&self) -> Vec<i64> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     fn list_border_numbers(&self) -> Vec<i64> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     fn list_flipped_border_numbers(&self) -> Vec<i64> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day20` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day20.rs:189:4
[INFO] [stdout]     |
[INFO] [stdout] 189 | fn solve_day20() -> Result<(usize, usize), Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flip_vertically` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day20.rs:310:4
[INFO] [stdout]     |
[INFO] [stdout] 310 | fn flip_vertically(from: &Vec<Vec<char>>) -> Vec<Vec<char>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flip_horizontally` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day20.rs:324:4
[INFO] [stdout]     |
[INFO] [stdout] 324 | fn flip_horizontally(from: &Vec<Vec<char>>) -> Vec<Vec<char>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rotate_clockwise` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day20.rs:330:4
[INFO] [stdout]     |
[INFO] [stdout] 330 | fn rotate_clockwise(from: &Vec<Vec<char>>) -> Vec<Vec<char>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_monster` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day20.rs:342:4
[INFO] [stdout]     |
[INFO] [stdout] 342 | fn count_monster(map: &Vec<Vec<char>>) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_pattern` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day20.rs:363:4
[INFO] [stdout]     |
[INFO] [stdout] 363 | fn count_pattern(map: &Vec<Vec<char>>, rotated: &Vec<Vec<char>>) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day21` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day21.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day21() -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day21_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day21.rs:57:4
[INFO] [stdout]    |
[INFO] [stdout] 57 | fn solve_day21_2() -> Result<String, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day22` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day22.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day22() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day22_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day22.rs:45:4
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn solve_day22_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `score` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day22.rs:63:4
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn score(result: &Vec<i64>) -> i64 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `play_round` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day22.rs:72:4
[INFO] [stdout]    |
[INFO] [stdout] 72 | fn play_round(mut p1: Vec<i64>, mut p2: Vec<i64>, game: usize) -> (bool, i64) {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day23` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day23.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn solve_day23(input: i64) -> Vec<u32> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day23_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day23.rs:41:4
[INFO] [stdout]    |
[INFO] [stdout] 41 | fn solve_day23_2() -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day24` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day24.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day24() -> Result<(i64, i64), Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day25` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day25.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn day25(key1: i64, key2: i64) -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_value` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day25.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn find_value(key: i64) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day1.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day1() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day1_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day1.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn solve_day1_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solution` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day1.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn solution(numbers: Vec<i64>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solution2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day1.rs:29:4
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn solution2(numbers: Vec<i64>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day2` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day2.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day2_2` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day2.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn solve_day2_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solution` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day2.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn solution(commands: Vec<&str>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solution2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day2.rs:33:4
[INFO] [stdout]    |
[INFO] [stdout] 33 | fn solution2(commands: Vec<&str>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day3_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day3.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day3_1() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day3_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day3.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn solve_day3_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solution` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day3.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn solution(lines: Vec<&str>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `grouping` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day3.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn grouping<'a>(index: usize, lines: &Vec<&'a str>) -> (Vec<&'a str>, Vec<&'a str>) {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `oxygen` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day3.rs:60:4
[INFO] [stdout]    |
[INFO] [stdout] 60 | fn oxygen<'a>(index: usize, lines: &Vec<&'a str>) -> Vec<&'a str> {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_oxygen` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day3.rs:71:4
[INFO] [stdout]    |
[INFO] [stdout] 71 | fn find_oxygen(lines: &Vec<&str>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `co2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day3.rs:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | fn co2<'a>(index: usize, lines: &Vec<&'a str>) -> Vec<&'a str> {
[INFO] [stdout]    |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_co2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day3.rs:94:4
[INFO] [stdout]    |
[INFO] [stdout] 94 | fn find_co2(lines: &Vec<&str>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solution2` is never used
[INFO] [stdout]    --> src/solutions/year_2021/day3.rs:106:4
[INFO] [stdout]     |
[INFO] [stdout] 106 | fn solution2(lines: Vec<&str>) -> i64 {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Board` is never constructed
[INFO] [stdout]  --> src/solutions/year_2021/day4.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct Board {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_number`, and `score` are never used
[INFO] [stdout]   --> src/solutions/year_2021/day4.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Board {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 13 |     pub fn new(slot: Vec<Vec<i32>>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     fn add_number(&mut self, number: i32) -> Option<i32> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     fn score(&self, number: i32) -> i32 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day4.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn parse_input() -> Result<(Vec<i32>, Vec<Board>), Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day4_1` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day4.rs:65:4
[INFO] [stdout]    |
[INFO] [stdout] 65 | fn solve_day4_1() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_first` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day4.rs:70:4
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn solve_first(instructions: Vec<i32>, mut boards: Vec<Board>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day4_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day4.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn solve_day4_2() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_second` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day4.rs:86:4
[INFO] [stdout]    |
[INFO] [stdout] 86 | fn solve_second(instructions: Vec<i32>, mut boards: Vec<Board>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day5_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day5.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_day5_1() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day5.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn parse_input() -> Result<Vec<((i32, i32), (i32, i32))>, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_first` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day5.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn solve_first(lines: Vec<((i32, i32), (i32, i32))>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day5_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day5.rs:54:4
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn solve_day5_2() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_second` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day5.rs:65:4
[INFO] [stdout]    |
[INFO] [stdout] 65 | fn solve_second(lines: Vec<((i32, i32), (i32, i32))>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day6` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day6.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day6(n: i32) -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day6.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn solve(fish: Vec<i32>, n: i32) -> i64 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `do_solve` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day6.rs:26:4
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn do_solve(day: i32, dp: &mut HashMap<i32, i64>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day7_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day7.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day7_1() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day7_2` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day7.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn solve_day7_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day7.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn parse_input() -> Result<Vec<i32>, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_1` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day7.rs:24:4
[INFO] [stdout]    |
[INFO] [stdout] 24 | fn solve_1(crabs: Vec<i32>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day7.rs:49:4
[INFO] [stdout]    |
[INFO] [stdout] 49 | fn solve_2(crabs: Vec<i32>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day8_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day8.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_day8_1() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day8_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day8.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn solve_day8_2() -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day8.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn parse_input() -> Result<Vec<(Vec<String>, Vec<String>)>, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_1` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day8.rs:31:4
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn solve_1(input: Vec<(Vec<String>, Vec<String>)>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day8.rs:37:4
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn solve_2(inputs: Vec<(Vec<String>, Vec<String>)>) -> usize {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `permutation` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day8.rs:89:4
[INFO] [stdout]    |
[INFO] [stdout] 89 | fn permutation(current_index: usize, current: &mut Vec<usize>, used: i32) -> Vec<Vec<usize>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day9_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day9.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day9_1() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day9_2` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day9.rs:8:4
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn solve_day9_2() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day9.rs:12:4
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn parse_input() -> Result<Vec<Vec<i32>>, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_1` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day9.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn solve_1(map: Vec<Vec<i32>>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day9.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn solve_2(map: Vec<Vec<i32>>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day10_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day10.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day10_1() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day10_2` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day10.rs:8:4
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn solve_day10_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day10.rs:12:4
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn parse_input() -> Result<Vec<Vec<char>>, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_1` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day10.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn solve_1(inputs: Vec<Vec<char>>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day10.rs:78:4
[INFO] [stdout]    |
[INFO] [stdout] 78 | fn solve_2(inputs: Vec<Vec<char>>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day11_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day11.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day11_1() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day11_2` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day11.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn solve_day11_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day11.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn parse_input() -> Result<Vec<Vec<u32>>, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_1` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day11.rs:27:4
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn solve_1(mut map: Vec<Vec<u32>>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day11.rs:67:4
[INFO] [stdout]    |
[INFO] [stdout] 67 | fn solve_2(mut map: Vec<Vec<u32>>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day12_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day12.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day12_1() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day12_2` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day12.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn solve_day12_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day12.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn parse_input() -> Result<HashMap<String, Vec<String>>, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_1` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day12.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn solve_1(path: HashMap<String, Vec<String>>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dfs` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day12.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn dfs(current: &str, path: &HashMap<String, Vec<String>>, visited: &mut HashMap<String, bool>, debug_path: &mut Vec<String>) -> i64 {
[INFO] [stdout]    |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day12.rs:80:4
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn solve_2(path: HashMap<String, Vec<String>>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dfs2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day12.rs:89:4
[INFO] [stdout]    |
[INFO] [stdout] 89 | fn dfs2(current: &str, path: &HashMap<String, Vec<String>>, visited: &mut HashMap<String, bool>,
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day13_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day13.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_day13_1() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_1` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day13.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn solve_1(input: Input) -> i64 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day13_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day13.rs:38:4
[INFO] [stdout]    |
[INFO] [stdout] 38 | fn solve_day13_2() -> Result<HashSet<(i32, i32)>, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day13.rs:43:4
[INFO] [stdout]    |
[INFO] [stdout] 43 | fn solve_2(input: Input) -> HashSet<(i32, i32)> {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Input` is never constructed
[INFO] [stdout]   --> src/solutions/year_2021/day13.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | struct Input {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day13.rs:75:4
[INFO] [stdout]    |
[INFO] [stdout] 75 | fn parse_input() -> Result<Input, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day14_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day14.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day14_1() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day14_2` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day14.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn solve_day14_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day14.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn parse_input() -> Result<(String, HashMap<String, String>), Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_1` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day14.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn solve_1(input: (String, HashMap<String, String>)) -> i32 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day14.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout] 56 | fn solve_2(input: (String, HashMap<String, String>)) -> i64 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `do_solve` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day14.rs:78:4
[INFO] [stdout]    |
[INFO] [stdout] 78 | fn do_solve(c1: char, c2: char, round: i32, dp: &mut HashMap<String, HashMap<char, i64>>, dict: &HashMap<String, String>) -> HashMap<char...
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `merge` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day14.rs:98:4
[INFO] [stdout]    |
[INFO] [stdout] 98 | fn merge(left: HashMap<char, i64>, right: HashMap<char, i64>) -> HashMap<char, i64> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day15_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day15.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_day15_1() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day15_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day15.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn solve_day15_2() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day15.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn parse_input() -> Result<Vec<Vec<u32>>, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]   --> src/solutions/year_2021/day15.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | struct Point {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_1` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day15.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn solve_1(map: Vec<Vec<u32>>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day15.rs:79:4
[INFO] [stdout]    |
[INFO] [stdout] 79 | fn solve_2(map: Vec<Vec<u32>>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_cost` is never used
[INFO] [stdout]    --> src/solutions/year_2021/day15.rs:111:4
[INFO] [stdout]     |
[INFO] [stdout] 111 | fn find_cost(y: usize, x: usize, map: &Vec<Vec<u32>>) -> u32 {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day16_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day16.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_day16_1() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day16_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day16.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn solve_day16_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day16.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn parse_input() -> Result<Vec<char>, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_1` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day16.rs:22:4
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn solve_1(chars: Vec<char>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day16.rs:35:4
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn solve_2(chars: Vec<char>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Packet` is never constructed
[INFO] [stdout]   --> src/solutions/year_2021/day16.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 51 | struct Packet {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `sum_version` and `calculate` are never used
[INFO] [stdout]   --> src/solutions/year_2021/day16.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 58 | impl Packet {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] 59 |     pub fn sum_version(&self) -> i32 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn calculate(&self) -> i64 {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_packet` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day16.rs:96:4
[INFO] [stdout]    |
[INFO] [stdout] 96 | fn read_packet(index: i32, chars: &Vec<char>) -> (i32, Option<Packet>) {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day17_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day17.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day17_1() -> i32 {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day17.rs:8:4
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn solve_1(_x1: i32, _x2: i32, y1: i32, _y2: i32) -> i32 {
[INFO] [stdout]   |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day17_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day17.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn solve_day17_2() -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day17.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn solve_2(x1: i32, x2: i32, y1: i32, y2: i32) -> i32 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day1` is never used
[INFO] [stdout]  --> src/solutions/year_2023/day1.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day1() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day1_2` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day1.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn solve_day1_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day2` is never used
[INFO] [stdout]  --> src/solutions/year_2023/day2.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_day2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `counts` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day2.rs:29:4
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn counts(re_green: &Regex, line: &str, max: i32) -> bool {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day2_2` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day2.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn solve_day2_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `min_counts` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day2.rs:55:4
[INFO] [stdout]    |
[INFO] [stdout] 55 | fn min_counts(re_green: &Regex, line: &str) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day3` is never used
[INFO] [stdout]  --> src/solutions/year_2023/day3.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_day3() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn calculate(y: usize, x: usize, map: &Vec<Vec<char>>, visited: &mut Vec<Vec<bool>>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `near_symbol` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:45:4
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn near_symbol(y: usize, x: usize, map: &Vec<Vec<char>>) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trace_number` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:64:4
[INFO] [stdout]    |
[INFO] [stdout] 64 | fn trace_number(mut current: String, y: usize, x: usize, map: &Vec<Vec<char>>, visited: &mut Vec<Vec<bool>>, is_near_symbol: bool) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day3_2` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:77:4
[INFO] [stdout]    |
[INFO] [stdout] 77 | fn solve_day3_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate2` is never used
[INFO] [stdout]    --> src/solutions/year_2023/day3.rs:101:4
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn calculate2(y: usize, x: usize, map: &Vec<Vec<char>>, visited: &mut Vec<Vec<bool>>,
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `near_symbol2` is never used
[INFO] [stdout]    --> src/solutions/year_2023/day3.rs:119:4
[INFO] [stdout]     |
[INFO] [stdout] 119 | fn near_symbol2(y: usize, x: usize, map: &Vec<Vec<char>>) -> Option<(usize, usize)> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trace_number2` is never used
[INFO] [stdout]    --> src/solutions/year_2023/day3.rs:138:4
[INFO] [stdout]     |
[INFO] [stdout] 138 | fn trace_number2(mut current: String, y: usize, x: usize, map: &Vec<Vec<char>>, visited: &mut Vec<Vec<bool>>,
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day4` is never used
[INFO] [stdout]  --> src/solutions/year_2023/day4.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_day4() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day4_2` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day4.rs:37:4
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn solve_day4_2() -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day5` is never used
[INFO] [stdout]  --> src/solutions/year_2023/day5.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day5() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day5_2` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day5.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn solve_day5_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day6` is never used
[INFO] [stdout]  --> src/solutions/year_2023/day6.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day6() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day6_2` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day6.rs:29:4
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn solve_day6_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CardType` is never used
[INFO] [stdout]  --> src/solutions/year_2023/day7.rs:9:6
[INFO] [stdout]   |
[INFO] [stdout] 9 | enum CardType {
[INFO] [stdout]   |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Card` is never constructed
[INFO] [stdout]   --> src/solutions/year_2023/day7.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | struct Card {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `create` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day7.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | impl Card {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 57 |     fn create(raw: &str, bet: i64) -> Card {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day7` is never used
[INFO] [stdout]    --> src/solutions/year_2023/day7.rs:140:4
[INFO] [stdout]     |
[INFO] [stdout] 140 | fn solve_day7() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Card2` is never constructed
[INFO] [stdout]    --> src/solutions/year_2023/day7.rs:156:8
[INFO] [stdout]     |
[INFO] [stdout] 156 | struct Card2 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `create` is never used
[INFO] [stdout]    --> src/solutions/year_2023/day7.rs:192:8
[INFO] [stdout]     |
[INFO] [stdout] 191 | impl Card2 {
[INFO] [stdout]     | ---------- associated function in this implementation
[INFO] [stdout] 192 |     fn create(raw: &str, bet: i64) -> Card2 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day7_2` is never used
[INFO] [stdout]    --> src/solutions/year_2023/day7.rs:289:4
[INFO] [stdout]     |
[INFO] [stdout] 289 | fn solve_day7_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day8` is never used
[INFO] [stdout]  --> src/solutions/year_2023/day8.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_day8() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day8_2` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day8.rs:37:4
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn solve_day8_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gcd` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day8.rs:92:4
[INFO] [stdout]    |
[INFO] [stdout] 92 | fn gcd(a: i64, b: i64) -> i64 {
[INFO] [stdout]    |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day9` is never used
[INFO] [stdout]  --> src/solutions/year_2023/day9.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day9() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day9_2` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day9.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn solve_day9_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day10` is never used
[INFO] [stdout]  --> src/solutions/year_2023/day10.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_day10() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `next_of` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day10.rs:71:4
[INFO] [stdout]    |
[INFO] [stdout] 71 | fn next_of(point: (usize, usize), map: &Vec<Vec<char>>) -> Vec<(usize, usize)> {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day10_2` is never used
[INFO] [stdout]    --> src/solutions/year_2023/day10.rs:145:4
[INFO] [stdout]     |
[INFO] [stdout] 145 | fn solve_day10_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw` is never used
[INFO] [stdout]    --> src/solutions/year_2023/day10.rs:261:4
[INFO] [stdout]     |
[INFO] [stdout] 261 | fn draw(visited: &mut HashSet<(usize, usize)>, from: (usize, usize), map: &Vec<Vec<char>>, is_line: &Vec<Vec<bool>>) -> i64 {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day11` is never used
[INFO] [stdout]  --> src/solutions/year_2023/day11.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day11() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day11_2` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day11.rs:62:4
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn solve_day11_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.deref()` on a double reference, which returns `&year_2020::day2::Input` instead of dereferencing the inner type
[INFO] [stdout]   --> src/solutions/year_2020/day2.rs:60:40
[INFO] [stdout]    |
[INFO] [stdout] 60 |     inputs.iter().filter(|x| is_valid(x.deref())).count()
[INFO] [stdout]    |                                        ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]   --> src/solutions/year_2021/day12.rs:58:17
[INFO] [stdout]    |
[INFO] [stdout] 58 |     for adjs in path.get(current) {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(for_loops_over_fallibles)]` on by default
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]    |
[INFO] [stdout] 58 |     while let Some(adjs) = path.get(current) {
[INFO] [stdout]    |     ~~~~~~~~~~~~~~~    ~~~
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]    |
[INFO] [stdout] 58 |     if let Some(adjs) = path.get(current) {
[INFO] [stdout]    |     ~~~~~~~~~~~~    ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]   --> src/solutions/year_2021/day12.rs:99:17
[INFO] [stdout]    |
[INFO] [stdout] 99 |     for adjs in path.get(current) {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]    |
[INFO] [stdout] 99 |     while let Some(adjs) = path.get(current) {
[INFO] [stdout]    |     ~~~~~~~~~~~~~~~    ~~~
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]    |
[INFO] [stdout] 99 |     if let Some(adjs) = path.get(current) {
[INFO] [stdout]    |     ~~~~~~~~~~~~    ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/solutions/year_2021/day16.rs:141:26
[INFO] [stdout]     |
[INFO] [stdout] 141 |                 for p in packet.1 {
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 141 |                 while let Some(p) = packet.1 {
[INFO] [stdout]     |                 ~~~~~~~~~~~~~~~ ~~~
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 141 |                 if let Some(p) = packet.1 {
[INFO] [stdout]     |                 ~~~~~~~~~~~~ ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/solutions/year_2021/day16.rs:153:26
[INFO] [stdout]     |
[INFO] [stdout] 153 |                 for p in packet.1 {
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 153 |                 while let Some(p) = packet.1 {
[INFO] [stdout]     |                 ~~~~~~~~~~~~~~~ ~~~
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 153 |                 if let Some(p) = packet.1 {
[INFO] [stdout]     |                 ~~~~~~~~~~~~ ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 257 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.76s
[INFO] running `Command { std: "docker" "inspect" "a77541ee3610f959e2bd825b77e2e96082996e1ca79a952c302818e53f0f0a06", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a77541ee3610f959e2bd825b77e2e96082996e1ca79a952c302818e53f0f0a06", kill_on_drop: false }`
[INFO] [stdout] a77541ee3610f959e2bd825b77e2e96082996e1ca79a952c302818e53f0f0a06
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6d62847e66acc41efa2d6d22da866d435d68413a4cf36775edf8c1a82d6bb96d
[INFO] running `Command { std: "docker" "start" "-a" "6d62847e66acc41efa2d6d22da866d435d68413a4cf36775edf8c1a82d6bb96d", kill_on_drop: false }`
[INFO] [stderr]    Compiling advent_of_code v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/solutions/year_2023/day2.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 |         if (counts(&re_green, line, 13) && counts(&re_red, line, 12) && counts(&re_blue, line, 14)) {
[INFO] [stdout]    |            ^                                                                                      ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 18 -         if (counts(&re_green, line, 13) && counts(&re_red, line, 12) && counts(&re_blue, line, 14)) {
[INFO] [stdout] 18 +         if counts(&re_green, line, 13) && counts(&re_red, line, 12) && counts(&re_blue, line, 14) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/solutions/year_2023/day2.rs:32:16
[INFO] [stdout]    |
[INFO] [stdout] 32 |             if (digit_match.as_str().parse::<i32>().unwrap() > max) {
[INFO] [stdout]    |                ^                                                  ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 32 -             if (digit_match.as_str().parse::<i32>().unwrap() > max) {
[INFO] [stdout] 32 +             if digit_match.as_str().parse::<i32>().unwrap() > max {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 |         if (new_y < height && new_y >= 0 && new_x >= 0 && new_x < width) {
[INFO] [stdout]    |            ^                                                           ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 54 -         if (new_y < height && new_y >= 0 && new_x >= 0 && new_x < width) {
[INFO] [stdout] 54 +         if new_y < height && new_y >= 0 && new_x >= 0 && new_x < width {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:55:16
[INFO] [stdout]    |
[INFO] [stdout] 55 |             if (!map[new_y as usize][new_x as usize].is_ascii_digit()
[INFO] [stdout]    |                ^
[INFO] [stdout] 56 |                 && map[new_y as usize][new_x as usize] != '.') {
[INFO] [stdout]    |                                                              ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 55 ~             if !map[new_y as usize][new_x as usize].is_ascii_digit()
[INFO] [stdout] 56 ~                 && map[new_y as usize][new_x as usize] != '.' {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 |     if (x >= width || !map[y][x].is_ascii_digit()) {
[INFO] [stdout]    |        ^                                         ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 66 -     if (x >= width || !map[y][x].is_ascii_digit()) {
[INFO] [stdout] 66 +     if x >= width || !map[y][x].is_ascii_digit() {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 |     if (map[y][x].is_ascii_digit()) {
[INFO] [stdout]    |        ^                          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 70 -     if (map[y][x].is_ascii_digit()) {
[INFO] [stdout] 70 +     if map[y][x].is_ascii_digit() {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/solutions/year_2023/day3.rs:128:12
[INFO] [stdout]     |
[INFO] [stdout] 128 |         if (new_y < height && new_y >= 0 && new_x >= 0 && new_x < width) {
[INFO] [stdout]     |            ^                                                           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 128 -         if (new_y < height && new_y >= 0 && new_x >= 0 && new_x < width) {
[INFO] [stdout] 128 +         if new_y < height && new_y >= 0 && new_x >= 0 && new_x < width {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/solutions/year_2023/day3.rs:129:16
[INFO] [stdout]     |
[INFO] [stdout] 129 |             if (!map[new_y as usize][new_x as usize].is_ascii_digit()
[INFO] [stdout]     |                ^
[INFO] [stdout] 130 |                 && map[new_y as usize][new_x as usize] == '*') {
[INFO] [stdout]     |                                                              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 129 ~             if !map[new_y as usize][new_x as usize].is_ascii_digit()
[INFO] [stdout] 130 ~                 && map[new_y as usize][new_x as usize] == '*' {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/solutions/year_2023/day3.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 |     if (x >= width || !map[y][x].is_ascii_digit()) {
[INFO] [stdout]     |        ^                                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 142 -     if (x >= width || !map[y][x].is_ascii_digit()) {
[INFO] [stdout] 142 +     if x >= width || !map[y][x].is_ascii_digit() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/solutions/year_2023/day3.rs:155:8
[INFO] [stdout]     |
[INFO] [stdout] 155 |     if (map[y][x].is_ascii_digit()) {
[INFO] [stdout]     |        ^                          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 155 -     if (map[y][x].is_ascii_digit()) {
[INFO] [stdout] 155 +     if map[y][x].is_ascii_digit() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Not`
[INFO] [stdout]  --> src/solutions/year_2023/day10.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::Not;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/solutions/year_2023/day11.rs:110:36
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 let expand_count = ((r2 - r1).abs() );
[INFO] [stdout]     |                                    ^               ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 110 -                 let expand_count = ((r2 - r1).abs() );
[INFO] [stdout] 110 +                 let expand_count = (r2 - r1).abs();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/solutions/year_2023/day11.rs:127:36
[INFO] [stdout]     |
[INFO] [stdout] 127 |                 let expand_count = ((c2 - c1).abs() );
[INFO] [stdout]     |                                    ^               ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 127 -                 let expand_count = ((c2 - c1).abs() );
[INFO] [stdout] 127 +                 let expand_count = (c2 - c1).abs();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:64:17
[INFO] [stdout]    |
[INFO] [stdout] 64 | fn trace_number(mut current: String, y: usize, x: usize, map: &Vec<Vec<char>>, visited: &mut Vec<Vec<bool>>, is_near_symbol: bool) -> i64 {
[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/solutions/year_2023/day3.rs:138:18
[INFO] [stdout]     |
[INFO] [stdout] 138 | fn trace_number2(mut current: String, y: usize, x: usize, map: &Vec<Vec<char>>, visited: &mut Vec<Vec<bool>>,
[INFO] [stdout]     |                  ----^^^^^^^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]   --> src/solutions/year_2023/day7.rs:27:18
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn eq(&self, other: &Self) -> bool {
[INFO] [stdout]    |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[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/solutions/year_2023/day7.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 142 |     let mut lines = content.lines();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/solutions/year_2023/day7.rs:163:18
[INFO] [stdout]     |
[INFO] [stdout] 163 |     fn eq(&self, other: &Self) -> bool {
[INFO] [stdout]     |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/year_2023/day7.rs:291:9
[INFO] [stdout]     |
[INFO] [stdout] 291 |     let mut lines = content.lines();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2023/day8.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let mut iter = lines.skip(1);
[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/solutions/year_2023/day8.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let mut iter = lines.skip(1);
[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/solutions/year_2023/day9.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let mut lines = content.lines();
[INFO] [stdout]   |         ----^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2023/day9.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let mut lines = content.lines();
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/solutions/year_2023/day10.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let mut lines = content.lines();
[INFO] [stdout]   |         ----^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/year_2023/day10.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 147 |     let mut lines = content.lines();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/solutions/year_2023/day11.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let mut lines = content.lines();
[INFO] [stdout]   |         ----^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2023/day11.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let mut lines = content.lines();
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.deref()` on a double reference, which returns `&year_2020::day2::Input` instead of dereferencing the inner type
[INFO] [stdout]   --> src/solutions/year_2020/day2.rs:60:40
[INFO] [stdout]    |
[INFO] [stdout] 60 |     inputs.iter().filter(|x| is_valid(x.deref())).count()
[INFO] [stdout]    |                                        ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]   --> src/solutions/year_2021/day12.rs:58:17
[INFO] [stdout]    |
[INFO] [stdout] 58 |     for adjs in path.get(current) {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(for_loops_over_fallibles)]` on by default
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]    |
[INFO] [stdout] 58 |     while let Some(adjs) = path.get(current) {
[INFO] [stdout]    |     ~~~~~~~~~~~~~~~    ~~~
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]    |
[INFO] [stdout] 58 |     if let Some(adjs) = path.get(current) {
[INFO] [stdout]    |     ~~~~~~~~~~~~    ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]   --> src/solutions/year_2021/day12.rs:99:17
[INFO] [stdout]    |
[INFO] [stdout] 99 |     for adjs in path.get(current) {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]    |
[INFO] [stdout] 99 |     while let Some(adjs) = path.get(current) {
[INFO] [stdout]    |     ~~~~~~~~~~~~~~~    ~~~
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]    |
[INFO] [stdout] 99 |     if let Some(adjs) = path.get(current) {
[INFO] [stdout]    |     ~~~~~~~~~~~~    ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/solutions/year_2021/day16.rs:141:26
[INFO] [stdout]     |
[INFO] [stdout] 141 |                 for p in packet.1 {
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 141 |                 while let Some(p) = packet.1 {
[INFO] [stdout]     |                 ~~~~~~~~~~~~~~~ ~~~
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 141 |                 if let Some(p) = packet.1 {
[INFO] [stdout]     |                 ~~~~~~~~~~~~ ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/solutions/year_2021/day16.rs:153:26
[INFO] [stdout]     |
[INFO] [stdout] 153 |                 for p in packet.1 {
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 153 |                 while let Some(p) = packet.1 {
[INFO] [stdout]     |                 ~~~~~~~~~~~~~~~ ~~~
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 153 |                 if let Some(p) = packet.1 {
[INFO] [stdout]     |                 ~~~~~~~~~~~~ ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 32 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.89s
[INFO] running `Command { std: "docker" "inspect" "6d62847e66acc41efa2d6d22da866d435d68413a4cf36775edf8c1a82d6bb96d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6d62847e66acc41efa2d6d22da866d435d68413a4cf36775edf8c1a82d6bb96d", kill_on_drop: false }`
[INFO] [stdout] 6d62847e66acc41efa2d6d22da866d435d68413a4cf36775edf8c1a82d6bb96d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 3858d99ab4d94a3b101778d2f543b11bc87f48637a85112a14554ad778c036c3
[INFO] running `Command { std: "docker" "start" "-a" "3858d99ab4d94a3b101778d2f543b11bc87f48637a85112a14554ad778c036c3", kill_on_drop: false }`
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/solutions/year_2023/day2.rs:18:12
[INFO] [stderr]    |
[INFO] [stderr] 18 |         if (counts(&re_green, line, 13) && counts(&re_red, line, 12) && counts(&re_blue, line, 14)) {
[INFO] [stderr]    |            ^                                                                                      ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 18 -         if (counts(&re_green, line, 13) && counts(&re_red, line, 12) && counts(&re_blue, line, 14)) {
[INFO] [stderr] 18 +         if counts(&re_green, line, 13) && counts(&re_red, line, 12) && counts(&re_blue, line, 14) {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/solutions/year_2023/day2.rs:32:16
[INFO] [stderr]    |
[INFO] [stderr] 32 |             if (digit_match.as_str().parse::<i32>().unwrap() > max) {
[INFO] [stderr]    |                ^                                                  ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 32 -             if (digit_match.as_str().parse::<i32>().unwrap() > max) {
[INFO] [stderr] 32 +             if digit_match.as_str().parse::<i32>().unwrap() > max {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/solutions/year_2023/day3.rs:54:12
[INFO] [stderr]    |
[INFO] [stderr] 54 |         if (new_y < height && new_y >= 0 && new_x >= 0 && new_x < width) {
[INFO] [stderr]    |            ^                                                           ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 54 -         if (new_y < height && new_y >= 0 && new_x >= 0 && new_x < width) {
[INFO] [stderr] 54 +         if new_y < height && new_y >= 0 && new_x >= 0 && new_x < width {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/solutions/year_2023/day3.rs:55:16
[INFO] [stderr]    |
[INFO] [stderr] 55 |             if (!map[new_y as usize][new_x as usize].is_ascii_digit()
[INFO] [stderr]    |                ^
[INFO] [stderr] 56 |                 && map[new_y as usize][new_x as usize] != '.') {
[INFO] [stderr]    |                                                              ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 55 ~             if !map[new_y as usize][new_x as usize].is_ascii_digit()
[INFO] [stderr] 56 ~                 && map[new_y as usize][new_x as usize] != '.' {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/solutions/year_2023/day3.rs:66:8
[INFO] [stderr]    |
[INFO] [stderr] 66 |     if (x >= width || !map[y][x].is_ascii_digit()) {
[INFO] [stderr]    |        ^                                         ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 66 -     if (x >= width || !map[y][x].is_ascii_digit()) {
[INFO] [stderr] 66 +     if x >= width || !map[y][x].is_ascii_digit() {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/solutions/year_2023/day3.rs:70:8
[INFO] [stderr]    |
[INFO] [stderr] 70 |     if (map[y][x].is_ascii_digit()) {
[INFO] [stderr]    |        ^                          ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 70 -     if (map[y][x].is_ascii_digit()) {
[INFO] [stderr] 70 +     if map[y][x].is_ascii_digit() {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/solutions/year_2023/day3.rs:128:12
[INFO] [stderr]     |
[INFO] [stderr] 128 |         if (new_y < height && new_y >= 0 && new_x >= 0 && new_x < width) {
[INFO] [stderr]     |            ^                                                           ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 128 -         if (new_y < height && new_y >= 0 && new_x >= 0 && new_x < width) {
[INFO] [stderr] 128 +         if new_y < height && new_y >= 0 && new_x >= 0 && new_x < width {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/solutions/year_2023/day3.rs:129:16
[INFO] [stderr]     |
[INFO] [stderr] 129 |             if (!map[new_y as usize][new_x as usize].is_ascii_digit()
[INFO] [stderr]     |                ^
[INFO] [stderr] 130 |                 && map[new_y as usize][new_x as usize] == '*') {
[INFO] [stderr]     |                                                              ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 129 ~             if !map[new_y as usize][new_x as usize].is_ascii_digit()
[INFO] [stderr] 130 ~                 && map[new_y as usize][new_x as usize] == '*' {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/solutions/year_2023/day3.rs:142:8
[INFO] [stderr]     |
[INFO] [stderr] 142 |     if (x >= width || !map[y][x].is_ascii_digit()) {
[INFO] [stderr]     |        ^                                         ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 142 -     if (x >= width || !map[y][x].is_ascii_digit()) {
[INFO] [stderr] 142 +     if x >= width || !map[y][x].is_ascii_digit() {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/solutions/year_2023/day3.rs:155:8
[INFO] [stderr]     |
[INFO] [stderr] 155 |     if (map[y][x].is_ascii_digit()) {
[INFO] [stderr]     |        ^                          ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 155 -     if (map[y][x].is_ascii_digit()) {
[INFO] [stderr] 155 +     if map[y][x].is_ascii_digit() {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::ops::Not`
[INFO] [stderr]  --> src/solutions/year_2023/day10.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::ops::Not;
[INFO] [stderr]   |     ^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/solutions/year_2023/day11.rs:110:36
[INFO] [stderr]     |
[INFO] [stderr] 110 |                 let expand_count = ((r2 - r1).abs() );
[INFO] [stderr]     |                                    ^               ^^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 110 -                 let expand_count = ((r2 - r1).abs() );
[INFO] [stderr] 110 +                 let expand_count = (r2 - r1).abs();
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/solutions/year_2023/day11.rs:127:36
[INFO] [stderr]     |
[INFO] [stderr] 127 |                 let expand_count = ((c2 - c1).abs() );
[INFO] [stderr]     |                                    ^               ^^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 127 -                 let expand_count = ((c2 - c1).abs() );
[INFO] [stderr] 127 +                 let expand_count = (c2 - c1).abs();
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/solutions/year_2023/day3.rs:64:17
[INFO] [stderr]    |
[INFO] [stderr] 64 | fn trace_number(mut current: String, y: usize, x: usize, map: &Vec<Vec<char>>, visited: &mut Vec<Vec<bool>>, is_near_symbol: bool) -> i64 {
[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/solutions/year_2023/day3.rs:138:18
[INFO] [stderr]     |
[INFO] [stderr] 138 | fn trace_number2(mut current: String, y: usize, x: usize, map: &Vec<Vec<char>>, visited: &mut Vec<Vec<bool>>,
[INFO] [stderr]     |                  ----^^^^^^^
[INFO] [stderr]     |                  |
[INFO] [stderr]     |                  help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `other`
[INFO] [stderr]   --> src/solutions/year_2023/day7.rs:27:18
[INFO] [stderr]    |
[INFO] [stderr] 27 |     fn eq(&self, other: &Self) -> bool {
[INFO] [stderr]    |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[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/solutions/year_2023/day7.rs:142:9
[INFO] [stderr]     |
[INFO] [stderr] 142 |     let mut lines = content.lines();
[INFO] [stderr]     |         ----^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `other`
[INFO] [stderr]    --> src/solutions/year_2023/day7.rs:163:18
[INFO] [stderr]     |
[INFO] [stderr] 163 |     fn eq(&self, other: &Self) -> bool {
[INFO] [stderr]     |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/solutions/year_2023/day7.rs:291:9
[INFO] [stderr]     |
[INFO] [stderr] 291 |     let mut lines = content.lines();
[INFO] [stderr]     |         ----^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/solutions/year_2023/day8.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr] 10 |     let mut iter = lines.skip(1);
[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/solutions/year_2023/day8.rs:41:9
[INFO] [stderr]    |
[INFO] [stderr] 41 |     let mut iter = lines.skip(1);
[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/solutions/year_2023/day9.rs:6:9
[INFO] [stderr]   |
[INFO] [stderr] 6 |     let mut lines = content.lines();
[INFO] [stderr]   |         ----^^^^^
[INFO] [stderr]   |         |
[INFO] [stderr]   |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/solutions/year_2023/day9.rs:42:9
[INFO] [stderr]    |
[INFO] [stderr] 42 |     let mut lines = content.lines();
[INFO] [stderr]    |         ----^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]  --> src/solutions/year_2023/day10.rs:8:9
[INFO] [stderr]   |
[INFO] [stderr] 8 |     let mut lines = content.lines();
[INFO] [stderr]   |         ----^^^^^
[INFO] [stderr]   |         |
[INFO] [stderr]   |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/solutions/year_2023/day10.rs:147:9
[INFO] [stderr]     |
[INFO] [stderr] 147 |     let mut lines = content.lines();
[INFO] [stderr]     |         ----^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]  --> src/solutions/year_2023/day11.rs:6:9
[INFO] [stderr]   |
[INFO] [stderr] 6 |     let mut lines = content.lines();
[INFO] [stderr]   |         ----^^^^^
[INFO] [stderr]   |         |
[INFO] [stderr]   |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/solutions/year_2023/day11.rs:64:9
[INFO] [stderr]    |
[INFO] [stderr] 64 |     let mut lines = content.lines();
[INFO] [stderr]    |         ----^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: using `.deref()` on a double reference, which returns `&year_2020::day2::Input` instead of dereferencing the inner type
[INFO] [stderr]   --> src/solutions/year_2020/day2.rs:60:40
[INFO] [stderr]    |
[INFO] [stderr] 60 |     inputs.iter().filter(|x| is_valid(x.deref())).count()
[INFO] [stderr]    |                                        ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stderr]   --> src/solutions/year_2021/day12.rs:58:17
[INFO] [stderr]    |
[INFO] [stderr] 58 |     for adjs in path.get(current) {
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(for_loops_over_fallibles)]` on by default
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]    |
[INFO] [stderr] 58 |     while let Some(adjs) = path.get(current) {
[INFO] [stderr]    |     ~~~~~~~~~~~~~~~    ~~~
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]    |
[INFO] [stderr] 58 |     if let Some(adjs) = path.get(current) {
[INFO] [stderr]    |     ~~~~~~~~~~~~    ~~~
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stderr]   --> src/solutions/year_2021/day12.rs:99:17
[INFO] [stderr]    |
[INFO] [stderr] 99 |     for adjs in path.get(current) {
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]    |
[INFO] [stderr] 99 |     while let Some(adjs) = path.get(current) {
[INFO] [stderr]    |     ~~~~~~~~~~~~~~~    ~~~
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]    |
[INFO] [stderr] 99 |     if let Some(adjs) = path.get(current) {
[INFO] [stderr]    |     ~~~~~~~~~~~~    ~~~
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stderr]    --> src/solutions/year_2021/day16.rs:141:26
[INFO] [stderr]     |
[INFO] [stderr] 141 |                 for p in packet.1 {
[INFO] [stderr]     |                          ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]     |
[INFO] [stderr] 141 |                 while let Some(p) = packet.1 {
[INFO] [stderr]     |                 ~~~~~~~~~~~~~~~ ~~~
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]     |
[INFO] [stderr] 141 |                 if let Some(p) = packet.1 {
[INFO] [stderr]     |                 ~~~~~~~~~~~~ ~~~
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stderr]    --> src/solutions/year_2021/day16.rs:153:26
[INFO] [stderr]     |
[INFO] [stderr] 153 |                 for p in packet.1 {
[INFO] [stderr]     |                          ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]     |
[INFO] [stderr] 153 |                 while let Some(p) = packet.1 {
[INFO] [stderr]     |                 ~~~~~~~~~~~~~~~ ~~~
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]     |
[INFO] [stderr] 153 |                 if let Some(p) = packet.1 {
[INFO] [stderr]     |                 ~~~~~~~~~~~~ ~~~
[INFO] [stderr] 
[INFO] [stderr] warning: `advent_of_code` (bin "advent_of_code" test) generated 32 warnings (run `cargo fix --bin "advent_of_code" --tests` to apply 25 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.01s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/advent_of_code-122c09934175ac1c)
[INFO] [stdout] 
[INFO] [stdout] running 102 tests
[INFO] [stdout] test solutions::year_2020::day10::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day10::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2020::day13::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day12::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day13::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2020::day12::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2020::day15::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day16::tests::test ... ok
[INFO] [stdout] test solutions::year_2020::day14::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day16::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2020::day18::tests::test ... ok
[INFO] [stdout] test solutions::year_2020::day18::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2020::day19::tests::test ... ok
[INFO] [stdout] test solutions::year_2020::day1::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2020::day1::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2020::day17::tests::test ... ok
[INFO] [stdout] test solutions::year_2020::day21::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day21::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2020::day22::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day19::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2020::day23::tests::test ... ok
[INFO] [stdout] test solutions::year_2020::day20::tests::test ... ok
[INFO] [stdout] test solutions::year_2020::day14::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2020::day11::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day2::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2020::day2::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2020::day3::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2020::day3::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2020::day17::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2020::day11::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2020::day5::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day5::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2020::day25::tests::test ... ok
[INFO] [stdout] test solutions::year_2020::day6::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day7::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day7::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2020::day8::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day9::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day9::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2021::day10::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day10::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2021::day11::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2020::day4::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day11::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2020::day8::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2021::day13::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day12::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day13::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2021::day14::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2020::day4::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2021::day15::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day16::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day16::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2021::day17::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day17::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2021::day1::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day1::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2021::day2::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day2::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2021::day3::test::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day3::test::test_second ... ok
[INFO] [stdout] test solutions::year_2021::day14::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2021::day4::test::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day4::test::test_second ... ok
[INFO] [stdout] test solutions::year_2021::day5::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day6::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day6::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2021::day7::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day7::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2021::day8::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day5::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2021::day9::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day9::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2023::day10::test::test_day10 ... ok
[INFO] [stdout] test solutions::year_2021::day15::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2023::day11::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2023::day11::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2023::day1::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2023::day1::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2023::day2::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2023::day2::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2023::day3::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2023::day3::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2023::day4::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2020::day24::tests::test ... ok
[INFO] [stdout] test solutions::year_2023::day5::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2023::day4::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2023::day6::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day12::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2023::day7::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2023::day7::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2023::day8::tests::test_day8 ... ok
[INFO] [stdout] test solutions::year_2023::day8::tests::test_day8_2 ... ok
[INFO] [stdout] test solutions::year_2023::day9::test::test_day9 ... ok
[INFO] [stdout] test solutions::year_2023::day9::test::test_day9_2 ... ok
[INFO] [stdout] test solutions::year_2023::day10::test::test_day10_2 ... ok
[INFO] [stdout] test solutions::year_2023::day6::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2020::day22::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2020::day23::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2021::day8::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2020::day15::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2023::day5::tests::test_second has been running for over 60 seconds
[ERROR] error running command: no output for 300 seconds
[INFO] running `Command { std: "docker" "inspect" "3858d99ab4d94a3b101778d2f543b11bc87f48637a85112a14554ad778c036c3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3858d99ab4d94a3b101778d2f543b11bc87f48637a85112a14554ad778c036c3", kill_on_drop: false }`
[INFO] [stdout] 3858d99ab4d94a3b101778d2f543b11bc87f48637a85112a14554ad778c036c3
[INFO] testing kojilin/advent_of_code against try#b642703cf9526da1e72c0b6755753b939a9c6b6d for pr-125151
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkojilin%2Fadvent_of_code" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/kojilin/advent_of_code on toolchain b642703cf9526da1e72c0b6755753b939a9c6b6d
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/kojilin/advent_of_code
[INFO] finished tweaking git repo https://github.com/kojilin/advent_of_code
[INFO] tweaked toml for git repo https://github.com/kojilin/advent_of_code written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/kojilin/advent_of_code 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" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 99630720d89a0aad69cffcee67e5cdecfb4688d1df6e69252f066e2238695bf9
[INFO] running `Command { std: "docker" "start" "-a" "99630720d89a0aad69cffcee67e5cdecfb4688d1df6e69252f066e2238695bf9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "99630720d89a0aad69cffcee67e5cdecfb4688d1df6e69252f066e2238695bf9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "99630720d89a0aad69cffcee67e5cdecfb4688d1df6e69252f066e2238695bf9", kill_on_drop: false }`
[INFO] [stdout] 99630720d89a0aad69cffcee67e5cdecfb4688d1df6e69252f066e2238695bf9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7652612ff85f3ab99f108f8bff58aa70f6fd1c88c61392a2f10e3e630b458120
[INFO] running `Command { std: "docker" "start" "-a" "7652612ff85f3ab99f108f8bff58aa70f6fd1c88c61392a2f10e3e630b458120", kill_on_drop: false }`
[INFO] [stderr]    Compiling memchr v2.3.4
[INFO] [stderr]    Compiling lazy_static v1.4.0
[INFO] [stderr]    Compiling regex-syntax v0.6.21
[INFO] [stderr]    Compiling thread_local v1.0.1
[INFO] [stderr]    Compiling aho-corasick v0.7.15
[INFO] [stderr]    Compiling regex v1.4.2
[INFO] [stderr]    Compiling advent_of_code v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]  --> src/solutions/year_2021/day17.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::error::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/solutions/year_2023/day2.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 |         if (counts(&re_green, line, 13) && counts(&re_red, line, 12) && counts(&re_blue, line, 14)) {
[INFO] [stdout]    |            ^                                                                                      ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 18 -         if (counts(&re_green, line, 13) && counts(&re_red, line, 12) && counts(&re_blue, line, 14)) {
[INFO] [stdout] 18 +         if counts(&re_green, line, 13) && counts(&re_red, line, 12) && counts(&re_blue, line, 14) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/solutions/year_2023/day2.rs:32:16
[INFO] [stdout]    |
[INFO] [stdout] 32 |             if (digit_match.as_str().parse::<i32>().unwrap() > max) {
[INFO] [stdout]    |                ^                                                  ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 32 -             if (digit_match.as_str().parse::<i32>().unwrap() > max) {
[INFO] [stdout] 32 +             if digit_match.as_str().parse::<i32>().unwrap() > max {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 |         if (new_y < height && new_y >= 0 && new_x >= 0 && new_x < width) {
[INFO] [stdout]    |            ^                                                           ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 54 -         if (new_y < height && new_y >= 0 && new_x >= 0 && new_x < width) {
[INFO] [stdout] 54 +         if new_y < height && new_y >= 0 && new_x >= 0 && new_x < width {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:55:16
[INFO] [stdout]    |
[INFO] [stdout] 55 |             if (!map[new_y as usize][new_x as usize].is_ascii_digit()
[INFO] [stdout]    |                ^
[INFO] [stdout] 56 |                 && map[new_y as usize][new_x as usize] != '.') {
[INFO] [stdout]    |                                                              ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 55 ~             if !map[new_y as usize][new_x as usize].is_ascii_digit()
[INFO] [stdout] 56 ~                 && map[new_y as usize][new_x as usize] != '.' {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 |     if (x >= width || !map[y][x].is_ascii_digit()) {
[INFO] [stdout]    |        ^                                         ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 66 -     if (x >= width || !map[y][x].is_ascii_digit()) {
[INFO] [stdout] 66 +     if x >= width || !map[y][x].is_ascii_digit() {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 |     if (map[y][x].is_ascii_digit()) {
[INFO] [stdout]    |        ^                          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 70 -     if (map[y][x].is_ascii_digit()) {
[INFO] [stdout] 70 +     if map[y][x].is_ascii_digit() {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/solutions/year_2023/day3.rs:128:12
[INFO] [stdout]     |
[INFO] [stdout] 128 |         if (new_y < height && new_y >= 0 && new_x >= 0 && new_x < width) {
[INFO] [stdout]     |            ^                                                           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 128 -         if (new_y < height && new_y >= 0 && new_x >= 0 && new_x < width) {
[INFO] [stdout] 128 +         if new_y < height && new_y >= 0 && new_x >= 0 && new_x < width {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/solutions/year_2023/day3.rs:129:16
[INFO] [stdout]     |
[INFO] [stdout] 129 |             if (!map[new_y as usize][new_x as usize].is_ascii_digit()
[INFO] [stdout]     |                ^
[INFO] [stdout] 130 |                 && map[new_y as usize][new_x as usize] == '*') {
[INFO] [stdout]     |                                                              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 129 ~             if !map[new_y as usize][new_x as usize].is_ascii_digit()
[INFO] [stdout] 130 ~                 && map[new_y as usize][new_x as usize] == '*' {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/solutions/year_2023/day3.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 |     if (x >= width || !map[y][x].is_ascii_digit()) {
[INFO] [stdout]     |        ^                                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 142 -     if (x >= width || !map[y][x].is_ascii_digit()) {
[INFO] [stdout] 142 +     if x >= width || !map[y][x].is_ascii_digit() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/solutions/year_2023/day3.rs:155:8
[INFO] [stdout]     |
[INFO] [stdout] 155 |     if (map[y][x].is_ascii_digit()) {
[INFO] [stdout]     |        ^                          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 155 -     if (map[y][x].is_ascii_digit()) {
[INFO] [stdout] 155 +     if map[y][x].is_ascii_digit() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Not`
[INFO] [stdout]  --> src/solutions/year_2023/day10.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::Not;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/solutions/year_2023/day11.rs:110:36
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 let expand_count = ((r2 - r1).abs() );
[INFO] [stdout]     |                                    ^               ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 110 -                 let expand_count = ((r2 - r1).abs() );
[INFO] [stdout] 110 +                 let expand_count = (r2 - r1).abs();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/solutions/year_2023/day11.rs:127:36
[INFO] [stdout]     |
[INFO] [stdout] 127 |                 let expand_count = ((c2 - c1).abs() );
[INFO] [stdout]     |                                    ^               ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 127 -                 let expand_count = ((c2 - c1).abs() );
[INFO] [stdout] 127 +                 let expand_count = (c2 - c1).abs();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:64:17
[INFO] [stdout]    |
[INFO] [stdout] 64 | fn trace_number(mut current: String, y: usize, x: usize, map: &Vec<Vec<char>>, visited: &mut Vec<Vec<bool>>, is_near_symbol: bool) -> i64 {
[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/solutions/year_2023/day3.rs:138:18
[INFO] [stdout]     |
[INFO] [stdout] 138 | fn trace_number2(mut current: String, y: usize, x: usize, map: &Vec<Vec<char>>, visited: &mut Vec<Vec<bool>>,
[INFO] [stdout]     |                  ----^^^^^^^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]   --> src/solutions/year_2023/day7.rs:27:18
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn eq(&self, other: &Self) -> bool {
[INFO] [stdout]    |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[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/solutions/year_2023/day7.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 142 |     let mut lines = content.lines();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/solutions/year_2023/day7.rs:163:18
[INFO] [stdout]     |
[INFO] [stdout] 163 |     fn eq(&self, other: &Self) -> bool {
[INFO] [stdout]     |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/year_2023/day7.rs:291:9
[INFO] [stdout]     |
[INFO] [stdout] 291 |     let mut lines = content.lines();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2023/day8.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let mut iter = lines.skip(1);
[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/solutions/year_2023/day8.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let mut iter = lines.skip(1);
[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/solutions/year_2023/day9.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let mut lines = content.lines();
[INFO] [stdout]   |         ----^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2023/day9.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let mut lines = content.lines();
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/solutions/year_2023/day10.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let mut lines = content.lines();
[INFO] [stdout]   |         ----^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/year_2023/day10.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 147 |     let mut lines = content.lines();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/solutions/year_2023/day11.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let mut lines = content.lines();
[INFO] [stdout]   |         ----^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2023/day11.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let mut lines = content.lines();
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day1` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day1.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day1() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day1_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day1.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn solve_day1_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solution` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day1.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn solution(numbers: Vec<i64>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solution2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day1.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn solution2(numbers: Vec<i64>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Input` is never constructed
[INFO] [stdout]  --> src/solutions/year_2020/day2.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Input {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_valid_by_count` and `is_valid_by_position` are never used
[INFO] [stdout]   --> src/solutions/year_2020/day2.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Input {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] 14 |     fn is_valid_by_count(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     fn is_valid_by_position(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day2.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn solve_day2(valid_function: fn(&Input) -> bool) -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solution` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day2.rs:59:4
[INFO] [stdout]    |
[INFO] [stdout] 59 | fn solution(inputs: &Vec<Input>, is_valid: fn(&Input) -> bool) -> usize {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day3` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day3.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day3(x_pattern: usize, y_pattern: usize) -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day4` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day4.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_day4(rules: &Vec<Rule>) -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Rule` is never constructed
[INFO] [stdout]   --> src/solutions/year_2020/day4.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | struct Rule {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_valid` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day4.rs:36:4
[INFO] [stdout]    |
[INFO] [stdout] 36 | fn is_valid(passport: &HashMap<String, String>, rules: &Vec<Rule>) -> bool {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day5` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day5.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day5() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day5_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day5.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn solve_day5_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solution1` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day5.rs:36:4
[INFO] [stdout]    |
[INFO] [stdout] 36 | fn solution1(seat: &str) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_value` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day5.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn find_value(min: i64, max: i64, input: &str, small_half: char) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day6` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day6.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day6() -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Edge` is never constructed
[INFO] [stdout]  --> src/solutions/year_2020/day7.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | struct Edge {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day7_1` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day7.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn solve_day7_1() -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dfs` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day7.rs:36:4
[INFO] [stdout]    |
[INFO] [stdout] 36 | fn dfs(current: &str, edges: &HashMap<String, Vec<Edge>>, dp: &mut HashSet<String>) {
[INFO] [stdout]    |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day7_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day7.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn solve_day7_2() -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dfs2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day7.rs:70:4
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn dfs2(current: &str, edges: &HashMap<String, Vec<Edge>>, dp: &mut HashMap<String, usize>) -> usize {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Context` is never constructed
[INFO] [stdout]  --> src/solutions/year_2020/day8.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Context {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `create` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day8.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl Context {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 12 |     fn create() -> Context {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Instruction` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day8.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | trait Instruction {
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day8.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn parse(raw_operation: &str, argument: i64) -> Box<dyn Instruction> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Accumulator` is never constructed
[INFO] [stdout]   --> src/solutions/year_2020/day8.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | struct Accumulator {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NoOp` is never constructed
[INFO] [stdout]   --> src/solutions/year_2020/day8.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | struct NoOp {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Jump` is never constructed
[INFO] [stdout]   --> src/solutions/year_2020/day8.rs:64:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | struct Jump {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day8_1` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day8.rs:80:4
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn solve_day8_1() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solution1` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day8.rs:91:4
[INFO] [stdout]    |
[INFO] [stdout] 91 | fn solution1(instructions: &mut Vec<Box<dyn Instruction>>) -> Context {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day8_2` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day8.rs:102:4
[INFO] [stdout]     |
[INFO] [stdout] 102 | fn solve_day8_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solution2` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day8.rs:113:4
[INFO] [stdout]     |
[INFO] [stdout] 113 | fn solution2(instructions: &mut Vec<Box<dyn Instruction>>) -> Context {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day9_1` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day9.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day9_1() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day9_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day9.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn solve_day9_2(target: i64) -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day10` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day10.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day10() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day10_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day10.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn solve_day10_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day11` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day11.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day11() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `increase_adjacent` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day11.rs:49:4
[INFO] [stdout]    |
[INFO] [stdout] 49 | fn increase_adjacent(count: &mut Vec<Vec<i32>>, next_c: &mut Vec<Vec<i32>>, y: usize, x: usize, diff: i32) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day11_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day11.rs:68:4
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn solve_day11_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `increase_adjacent2` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day11.rs:146:4
[INFO] [stdout]     |
[INFO] [stdout] 146 | fn increase_adjacent2(next_c: &mut Vec<Vec<i32>>, relations: &HashMap<(usize, usize), HashSet<(i64, i64)>>, y: usize, x: usize, diff: i32) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day12` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day12.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day12() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day12_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day12.rs:92:4
[INFO] [stdout]    |
[INFO] [stdout] 92 | fn solve_day12_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day13` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day13.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day13() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day13_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day13.rs:26:4
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn solve_day13_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day14` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day14.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_day14() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mask_value` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day14.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn mask_value(mask: &Vec<char>, value: i64) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day14_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day14.rs:38:4
[INFO] [stdout]    |
[INFO] [stdout] 38 | fn solve_day14_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mask_value_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day14.rs:62:4
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn mask_value_2(mask: &Vec<char>, address: i64) -> Vec<i64> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day15` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day15.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day15(input: Vec<usize>, turn: usize) -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day16` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day16.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_day16() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day16_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day16.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn solve_day16_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day17` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day17.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day17() -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_neighbor` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day17.rs:103:4
[INFO] [stdout]     |
[INFO] [stdout] 103 | fn count_neighbor(areas: &Vec<Vec<Vec<bool>>>, center_z: i64, center_y: i64, center_x: i64) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `neighbors` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day17.rs:119:4
[INFO] [stdout]     |
[INFO] [stdout] 119 | fn neighbors(upper: i64, center: i64) -> Vec<i64> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_empty` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day17.rs:126:4
[INFO] [stdout]     |
[INFO] [stdout] 126 | fn is_empty(area: &Vec<Vec<bool>>) -> bool {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_active` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day17.rs:130:4
[INFO] [stdout]     |
[INFO] [stdout] 130 | fn count_active(area: &Vec<Vec<bool>>) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day17_2` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day17.rs:137:4
[INFO] [stdout]     |
[INFO] [stdout] 137 | fn solve_day17_2() -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day18` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day18.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_day18() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Operator` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day18.rs:16:6
[INFO] [stdout]    |
[INFO] [stdout] 16 | enum Operator {
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day18.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn calculate(cursor: &mut usize, chars: &Vec<char>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `skip_space` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day18.rs:59:4
[INFO] [stdout]    |
[INFO] [stdout] 59 | fn skip_space(cursor: &mut usize, chars: &Vec<char>) {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_digit` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day18.rs:65:4
[INFO] [stdout]    |
[INFO] [stdout] 65 | fn read_digit(cursor: &mut usize, chars: &Vec<char>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day18_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day18.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn solve_day18_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day18.rs:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | fn calculate_2(cursor: &mut usize, chars: &Vec<char>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day19` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day19.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_day19() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day19_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day19.rs:22:4
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn solve_day19_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_input` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day19.rs:60:4
[INFO] [stdout]    |
[INFO] [stdout] 60 | fn read_input() -> Result<(Vec<String>, HashMap<i64, String>), Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_rule_pattern` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day19.rs:100:4
[INFO] [stdout]     |
[INFO] [stdout] 100 | fn make_rule_pattern(id: i64, rules: &HashMap<i64, Vec<Vec<&str>>>, end_rules: &HashMap<i64, &str>, dp: &mut HashMap<i64, String>) -> Str...
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_sub_rule` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day19.rs:130:4
[INFO] [stdout]     |
[INFO] [stdout] 130 | fn build_sub_rule(rules: &&HashMap<i64, Vec<Vec<&str>>>, end_rules: &&HashMap<i64, &str>, dp: &mut HashMap<i64, String>, rule: &Vec<&str>...
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Image` is never constructed
[INFO] [stdout]  --> src/solutions/year_2020/day20.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct Image {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/solutions/year_2020/day20.rs:15:8
[INFO] [stdout]     |
[INFO] [stdout] 14  | impl Image {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] 15  |     fn add_row(&mut self, row: Vec<char>) {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20  |     fn flip_vertically(&self) -> Image {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28  |     fn flip_horizontally(&self) -> Image {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35  |     fn rotate_clockwise(&self) -> Image {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43  |     fn compute_behavior(&self, target_number: i64, target_border: usize) -> Image {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     fn calculate_unified_row_pattern(&self, row_index: usize) -> i64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     fn calculate_row_pattern(&self, row_index: usize, reverse: bool) -> i64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     fn calculate_unified_col_pattern(&self, col_index: usize) -> i64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     fn calculate_col_pattern(&self, col_index: usize, reverse: bool) -> i64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     fn list_unified_border_numbers(&self) -> Vec<i64> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     fn list_border_numbers(&self) -> Vec<i64> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     fn list_flipped_border_numbers(&self) -> Vec<i64> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day20` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day20.rs:189:4
[INFO] [stdout]     |
[INFO] [stdout] 189 | fn solve_day20() -> Result<(usize, usize), Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flip_vertically` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day20.rs:310:4
[INFO] [stdout]     |
[INFO] [stdout] 310 | fn flip_vertically(from: &Vec<Vec<char>>) -> Vec<Vec<char>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flip_horizontally` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day20.rs:324:4
[INFO] [stdout]     |
[INFO] [stdout] 324 | fn flip_horizontally(from: &Vec<Vec<char>>) -> Vec<Vec<char>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rotate_clockwise` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day20.rs:330:4
[INFO] [stdout]     |
[INFO] [stdout] 330 | fn rotate_clockwise(from: &Vec<Vec<char>>) -> Vec<Vec<char>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_monster` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day20.rs:342:4
[INFO] [stdout]     |
[INFO] [stdout] 342 | fn count_monster(map: &Vec<Vec<char>>) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_pattern` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day20.rs:363:4
[INFO] [stdout]     |
[INFO] [stdout] 363 | fn count_pattern(map: &Vec<Vec<char>>, rotated: &Vec<Vec<char>>) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day21` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day21.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day21() -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day21_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day21.rs:57:4
[INFO] [stdout]    |
[INFO] [stdout] 57 | fn solve_day21_2() -> Result<String, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day22` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day22.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day22() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day22_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day22.rs:45:4
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn solve_day22_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `score` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day22.rs:63:4
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn score(result: &Vec<i64>) -> i64 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `play_round` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day22.rs:72:4
[INFO] [stdout]    |
[INFO] [stdout] 72 | fn play_round(mut p1: Vec<i64>, mut p2: Vec<i64>, game: usize) -> (bool, i64) {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day23` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day23.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn solve_day23(input: i64) -> Vec<u32> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day23_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day23.rs:41:4
[INFO] [stdout]    |
[INFO] [stdout] 41 | fn solve_day23_2() -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day24` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day24.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day24() -> Result<(i64, i64), Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day25` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day25.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn day25(key1: i64, key2: i64) -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_value` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day25.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn find_value(key: i64) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day1.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day1() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day1_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day1.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn solve_day1_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solution` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day1.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn solution(numbers: Vec<i64>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solution2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day1.rs:29:4
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn solution2(numbers: Vec<i64>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day2` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day2.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day2_2` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day2.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn solve_day2_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solution` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day2.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn solution(commands: Vec<&str>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solution2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day2.rs:33:4
[INFO] [stdout]    |
[INFO] [stdout] 33 | fn solution2(commands: Vec<&str>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day3_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day3.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day3_1() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day3_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day3.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn solve_day3_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solution` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day3.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn solution(lines: Vec<&str>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `grouping` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day3.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn grouping<'a>(index: usize, lines: &Vec<&'a str>) -> (Vec<&'a str>, Vec<&'a str>) {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `oxygen` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day3.rs:60:4
[INFO] [stdout]    |
[INFO] [stdout] 60 | fn oxygen<'a>(index: usize, lines: &Vec<&'a str>) -> Vec<&'a str> {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_oxygen` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day3.rs:71:4
[INFO] [stdout]    |
[INFO] [stdout] 71 | fn find_oxygen(lines: &Vec<&str>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `co2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day3.rs:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | fn co2<'a>(index: usize, lines: &Vec<&'a str>) -> Vec<&'a str> {
[INFO] [stdout]    |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_co2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day3.rs:94:4
[INFO] [stdout]    |
[INFO] [stdout] 94 | fn find_co2(lines: &Vec<&str>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solution2` is never used
[INFO] [stdout]    --> src/solutions/year_2021/day3.rs:106:4
[INFO] [stdout]     |
[INFO] [stdout] 106 | fn solution2(lines: Vec<&str>) -> i64 {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Board` is never constructed
[INFO] [stdout]  --> src/solutions/year_2021/day4.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct Board {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_number`, and `score` are never used
[INFO] [stdout]   --> src/solutions/year_2021/day4.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Board {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 13 |     pub fn new(slot: Vec<Vec<i32>>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     fn add_number(&mut self, number: i32) -> Option<i32> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     fn score(&self, number: i32) -> i32 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day4.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn parse_input() -> Result<(Vec<i32>, Vec<Board>), Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day4_1` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day4.rs:65:4
[INFO] [stdout]    |
[INFO] [stdout] 65 | fn solve_day4_1() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_first` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day4.rs:70:4
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn solve_first(instructions: Vec<i32>, mut boards: Vec<Board>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day4_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day4.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn solve_day4_2() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_second` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day4.rs:86:4
[INFO] [stdout]    |
[INFO] [stdout] 86 | fn solve_second(instructions: Vec<i32>, mut boards: Vec<Board>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day5_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day5.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_day5_1() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day5.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn parse_input() -> Result<Vec<((i32, i32), (i32, i32))>, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_first` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day5.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn solve_first(lines: Vec<((i32, i32), (i32, i32))>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day5_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day5.rs:54:4
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn solve_day5_2() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_second` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day5.rs:65:4
[INFO] [stdout]    |
[INFO] [stdout] 65 | fn solve_second(lines: Vec<((i32, i32), (i32, i32))>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day6` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day6.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day6(n: i32) -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day6.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn solve(fish: Vec<i32>, n: i32) -> i64 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `do_solve` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day6.rs:26:4
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn do_solve(day: i32, dp: &mut HashMap<i32, i64>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day7_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day7.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day7_1() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day7_2` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day7.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn solve_day7_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day7.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn parse_input() -> Result<Vec<i32>, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_1` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day7.rs:24:4
[INFO] [stdout]    |
[INFO] [stdout] 24 | fn solve_1(crabs: Vec<i32>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day7.rs:49:4
[INFO] [stdout]    |
[INFO] [stdout] 49 | fn solve_2(crabs: Vec<i32>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day8_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day8.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_day8_1() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day8_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day8.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn solve_day8_2() -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day8.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn parse_input() -> Result<Vec<(Vec<String>, Vec<String>)>, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_1` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day8.rs:31:4
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn solve_1(input: Vec<(Vec<String>, Vec<String>)>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day8.rs:37:4
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn solve_2(inputs: Vec<(Vec<String>, Vec<String>)>) -> usize {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `permutation` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day8.rs:89:4
[INFO] [stdout]    |
[INFO] [stdout] 89 | fn permutation(current_index: usize, current: &mut Vec<usize>, used: i32) -> Vec<Vec<usize>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day9_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day9.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day9_1() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day9_2` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day9.rs:8:4
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn solve_day9_2() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day9.rs:12:4
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn parse_input() -> Result<Vec<Vec<i32>>, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_1` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day9.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn solve_1(map: Vec<Vec<i32>>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day9.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn solve_2(map: Vec<Vec<i32>>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day10_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day10.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day10_1() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day10_2` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day10.rs:8:4
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn solve_day10_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day10.rs:12:4
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn parse_input() -> Result<Vec<Vec<char>>, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_1` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day10.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn solve_1(inputs: Vec<Vec<char>>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day10.rs:78:4
[INFO] [stdout]    |
[INFO] [stdout] 78 | fn solve_2(inputs: Vec<Vec<char>>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day11_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day11.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day11_1() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day11_2` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day11.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn solve_day11_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day11.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn parse_input() -> Result<Vec<Vec<u32>>, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_1` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day11.rs:27:4
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn solve_1(mut map: Vec<Vec<u32>>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day11.rs:67:4
[INFO] [stdout]    |
[INFO] [stdout] 67 | fn solve_2(mut map: Vec<Vec<u32>>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day12_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day12.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day12_1() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day12_2` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day12.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn solve_day12_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day12.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn parse_input() -> Result<HashMap<String, Vec<String>>, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_1` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day12.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn solve_1(path: HashMap<String, Vec<String>>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dfs` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day12.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn dfs(current: &str, path: &HashMap<String, Vec<String>>, visited: &mut HashMap<String, bool>, debug_path: &mut Vec<String>) -> i64 {
[INFO] [stdout]    |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day12.rs:80:4
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn solve_2(path: HashMap<String, Vec<String>>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dfs2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day12.rs:89:4
[INFO] [stdout]    |
[INFO] [stdout] 89 | fn dfs2(current: &str, path: &HashMap<String, Vec<String>>, visited: &mut HashMap<String, bool>,
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day13_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day13.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_day13_1() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_1` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day13.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn solve_1(input: Input) -> i64 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day13_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day13.rs:38:4
[INFO] [stdout]    |
[INFO] [stdout] 38 | fn solve_day13_2() -> Result<HashSet<(i32, i32)>, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day13.rs:43:4
[INFO] [stdout]    |
[INFO] [stdout] 43 | fn solve_2(input: Input) -> HashSet<(i32, i32)> {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Input` is never constructed
[INFO] [stdout]   --> src/solutions/year_2021/day13.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | struct Input {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day13.rs:75:4
[INFO] [stdout]    |
[INFO] [stdout] 75 | fn parse_input() -> Result<Input, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day14_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day14.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day14_1() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day14_2` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day14.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn solve_day14_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day14.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn parse_input() -> Result<(String, HashMap<String, String>), Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_1` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day14.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn solve_1(input: (String, HashMap<String, String>)) -> i32 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day14.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout] 56 | fn solve_2(input: (String, HashMap<String, String>)) -> i64 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `do_solve` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day14.rs:78:4
[INFO] [stdout]    |
[INFO] [stdout] 78 | fn do_solve(c1: char, c2: char, round: i32, dp: &mut HashMap<String, HashMap<char, i64>>, dict: &HashMap<String, String>) -> HashMap<char...
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `merge` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day14.rs:98:4
[INFO] [stdout]    |
[INFO] [stdout] 98 | fn merge(left: HashMap<char, i64>, right: HashMap<char, i64>) -> HashMap<char, i64> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day15_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day15.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_day15_1() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day15_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day15.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn solve_day15_2() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day15.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn parse_input() -> Result<Vec<Vec<u32>>, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]   --> src/solutions/year_2021/day15.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | struct Point {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_1` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day15.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn solve_1(map: Vec<Vec<u32>>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day15.rs:79:4
[INFO] [stdout]    |
[INFO] [stdout] 79 | fn solve_2(map: Vec<Vec<u32>>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_cost` is never used
[INFO] [stdout]    --> src/solutions/year_2021/day15.rs:111:4
[INFO] [stdout]     |
[INFO] [stdout] 111 | fn find_cost(y: usize, x: usize, map: &Vec<Vec<u32>>) -> u32 {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day16_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day16.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_day16_1() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day16_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day16.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn solve_day16_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day16.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn parse_input() -> Result<Vec<char>, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_1` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day16.rs:22:4
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn solve_1(chars: Vec<char>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day16.rs:35:4
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn solve_2(chars: Vec<char>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Packet` is never constructed
[INFO] [stdout]   --> src/solutions/year_2021/day16.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 51 | struct Packet {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `sum_version` and `calculate` are never used
[INFO] [stdout]   --> src/solutions/year_2021/day16.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 58 | impl Packet {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] 59 |     pub fn sum_version(&self) -> i32 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn calculate(&self) -> i64 {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_packet` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day16.rs:96:4
[INFO] [stdout]    |
[INFO] [stdout] 96 | fn read_packet(index: i32, chars: &Vec<char>) -> (i32, Option<Packet>) {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day17_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day17.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day17_1() -> i32 {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day17.rs:8:4
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn solve_1(_x1: i32, _x2: i32, y1: i32, _y2: i32) -> i32 {
[INFO] [stdout]   |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day17_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day17.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn solve_day17_2() -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day17.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn solve_2(x1: i32, x2: i32, y1: i32, y2: i32) -> i32 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day1` is never used
[INFO] [stdout]  --> src/solutions/year_2023/day1.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day1() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day1_2` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day1.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn solve_day1_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day2` is never used
[INFO] [stdout]  --> src/solutions/year_2023/day2.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_day2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `counts` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day2.rs:29:4
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn counts(re_green: &Regex, line: &str, max: i32) -> bool {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day2_2` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day2.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn solve_day2_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `min_counts` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day2.rs:55:4
[INFO] [stdout]    |
[INFO] [stdout] 55 | fn min_counts(re_green: &Regex, line: &str) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day3` is never used
[INFO] [stdout]  --> src/solutions/year_2023/day3.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_day3() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn calculate(y: usize, x: usize, map: &Vec<Vec<char>>, visited: &mut Vec<Vec<bool>>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `near_symbol` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:45:4
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn near_symbol(y: usize, x: usize, map: &Vec<Vec<char>>) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trace_number` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:64:4
[INFO] [stdout]    |
[INFO] [stdout] 64 | fn trace_number(mut current: String, y: usize, x: usize, map: &Vec<Vec<char>>, visited: &mut Vec<Vec<bool>>, is_near_symbol: bool) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day3_2` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:77:4
[INFO] [stdout]    |
[INFO] [stdout] 77 | fn solve_day3_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate2` is never used
[INFO] [stdout]    --> src/solutions/year_2023/day3.rs:101:4
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn calculate2(y: usize, x: usize, map: &Vec<Vec<char>>, visited: &mut Vec<Vec<bool>>,
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `near_symbol2` is never used
[INFO] [stdout]    --> src/solutions/year_2023/day3.rs:119:4
[INFO] [stdout]     |
[INFO] [stdout] 119 | fn near_symbol2(y: usize, x: usize, map: &Vec<Vec<char>>) -> Option<(usize, usize)> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trace_number2` is never used
[INFO] [stdout]    --> src/solutions/year_2023/day3.rs:138:4
[INFO] [stdout]     |
[INFO] [stdout] 138 | fn trace_number2(mut current: String, y: usize, x: usize, map: &Vec<Vec<char>>, visited: &mut Vec<Vec<bool>>,
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day4` is never used
[INFO] [stdout]  --> src/solutions/year_2023/day4.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_day4() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day4_2` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day4.rs:37:4
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn solve_day4_2() -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day5` is never used
[INFO] [stdout]  --> src/solutions/year_2023/day5.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day5() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day5_2` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day5.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn solve_day5_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day6` is never used
[INFO] [stdout]  --> src/solutions/year_2023/day6.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day6() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day6_2` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day6.rs:29:4
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn solve_day6_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CardType` is never used
[INFO] [stdout]  --> src/solutions/year_2023/day7.rs:9:6
[INFO] [stdout]   |
[INFO] [stdout] 9 | enum CardType {
[INFO] [stdout]   |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Card` is never constructed
[INFO] [stdout]   --> src/solutions/year_2023/day7.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | struct Card {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `create` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day7.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | impl Card {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 57 |     fn create(raw: &str, bet: i64) -> Card {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day7` is never used
[INFO] [stdout]    --> src/solutions/year_2023/day7.rs:140:4
[INFO] [stdout]     |
[INFO] [stdout] 140 | fn solve_day7() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Card2` is never constructed
[INFO] [stdout]    --> src/solutions/year_2023/day7.rs:156:8
[INFO] [stdout]     |
[INFO] [stdout] 156 | struct Card2 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `create` is never used
[INFO] [stdout]    --> src/solutions/year_2023/day7.rs:192:8
[INFO] [stdout]     |
[INFO] [stdout] 191 | impl Card2 {
[INFO] [stdout]     | ---------- associated function in this implementation
[INFO] [stdout] 192 |     fn create(raw: &str, bet: i64) -> Card2 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day7_2` is never used
[INFO] [stdout]    --> src/solutions/year_2023/day7.rs:289:4
[INFO] [stdout]     |
[INFO] [stdout] 289 | fn solve_day7_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day8` is never used
[INFO] [stdout]  --> src/solutions/year_2023/day8.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_day8() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day8_2` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day8.rs:37:4
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn solve_day8_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gcd` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day8.rs:92:4
[INFO] [stdout]    |
[INFO] [stdout] 92 | fn gcd(a: i64, b: i64) -> i64 {
[INFO] [stdout]    |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day9` is never used
[INFO] [stdout]  --> src/solutions/year_2023/day9.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day9() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day9_2` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day9.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn solve_day9_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day10` is never used
[INFO] [stdout]  --> src/solutions/year_2023/day10.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_day10() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `next_of` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day10.rs:71:4
[INFO] [stdout]    |
[INFO] [stdout] 71 | fn next_of(point: (usize, usize), map: &Vec<Vec<char>>) -> Vec<(usize, usize)> {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day10_2` is never used
[INFO] [stdout]    --> src/solutions/year_2023/day10.rs:145:4
[INFO] [stdout]     |
[INFO] [stdout] 145 | fn solve_day10_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw` is never used
[INFO] [stdout]    --> src/solutions/year_2023/day10.rs:261:4
[INFO] [stdout]     |
[INFO] [stdout] 261 | fn draw(visited: &mut HashSet<(usize, usize)>, from: (usize, usize), map: &Vec<Vec<char>>, is_line: &Vec<Vec<bool>>) -> i64 {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day11` is never used
[INFO] [stdout]  --> src/solutions/year_2023/day11.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day11() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day11_2` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day11.rs:62:4
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn solve_day11_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.deref()` on a double reference, which returns `&year_2020::day2::Input` instead of dereferencing the inner type
[INFO] [stdout]   --> src/solutions/year_2020/day2.rs:60:40
[INFO] [stdout]    |
[INFO] [stdout] 60 |     inputs.iter().filter(|x| is_valid(x.deref())).count()
[INFO] [stdout]    |                                        ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]   --> src/solutions/year_2021/day12.rs:58:17
[INFO] [stdout]    |
[INFO] [stdout] 58 |     for adjs in path.get(current) {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(for_loops_over_fallibles)]` on by default
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]    |
[INFO] [stdout] 58 |     while let Some(adjs) = path.get(current) {
[INFO] [stdout]    |     ~~~~~~~~~~~~~~~    ~~~
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]    |
[INFO] [stdout] 58 |     if let Some(adjs) = path.get(current) {
[INFO] [stdout]    |     ~~~~~~~~~~~~    ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]   --> src/solutions/year_2021/day12.rs:99:17
[INFO] [stdout]    |
[INFO] [stdout] 99 |     for adjs in path.get(current) {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]    |
[INFO] [stdout] 99 |     while let Some(adjs) = path.get(current) {
[INFO] [stdout]    |     ~~~~~~~~~~~~~~~    ~~~
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]    |
[INFO] [stdout] 99 |     if let Some(adjs) = path.get(current) {
[INFO] [stdout]    |     ~~~~~~~~~~~~    ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/solutions/year_2021/day16.rs:141:26
[INFO] [stdout]     |
[INFO] [stdout] 141 |                 for p in packet.1 {
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 141 |                 while let Some(p) = packet.1 {
[INFO] [stdout]     |                 ~~~~~~~~~~~~~~~ ~~~
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 141 |                 if let Some(p) = packet.1 {
[INFO] [stdout]     |                 ~~~~~~~~~~~~ ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/solutions/year_2021/day16.rs:153:26
[INFO] [stdout]     |
[INFO] [stdout] 153 |                 for p in packet.1 {
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 153 |                 while let Some(p) = packet.1 {
[INFO] [stdout]     |                 ~~~~~~~~~~~~~~~ ~~~
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 153 |                 if let Some(p) = packet.1 {
[INFO] [stdout]     |                 ~~~~~~~~~~~~ ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 257 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.98s
[INFO] running `Command { std: "docker" "inspect" "7652612ff85f3ab99f108f8bff58aa70f6fd1c88c61392a2f10e3e630b458120", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7652612ff85f3ab99f108f8bff58aa70f6fd1c88c61392a2f10e3e630b458120", kill_on_drop: false }`
[INFO] [stdout] 7652612ff85f3ab99f108f8bff58aa70f6fd1c88c61392a2f10e3e630b458120
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6b2065e48922d96b544693eaa6737d5c4628cb2efecc7b6be1f848e4ac463f34
[INFO] running `Command { std: "docker" "start" "-a" "6b2065e48922d96b544693eaa6737d5c4628cb2efecc7b6be1f848e4ac463f34", kill_on_drop: false }`
[INFO] [stderr]    Compiling advent_of_code v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/solutions/year_2023/day2.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 |         if (counts(&re_green, line, 13) && counts(&re_red, line, 12) && counts(&re_blue, line, 14)) {
[INFO] [stdout]    |            ^                                                                                      ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 18 -         if (counts(&re_green, line, 13) && counts(&re_red, line, 12) && counts(&re_blue, line, 14)) {
[INFO] [stdout] 18 +         if counts(&re_green, line, 13) && counts(&re_red, line, 12) && counts(&re_blue, line, 14) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/solutions/year_2023/day2.rs:32:16
[INFO] [stdout]    |
[INFO] [stdout] 32 |             if (digit_match.as_str().parse::<i32>().unwrap() > max) {
[INFO] [stdout]    |                ^                                                  ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 32 -             if (digit_match.as_str().parse::<i32>().unwrap() > max) {
[INFO] [stdout] 32 +             if digit_match.as_str().parse::<i32>().unwrap() > max {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 |         if (new_y < height && new_y >= 0 && new_x >= 0 && new_x < width) {
[INFO] [stdout]    |            ^                                                           ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 54 -         if (new_y < height && new_y >= 0 && new_x >= 0 && new_x < width) {
[INFO] [stdout] 54 +         if new_y < height && new_y >= 0 && new_x >= 0 && new_x < width {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:55:16
[INFO] [stdout]    |
[INFO] [stdout] 55 |             if (!map[new_y as usize][new_x as usize].is_ascii_digit()
[INFO] [stdout]    |                ^
[INFO] [stdout] 56 |                 && map[new_y as usize][new_x as usize] != '.') {
[INFO] [stdout]    |                                                              ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 55 ~             if !map[new_y as usize][new_x as usize].is_ascii_digit()
[INFO] [stdout] 56 ~                 && map[new_y as usize][new_x as usize] != '.' {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 |     if (x >= width || !map[y][x].is_ascii_digit()) {
[INFO] [stdout]    |        ^                                         ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 66 -     if (x >= width || !map[y][x].is_ascii_digit()) {
[INFO] [stdout] 66 +     if x >= width || !map[y][x].is_ascii_digit() {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 |     if (map[y][x].is_ascii_digit()) {
[INFO] [stdout]    |        ^                          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 70 -     if (map[y][x].is_ascii_digit()) {
[INFO] [stdout] 70 +     if map[y][x].is_ascii_digit() {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/solutions/year_2023/day3.rs:128:12
[INFO] [stdout]     |
[INFO] [stdout] 128 |         if (new_y < height && new_y >= 0 && new_x >= 0 && new_x < width) {
[INFO] [stdout]     |            ^                                                           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 128 -         if (new_y < height && new_y >= 0 && new_x >= 0 && new_x < width) {
[INFO] [stdout] 128 +         if new_y < height && new_y >= 0 && new_x >= 0 && new_x < width {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/solutions/year_2023/day3.rs:129:16
[INFO] [stdout]     |
[INFO] [stdout] 129 |             if (!map[new_y as usize][new_x as usize].is_ascii_digit()
[INFO] [stdout]     |                ^
[INFO] [stdout] 130 |                 && map[new_y as usize][new_x as usize] == '*') {
[INFO] [stdout]     |                                                              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 129 ~             if !map[new_y as usize][new_x as usize].is_ascii_digit()
[INFO] [stdout] 130 ~                 && map[new_y as usize][new_x as usize] == '*' {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/solutions/year_2023/day3.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 |     if (x >= width || !map[y][x].is_ascii_digit()) {
[INFO] [stdout]     |        ^                                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 142 -     if (x >= width || !map[y][x].is_ascii_digit()) {
[INFO] [stdout] 142 +     if x >= width || !map[y][x].is_ascii_digit() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/solutions/year_2023/day3.rs:155:8
[INFO] [stdout]     |
[INFO] [stdout] 155 |     if (map[y][x].is_ascii_digit()) {
[INFO] [stdout]     |        ^                          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 155 -     if (map[y][x].is_ascii_digit()) {
[INFO] [stdout] 155 +     if map[y][x].is_ascii_digit() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Not`
[INFO] [stdout]  --> src/solutions/year_2023/day10.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::Not;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/solutions/year_2023/day11.rs:110:36
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 let expand_count = ((r2 - r1).abs() );
[INFO] [stdout]     |                                    ^               ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 110 -                 let expand_count = ((r2 - r1).abs() );
[INFO] [stdout] 110 +                 let expand_count = (r2 - r1).abs();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/solutions/year_2023/day11.rs:127:36
[INFO] [stdout]     |
[INFO] [stdout] 127 |                 let expand_count = ((c2 - c1).abs() );
[INFO] [stdout]     |                                    ^               ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 127 -                 let expand_count = ((c2 - c1).abs() );
[INFO] [stdout] 127 +                 let expand_count = (c2 - c1).abs();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:64:17
[INFO] [stdout]    |
[INFO] [stdout] 64 | fn trace_number(mut current: String, y: usize, x: usize, map: &Vec<Vec<char>>, visited: &mut Vec<Vec<bool>>, is_near_symbol: bool) -> i64 {
[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/solutions/year_2023/day3.rs:138:18
[INFO] [stdout]     |
[INFO] [stdout] 138 | fn trace_number2(mut current: String, y: usize, x: usize, map: &Vec<Vec<char>>, visited: &mut Vec<Vec<bool>>,
[INFO] [stdout]     |                  ----^^^^^^^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]   --> src/solutions/year_2023/day7.rs:27:18
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn eq(&self, other: &Self) -> bool {
[INFO] [stdout]    |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[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/solutions/year_2023/day7.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 142 |     let mut lines = content.lines();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/solutions/year_2023/day7.rs:163:18
[INFO] [stdout]     |
[INFO] [stdout] 163 |     fn eq(&self, other: &Self) -> bool {
[INFO] [stdout]     |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/year_2023/day7.rs:291:9
[INFO] [stdout]     |
[INFO] [stdout] 291 |     let mut lines = content.lines();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2023/day8.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let mut iter = lines.skip(1);
[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/solutions/year_2023/day8.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let mut iter = lines.skip(1);
[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/solutions/year_2023/day9.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let mut lines = content.lines();
[INFO] [stdout]   |         ----^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2023/day9.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let mut lines = content.lines();
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/solutions/year_2023/day10.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let mut lines = content.lines();
[INFO] [stdout]   |         ----^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/year_2023/day10.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 147 |     let mut lines = content.lines();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/solutions/year_2023/day11.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let mut lines = content.lines();
[INFO] [stdout]   |         ----^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2023/day11.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let mut lines = content.lines();
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.deref()` on a double reference, which returns `&year_2020::day2::Input` instead of dereferencing the inner type
[INFO] [stdout]   --> src/solutions/year_2020/day2.rs:60:40
[INFO] [stdout]    |
[INFO] [stdout] 60 |     inputs.iter().filter(|x| is_valid(x.deref())).count()
[INFO] [stdout]    |                                        ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]   --> src/solutions/year_2021/day12.rs:58:17
[INFO] [stdout]    |
[INFO] [stdout] 58 |     for adjs in path.get(current) {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(for_loops_over_fallibles)]` on by default
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]    |
[INFO] [stdout] 58 |     while let Some(adjs) = path.get(current) {
[INFO] [stdout]    |     ~~~~~~~~~~~~~~~    ~~~
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]    |
[INFO] [stdout] 58 |     if let Some(adjs) = path.get(current) {
[INFO] [stdout]    |     ~~~~~~~~~~~~    ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]   --> src/solutions/year_2021/day12.rs:99:17
[INFO] [stdout]    |
[INFO] [stdout] 99 |     for adjs in path.get(current) {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]    |
[INFO] [stdout] 99 |     while let Some(adjs) = path.get(current) {
[INFO] [stdout]    |     ~~~~~~~~~~~~~~~    ~~~
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]    |
[INFO] [stdout] 99 |     if let Some(adjs) = path.get(current) {
[INFO] [stdout]    |     ~~~~~~~~~~~~    ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/solutions/year_2021/day16.rs:141:26
[INFO] [stdout]     |
[INFO] [stdout] 141 |                 for p in packet.1 {
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 141 |                 while let Some(p) = packet.1 {
[INFO] [stdout]     |                 ~~~~~~~~~~~~~~~ ~~~
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 141 |                 if let Some(p) = packet.1 {
[INFO] [stdout]     |                 ~~~~~~~~~~~~ ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/solutions/year_2021/day16.rs:153:26
[INFO] [stdout]     |
[INFO] [stdout] 153 |                 for p in packet.1 {
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 153 |                 while let Some(p) = packet.1 {
[INFO] [stdout]     |                 ~~~~~~~~~~~~~~~ ~~~
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 153 |                 if let Some(p) = packet.1 {
[INFO] [stdout]     |                 ~~~~~~~~~~~~ ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 32 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 3.18s
[INFO] running `Command { std: "docker" "inspect" "6b2065e48922d96b544693eaa6737d5c4628cb2efecc7b6be1f848e4ac463f34", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6b2065e48922d96b544693eaa6737d5c4628cb2efecc7b6be1f848e4ac463f34", kill_on_drop: false }`
[INFO] [stdout] 6b2065e48922d96b544693eaa6737d5c4628cb2efecc7b6be1f848e4ac463f34
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 445819af66b744ce1e15414d2f3d7a94b7aa2c8c73f385ef386c1c74f568e836
[INFO] running `Command { std: "docker" "start" "-a" "445819af66b744ce1e15414d2f3d7a94b7aa2c8c73f385ef386c1c74f568e836", kill_on_drop: false }`
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/solutions/year_2023/day2.rs:18:12
[INFO] [stderr]    |
[INFO] [stderr] 18 |         if (counts(&re_green, line, 13) && counts(&re_red, line, 12) && counts(&re_blue, line, 14)) {
[INFO] [stderr]    |            ^                                                                                      ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 18 -         if (counts(&re_green, line, 13) && counts(&re_red, line, 12) && counts(&re_blue, line, 14)) {
[INFO] [stderr] 18 +         if counts(&re_green, line, 13) && counts(&re_red, line, 12) && counts(&re_blue, line, 14) {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/solutions/year_2023/day2.rs:32:16
[INFO] [stderr]    |
[INFO] [stderr] 32 |             if (digit_match.as_str().parse::<i32>().unwrap() > max) {
[INFO] [stderr]    |                ^                                                  ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 32 -             if (digit_match.as_str().parse::<i32>().unwrap() > max) {
[INFO] [stderr] 32 +             if digit_match.as_str().parse::<i32>().unwrap() > max {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/solutions/year_2023/day3.rs:54:12
[INFO] [stderr]    |
[INFO] [stderr] 54 |         if (new_y < height && new_y >= 0 && new_x >= 0 && new_x < width) {
[INFO] [stderr]    |            ^                                                           ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 54 -         if (new_y < height && new_y >= 0 && new_x >= 0 && new_x < width) {
[INFO] [stderr] 54 +         if new_y < height && new_y >= 0 && new_x >= 0 && new_x < width {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/solutions/year_2023/day3.rs:55:16
[INFO] [stderr]    |
[INFO] [stderr] 55 |             if (!map[new_y as usize][new_x as usize].is_ascii_digit()
[INFO] [stderr]    |                ^
[INFO] [stderr] 56 |                 && map[new_y as usize][new_x as usize] != '.') {
[INFO] [stderr]    |                                                              ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 55 ~             if !map[new_y as usize][new_x as usize].is_ascii_digit()
[INFO] [stderr] 56 ~                 && map[new_y as usize][new_x as usize] != '.' {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/solutions/year_2023/day3.rs:66:8
[INFO] [stderr]    |
[INFO] [stderr] 66 |     if (x >= width || !map[y][x].is_ascii_digit()) {
[INFO] [stderr]    |        ^                                         ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 66 -     if (x >= width || !map[y][x].is_ascii_digit()) {
[INFO] [stderr] 66 +     if x >= width || !map[y][x].is_ascii_digit() {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/solutions/year_2023/day3.rs:70:8
[INFO] [stderr]    |
[INFO] [stderr] 70 |     if (map[y][x].is_ascii_digit()) {
[INFO] [stderr]    |        ^                          ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 70 -     if (map[y][x].is_ascii_digit()) {
[INFO] [stderr] 70 +     if map[y][x].is_ascii_digit() {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/solutions/year_2023/day3.rs:128:12
[INFO] [stderr]     |
[INFO] [stderr] 128 |         if (new_y < height && new_y >= 0 && new_x >= 0 && new_x < width) {
[INFO] [stderr]     |            ^                                                           ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 128 -         if (new_y < height && new_y >= 0 && new_x >= 0 && new_x < width) {
[INFO] [stderr] 128 +         if new_y < height && new_y >= 0 && new_x >= 0 && new_x < width {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/solutions/year_2023/day3.rs:129:16
[INFO] [stderr]     |
[INFO] [stderr] 129 |             if (!map[new_y as usize][new_x as usize].is_ascii_digit()
[INFO] [stderr]     |                ^
[INFO] [stderr] 130 |                 && map[new_y as usize][new_x as usize] == '*') {
[INFO] [stderr]     |                                                              ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 129 ~             if !map[new_y as usize][new_x as usize].is_ascii_digit()
[INFO] [stderr] 130 ~                 && map[new_y as usize][new_x as usize] == '*' {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/solutions/year_2023/day3.rs:142:8
[INFO] [stderr]     |
[INFO] [stderr] 142 |     if (x >= width || !map[y][x].is_ascii_digit()) {
[INFO] [stderr]     |        ^                                         ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 142 -     if (x >= width || !map[y][x].is_ascii_digit()) {
[INFO] [stderr] 142 +     if x >= width || !map[y][x].is_ascii_digit() {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/solutions/year_2023/day3.rs:155:8
[INFO] [stderr]     |
[INFO] [stderr] 155 |     if (map[y][x].is_ascii_digit()) {
[INFO] [stderr]     |        ^                          ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 155 -     if (map[y][x].is_ascii_digit()) {
[INFO] [stderr] 155 +     if map[y][x].is_ascii_digit() {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::ops::Not`
[INFO] [stderr]  --> src/solutions/year_2023/day10.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::ops::Not;
[INFO] [stderr]   |     ^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/solutions/year_2023/day11.rs:110:36
[INFO] [stderr]     |
[INFO] [stderr] 110 |                 let expand_count = ((r2 - r1).abs() );
[INFO] [stderr]     |                                    ^               ^^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 110 -                 let expand_count = ((r2 - r1).abs() );
[INFO] [stderr] 110 +                 let expand_count = (r2 - r1).abs();
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/solutions/year_2023/day11.rs:127:36
[INFO] [stderr]     |
[INFO] [stderr] 127 |                 let expand_count = ((c2 - c1).abs() );
[INFO] [stderr]     |                                    ^               ^^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 127 -                 let expand_count = ((c2 - c1).abs() );
[INFO] [stderr] 127 +                 let expand_count = (c2 - c1).abs();
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/solutions/year_2023/day3.rs:64:17
[INFO] [stderr]    |
[INFO] [stderr] 64 | fn trace_number(mut current: String, y: usize, x: usize, map: &Vec<Vec<char>>, visited: &mut Vec<Vec<bool>>, is_near_symbol: bool) -> i64 {
[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/solutions/year_2023/day3.rs:138:18
[INFO] [stderr]     |
[INFO] [stderr] 138 | fn trace_number2(mut current: String, y: usize, x: usize, map: &Vec<Vec<char>>, visited: &mut Vec<Vec<bool>>,
[INFO] [stderr]     |                  ----^^^^^^^
[INFO] [stderr]     |                  |
[INFO] [stderr]     |                  help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `other`
[INFO] [stderr]   --> src/solutions/year_2023/day7.rs:27:18
[INFO] [stderr]    |
[INFO] [stderr] 27 |     fn eq(&self, other: &Self) -> bool {
[INFO] [stderr]    |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[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/solutions/year_2023/day7.rs:142:9
[INFO] [stderr]     |
[INFO] [stderr] 142 |     let mut lines = content.lines();
[INFO] [stderr]     |         ----^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `other`
[INFO] [stderr]    --> src/solutions/year_2023/day7.rs:163:18
[INFO] [stderr]     |
[INFO] [stderr] 163 |     fn eq(&self, other: &Self) -> bool {
[INFO] [stderr]     |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/solutions/year_2023/day7.rs:291:9
[INFO] [stderr]     |
[INFO] [stderr] 291 |     let mut lines = content.lines();
[INFO] [stderr]     |         ----^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/solutions/year_2023/day8.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr] 10 |     let mut iter = lines.skip(1);
[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/solutions/year_2023/day8.rs:41:9
[INFO] [stderr]    |
[INFO] [stderr] 41 |     let mut iter = lines.skip(1);
[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/solutions/year_2023/day9.rs:6:9
[INFO] [stderr]   |
[INFO] [stderr] 6 |     let mut lines = content.lines();
[INFO] [stderr]   |         ----^^^^^
[INFO] [stderr]   |         |
[INFO] [stderr]   |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/solutions/year_2023/day9.rs:42:9
[INFO] [stderr]    |
[INFO] [stderr] 42 |     let mut lines = content.lines();
[INFO] [stderr]    |         ----^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]  --> src/solutions/year_2023/day10.rs:8:9
[INFO] [stderr]   |
[INFO] [stderr] 8 |     let mut lines = content.lines();
[INFO] [stderr]   |         ----^^^^^
[INFO] [stderr]   |         |
[INFO] [stderr]   |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/solutions/year_2023/day10.rs:147:9
[INFO] [stderr]     |
[INFO] [stderr] 147 |     let mut lines = content.lines();
[INFO] [stderr]     |         ----^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]  --> src/solutions/year_2023/day11.rs:6:9
[INFO] [stderr]   |
[INFO] [stderr] 6 |     let mut lines = content.lines();
[INFO] [stderr]   |         ----^^^^^
[INFO] [stderr]   |         |
[INFO] [stderr]   |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/solutions/year_2023/day11.rs:64:9
[INFO] [stderr]    |
[INFO] [stderr] 64 |     let mut lines = content.lines();
[INFO] [stderr]    |         ----^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: using `.deref()` on a double reference, which returns `&year_2020::day2::Input` instead of dereferencing the inner type
[INFO] [stderr]   --> src/solutions/year_2020/day2.rs:60:40
[INFO] [stderr]    |
[INFO] [stderr] 60 |     inputs.iter().filter(|x| is_valid(x.deref())).count()
[INFO] [stderr]    |                                        ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stderr]   --> src/solutions/year_2021/day12.rs:58:17
[INFO] [stderr]    |
[INFO] [stderr] 58 |     for adjs in path.get(current) {
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(for_loops_over_fallibles)]` on by default
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]    |
[INFO] [stderr] 58 |     while let Some(adjs) = path.get(current) {
[INFO] [stderr]    |     ~~~~~~~~~~~~~~~    ~~~
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]    |
[INFO] [stderr] 58 |     if let Some(adjs) = path.get(current) {
[INFO] [stderr]    |     ~~~~~~~~~~~~    ~~~
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stderr]   --> src/solutions/year_2021/day12.rs:99:17
[INFO] [stderr]    |
[INFO] [stderr] 99 |     for adjs in path.get(current) {
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]    |
[INFO] [stderr] 99 |     while let Some(adjs) = path.get(current) {
[INFO] [stderr]    |     ~~~~~~~~~~~~~~~    ~~~
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]    |
[INFO] [stderr] 99 |     if let Some(adjs) = path.get(current) {
[INFO] [stderr]    |     ~~~~~~~~~~~~    ~~~
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stderr]    --> src/solutions/year_2021/day16.rs:141:26
[INFO] [stderr]     |
[INFO] [stderr] 141 |                 for p in packet.1 {
[INFO] [stderr]     |                          ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]     |
[INFO] [stderr] 141 |                 while let Some(p) = packet.1 {
[INFO] [stderr]     |                 ~~~~~~~~~~~~~~~ ~~~
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]     |
[INFO] [stderr] 141 |                 if let Some(p) = packet.1 {
[INFO] [stderr]     |                 ~~~~~~~~~~~~ ~~~
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stderr]    --> src/solutions/year_2021/day16.rs:153:26
[INFO] [stderr]     |
[INFO] [stderr] 153 |                 for p in packet.1 {
[INFO] [stderr]     |                          ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]     |
[INFO] [stderr] 153 |                 while let Some(p) = packet.1 {
[INFO] [stderr]     |                 ~~~~~~~~~~~~~~~ ~~~
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]     |
[INFO] [stderr] 153 |                 if let Some(p) = packet.1 {
[INFO] [stderr]     |                 ~~~~~~~~~~~~ ~~~
[INFO] [stderr] 
[INFO] [stderr] warning: `advent_of_code` (bin "advent_of_code" test) generated 32 warnings (run `cargo fix --bin "advent_of_code" --tests` to apply 25 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.02s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/advent_of_code-122c09934175ac1c)
[INFO] [stdout] 
[INFO] [stdout] running 102 tests
[INFO] [stdout] test solutions::year_2020::day10::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2020::day12::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day12::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2020::day13::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day10::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day13::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2020::day16::tests::test ... ok
[INFO] [stdout] test solutions::year_2020::day15::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day16::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2020::day14::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day18::tests::test ... ok
[INFO] [stdout] test solutions::year_2020::day17::tests::test ... ok
[INFO] [stdout] test solutions::year_2020::day18::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2020::day1::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2020::day1::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2020::day19::tests::test ... ok
[INFO] [stdout] test solutions::year_2020::day21::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day21::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2020::day22::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day19::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2020::day23::tests::test ... ok
[INFO] [stdout] test solutions::year_2020::day20::tests::test ... ok
[INFO] [stdout] test solutions::year_2020::day11::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day14::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2020::day2::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2020::day2::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2020::day3::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2020::day3::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2020::day17::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2020::day11::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2020::day25::tests::test ... ok
[INFO] [stdout] test solutions::year_2020::day5::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2020::day5::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day6::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day4::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2020::day7::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day8::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day9::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day9::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2020::day8::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2021::day10::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day11::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day10::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2021::day11::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2021::day12::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day13::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day13::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2020::day7::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2021::day14::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day15::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day14::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2021::day16::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day16::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2021::day17::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day17::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2021::day1::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day1::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2021::day2::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day2::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2021::day3::test::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day3::test::test_second ... ok
[INFO] [stdout] test solutions::year_2021::day4::test::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day4::test::test_second ... ok
[INFO] [stdout] test solutions::year_2020::day4::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2021::day5::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day6::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day6::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2021::day7::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day7::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2021::day8::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day15::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2020::day24::tests::test ... ok
[INFO] [stdout] test solutions::year_2021::day9::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day9::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2021::day5::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2023::day10::test::test_day10 ... ok
[INFO] [stdout] test solutions::year_2023::day11::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2023::day1::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2023::day11::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2023::day1::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2023::day2::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2023::day3::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2023::day2::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2023::day3::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2023::day4::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2023::day5::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2023::day4::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2023::day6::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day12::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2023::day7::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2023::day7::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2023::day8::tests::test_day8 ... ok
[INFO] [stdout] test solutions::year_2023::day8::tests::test_day8_2 ... ok
[INFO] [stdout] test solutions::year_2023::day9::test::test_day9 ... ok
[INFO] [stdout] test solutions::year_2023::day9::test::test_day9_2 ... ok
[INFO] [stdout] test solutions::year_2023::day10::test::test_day10_2 ... ok
[INFO] [stdout] test solutions::year_2023::day6::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2020::day22::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2020::day23::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2021::day8::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2020::day15::tests::test2 has been running for over 60 seconds
[INFO] [stdout] test solutions::year_2023::day5::tests::test_second has been running for over 60 seconds
[INFO] [stdout] test solutions::year_2020::day15::tests::test2 ... ok
[ERROR] error running command: no output for 300 seconds
[INFO] running `Command { std: "docker" "inspect" "445819af66b744ce1e15414d2f3d7a94b7aa2c8c73f385ef386c1c74f568e836", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "445819af66b744ce1e15414d2f3d7a94b7aa2c8c73f385ef386c1c74f568e836", kill_on_drop: false }`
[INFO] [stdout] 445819af66b744ce1e15414d2f3d7a94b7aa2c8c73f385ef386c1c74f568e836
