[INFO] updating cached repository https://github.com/jpbougie/aoc2019
[INFO] running `"git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "-c" "remote.origin.fetch=refs/heads/*:refs/heads/*" "fetch" "origin" "--force" "--prune"`
[INFO] running `"git" "rev-parse" "HEAD"`
[INFO] [stdout] c11ca6c9b9cbf991c51d06684fbdde1636559f48
[INFO] checking jpbougie/aoc2019 against master#bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc for pr-70917
[INFO] running `"git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjpbougie%2Faoc2019" "/workspace/builds/worker-4/source"`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/jpbougie/aoc2019 on toolchain bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc
[INFO] running `"/workspace/cargo-home/bin/cargo" "+bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc" "read-manifest" "--manifest-path" "Cargo.toml"`
[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/source/Cargo.toml
[INFO] crate git repo https://github.com/jpbougie/aoc2019 already has a lockfile, it will not be regenerated
[INFO] running `"/workspace/cargo-home/bin/cargo" "+bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc" "fetch" "--locked" "--manifest-path" "Cargo.toml"`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc" "check" "--frozen" "--all" "--all-targets"`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] b6fefe5852f4cd42370abf8044b0b85fb39f20bf2ccdd71fcf709cc943f00b25
[INFO] running `"docker" "start" "-a" "b6fefe5852f4cd42370abf8044b0b85fb39f20bf2ccdd71fcf709cc943f00b25"`
[INFO] [stderr]     Checking fixedbitset v0.2.0
[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]     Checking num-integer v0.1.41
[INFO] [stderr]     Checking termion v1.5.4
[INFO] [stderr]     Checking pathfinding v2.0.1
[INFO] [stderr]     Checking num v0.2.0
[INFO] [stderr]     Checking aoc2019 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr] warning: unused import: `HashSet`
[INFO] [stderr]  --> src/intcode.rs:1:33
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::collections::{HashMap, HashSet};
[INFO] [stderr]   |                                 ^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Read`, `self`
[INFO] [stderr]  --> src/intcode.rs:3:15
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::io::{self, Read};
[INFO] [stderr]   |               ^^^^  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `RecvError`, `TryRecvError`, `sync_channel`
[INFO] [stderr]  --> src/intcode.rs:4:23
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::sync::mpsc::{sync_channel, SyncSender, Receiver, RecvError, TryRecvError};
[INFO] [stderr]   |                       ^^^^^^^^^^^^                        ^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::thread`
[INFO] [stderr]  --> src/intcode.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use std::thread;
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find function `run` in this scope
[INFO] [stderr]    --> src/intcode.rs:208:20
[INFO] [stderr]     |
[INFO] [stderr] 208 |         assert_eq!(run(program, 1), 1125899906842624);
[INFO] [stderr]     |                    ^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `HashSet`
[INFO] [stderr]  --> src/intcode.rs:1:33
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::collections::{HashMap, HashSet};
[INFO] [stderr]   |                                 ^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Read`, `self`
[INFO] [stderr]  --> src/intcode.rs:3:15
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::io::{self, Read};
[INFO] [stderr]   |               ^^^^  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `RecvError`, `TryRecvError`, `sync_channel`
[INFO] [stderr]  --> src/intcode.rs:4:23
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::sync::mpsc::{sync_channel, SyncSender, Receiver, RecvError, TryRecvError};
[INFO] [stderr]   |                       ^^^^^^^^^^^^                        ^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::thread`
[INFO] [stderr]  --> src/intcode.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use std::thread;
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `super::*`
[INFO] [stderr]    --> src/intcode.rs:202:9
[INFO] [stderr]     |
[INFO] [stderr] 202 |     use super::*;
[INFO] [stderr]     |         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable expression
[INFO] [stderr]   --> src/bin/14.rs:82:5
[INFO] [stderr]    |
[INFO] [stderr] 39 | /     loop {
[INFO] [stderr] 40 | |         required.push(Item::new(1, goal));
[INFO] [stderr] 41 | |         while let Some(req) = required.pop() {
[INFO] [stderr] 42 | |             let mut current_stock = inventory.entry(req.name.clone()).or_insert(0);
[INFO] [stderr] ...  |
[INFO] [stderr] 79 | |         }
[INFO] [stderr] 80 | |     }
[INFO] [stderr]    | |_____- any code following this expression is unreachable
[INFO] [stderr] 81 | 
[INFO] [stderr] 82 |       0
[INFO] [stderr]    |       ^ unreachable expression
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unreachable_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] error: aborting due to previous error
[INFO] [stderr] 
[INFO] [stderr] For more information about this error, try `rustc --explain E0425`.
[INFO] [stderr] error: could not compile `aoc2019`.
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] warning: unused import: `TryRecvError`
[INFO] [stderr]  --> src/bin/17.rs:3:37
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::sync::mpsc::{sync_channel, TryRecvError};
[INFO] [stderr]   |                                     ^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]    --> src/bin/14.rs:193:41
[INFO] [stderr]     |
[INFO] [stderr] 193 |         assert_eq!(ore_required(&input, "FUEL", "ORE"), 31);
[INFO] [stderr]     |                                         ^^^^^^ expected struct `Item`, found `&str`
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/bin/18.rs:261:17
[INFO] [stderr]     |
[INFO] [stderr] 261 |             'a' ... 'z' => {
[INFO] [stderr]     |                 ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/bin/18.rs:265:17
[INFO] [stderr]     |
[INFO] [stderr] 265 |             'A' ... 'Z' => Tile::Door(ch),
[INFO] [stderr]     |                 ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] error: aborting due to previous error
[INFO] [stderr] 
[INFO] [stderr] For more information about this error, try `rustc --explain E0308`.
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]   --> src/bin/13.rs:53:9
[INFO] [stderr]    |
[INFO] [stderr] 53 |         inputs_sender.try_send(next_input);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] error: could not compile `aoc2019`.
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] warning: unused variable: `output`
[INFO] [stderr]    --> src/bin/17.rs:201:13
[INFO] [stderr]     |
[INFO] [stderr] 201 |     let mut output = String::new();
[INFO] [stderr]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `n`
[INFO] [stderr]    --> src/bin/17.rs:203:13
[INFO] [stderr]     |
[INFO] [stderr] 203 |     let mut n = it.next();
[INFO] [stderr]     |             ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `inputs_sender`
[INFO] [stderr]    --> src/bin/17.rs:218:10
[INFO] [stderr]     |
[INFO] [stderr] 218 |     let (inputs_sender, inputs_receiver) = sync_channel(0);
[INFO] [stderr]     |          ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_inputs_sender`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/bin/17.rs:201:9
[INFO] [stderr]     |
[INFO] [stderr] 201 |     let mut output = String::new();
[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/bin/17.rs:203:9
[INFO] [stderr]     |
[INFO] [stderr] 203 |     let mut n = it.next();
[INFO] [stderr]     |         ----^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `inverse`
[INFO] [stderr]   --> src/bin/17.rs:87:5
[INFO] [stderr]    |
[INFO] [stderr] 87 |     fn inverse(&self) -> Self {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/bin/17.rs:206:9
[INFO] [stderr]     |
[INFO] [stderr] 206 |         inputs_sender.send(ch as i64);
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable expression
[INFO] [stderr]   --> src/bin/14.rs:82:5
[INFO] [stderr]    |
[INFO] [stderr] 39 | /     loop {
[INFO] [stderr] 40 | |         required.push(Item::new(1, goal));
[INFO] [stderr] 41 | |         while let Some(req) = required.pop() {
[INFO] [stderr] 42 | |             let mut current_stock = inventory.entry(req.name.clone()).or_insert(0);
[INFO] [stderr] ...  |
[INFO] [stderr] 79 | |         }
[INFO] [stderr] 80 | |     }
[INFO] [stderr]    | |_____- any code following this expression is unreachable
[INFO] [stderr] 81 | 
[INFO] [stderr] 82 |       0
[INFO] [stderr]    |       ^ unreachable expression
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unreachable_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `program`
[INFO] [stderr]    --> src/bin/09.rs:226:13
[INFO] [stderr]     |
[INFO] [stderr] 226 |         let program: &[i64] = &[104,1125899906842624,99][..];
[INFO] [stderr]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_program`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/bin/18.rs:261:17
[INFO] [stderr]     |
[INFO] [stderr] 261 |             'a' ... 'z' => {
[INFO] [stderr]     |                 ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/bin/18.rs:265:17
[INFO] [stderr]     |
[INFO] [stderr] 265 |             'A' ... 'Z' => Tile::Door(ch),
[INFO] [stderr]     |                 ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/bin/14.rs:42:17
[INFO] [stderr]    |
[INFO] [stderr] 42 |             let mut current_stock = inventory.entry(req.name.clone()).or_insert(0);
[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/bin/14.rs:91:13
[INFO] [stderr]    |
[INFO] [stderr] 91 |         let mut current_stock = inventory.entry(req.name.clone()).or_insert(0);
[INFO] [stderr]    |             ----^^^^^^^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `fuel_produced`
[INFO] [stderr]   --> src/bin/14.rs:33:4
[INFO] [stderr]    |
[INFO] [stderr] 33 | fn fuel_produced(reactions: &[Reaction], goal: &str, base_item: &str) -> usize {
[INFO] [stderr]    |    ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `accessible_keys`
[INFO] [stderr]    --> src/bin/18.rs:106:4
[INFO] [stderr]     |
[INFO] [stderr] 106 | fn accessible_keys(maze: &Maze, pos: &Addr) -> Vec<(char, Addr)> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `doors`
[INFO] [stderr]    --> src/bin/18.rs:149:5
[INFO] [stderr]     |
[INFO] [stderr] 149 |     fn doors(&self) -> Vec<Addr> {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `tile`
[INFO] [stderr]    --> src/bin/18.rs:157:5
[INFO] [stderr]     |
[INFO] [stderr] 157 |     fn tile(&self, tile: &Tile) -> Option<Addr> {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `tiles`
[INFO] [stderr]    --> src/bin/18.rs:161:5
[INFO] [stderr]     |
[INFO] [stderr] 161 |     fn tiles(&self, tile_spec: &Tile) -> Vec<Addr> {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `unlock_door`
[INFO] [stderr]    --> src/bin/18.rs:238:5
[INFO] [stderr]     |
[INFO] [stderr] 238 |     fn unlock_door(&mut self, key: char) {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `walkable`
[INFO] [stderr]    --> src/bin/18.rs:306:5
[INFO] [stderr]     |
[INFO] [stderr] 306 |     fn walkable(&self) -> bool {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant is never constructed: `North`
[INFO] [stderr]    --> src/bin/18.rs:327:5
[INFO] [stderr]     |
[INFO] [stderr] 327 |     North,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant is never constructed: `South`
[INFO] [stderr]    --> src/bin/18.rs:328:5
[INFO] [stderr]     |
[INFO] [stderr] 328 |     South,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant is never constructed: `West`
[INFO] [stderr]    --> src/bin/18.rs:329:5
[INFO] [stderr]     |
[INFO] [stderr] 329 |     West,
[INFO] [stderr]     |     ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant is never constructed: `East`
[INFO] [stderr]    --> src/bin/18.rs:330:5
[INFO] [stderr]     |
[INFO] [stderr] 330 |     East,
[INFO] [stderr]     |     ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `left`
[INFO] [stderr]    --> src/bin/18.rs:334:5
[INFO] [stderr]     |
[INFO] [stderr] 334 |     fn left(&self) -> Self {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `right`
[INFO] [stderr]    --> src/bin/18.rs:343:5
[INFO] [stderr]     |
[INFO] [stderr] 343 |     fn right(&self) -> Self {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `advance`
[INFO] [stderr]    --> src/bin/18.rs:352:5
[INFO] [stderr]     |
[INFO] [stderr] 352 |     fn advance(&self, pos: &mut Addr) {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `inverse`
[INFO] [stderr]    --> src/bin/18.rs:361:5
[INFO] [stderr]     |
[INFO] [stderr] 361 |     fn inverse(&self) -> Self {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `neighbours_with_dir`
[INFO] [stderr]    --> src/bin/18.rs:399:5
[INFO] [stderr]     |
[INFO] [stderr] 399 |     fn neighbours_with_dir(&self) -> Vec<(Dir, Addr)> {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `accessible_keys`
[INFO] [stderr]    --> src/bin/18.rs:106:4
[INFO] [stderr]     |
[INFO] [stderr] 106 | fn accessible_keys(maze: &Maze, pos: &Addr) -> Vec<(char, Addr)> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `doors`
[INFO] [stderr]    --> src/bin/18.rs:149:5
[INFO] [stderr]     |
[INFO] [stderr] 149 |     fn doors(&self) -> Vec<Addr> {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `tile`
[INFO] [stderr]    --> src/bin/18.rs:157:5
[INFO] [stderr]     |
[INFO] [stderr] 157 |     fn tile(&self, tile: &Tile) -> Option<Addr> {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `tiles`
[INFO] [stderr]    --> src/bin/18.rs:161:5
[INFO] [stderr]     |
[INFO] [stderr] 161 |     fn tiles(&self, tile_spec: &Tile) -> Vec<Addr> {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `unlock_door`
[INFO] [stderr]    --> src/bin/18.rs:238:5
[INFO] [stderr]     |
[INFO] [stderr] 238 |     fn unlock_door(&mut self, key: char) {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `walkable`
[INFO] [stderr]    --> src/bin/18.rs:306:5
[INFO] [stderr]     |
[INFO] [stderr] 306 |     fn walkable(&self) -> bool {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant is never constructed: `North`
[INFO] [stderr]    --> src/bin/18.rs:327:5
[INFO] [stderr]     |
[INFO] [stderr] 327 |     North,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant is never constructed: `South`
[INFO] [stderr]    --> src/bin/18.rs:328:5
[INFO] [stderr]     |
[INFO] [stderr] 328 |     South,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant is never constructed: `West`
[INFO] [stderr]    --> src/bin/18.rs:329:5
[INFO] [stderr]     |
[INFO] [stderr] 329 |     West,
[INFO] [stderr]     |     ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant is never constructed: `East`
[INFO] [stderr]    --> src/bin/18.rs:330:5
[INFO] [stderr]     |
[INFO] [stderr] 330 |     East,
[INFO] [stderr]     |     ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `left`
[INFO] [stderr]    --> src/bin/18.rs:334:5
[INFO] [stderr]     |
[INFO] [stderr] 334 |     fn left(&self) -> Self {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `right`
[INFO] [stderr]    --> src/bin/18.rs:343:5
[INFO] [stderr]     |
[INFO] [stderr] 343 |     fn right(&self) -> Self {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `advance`
[INFO] [stderr]    --> src/bin/18.rs:352:5
[INFO] [stderr]     |
[INFO] [stderr] 352 |     fn advance(&self, pos: &mut Addr) {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `inverse`
[INFO] [stderr]    --> src/bin/18.rs:361:5
[INFO] [stderr]     |
[INFO] [stderr] 361 |     fn inverse(&self) -> Self {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `neighbours_with_dir`
[INFO] [stderr]    --> src/bin/18.rs:399:5
[INFO] [stderr]     |
[INFO] [stderr] 399 |     fn neighbours_with_dir(&self) -> Vec<(Dir, Addr)> {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] error: build failed
[INFO] running `"docker" "inspect" "b6fefe5852f4cd42370abf8044b0b85fb39f20bf2ccdd71fcf709cc943f00b25"`
[INFO] running `"docker" "rm" "-f" "b6fefe5852f4cd42370abf8044b0b85fb39f20bf2ccdd71fcf709cc943f00b25"`
[INFO] [stdout] b6fefe5852f4cd42370abf8044b0b85fb39f20bf2ccdd71fcf709cc943f00b25
