[INFO] cloning repository https://github.com/dprgarner/advent-of-code-2022
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dprgarner/advent-of-code-2022" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdprgarner%2Fadvent-of-code-2022", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdprgarner%2Fadvent-of-code-2022'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 132702e1c6eeb8c1205b9851a689c67b6398c855
[INFO] testing dprgarner/advent-of-code-2022 against try#9f93af291970322f4f1c6315ccde4d7078201159 for pr-146098-6
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdprgarner%2Fadvent-of-code-2022" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/dprgarner/advent-of-code-2022
[INFO] finished tweaking git repo https://github.com/dprgarner/advent-of-code-2022
[INFO] tweaked toml for git repo https://github.com/dprgarner/advent-of-code-2022 written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/dprgarner/advent-of-code-2022 on toolchain 9f93af291970322f4f1c6315ccde4d7078201159
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9f93af291970322f4f1c6315ccde4d7078201159" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/dprgarner/advent-of-code-2022 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" "+9f93af291970322f4f1c6315ccde4d7078201159" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+9f93af291970322f4f1c6315ccde4d7078201159" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 591cc485cff2a55c88f4e5e80c04037ce528133a7e377b3c688131fe1b22195c
[INFO] running `Command { std: "docker" "start" "-a" "591cc485cff2a55c88f4e5e80c04037ce528133a7e377b3c688131fe1b22195c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "591cc485cff2a55c88f4e5e80c04037ce528133a7e377b3c688131fe1b22195c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "591cc485cff2a55c88f4e5e80c04037ce528133a7e377b3c688131fe1b22195c", kill_on_drop: false }`
[INFO] [stdout] 591cc485cff2a55c88f4e5e80c04037ce528133a7e377b3c688131fe1b22195c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+9f93af291970322f4f1c6315ccde4d7078201159" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e65a65489bb0e94056defc1f530d319028e600c66c202d9c65b51cabcc89033e
[INFO] running `Command { std: "docker" "start" "-a" "e65a65489bb0e94056defc1f530d319028e600c66c202d9c65b51cabcc89033e", kill_on_drop: false }`
[INFO] [stderr]    Compiling aho-corasick v0.7.20
[INFO] [stderr]    Compiling regex-syntax v0.6.28
[INFO] [stderr]    Compiling regex v1.7.0
[INFO] [stderr]    Compiling advent-of-code-2022 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]   --> src/aoc_24.rs:91:26
[INFO] [stdout]    |
[INFO] [stdout] 91 |                 .map(|d| (position + d))
[INFO] [stdout]    |                          ^            ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 91 -                 .map(|d| (position + d))
[INFO] [stdout] 91 +                 .map(|d| position + d )
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `1` is never read
[INFO] [stdout]  --> src/aoc_07/commands.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 |     File(u32, String),
[INFO] [stdout]   |     ----      ^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ListDirectoryOutput` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 4 -     File(u32, String),
[INFO] [stdout] 4 +     File(u32, ()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `print` is never used
[INFO] [stdout]   --> src/aoc_22/map.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub trait MonkeyMap {
[INFO] [stdout]    |           --------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 10 |     fn print(&self, position: &Position);
[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/aoc_02.rs:6:29
[INFO] [stdout]   |
[INFO] [stdout] 6 |         for (str1, str2) in line.split_once(" ") {
[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] 6 -         for (str1, str2) in line.split_once(" ") {
[INFO] [stdout] 6 +         while let Some((str1, str2)) = line.split_once(" ") {
[INFO] [stdout]   |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]   |
[INFO] [stdout] 6 -         for (str1, str2) in line.split_once(" ") {
[INFO] [stdout] 6 +         if let Some((str1, str2)) = line.split_once(" ") {
[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/aoc_02.rs:32:29
[INFO] [stdout]    |
[INFO] [stdout] 32 |         for (str1, str2) in line.split_once(" ") {
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]    |
[INFO] [stdout] 32 -         for (str1, str2) in line.split_once(" ") {
[INFO] [stdout] 32 +         while let Some((str1, str2)) = line.split_once(" ") {
[INFO] [stdout]    |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]    |
[INFO] [stdout] 32 -         for (str1, str2) in line.split_once(" ") {
[INFO] [stdout] 32 +         if let Some((str1, str2)) = line.split_once(" ") {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.84s
[INFO] running `Command { std: "docker" "inspect" "e65a65489bb0e94056defc1f530d319028e600c66c202d9c65b51cabcc89033e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e65a65489bb0e94056defc1f530d319028e600c66c202d9c65b51cabcc89033e", kill_on_drop: false }`
[INFO] [stdout] e65a65489bb0e94056defc1f530d319028e600c66c202d9c65b51cabcc89033e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+9f93af291970322f4f1c6315ccde4d7078201159" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 988ab5c6cad8432e415876c61f36d372dd496c36bc7c48143339565b2eae8430
[INFO] running `Command { std: "docker" "start" "-a" "988ab5c6cad8432e415876c61f36d372dd496c36bc7c48143339565b2eae8430", kill_on_drop: false }`
[INFO] [stderr]    Compiling advent-of-code-2022 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]   --> src/aoc_24.rs:91:26
[INFO] [stdout]    |
[INFO] [stdout] 91 |                 .map(|d| (position + d))
[INFO] [stdout]    |                          ^            ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 91 -                 .map(|d| (position + d))
[INFO] [stdout] 91 +                 .map(|d| position + d )
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `1` is never read
[INFO] [stdout]  --> src/aoc_07/commands.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 |     File(u32, String),
[INFO] [stdout]   |     ----      ^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ListDirectoryOutput` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 4 -     File(u32, String),
[INFO] [stdout] 4 +     File(u32, ()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `print` is never used
[INFO] [stdout]   --> src/aoc_22/map.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub trait MonkeyMap {
[INFO] [stdout]    |           --------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 10 |     fn print(&self, position: &Position);
[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/aoc_02.rs:6:29
[INFO] [stdout]   |
[INFO] [stdout] 6 |         for (str1, str2) in line.split_once(" ") {
[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] 6 -         for (str1, str2) in line.split_once(" ") {
[INFO] [stdout] 6 +         while let Some((str1, str2)) = line.split_once(" ") {
[INFO] [stdout]   |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]   |
[INFO] [stdout] 6 -         for (str1, str2) in line.split_once(" ") {
[INFO] [stdout] 6 +         if let Some((str1, str2)) = line.split_once(" ") {
[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/aoc_02.rs:32:29
[INFO] [stdout]    |
[INFO] [stdout] 32 |         for (str1, str2) in line.split_once(" ") {
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]    |
[INFO] [stdout] 32 -         for (str1, str2) in line.split_once(" ") {
[INFO] [stdout] 32 +         while let Some((str1, str2)) = line.split_once(" ") {
[INFO] [stdout]    |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]    |
[INFO] [stdout] 32 -         for (str1, str2) in line.split_once(" ") {
[INFO] [stdout] 32 +         if let Some((str1, str2)) = line.split_once(" ") {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.46s
[INFO] running `Command { std: "docker" "inspect" "988ab5c6cad8432e415876c61f36d372dd496c36bc7c48143339565b2eae8430", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "988ab5c6cad8432e415876c61f36d372dd496c36bc7c48143339565b2eae8430", kill_on_drop: false }`
[INFO] [stdout] 988ab5c6cad8432e415876c61f36d372dd496c36bc7c48143339565b2eae8430
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+9f93af291970322f4f1c6315ccde4d7078201159" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 92f6a24fe82ad04fdf01eec5600f3a12354e8677f4ebea4d8c8cddb5870397ad
[INFO] running `Command { std: "docker" "start" "-a" "92f6a24fe82ad04fdf01eec5600f3a12354e8677f4ebea4d8c8cddb5870397ad", kill_on_drop: false }`
[INFO] [stderr] warning: unnecessary parentheses around closure body
[INFO] [stderr]   --> src/aoc_24.rs:91:26
[INFO] [stderr]    |
[INFO] [stderr] 91 |                 .map(|d| (position + d))
[INFO] [stderr]    |                          ^            ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 91 -                 .map(|d| (position + d))
[INFO] [stderr] 91 +                 .map(|d| position + d )
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: field `1` is never read
[INFO] [stderr]  --> src/aoc_07/commands.rs:4:15
[INFO] [stderr]   |
[INFO] [stderr] 4 |     File(u32, String),
[INFO] [stderr]   |     ----      ^^^^^^
[INFO] [stderr]   |     |
[INFO] [stderr]   |     field in this variant
[INFO] [stderr]   |
[INFO] [stderr]   = note: `ListDirectoryOutput` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]   |
[INFO] [stderr] 4 -     File(u32, String),
[INFO] [stderr] 4 +     File(u32, ()),
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: method `print` is never used
[INFO] [stderr]   --> src/aoc_22/map.rs:10:8
[INFO] [stderr]    |
[INFO] [stderr]  6 | pub trait MonkeyMap {
[INFO] [stderr]    |           --------- method in this trait
[INFO] [stderr] ...
[INFO] [stderr] 10 |     fn print(&self, position: &Position);
[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/aoc_02.rs:6:29
[INFO] [stderr]   |
[INFO] [stderr] 6 |         for (str1, str2) in line.split_once(" ") {
[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] 6 -         for (str1, str2) in line.split_once(" ") {
[INFO] [stderr] 6 +         while let Some((str1, str2)) = line.split_once(" ") {
[INFO] [stderr]   |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]   |
[INFO] [stderr] 6 -         for (str1, str2) in line.split_once(" ") {
[INFO] [stderr] 6 +         if let Some((str1, str2)) = line.split_once(" ") {
[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/aoc_02.rs:32:29
[INFO] [stderr]    |
[INFO] [stderr] 32 |         for (str1, str2) in line.split_once(" ") {
[INFO] [stderr]    |                             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]    |
[INFO] [stderr] 32 -         for (str1, str2) in line.split_once(" ") {
[INFO] [stderr] 32 +         while let Some((str1, str2)) = line.split_once(" ") {
[INFO] [stderr]    |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]    |
[INFO] [stderr] 32 -         for (str1, str2) in line.split_once(" ") {
[INFO] [stderr] 32 +         if let Some((str1, str2)) = line.split_once(" ") {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: `advent-of-code-2022` (bin "advent-of-code-2022" test) generated 5 warnings (run `cargo fix --bin "advent-of-code-2022" -p advent-of-code-2022 --tests` to apply 1 suggestion)
[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_2022-d2152f0708efc3a7)
[INFO] [stdout] 
[INFO] [stdout] running 89 tests
[INFO] [stdout] test aoc_12::tests::it_calculates_neighbours ... ok
[INFO] [stdout] test aoc_12::tests::returns_no_soln_for_a ... ok
[INFO] [stdout] test aoc_12::tests::solves_a ... ok
[INFO] [stdout] test aoc_12::tests::it_parses_heights ... ok
[INFO] [stdout] test aoc_13::signal::tests::it_finds_closing_brackets ... ok
[INFO] [stdout] test aoc_13::signal::tests::it_orders_different_list_sizes ... ok
[INFO] [stdout] test aoc_12::tests::solves_b ... ok
[INFO] [stdout] test aoc_13::signal::tests::it_orders_lists_against_ints ... ok
[INFO] [stdout] test aoc_13::signal::tests::it_orders_lists_against_lists ... ok
[INFO] [stdout] test aoc_13::signal::tests::it_orders_same_list_size ... ok
[INFO] [stdout] test aoc_13::signal::tests::it_parses_a_flat_list ... ok
[INFO] [stdout] test aoc_13::signal::tests::it_parses_a_nested_list ... ok
[INFO] [stdout] test aoc_13::signal::tests::it_parses_a_string_to_tokens ... ok
[INFO] [stdout] test aoc_13::signal::tests::it_parses_an_empty_list ... ok
[INFO] [stdout] test aoc_13::signal::tests::it_parses_multiple_nested_lists ... ok
[INFO] [stdout] test aoc_13::signal::tests::it_parses_the_next_token ... ok
[INFO] [stdout] test aoc_13::signal::tests::it_rejects_malformed_strings ... ok
[INFO] [stdout] test aoc_13::signal::tests::it_rejects_unmatched_closing_brackets ... ok
[INFO] [stdout] test aoc_13::tests::it_parses_signal_pairs ... ok
[INFO] [stdout] test aoc_13::tests::it_runs_a ... ok
[INFO] [stdout] test aoc_13::tests::it_runs_b ... ok
[INFO] [stdout] test aoc_15::tests::it_parses_a_line ... ok
[INFO] [stdout] test aoc_15::tests::it_counts_beaconless_squares_in_row_10 ... ok
[INFO] [stdout] test aoc_16::volcano::tests::it_parses_volcano_line_with_one_valve ... ok
[INFO] [stdout] test aoc_16::volcano::tests::it_parses_volcano_line ... ok
[INFO] [stdout] test aoc_18::tests::it_parses_cubes ... ok
[INFO] [stdout] test aoc_18::tests::it_runs_a ... ok
[INFO] [stdout] test aoc_18::tests::it_runs_a_tiny ... ok
[INFO] [stdout] test aoc_18::tests::it_runs_b_small ... ok
[INFO] [stdout] test aoc_20::tests::it_runs_b ... ok
[INFO] [stdout] test aoc_18::tests::it_runs_b ... ok
[INFO] [stdout] test aoc_20::tests::it_runs_a ... ok
[INFO] [stdout] test aoc_20::tests::it_shifts_backwards_back_to_start ... ok
[INFO] [stdout] test aoc_20::tests::it_shifts_around_end ... ok
[INFO] [stdout] test aoc_20::tests::it_shifts_around_end_more ... ok
[INFO] [stdout] test aoc_20::tests::it_shifts_backward ... ok
[INFO] [stdout] test aoc_20::tests::it_shifts_forward_back_to_start ... ok
[INFO] [stdout] test aoc_20::tests::it_shifts_to_end ... ok
[INFO] [stdout] test aoc_19::tests::it_iterates_to_short_soln_2 ... ok
[INFO] [stdout] test aoc_16::tests::it_runs_a ... ok
[INFO] [stdout] test aoc_21::tests::it_parses_a_monkey_name ... ok
[INFO] [stdout] test aoc_16::volcano::tests::it_builds_non_trivial_volcano_flows ... ok
[INFO] [stdout] test aoc_21::tests::it_parses_monkeys ... ok
[INFO] [stdout] test aoc_22::cubic_map::tests::it_consistently_implements_tiny_net ... ok
[INFO] [stdout] test aoc_22::cubic_map::tests::it_parses_a_tiny_cube ... ok
[INFO] [stdout] test aoc_22::cubic_map::tests::it_parses_a_small_cube ... ok
[INFO] [stdout] test aoc_20::tests::it_shifts_to_back_to_start ... ok
[INFO] [stdout] test aoc_20::tests::it_shifts_forward ... ok
[INFO] [stdout] test aoc_22::cubic_map::tests::it_consistently_implements_small_net ... ok
[INFO] [stdout] test aoc_22::cubic_map::tests::it_steps_east_to_south ... ok
[INFO] [stdout] test aoc_22::cubic_map::tests::it_steps_north_to_east ... ok
[INFO] [stdout] test aoc_22::cubic_map::tests::it_steps_north_to_south ... ok
[INFO] [stdout] test aoc_22::cubic_map::tests::it_steps_north_to_west ... ok
[INFO] [stdout] test aoc_19::tests::it_parses_a_blueprint ... ok
[INFO] [stdout] test aoc_22::instruction::tests::it_parses_instructions ... ok
[INFO] [stdout] test aoc_22::tests::it_runs_b ... ignored
[INFO] [stdout] test aoc_19::tests::it_iterates_to_long_soln_1 ... ok
[INFO] [stdout] test aoc_19::tests::it_iterates_to_short_soln_1 ... ok
[INFO] [stdout] test aoc_22::tests::it_navigates_to_a_wall ... ok
[INFO] [stdout] test aoc_22::tests::it_runs_a ... ok
[INFO] [stdout] test aoc_22::cubic_map::tests::it_steps_west_to_north ... ok
[INFO] [stdout] test aoc_22::tests::it_wraps_around_south ... ok
[INFO] [stdout] test aoc_22::tests::it_does_not_wrap_around_into_wall ... ok
[INFO] [stdout] test aoc_22::grid::tests::it_parses_a_grid ... ok
[INFO] [stdout] test aoc_22::tests::it_wraps_around_west ... ok
[INFO] [stdout] test aoc_23::tests::it_iterates_elves_twice ... ok
[INFO] [stdout] test aoc_23::tests::it_iterates_until_stable ... ok
[INFO] [stdout] test aoc_22::cubic_map::tests::it_steps_south_to_east ... ok
[INFO] [stdout] test aoc_16::volcano::tests::it_parses_a_volcano ... ok
[INFO] [stdout] test aoc_23::tests::it_parses_elves ... ok
[INFO] [stdout] test aoc_22::tests::it_wraps_around_north ... ok
[INFO] [stdout] test aoc_23::tests::it_runs_a ... ok
[INFO] [stdout] test aoc_24::blizzard::tests::it_parses_the_blizzard_text ... ok
[INFO] [stdout] test aoc_24::blizzard::tests::it_wraps_blizzards_around ... ok
[INFO] [stdout] test aoc_19::tests::it_iterates_to_long_soln_2 ... ok
[INFO] [stdout] test aoc_24::blizzard::tests::it_iterates_and_returns ... ok
[INFO] [stdout] test aoc_24::blizzard::tests::it_moves_blizzards ... ok
[INFO] [stdout] test aoc_25::tests::it_coverts_decimal_numbers_to_snafu ... ok
[INFO] [stdout] test aoc_25::tests::it_runs_a ... ok
[INFO] [stdout] test aoc_24::tests::it_runs_a ... ok
[INFO] [stdout] test aoc_25::tests::it_coverts_snafu_numbers_to_decimal ... ok
[INFO] [stdout] test aoc_23::tests::it_iterates_elves ... ok
[INFO] [stdout] test aoc_16::volcano::tests::it_builds_distances ... ok
[INFO] [stdout] test aoc_23::tests::it_iterates_elves_thrice ... ok
[INFO] [stdout] test aoc_24::tests::it_creates_a_map ... ok
[INFO] [stdout] test aoc_24::tests::it_runs_b ... ok
[INFO] [stdout] test aoc_23::tests::it_runs_b ... ok
[INFO] [stdout] test aoc_17::tests::it_runs_b ... ok
[INFO] [stdout] test aoc_17::tests::it_runs_a ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 88 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.70s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "92f6a24fe82ad04fdf01eec5600f3a12354e8677f4ebea4d8c8cddb5870397ad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "92f6a24fe82ad04fdf01eec5600f3a12354e8677f4ebea4d8c8cddb5870397ad", kill_on_drop: false }`
[INFO] [stdout] 92f6a24fe82ad04fdf01eec5600f3a12354e8677f4ebea4d8c8cddb5870397ad
