[INFO] cloning repository https://github.com/jpbougie/aoc2019
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jpbougie/aoc2019" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjpbougie%2Faoc2019", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjpbougie%2Faoc2019'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c11ca6c9b9cbf991c51d06684fbdde1636559f48
[INFO] testing jpbougie/aoc2019 against beta-2026-04-21 for beta-1.96-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjpbougie%2Faoc2019" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/jpbougie/aoc2019
[INFO] finished tweaking git repo https://github.com/jpbougie/aoc2019
[INFO] tweaked toml for git repo https://github.com/jpbougie/aoc2019 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/jpbougie/aoc2019 on toolchain beta-2026-04-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/jpbougie/aoc2019 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 399689dd4e1fbb8111a41756db6feaf63c4eee2f2e29799c2f83f1f56f3736b3
[INFO] running `Command { std: "docker" "start" "-a" "399689dd4e1fbb8111a41756db6feaf63c4eee2f2e29799c2f83f1f56f3736b3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "399689dd4e1fbb8111a41756db6feaf63c4eee2f2e29799c2f83f1f56f3736b3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "399689dd4e1fbb8111a41756db6feaf63c4eee2f2e29799c2f83f1f56f3736b3", kill_on_drop: false }`
[INFO] [stdout] 399689dd4e1fbb8111a41756db6feaf63c4eee2f2e29799c2f83f1f56f3736b3
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0104e741b35b8499a73ff5e58f937674e0d93e7e0efefeb76491a220506369e5
[INFO] running `Command { std: "docker" "start" "-a" "0104e741b35b8499a73ff5e58f937674e0d93e7e0efefeb76491a220506369e5", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v0.1.7
[INFO] [stderr]    Compiling memchr v2.2.1
[INFO] [stderr]    Compiling libc v0.2.66
[INFO] [stderr]    Compiling either v1.5.3
[INFO] [stderr]    Compiling regex-syntax v0.6.12
[INFO] [stderr]    Compiling fixedbitset v0.2.0
[INFO] [stderr]    Compiling numtoa v0.1.0
[INFO] [stderr]    Compiling permutohedron v0.2.4
[INFO] [stderr]    Compiling thread_local v0.3.6
[INFO] [stderr]    Compiling itertools v0.8.2
[INFO] [stderr]    Compiling num-traits v0.2.10
[INFO] [stderr]    Compiling num-integer v0.1.41
[INFO] [stderr]    Compiling num-bigint v0.2.3
[INFO] [stderr]    Compiling num-rational v0.2.2
[INFO] [stderr]    Compiling num-complex v0.2.3
[INFO] [stderr]    Compiling num-iter v0.1.39
[INFO] [stderr]    Compiling indexmap v1.3.0
[INFO] [stderr]    Compiling aho-corasick v0.7.6
[INFO] [stderr]    Compiling termion v1.5.4
[INFO] [stderr]    Compiling pathfinding v2.0.1
[INFO] [stderr]    Compiling regex v1.3.1
[INFO] [stderr]    Compiling num v0.2.0
[INFO] [stderr]    Compiling aoc2019 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/intcode.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Read` and `self`
[INFO] [stdout]  --> src/intcode.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::{self, Read};
[INFO] [stdout]   |               ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RecvError`, `TryRecvError`, and `sync_channel`
[INFO] [stdout]  --> src/intcode.rs:4:23
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::sync::mpsc::{sync_channel, SyncSender, Receiver, RecvError, TryRecvError};
[INFO] [stdout]   |                       ^^^^^^^^^^^^                        ^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/intcode.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TryRecvError`
[INFO] [stdout]  --> src/bin/15.rs:3:37
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::mpsc::{sync_channel, TryRecvError};
[INFO] [stdout]   |                                     ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/bin/14.rs:82:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | /     loop {
[INFO] [stdout] 40 | |         required.push(Item::new(1, goal));
[INFO] [stdout] 41 | |         while let Some(req) = required.pop() {
[INFO] [stdout] 42 | |             let mut current_stock = inventory.entry(req.name.clone()).or_insert(0);
[INFO] [stdout] ...  |
[INFO] [stdout] 80 | |     }
[INFO] [stdout]    | |_____- any code following this expression is unreachable
[INFO] [stdout] 81 |
[INFO] [stdout] 82 |       0
[INFO] [stdout]    |       ^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TryRecvError`
[INFO] [stdout]  --> src/bin/11.rs:4:70
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::sync::mpsc::{sync_channel, SyncSender, Receiver, RecvError, TryRecvError};
[INFO] [stdout]   |                                                                      ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]   --> src/bin/09.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | struct State {
[INFO] [stdout]    |        ----- field in this struct
[INFO] [stdout] 40 |     id: usize,
[INFO] [stdout]    |     ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `State` 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] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TryRecvError`
[INFO] [stdout]  --> src/bin/17.rs:3:37
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::mpsc::{sync_channel, TryRecvError};
[INFO] [stdout]   |                                     ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]  --> src/bin/16.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     io::stdin().read_to_string(&mut input);
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]   = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]   |
[INFO] [stdout] 4 |     let _ = io::stdin().read_to_string(&mut input);
[INFO] [stdout]   |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bin/14.rs:42:17
[INFO] [stdout]    |
[INFO] [stdout] 42 |             let mut current_stock = inventory.entry(req.name.clone()).or_insert(0);
[INFO] [stdout]    |                 ----^^^^^^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bin/14.rs:91:13
[INFO] [stdout]    |
[INFO] [stdout] 91 |         let mut current_stock = inventory.entry(req.name.clone()).or_insert(0);
[INFO] [stdout]    |             ----^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/bin/18.rs:261:17
[INFO] [stdout]     |
[INFO] [stdout] 261 |             'a' ... 'z' => {
[INFO] [stdout]     |                 ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/bin/18.rs:265:17
[INFO] [stdout]     |
[INFO] [stdout] 265 |             'A' ... 'Z' => Tile::Door(ch),
[INFO] [stdout]     |                 ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fuel_produced` is never used
[INFO] [stdout]   --> src/bin/14.rs:33:4
[INFO] [stdout]    |
[INFO] [stdout] 33 | fn fuel_produced(reactions: &[Reaction], goal: &str, base_item: &str) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `termion::input::TermRead`
[INFO] [stdout]    --> src/bin/15.rs:240:5
[INFO] [stdout]     |
[INFO] [stdout] 240 | use termion::input::TermRead;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bin/15.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let mut program = input.split(",").map(|x| x.trim().parse().unwrap()).collect::<Vec<i64>>();
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IMMEDIATE` is never used
[INFO] [stdout]   --> src/bin/05.rs:44:7
[INFO] [stdout]    |
[INFO] [stdout] 44 | const IMMEDIATE: i64 = 1;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bin/15.rs:249:9
[INFO] [stdout]     |
[INFO] [stdout] 249 |     let mut step = 0;
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `step`
[INFO] [stdout]    --> src/bin/15.rs:249:9
[INFO] [stdout]     |
[INFO] [stdout] 249 |     let mut step = 0;
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_step`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/bin/13.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |         inputs_sender.try_send(next_input);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 53 |         let _ = inputs_sender.try_send(next_input);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `turned` is never read
[INFO] [stdout]    --> src/bin/10.rs:196:22
[INFO] [stdout]     |
[INFO] [stdout] 196 |     let mut turned = false;
[INFO] [stdout]     |                      ^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 201 |         turned = false;
[INFO] [stdout]     |         -------------- `turned` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `emptys` is never used
[INFO] [stdout]   --> src/bin/10.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | impl World {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 61 |     fn emptys(&self) -> Positions {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/bin/10.rs:57:16
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn meteors(&self) -> Positions {
[INFO] [stdout]    |                ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                |
[INFO] [stdout]    |                the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn meteors(&self) -> Positions<'_> {
[INFO] [stdout]    |                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/bin/10.rs:61:15
[INFO] [stdout]    |
[INFO] [stdout] 61 |     fn emptys(&self) -> Positions {
[INFO] [stdout]    |               ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |               |
[INFO] [stdout]    |               the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 61 |     fn emptys(&self) -> Positions<'_> {
[INFO] [stdout]    |                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bin/15.rs:264:9
[INFO] [stdout]     |
[INFO] [stdout] 264 |         inputs_sender.send(next_command.command());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 264 |         let _ = inputs_sender.send(next_command.command());
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/bin/11.rs:102:13
[INFO] [stdout]     |
[INFO] [stdout] 102 |             _ => {}
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/bin/11.rs:102:13
[INFO] [stdout]     |
[INFO] [stdout]  95 |             Ok(color) => {
[INFO] [stdout]     |             --------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 101 |             Err(RecvError) => break,
[INFO] [stdout]     |             -------------- matches some of the same values
[INFO] [stdout] 102 |             _ => {}
[INFO] [stdout]     |             ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bin/17.rs:201:9
[INFO] [stdout]     |
[INFO] [stdout] 201 |     let mut output = String::new();
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bin/17.rs:203:9
[INFO] [stdout]     |
[INFO] [stdout] 203 |     let mut n = it.next();
[INFO] [stdout]     |         ----^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]    --> src/bin/17.rs:201:9
[INFO] [stdout]     |
[INFO] [stdout] 201 |     let mut output = String::new();
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/bin/17.rs:203:9
[INFO] [stdout]     |
[INFO] [stdout] 203 |     let mut n = it.next();
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inputs_sender`
[INFO] [stdout]    --> src/bin/17.rs:218:10
[INFO] [stdout]     |
[INFO] [stdout] 218 |     let (inputs_sender, inputs_receiver) = sync_channel(0);
[INFO] [stdout]     |          ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_inputs_sender`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `inverse` is never used
[INFO] [stdout]   --> src/bin/17.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | impl Dir {
[INFO] [stdout]    | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 87 |     fn inverse(&self) -> Self {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]    --> src/bin/11.rs:113:5
[INFO] [stdout]     |
[INFO] [stdout] 112 | struct State {
[INFO] [stdout]     |        ----- field in this struct
[INFO] [stdout] 113 |     id: usize,
[INFO] [stdout]     |     ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `State` 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] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `accessible_keys` is never used
[INFO] [stdout]    --> src/bin/18.rs:106:4
[INFO] [stdout]     |
[INFO] [stdout] 106 | fn accessible_keys(maze: &Maze, pos: &Addr) -> Vec<(char, Addr)> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `doors`, `tile`, `tiles`, and `unlock_door` are never used
[INFO] [stdout]    --> src/bin/18.rs:149:8
[INFO] [stdout]     |
[INFO] [stdout] 140 | impl Maze {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 149 |     fn doors(&self) -> Vec<Addr> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     fn tile(&self, tile: &Tile) -> Option<Addr> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     fn tiles(&self, tile_spec: &Tile) -> Vec<Addr> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     fn unlock_door(&mut self, key: char) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `walkable` is never used
[INFO] [stdout]    --> src/bin/18.rs:306:8
[INFO] [stdout]     |
[INFO] [stdout] 305 | impl Tile {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] 306 |     fn walkable(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Dir` is never used
[INFO] [stdout]    --> src/bin/18.rs:326:6
[INFO] [stdout]     |
[INFO] [stdout] 326 | enum Dir {
[INFO] [stdout]     |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `left`, `right`, `advance`, and `inverse` are never used
[INFO] [stdout]    --> src/bin/18.rs:334:8
[INFO] [stdout]     |
[INFO] [stdout] 333 | impl Dir {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] 334 |     fn left(&self) -> Self {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 343 |     fn right(&self) -> Self {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 352 |     fn advance(&self, pos: &mut Addr) {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 361 |     fn inverse(&self) -> Self {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `neighbours_with_dir` is never used
[INFO] [stdout]    --> src/bin/18.rs:399:8
[INFO] [stdout]     |
[INFO] [stdout] 378 | impl Addr {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 399 |     fn neighbours_with_dir(&self) -> Vec<(Dir, Addr)> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bin/17.rs:206:9
[INFO] [stdout]     |
[INFO] [stdout] 206 |         inputs_sender.send(ch as i64);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 206 |         let _ = inputs_sender.send(ch as i64);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]    --> src/bin/07.rs:118:5
[INFO] [stdout]     |
[INFO] [stdout] 117 | struct State {
[INFO] [stdout]     |        ----- field in this struct
[INFO] [stdout] 118 |     id: usize,
[INFO] [stdout]     |     ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `State` 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] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IMMEDIATE` is never used
[INFO] [stdout]    --> src/bin/07.rs:144:7
[INFO] [stdout]     |
[INFO] [stdout] 144 | const IMMEDIATE: i64 = 1;
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bin/07.rs:102:21
[INFO] [stdout]     |
[INFO] [stdout] 102 |                     final_sender.send(exit_code);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 102 |                     let _ = final_sender.send(exit_code);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 12.14s
[INFO] running `Command { std: "docker" "inspect" "0104e741b35b8499a73ff5e58f937674e0d93e7e0efefeb76491a220506369e5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0104e741b35b8499a73ff5e58f937674e0d93e7e0efefeb76491a220506369e5", kill_on_drop: false }`
[INFO] [stdout] 0104e741b35b8499a73ff5e58f937674e0d93e7e0efefeb76491a220506369e5
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b2b8d9df9bd24a00a18f4df17a4041ec0ffa16778578493fe93b444896e7587e
[INFO] running `Command { std: "docker" "start" "-a" "b2b8d9df9bd24a00a18f4df17a4041ec0ffa16778578493fe93b444896e7587e", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/intcode.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Read` and `self`
[INFO] [stdout]  --> src/intcode.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::{self, Read};
[INFO] [stdout]   |               ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RecvError`, `TryRecvError`, and `sync_channel`
[INFO] [stdout]  --> src/intcode.rs:4:23
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::sync::mpsc::{sync_channel, SyncSender, Receiver, RecvError, TryRecvError};
[INFO] [stdout]   |                       ^^^^^^^^^^^^                        ^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/intcode.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling aoc2019 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `TryRecvError`
[INFO] [stdout]  --> src/bin/11.rs:4:70
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::sync::mpsc::{sync_channel, SyncSender, Receiver, RecvError, TryRecvError};
[INFO] [stdout]   |                                                                      ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/bin/11.rs:303:37
[INFO] [stdout]     |
[INFO] [stdout] 303 |         assert_eq!(run(program, 1), 1125899906842624);
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^ expected `(HashMap<(i64, i64), i64>, usize)`, found integer
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected tuple `(HashMap<(i64, i64), i64>, usize)`
[INFO] [stdout]                 found type `{integer}`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/bin/11.rs:102:13
[INFO] [stdout]     |
[INFO] [stdout] 102 |             _ => {}
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/bin/11.rs:102:13
[INFO] [stdout]     |
[INFO] [stdout]  95 |             Ok(color) => {
[INFO] [stdout]     |             --------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 101 |             Err(RecvError) => break,
[INFO] [stdout]     |             -------------- matches some of the same values
[INFO] [stdout] 102 |             _ => {}
[INFO] [stdout]     |             ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `aoc2019` (bin "11" test) due to 1 previous error; 2 warnings emitted
[INFO] [stdout] For more information about this error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]    --> src/bin/07.rs:118:5
[INFO] [stdout]     |
[INFO] [stdout] 117 | struct State {
[INFO] [stdout]     |        ----- field in this struct
[INFO] [stdout] 118 |     id: usize,
[INFO] [stdout]     |     ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `State` 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] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IMMEDIATE` is never used
[INFO] [stdout]    --> src/bin/07.rs:144:7
[INFO] [stdout]     |
[INFO] [stdout] 144 | const IMMEDIATE: i64 = 1;
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]  --> src/bin/16.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     io::stdin().read_to_string(&mut input);
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]   = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]   |
[INFO] [stdout] 4 |     let _ = io::stdin().read_to_string(&mut input);
[INFO] [stdout]   |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TryRecvError`
[INFO] [stdout]  --> src/bin/15.rs:3:37
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::mpsc::{sync_channel, TryRecvError};
[INFO] [stdout]   |                                     ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/intcode.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Read` and `self`
[INFO] [stdout]  --> src/intcode.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::{self, Read};
[INFO] [stdout]   |               ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RecvError`, `TryRecvError`, and `sync_channel`
[INFO] [stdout]  --> src/intcode.rs:4:23
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::sync::mpsc::{sync_channel, SyncSender, Receiver, RecvError, TryRecvError};
[INFO] [stdout]   |                       ^^^^^^^^^^^^                        ^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/intcode.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> src/intcode.rs:202:9
[INFO] [stdout]     |
[INFO] [stdout] 202 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bin/07.rs:102:21
[INFO] [stdout]     |
[INFO] [stdout] 102 |                     final_sender.send(exit_code);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 102 |                     let _ = final_sender.send(exit_code);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `termion::input::TermRead`
[INFO] [stdout]    --> src/bin/15.rs:240:5
[INFO] [stdout]     |
[INFO] [stdout] 240 | use termion::input::TermRead;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bin/15.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let mut program = input.split(",").map(|x| x.trim().parse().unwrap()).collect::<Vec<i64>>();
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bin/15.rs:249:9
[INFO] [stdout]     |
[INFO] [stdout] 249 |     let mut step = 0;
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `step`
[INFO] [stdout]    --> src/bin/15.rs:249:9
[INFO] [stdout]     |
[INFO] [stdout] 249 |     let mut step = 0;
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_step`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/bin/15.rs:264:9
[INFO] [stdout]     |
[INFO] [stdout] 264 |         inputs_sender.send(next_command.command());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 264 |         let _ = inputs_sender.send(next_command.command());
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/bin/18.rs:261:17
[INFO] [stdout]     |
[INFO] [stdout] 261 |             'a' ... 'z' => {
[INFO] [stdout]     |                 ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/bin/18.rs:265:17
[INFO] [stdout]     |
[INFO] [stdout] 265 |             'A' ... 'Z' => Tile::Door(ch),
[INFO] [stdout]     |                 ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/bin/13.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |         inputs_sender.try_send(next_input);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 53 |         let _ = inputs_sender.try_send(next_input);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `run` in this scope
[INFO] [stdout]    --> src/intcode.rs:208:20
[INFO] [stdout]     |
[INFO] [stdout] 208 |         assert_eq!(run(program, 1), 1125899906842624);
[INFO] [stdout]     |                    ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0425`.
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `turned` is never read
[INFO] [stdout]    --> src/bin/10.rs:196:22
[INFO] [stdout]     |
[INFO] [stdout] 196 |     let mut turned = false;
[INFO] [stdout]     |                      ^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 201 |         turned = false;
[INFO] [stdout]     |         -------------- `turned` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IMMEDIATE` is never used
[INFO] [stdout]   --> src/bin/05.rs:44:7
[INFO] [stdout]    |
[INFO] [stdout] 44 | const IMMEDIATE: i64 = 1;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `program`
[INFO] [stdout]    --> src/bin/09.rs:226:13
[INFO] [stdout]     |
[INFO] [stdout] 226 |         let program: &[i64] = &[104,1125899906842624,99][..];
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_program`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]   --> src/bin/09.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | struct State {
[INFO] [stdout]    |        ----- field in this struct
[INFO] [stdout] 40 |     id: usize,
[INFO] [stdout]    |     ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `State` 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] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `aoc2019` (lib test) due to 1 previous error; 5 warnings emitted
[INFO] [stdout] warning: method `emptys` is never used
[INFO] [stdout]   --> src/bin/10.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | impl World {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 61 |     fn emptys(&self) -> Positions {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/bin/10.rs:57:16
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn meteors(&self) -> Positions {
[INFO] [stdout]    |                ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                |
[INFO] [stdout]    |                the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn meteors(&self) -> Positions<'_> {
[INFO] [stdout]    |                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/bin/10.rs:61:15
[INFO] [stdout]    |
[INFO] [stdout] 61 |     fn emptys(&self) -> Positions {
[INFO] [stdout]    |               ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |               |
[INFO] [stdout]    |               the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 61 |     fn emptys(&self) -> Positions<'_> {
[INFO] [stdout]    |                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `accessible_keys` is never used
[INFO] [stdout]    --> src/bin/18.rs:106:4
[INFO] [stdout]     |
[INFO] [stdout] 106 | fn accessible_keys(maze: &Maze, pos: &Addr) -> Vec<(char, Addr)> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `doors`, `tile`, `tiles`, and `unlock_door` are never used
[INFO] [stdout]    --> src/bin/18.rs:149:8
[INFO] [stdout]     |
[INFO] [stdout] 140 | impl Maze {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 149 |     fn doors(&self) -> Vec<Addr> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     fn tile(&self, tile: &Tile) -> Option<Addr> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     fn tiles(&self, tile_spec: &Tile) -> Vec<Addr> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     fn unlock_door(&mut self, key: char) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `walkable` is never used
[INFO] [stdout]    --> src/bin/18.rs:306:8
[INFO] [stdout]     |
[INFO] [stdout] 305 | impl Tile {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] 306 |     fn walkable(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Dir` is never used
[INFO] [stdout]    --> src/bin/18.rs:326:6
[INFO] [stdout]     |
[INFO] [stdout] 326 | enum Dir {
[INFO] [stdout]     |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `left`, `right`, `advance`, and `inverse` are never used
[INFO] [stdout]    --> src/bin/18.rs:334:8
[INFO] [stdout]     |
[INFO] [stdout] 333 | impl Dir {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] 334 |     fn left(&self) -> Self {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 343 |     fn right(&self) -> Self {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 352 |     fn advance(&self, pos: &mut Addr) {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 361 |     fn inverse(&self) -> Self {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `neighbours_with_dir` is never used
[INFO] [stdout]    --> src/bin/18.rs:399:8
[INFO] [stdout]     |
[INFO] [stdout] 378 | impl Addr {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 399 |     fn neighbours_with_dir(&self) -> Vec<(Dir, Addr)> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "b2b8d9df9bd24a00a18f4df17a4041ec0ffa16778578493fe93b444896e7587e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b2b8d9df9bd24a00a18f4df17a4041ec0ffa16778578493fe93b444896e7587e", kill_on_drop: false }`
[INFO] [stdout] b2b8d9df9bd24a00a18f4df17a4041ec0ffa16778578493fe93b444896e7587e
