[INFO] cloning repository https://github.com/Darktrop/Aoc
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Darktrop/Aoc" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDarktrop%2FAoc", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDarktrop%2FAoc'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c5905208a07b4011340caddf1c08591bf236477c
[INFO] checking Darktrop/Aoc against beta-2020-07-24 for pr-75494-beta
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDarktrop%2FAoc" "/workspace/builds/worker-7/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/Darktrop/Aoc on toolchain beta-2020-07-24
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2020-07-24" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/Darktrop/Aoc
[INFO] finished tweaking git repo https://github.com/Darktrop/Aoc
[INFO] tweaked toml for git repo https://github.com/Darktrop/Aoc written to /workspace/builds/worker-7/source/Cargo.toml
[INFO] crate git repo https://github.com/Darktrop/Aoc already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2020-07-24" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/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" "rustops/crates-build-env@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-07-24" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c2dae29990abc47de6ea7ca8fd23ab7d5601cccada6130d50c80a08a75e44056
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "c2dae29990abc47de6ea7ca8fd23ab7d5601cccada6130d50c80a08a75e44056", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c2dae29990abc47de6ea7ca8fd23ab7d5601cccada6130d50c80a08a75e44056", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c2dae29990abc47de6ea7ca8fd23ab7d5601cccada6130d50c80a08a75e44056", kill_on_drop: false }`
[INFO] [stdout] c2dae29990abc47de6ea7ca8fd23ab7d5601cccada6130d50c80a08a75e44056
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/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" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-07-24" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 349b54663dee077659ad5b2a7bb6cfab16b7eeb2866d31d11f42234a412ab27f
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "349b54663dee077659ad5b2a7bb6cfab16b7eeb2866d31d11f42234a412ab27f", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-xid v0.2.0
[INFO] [stderr]    Compiling syn v1.0.9
[INFO] [stderr]    Compiling byteorder v1.3.2
[INFO] [stderr]    Compiling log v0.4.8
[INFO] [stderr]    Compiling memchr v2.2.1
[INFO] [stderr]     Checking futures-core-preview v0.3.0-alpha.19
[INFO] [stderr]    Compiling cc v1.0.47
[INFO] [stderr]     Checking scopeguard v1.0.0
[INFO] [stderr]     Checking slab v0.4.2
[INFO] [stderr]     Checking futures-sink-preview v0.3.0-alpha.19
[INFO] [stderr]     Checking fnv v1.0.6
[INFO] [stderr]     Checking pin-utils v0.1.0-alpha.4
[INFO] [stderr]    Compiling pkg-config v0.3.17
[INFO] [stderr]    Compiling ryu v1.0.2
[INFO] [stderr]    Compiling getrandom v0.1.13
[INFO] [stderr]     Checking smallvec v1.0.0
[INFO] [stderr]    Compiling httparse v1.3.4
[INFO] [stderr]     Checking matches v0.1.8
[INFO] [stderr]    Compiling native-tls v0.2.3
[INFO] [stderr]     Checking openssl-probe v0.1.2
[INFO] [stderr]     Checking tower-service v0.3.0-alpha.2
[INFO] [stderr]    Compiling failure_derive v0.1.6
[INFO] [stderr]    Compiling version_check v0.1.5
[INFO] [stderr]     Checking same-file v1.0.5
[INFO] [stderr]     Checking rustc-demangle v0.1.16
[INFO] [stderr]     Checking numtoa v0.1.0
[INFO] [stderr]    Compiling semver v0.9.0
[INFO] [stderr]    Compiling crossbeam-utils v0.7.0
[INFO] [stderr]    Compiling crossbeam-epoch v0.8.0
[INFO] [stderr]    Compiling num-traits v0.2.10
[INFO] [stderr]    Compiling num-integer v0.1.41
[INFO] [stderr]    Compiling indexmap v1.3.0
[INFO] [stderr]    Compiling num-bigint v0.2.3
[INFO] [stderr]    Compiling num-iter v0.1.39
[INFO] [stderr]    Compiling num-complex v0.2.3
[INFO] [stderr]    Compiling num-rational v0.2.2
[INFO] [stderr]    Compiling unicase v2.6.0
[INFO] [stderr]     Checking lock_api v0.3.2
[INFO] [stderr]     Checking itertools v0.8.2
[INFO] [stderr]     Checking unicode-bidi v0.3.4
[INFO] [stderr]     Checking futures-channel-preview v0.3.0-alpha.19
[INFO] [stderr]     Checking unicode-normalization v0.1.11
[INFO] [stderr]     Checking crossbeam-utils v0.6.6
[INFO] [stderr]     Checking tracing-core v0.1.7
[INFO] [stderr]    Compiling proc-macro2 v1.0.6
[INFO] [stderr]     Checking walkdir v2.2.9
[INFO] [stderr]    Compiling rustc_version v0.2.3
[INFO] [stderr]     Checking arrayvec v0.4.12
[INFO] [stderr]     Checking encoding_rs v0.8.20
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]     Checking num_cpus v1.11.1
[INFO] [stderr]     Checking net2 v0.2.33
[INFO] [stderr]     Checking atty v0.2.13
[INFO] [stderr]     Checking dirs-sys v0.3.4
[INFO] [stderr]     Checking termion v1.5.4
[INFO] [stderr]    Compiling nom v5.0.1
[INFO] [stderr]     Checking futures-util-preview v0.3.0-alpha.19
[INFO] [stderr]     Checking clap v2.33.0
[INFO] [stderr]     Checking crossbeam-channel v0.3.9
[INFO] [stderr]     Checking crossbeam-queue v0.1.2
[INFO] [stderr]     Checking want v0.3.0
[INFO] [stderr]     Checking dirs v2.0.2
[INFO] [stderr]     Checking mio v0.6.21
[INFO] [stderr]     Checking serde_json v1.0.42
[INFO] [stderr]    Compiling quote v1.0.2
[INFO] [stderr]    Compiling memoffset v0.5.3
[INFO] [stderr]    Compiling parking_lot_core v0.6.2
[INFO] [stderr]    Compiling parking_lot v0.9.0
[INFO] [stderr]    Compiling cast v0.2.3
[INFO] [stderr]    Compiling lexical-core v0.4.6
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking bytes v0.4.12
[INFO] [stderr]     Checking regex-automata v0.1.8
[INFO] [stderr]     Checking csv-core v0.1.6
[INFO] [stderr]     Checking crossbeam-queue v0.2.0
[INFO] [stderr]     Checking idna v0.2.0
[INFO] [stderr]    Compiling mime_guess v2.0.1
[INFO] [stderr]     Checking rand_os v0.2.2
[INFO] [stderr]     Checking rand_xoshiro v0.3.1
[INFO] [stderr]    Compiling openssl-sys v0.9.53
[INFO] [stderr]    Compiling backtrace-sys v0.1.32
[INFO] [stderr]     Checking mio-uds v0.6.7
[INFO] [stderr]     Checking bstr v0.2.8
[INFO] [stderr]     Checking http v0.1.20
[INFO] [stderr]     Checking string v0.2.1
[INFO] [stderr]     Checking criterion-plot v0.4.0
[INFO] [stderr]     Checking url v2.1.0
[INFO] [stderr]     Checking crossbeam-deque v0.7.2
[INFO] [stderr]     Checking tinytemplate v1.0.2
[INFO] [stderr]     Checking rayon-core v1.6.1
[INFO] [stderr]     Checking backtrace v0.3.40
[INFO] [stderr]    Compiling openssl v0.10.26
[INFO] [stderr]     Checking csv v1.1.1
[INFO] [stderr]     Checking rayon v1.2.1
[INFO] [stderr]     Checking serde_urlencoded v0.6.1
[INFO] [stderr]     Checking tokio-sync v0.2.0-alpha.6
[INFO] [stderr]     Checking num v0.2.0
[INFO] [stderr]     Checking http-body v0.2.0-alpha.3
[INFO] [stderr]    Compiling synstructure v0.12.3
[INFO] [stderr]    Compiling pin-project-internal v0.4.6
[INFO] [stderr]    Compiling tracing-attributes v0.1.5
[INFO] [stderr]    Compiling tokio-macros v0.2.0-alpha.6
[INFO] [stderr]    Compiling serde_derive v1.0.103
[INFO] [stderr]     Checking failure v0.1.6
[INFO] [stderr]     Checking tracing v0.1.10
[INFO] [stderr]     Checking tokio-executor v0.2.0-alpha.6
[INFO] [stderr]     Checking pin-project v0.4.6
[INFO] [stderr]     Checking tokio-io v0.2.0-alpha.6
[INFO] [stderr]     Checking tokio-codec v0.2.0-alpha.6
[INFO] [stderr]     Checking tower-make v0.3.0-alpha.2a
[INFO] [stderr]     Checking tokio-tls v0.3.0-alpha.6
[INFO] [stderr]     Checking tokio-timer v0.3.0-alpha.6
[INFO] [stderr]     Checking tokio-fs v0.2.0-alpha.6
[INFO] [stderr]     Checking tokio-net v0.2.0-alpha.6
[INFO] [stderr]     Checking h2 v0.2.0-alpha.3
[INFO] [stderr]     Checking tokio v0.2.0-alpha.6
[INFO] [stderr]     Checking criterion v0.3.0
[INFO] [stderr]     Checking hyper v0.13.0-alpha.4
[INFO] [stderr]     Checking hyper-tls v0.4.0-alpha.4
[INFO] [stderr]     Checking reqwest v0.10.0-alpha.2
[INFO] [stderr]     Checking advent v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Read`, `stdin`
[INFO] [stdout]  --> src/solutions/r2019_13.rs:7:15
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::io::{stdin, Write, Read};
[INFO] [stdout]   |               ^^^^^         ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `clear`
[INFO] [stdout]   --> src/solutions/r2019_13.rs:11:15
[INFO] [stdout]    |
[INFO] [stdout] 11 | use termion::{clear, cursor};
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `termion::raw::IntoRawMode`
[INFO] [stdout]  --> src/solutions/r2019_15.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use termion::raw::IntoRawMode;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/solutions/r2019_16.rs:74:30
[INFO] [stdout]    |
[INFO] [stdout] 74 |                     1 => r = (r + v1),
[INFO] [stdout]    |                              ^^^^^^^^ help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/solutions/r2019_16.rs:75:30
[INFO] [stdout]    |
[INFO] [stdout] 75 |                     3 => r = (r - v1),
[INFO] [stdout]    |                              ^^^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Direction`
[INFO] [stdout]  --> src/solutions/r2019_17.rs:4:45
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::solutions::common::{Map2D, Cell, Direction, Vector2};
[INFO] [stdout]   |                                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `termion::input::TermRead`
[INFO] [stdout]  --> src/solutions/r2019_17.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use termion::input::TermRead;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::iter::FromIterator`
[INFO] [stdout]  --> src/solutions/r2019_18.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::iter::FromIterator;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/solutions/intcode.rs:124:17
[INFO] [stdout]     |
[INFO] [stdout] 124 |                 (self.relative_base + destination)
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::solutions::r2019_11::Solution`
[INFO] [stdout]    --> src/solutions/r2019_11.rs:174:9
[INFO] [stdout]     |
[INFO] [stdout] 174 |     use crate::solutions::r2019_11::Solution;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::solutions::Solver`
[INFO] [stdout]    --> src/solutions/r2019_11.rs:175:9
[INFO] [stdout]     |
[INFO] [stdout] 175 |     use crate::solutions::Solver;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Read`, `stdin`
[INFO] [stdout]  --> src/solutions/r2019_13.rs:7:15
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::io::{stdin, Write, Read};
[INFO] [stdout]   |               ^^^^^         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `clear`
[INFO] [stdout]   --> src/solutions/r2019_13.rs:11:15
[INFO] [stdout]    |
[INFO] [stdout] 11 | use termion::{clear, cursor};
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `termion::raw::IntoRawMode`
[INFO] [stdout]  --> src/solutions/r2019_15.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use termion::raw::IntoRawMode;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/solutions/r2019_16.rs:74:30
[INFO] [stdout]    |
[INFO] [stdout] 74 |                     1 => r = (r + v1),
[INFO] [stdout]    |                              ^^^^^^^^ help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/solutions/r2019_16.rs:75:30
[INFO] [stdout]    |
[INFO] [stdout] 75 |                     3 => r = (r - v1),
[INFO] [stdout]    |                              ^^^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Direction`
[INFO] [stdout]  --> src/solutions/r2019_17.rs:4:45
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::solutions::common::{Map2D, Cell, Direction, Vector2};
[INFO] [stdout]   |                                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `termion::input::TermRead`
[INFO] [stdout]  --> src/solutions/r2019_17.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use termion::input::TermRead;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::iter::FromIterator`
[INFO] [stdout]  --> src/solutions/r2019_18.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::iter::FromIterator;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/solutions/intcode.rs:124:17
[INFO] [stdout]     |
[INFO] [stdout] 124 |                 (self.relative_base + destination)
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/solutions/r2019_13.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 165 | /         loop {
[INFO] [stdout] 166 | |             match self.state.code.run() {
[INFO] [stdout] 167 | |                 State::Input => {
[INFO] [stdout] 168 | |                     self.print_map();
[INFO] [stdout] ...   |
[INFO] [stdout] 207 | |             }
[INFO] [stdout] 208 | |         }
[INFO] [stdout]     | |_________- any code following this expression is unreachable
[INFO] [stdout] 209 |           self.print_map();
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/solutions/r2019_13.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 165 | /         loop {
[INFO] [stdout] 166 | |             match self.state.code.run() {
[INFO] [stdout] 167 | |                 State::Input => {
[INFO] [stdout] 168 | |                     self.print_map();
[INFO] [stdout] ...   |
[INFO] [stdout] 207 | |             }
[INFO] [stdout] 208 | |         }
[INFO] [stdout]     | |_________- any code following this expression is unreachable
[INFO] [stdout] 209 |           self.print_map();
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::prelude`
[INFO] [stdout]  --> src/solutions/r2019_18.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable if-let pattern
[INFO] [stdout]   --> src/solutions/r2019_17.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | /         if let Tile::Ascii(a) = self {
[INFO] [stdout] 27 | |             if *a == b'#' {
[INFO] [stdout] 28 | |                 return true
[INFO] [stdout] 29 | |             }
[INFO] [stdout] 30 | |         }
[INFO] [stdout]    | |_________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/solutions/r2019_3.rs:71:13
[INFO] [stdout]    |
[INFO] [stdout] 71 |         for i in 0..input.step {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `param3`
[INFO] [stdout]   --> src/solutions/r2019_5.rs:22:17
[INFO] [stdout]    |
[INFO] [stdout] 22 |             let param3 =  op_code % 100000 / 10000 == 1;
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_param3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/solutions/r2019_6.rs:58:56
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let nodes: Vec<String> = map.iter().flat_map(|(key, values)| values.clone()).collect();
[INFO] [stdout]    |                                                        ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `map`
[INFO] [stdout]   --> src/solutions/r2019_6.rs:69:14
[INFO] [stdout]    |
[INFO] [stdout] 69 |         let (map, inverse_map) = input;
[INFO] [stdout]    |              ^^^ help: if this is intentional, prefix it with an underscore: `_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `param3`
[INFO] [stdout]   --> src/solutions/r2019_7.rs:84:13
[INFO] [stdout]    |
[INFO] [stdout] 84 |         let param3 =  op_code % 100000 / 10000 == 1;
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_param3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `angles`
[INFO] [stdout]    --> src/solutions/r2019_10.rs:145:13
[INFO] [stdout]     |
[INFO] [stdout] 145 |         let angles = slopes.iter().map(|&v| (v, v.angle())).collect_vec();
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_angles`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `tile` is never read
[INFO] [stdout]    --> src/solutions/r2019_13.rs:155:13
[INFO] [stdout]     |
[INFO] [stdout] 155 |         let mut tile = Tile::Empty;
[INFO] [stdout]     |             ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/solutions/r2019_13.rs:215:84
[INFO] [stdout]     |
[INFO] [stdout] 215 |         let (min_width, max_width) = match self.state.map.iter().minmax_by_key(|(k,v)|k.x) {
[INFO] [stdout]     |                                                                                    ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/solutions/r2019_13.rs:222:86
[INFO] [stdout]     |
[INFO] [stdout] 222 |         let (min_height, max_height) = match self.state.map.iter().minmax_by_key(|(k,v)|k.y) {
[INFO] [stdout]     |                                                                                      ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]    --> src/solutions/r2019_13.rs:265:41
[INFO] [stdout]     |
[INFO] [stdout] 265 |         let res = tiles.iter().filter(|(k,v)| {
[INFO] [stdout]     |                                         ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stderr`
[INFO] [stdout]    --> src/solutions/r2019_13.rs:262:13
[INFO] [stdout]     |
[INFO] [stdout] 262 |         let mut stderr = stderr.lock();
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stderr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `actual` is never read
[INFO] [stdout]    --> src/solutions/r2019_14.rs:130:13
[INFO] [stdout]     |
[INFO] [stdout] 130 |         let mut actual = schema.solve(fuel);
[INFO] [stdout]     |             ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `moved`
[INFO] [stdout]    --> src/solutions/r2019_15.rs:197:13
[INFO] [stdout]     |
[INFO] [stdout] 197 |         let mut moved = false;
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_moved`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/solutions/r2019_15.rs:213:45
[INFO] [stdout]     |
[INFO] [stdout] 213 | ...                   if let Some(a) = self.map.data.get(&t) {
[INFO] [stdout]     |                                   ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/solutions/r2019_15.rs:275:45
[INFO] [stdout]     |
[INFO] [stdout] 275 |         let pos = d.map.data.iter().find(|&(v, t)|*t == Tile::Oxy).unwrap();
[INFO] [stdout]     |                                             ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/solutions/r2019_15.rs:286:54
[INFO] [stdout]     |
[INFO] [stdout] 286 |         let (oxy_pos, _) = d.map.data.iter().find(|&(v, t)|*t == Tile::Oxy).unwrap();
[INFO] [stdout]     |                                                      ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/solutions/r2019_15.rs:288:24
[INFO] [stdout]     |
[INFO] [stdout] 288 |             .filter(|&(v, t)| *t == Tile::Empty)
[INFO] [stdout]     |                        ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/solutions/r2019_15.rs:289:23
[INFO] [stdout]     |
[INFO] [stdout] 289 |             .map(|(v, t)| *v).collect_vec();
[INFO] [stdout]     |                       ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/solutions/r2019_16.rs:44:13
[INFO] [stdout]    |
[INFO] [stdout] 44 |         for p in 0..(n-1) {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `tile` is never read
[INFO] [stdout]   --> src/solutions/r2019_17.rs:87:25
[INFO] [stdout]    |
[INFO] [stdout] 87 |                     let mut tile = Tile::default();
[INFO] [stdout]    |                         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/solutions/r2019_17.rs:139:13
[INFO] [stdout]     |
[INFO] [stdout] 139 |         let a = b"R12L8L4L4L8R6L6\n";
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/solutions/r2019_17.rs:140:13
[INFO] [stdout]     |
[INFO] [stdout] 140 |         let b = b"R6R6L8R4R4R8R12\n";
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> src/solutions/r2019_17.rs:141:13
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let c = b"L6R6L6R6\n";
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d`
[INFO] [stdout]    --> src/solutions/r2019_17.rs:142:13
[INFO] [stdout]     |
[INFO] [stdout] 142 |         let d = b"R12L4L6R12L4\n";
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/solutions/r2019_17.rs:143:13
[INFO] [stdout]     |
[INFO] [stdout] 143 |         let e = b"R8R4R4R8\n";
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]    --> src/solutions/r2019_17.rs:144:13
[INFO] [stdout]     |
[INFO] [stdout] 144 |         let f = b"R12L6L4R12L8L4L4L8L4\n";
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `g`
[INFO] [stdout]    --> src/solutions/r2019_17.rs:145:13
[INFO] [stdout]     |
[INFO] [stdout] 145 |         let g = b"R12L6L4L8R6L6\n";
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input_t`
[INFO] [stdout]    --> src/solutions/r2019_17.rs:146:13
[INFO] [stdout]     |
[INFO] [stdout] 146 |         let input_t = b"AARBCDEDRR4FFG";
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stderr`
[INFO] [stdout]    --> src/solutions/r2019_17.rs:148:13
[INFO] [stdout]     |
[INFO] [stdout] 148 |         let stderr = stderr.lock();
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stderr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `complete`
[INFO] [stdout]    --> src/solutions/r2019_17.rs:157:13
[INFO] [stdout]     |
[INFO] [stdout] 157 | ...   let complete = "R,12,L,8,L,4,L,4,L,8,R,6,L,6,R,12,L,8,L,4,L,4,L,8,R,6,L,6,L,8,L,4,R,12,L,6,L,4,R,12,L,8,L,4,L,4,L,8,L,4,R,12,L,6,L,...
[INFO] [stdout]     |           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_complete`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/solutions/r2019_18.rs:217:23
[INFO] [stdout]     |
[INFO] [stdout] 217 |             .filter(|(i,p)| {
[INFO] [stdout]     |                       ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/solutions/r2019_18.rs:259:27
[INFO] [stdout]     |
[INFO] [stdout] 259 |             if let Some(&(t,d,v)) = targets_keys.iter().find(|(t, _, _)| *t == p) {
[INFO] [stdout]     |                           ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/solutions/r2019_18.rs:309:68
[INFO] [stdout]     |
[INFO] [stdout] 309 |         let (start_pos, _) = input.all_tiles().into_iter().find(|&(v, t)| t == Tile::Start).unwrap();
[INFO] [stdout]     |                                                                    ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/solutions/r2019_18.rs:315:68
[INFO] [stdout]     |
[INFO] [stdout] 315 |         let (start_pos, _) = input.all_tiles().into_iter().find(|&(v, t)| t == Tile::Start).unwrap();
[INFO] [stdout]     |                                                                    ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d`
[INFO] [stdout]    --> src/solutions/r2019_20.rs:125:25
[INFO] [stdout]     |
[INFO] [stdout] 125 |         while let Some((d, level, next)) = path.get(&current_pos) {
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/r2019_21.rs:14:20
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn parse_input(input: &str) -> Result<Self::Input, Error> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/r2019_21.rs:18:20
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn solve_part1(input: Self::Input) -> Result<Self::Output, Error> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/r2019_21.rs:22:20
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn solve_part2(input: Self::Input) -> Result<Self::Output, Error> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/r2019_22.rs:14:20
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn parse_input(input: &str) -> Result<Self::Input, Error> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/r2019_22.rs:18:20
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn solve_part1(input: Self::Input) -> Result<Self::Output, Error> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/r2019_22.rs:22:20
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn solve_part2(input: Self::Input) -> Result<Self::Output, Error> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/r2019_23.rs:14:20
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn parse_input(input: &str) -> Result<Self::Input, Error> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/r2019_23.rs:18:20
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn solve_part1(input: Self::Input) -> Result<Self::Output, Error> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/r2019_23.rs:22:20
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn solve_part2(input: Self::Input) -> Result<Self::Output, Error> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/r2019_24.rs:14:20
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn parse_input(input: &str) -> Result<Self::Input, Error> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/r2019_24.rs:18:20
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn solve_part1(input: Self::Input) -> Result<Self::Output, Error> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/r2019_24.rs:22:20
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn solve_part2(input: Self::Input) -> Result<Self::Output, Error> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/r2019_25.rs:14:20
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn parse_input(input: &str) -> Result<Self::Input, Error> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/r2019_25.rs:18:20
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn solve_part1(input: Self::Input) -> Result<Self::Output, Error> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/r2019_25.rs:22:20
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn solve_part2(input: Self::Input) -> Result<Self::Output, Error> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/template.rs:14:20
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn parse_input(input: &str) -> Result<Self::Input, Error> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/template.rs:18:20
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn solve_part1(input: Self::Input) -> Result<Self::Output, Error> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/template.rs:22:20
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn solve_part2(input: Self::Input) -> Result<Self::Output, Error> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/solutions/common.rs:128:79
[INFO] [stdout]     |
[INFO] [stdout] 128 |         let (min_width, max_width) = match self.data.iter().minmax_by_key(|(k,v)|k.x) {
[INFO] [stdout]     |                                                                               ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/solutions/common.rs:135:81
[INFO] [stdout]     |
[INFO] [stdout] 135 |         let (min_height, max_height) = match self.data.iter().minmax_by_key(|(k,v)|k.y) {
[INFO] [stdout]     |                                                                                 ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: cannot borrow `p` as mutable because it is also borrowed as immutable
[INFO] [stdout]   --> src/solutions/r2019_3.rs:87:13
[INFO] [stdout]    |
[INFO] [stdout] 86 |             let l = p.last().unwrap();
[INFO] [stdout]    |                     - immutable borrow occurs here
[INFO] [stdout] 87 |             p.append(&mut l.apply(n));
[INFO] [stdout]    |             ^             - immutable borrow later used here
[INFO] [stdout]    |             |
[INFO] [stdout]    |             mutable borrow occurs here
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(mutable_borrow_reservation_conflict)]` on by default
[INFO] [stdout]    = warning: this borrowing pattern was not meant to be accepted, and may become a hard error in the future
[INFO] [stdout]    = note: for more information, see issue #59159 <https://github.com/rust-lang/rust/issues/59159>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_3.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let mut wires:Vec<Vec<&str>> =
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_7.rs:174:13
[INFO] [stdout]     |
[INFO] [stdout] 174 |         let mut code = code.to_vec();
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_7.rs:203:32
[INFO] [stdout]     |
[INFO] [stdout] 203 |     fn run_seqv2(code: &[i32], mut seq: Vec<i32>) -> i32{
[INFO] [stdout]     |                                ----^^^
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::prelude`
[INFO] [stdout]  --> src/solutions/r2019_18.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable if-let pattern
[INFO] [stdout]   --> src/solutions/r2019_17.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | /         if let Tile::Ascii(a) = self {
[INFO] [stdout] 27 | |             if *a == b'#' {
[INFO] [stdout] 28 | |                 return true
[INFO] [stdout] 29 | |             }
[INFO] [stdout] 30 | |         }
[INFO] [stdout]    | |_________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_7.rs:266:13
[INFO] [stdout]     |
[INFO] [stdout] 266 |         let mut seq = vec!(1,0,4,3,2);
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_7.rs:275:13
[INFO] [stdout]     |
[INFO] [stdout] 275 |         let mut seq = vec!(5,6,7,8,9);
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/solutions/r2019_3.rs:71:13
[INFO] [stdout]    |
[INFO] [stdout] 71 |         for i in 0..input.step {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `param3`
[INFO] [stdout]   --> src/solutions/r2019_5.rs:22:17
[INFO] [stdout]    |
[INFO] [stdout] 22 |             let param3 =  op_code % 100000 / 10000 == 1;
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_param3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/solutions/r2019_6.rs:58:56
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let nodes: Vec<String> = map.iter().flat_map(|(key, values)| values.clone()).collect();
[INFO] [stdout]    |                                                        ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `map`
[INFO] [stdout]   --> src/solutions/r2019_6.rs:69:14
[INFO] [stdout]    |
[INFO] [stdout] 69 |         let (map, inverse_map) = input;
[INFO] [stdout]    |              ^^^ help: if this is intentional, prefix it with an underscore: `_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `param3`
[INFO] [stdout]   --> src/solutions/r2019_7.rs:84:13
[INFO] [stdout]    |
[INFO] [stdout] 84 |         let param3 =  op_code % 100000 / 10000 == 1;
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_param3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `angles`
[INFO] [stdout]    --> src/solutions/r2019_10.rs:145:13
[INFO] [stdout]     |
[INFO] [stdout] 145 |         let angles = slopes.iter().map(|&v| (v, v.angle())).collect_vec();
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_angles`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `tile` is never read
[INFO] [stdout]    --> src/solutions/r2019_13.rs:155:13
[INFO] [stdout]     |
[INFO] [stdout] 155 |         let mut tile = Tile::Empty;
[INFO] [stdout]     |             ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/solutions/r2019_13.rs:215:84
[INFO] [stdout]     |
[INFO] [stdout] 215 |         let (min_width, max_width) = match self.state.map.iter().minmax_by_key(|(k,v)|k.x) {
[INFO] [stdout]     |                                                                                    ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/solutions/r2019_13.rs:222:86
[INFO] [stdout]     |
[INFO] [stdout] 222 |         let (min_height, max_height) = match self.state.map.iter().minmax_by_key(|(k,v)|k.y) {
[INFO] [stdout]     |                                                                                      ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]    --> src/solutions/r2019_13.rs:265:41
[INFO] [stdout]     |
[INFO] [stdout] 265 |         let res = tiles.iter().filter(|(k,v)| {
[INFO] [stdout]     |                                         ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stderr`
[INFO] [stdout]    --> src/solutions/r2019_13.rs:262:13
[INFO] [stdout]     |
[INFO] [stdout] 262 |         let mut stderr = stderr.lock();
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stderr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/r2019_9.rs:19:20
[INFO] [stdout]    |
[INFO] [stdout] 19 |     fn solve_part1(mut input: Self::Input) -> Result<Self::Output, Error> {
[INFO] [stdout]    |                    ----^^^^^
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `actual` is never read
[INFO] [stdout]    --> src/solutions/r2019_14.rs:130:13
[INFO] [stdout]     |
[INFO] [stdout] 130 |         let mut actual = schema.solve(fuel);
[INFO] [stdout]     |             ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `moved`
[INFO] [stdout]    --> src/solutions/r2019_15.rs:197:13
[INFO] [stdout]     |
[INFO] [stdout] 197 |         let mut moved = false;
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_moved`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/solutions/r2019_15.rs:213:45
[INFO] [stdout]     |
[INFO] [stdout] 213 | ...                   if let Some(a) = self.map.data.get(&t) {
[INFO] [stdout]     |                                   ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/solutions/r2019_15.rs:275:45
[INFO] [stdout]     |
[INFO] [stdout] 275 |         let pos = d.map.data.iter().find(|&(v, t)|*t == Tile::Oxy).unwrap();
[INFO] [stdout]     |                                             ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/solutions/r2019_15.rs:286:54
[INFO] [stdout]     |
[INFO] [stdout] 286 |         let (oxy_pos, _) = d.map.data.iter().find(|&(v, t)|*t == Tile::Oxy).unwrap();
[INFO] [stdout]     |                                                      ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/solutions/r2019_15.rs:288:24
[INFO] [stdout]     |
[INFO] [stdout] 288 |             .filter(|&(v, t)| *t == Tile::Empty)
[INFO] [stdout]     |                        ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/solutions/r2019_15.rs:289:23
[INFO] [stdout]     |
[INFO] [stdout] 289 |             .map(|(v, t)| *v).collect_vec();
[INFO] [stdout]     |                       ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/solutions/r2019_16.rs:44:13
[INFO] [stdout]    |
[INFO] [stdout] 44 |         for p in 0..(n-1) {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `tile` is never read
[INFO] [stdout]   --> src/solutions/r2019_17.rs:87:25
[INFO] [stdout]    |
[INFO] [stdout] 87 |                     let mut tile = Tile::default();
[INFO] [stdout]    |                         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/solutions/r2019_17.rs:139:13
[INFO] [stdout]     |
[INFO] [stdout] 139 |         let a = b"R12L8L4L4L8R6L6\n";
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/solutions/r2019_17.rs:140:13
[INFO] [stdout]     |
[INFO] [stdout] 140 |         let b = b"R6R6L8R4R4R8R12\n";
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> src/solutions/r2019_17.rs:141:13
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let c = b"L6R6L6R6\n";
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d`
[INFO] [stdout]    --> src/solutions/r2019_17.rs:142:13
[INFO] [stdout]     |
[INFO] [stdout] 142 |         let d = b"R12L4L6R12L4\n";
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/solutions/r2019_17.rs:143:13
[INFO] [stdout]     |
[INFO] [stdout] 143 |         let e = b"R8R4R4R8\n";
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]    --> src/solutions/r2019_17.rs:144:13
[INFO] [stdout]     |
[INFO] [stdout] 144 |         let f = b"R12L6L4R12L8L4L4L8L4\n";
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `g`
[INFO] [stdout]    --> src/solutions/r2019_17.rs:145:13
[INFO] [stdout]     |
[INFO] [stdout] 145 |         let g = b"R12L6L4L8R6L6\n";
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input_t`
[INFO] [stdout]    --> src/solutions/r2019_17.rs:146:13
[INFO] [stdout]     |
[INFO] [stdout] 146 |         let input_t = b"AARBCDEDRR4FFG";
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stderr`
[INFO] [stdout]    --> src/solutions/r2019_17.rs:148:13
[INFO] [stdout]     |
[INFO] [stdout] 148 |         let stderr = stderr.lock();
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stderr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `complete`
[INFO] [stdout]    --> src/solutions/r2019_17.rs:157:13
[INFO] [stdout]     |
[INFO] [stdout] 157 | ...   let complete = "R,12,L,8,L,4,L,4,L,8,R,6,L,6,R,12,L,8,L,4,L,4,L,8,R,6,L,6,L,8,L,4,R,12,L,6,L,4,R,12,L,8,L,4,L,4,L,8,L,4,R,12,L,6,L,...
[INFO] [stdout]     |           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_complete`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/solutions/r2019_18.rs:217:23
[INFO] [stdout]     |
[INFO] [stdout] 217 |             .filter(|(i,p)| {
[INFO] [stdout]     |                       ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/solutions/r2019_18.rs:259:27
[INFO] [stdout]     |
[INFO] [stdout] 259 |             if let Some(&(t,d,v)) = targets_keys.iter().find(|(t, _, _)| *t == p) {
[INFO] [stdout]     |                           ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/solutions/r2019_18.rs:309:68
[INFO] [stdout]     |
[INFO] [stdout] 309 |         let (start_pos, _) = input.all_tiles().into_iter().find(|&(v, t)| t == Tile::Start).unwrap();
[INFO] [stdout]     |                                                                    ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/solutions/r2019_18.rs:315:68
[INFO] [stdout]     |
[INFO] [stdout] 315 |         let (start_pos, _) = input.all_tiles().into_iter().find(|&(v, t)| t == Tile::Start).unwrap();
[INFO] [stdout]     |                                                                    ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d`
[INFO] [stdout]    --> src/solutions/r2019_20.rs:125:25
[INFO] [stdout]     |
[INFO] [stdout] 125 |         while let Some((d, level, next)) = path.get(&current_pos) {
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/r2019_21.rs:14:20
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn parse_input(input: &str) -> Result<Self::Input, Error> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/r2019_21.rs:18:20
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn solve_part1(input: Self::Input) -> Result<Self::Output, Error> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/r2019_21.rs:22:20
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn solve_part2(input: Self::Input) -> Result<Self::Output, Error> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/r2019_22.rs:14:20
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn parse_input(input: &str) -> Result<Self::Input, Error> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/r2019_22.rs:18:20
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn solve_part1(input: Self::Input) -> Result<Self::Output, Error> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/r2019_22.rs:22:20
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn solve_part2(input: Self::Input) -> Result<Self::Output, Error> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/r2019_23.rs:14:20
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn parse_input(input: &str) -> Result<Self::Input, Error> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/r2019_23.rs:18:20
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn solve_part1(input: Self::Input) -> Result<Self::Output, Error> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/r2019_23.rs:22:20
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn solve_part2(input: Self::Input) -> Result<Self::Output, Error> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/r2019_24.rs:14:20
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn parse_input(input: &str) -> Result<Self::Input, Error> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/r2019_24.rs:18:20
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn solve_part1(input: Self::Input) -> Result<Self::Output, Error> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/r2019_24.rs:22:20
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn solve_part2(input: Self::Input) -> Result<Self::Output, Error> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/r2019_25.rs:14:20
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn parse_input(input: &str) -> Result<Self::Input, Error> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/r2019_25.rs:18:20
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn solve_part1(input: Self::Input) -> Result<Self::Output, Error> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/r2019_25.rs:22:20
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn solve_part2(input: Self::Input) -> Result<Self::Output, Error> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/template.rs:14:20
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn parse_input(input: &str) -> Result<Self::Input, Error> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/template.rs:18:20
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn solve_part1(input: Self::Input) -> Result<Self::Output, Error> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/template.rs:22:20
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn solve_part2(input: Self::Input) -> Result<Self::Output, Error> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/solutions/common.rs:128:79
[INFO] [stdout]     |
[INFO] [stdout] 128 |         let (min_width, max_width) = match self.data.iter().minmax_by_key(|(k,v)|k.x) {
[INFO] [stdout]     |                                                                               ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/r2019_11.rs:64:13
[INFO] [stdout]    |
[INFO] [stdout] 64 |         let mut black_panel: HashSet<Vector2> = HashSet::new();
[INFO] [stdout]    |             ----^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/solutions/common.rs:135:81
[INFO] [stdout]     |
[INFO] [stdout] 135 |         let (min_height, max_height) = match self.data.iter().minmax_by_key(|(k,v)|k.y) {
[INFO] [stdout]     |                                                                                 ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_11.rs:158:20
[INFO] [stdout]     |
[INFO] [stdout] 158 |     fn solve_part1(mut input: Self::Input) -> Result<Self::Output, Error> {
[INFO] [stdout]     |                    ----^^^^^
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: cannot borrow `p` as mutable because it is also borrowed as immutable
[INFO] [stdout]   --> src/solutions/r2019_3.rs:87:13
[INFO] [stdout]    |
[INFO] [stdout] 86 |             let l = p.last().unwrap();
[INFO] [stdout]    |                     - immutable borrow occurs here
[INFO] [stdout] 87 |             p.append(&mut l.apply(n));
[INFO] [stdout]    |             ^             - immutable borrow later used here
[INFO] [stdout]    |             |
[INFO] [stdout]    |             mutable borrow occurs here
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(mutable_borrow_reservation_conflict)]` on by default
[INFO] [stdout]    = warning: this borrowing pattern was not meant to be accepted, and may become a hard error in the future
[INFO] [stdout]    = note: for more information, see issue #59159 <https://github.com/rust-lang/rust/issues/59159>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_12.rs:193:13
[INFO] [stdout]     |
[INFO] [stdout] 193 |         let mut start = Universe::new(input);
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_3.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let mut wires:Vec<Vec<&str>> =
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_13.rs:256:20
[INFO] [stdout]     |
[INFO] [stdout] 256 |     fn solve_part1(mut input: Self::Input) -> Result<Self::Output, Error> {
[INFO] [stdout]     |                    ----^^^^^
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_13.rs:258:13
[INFO] [stdout]     |
[INFO] [stdout] 258 |         let mut stdout = stdout.lock();
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_13.rs:262:13
[INFO] [stdout]     |
[INFO] [stdout] 262 |         let mut stderr = stderr.lock();
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_13.rs:273:13
[INFO] [stdout]     |
[INFO] [stdout] 273 |         let mut stdout = stdout;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_13.rs:276:13
[INFO] [stdout]     |
[INFO] [stdout] 276 |         let mut stdout = stdout.into_raw_mode().unwrap();
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_7.rs:174:13
[INFO] [stdout]     |
[INFO] [stdout] 174 |         let mut code = code.to_vec();
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_7.rs:203:32
[INFO] [stdout]     |
[INFO] [stdout] 203 |     fn run_seqv2(code: &[i32], mut seq: Vec<i32>) -> i32{
[INFO] [stdout]     |                                ----^^^
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_7.rs:266:13
[INFO] [stdout]     |
[INFO] [stdout] 266 |         let mut seq = vec!(1,0,4,3,2);
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_7.rs:275:13
[INFO] [stdout]     |
[INFO] [stdout] 275 |         let mut seq = vec!(5,6,7,8,9);
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_14.rs:129:13
[INFO] [stdout]     |
[INFO] [stdout] 129 |         let mut fuel = target / res;
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/r2019_9.rs:19:20
[INFO] [stdout]    |
[INFO] [stdout] 19 |     fn solve_part1(mut input: Self::Input) -> Result<Self::Output, Error> {
[INFO] [stdout]    |                    ----^^^^^
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/r2019_9.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let mut code = Solution::parse_input(input).unwrap();
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_15.rs:197:13
[INFO] [stdout]     |
[INFO] [stdout] 197 |         let mut moved = false;
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/r2019_11.rs:64:13
[INFO] [stdout]    |
[INFO] [stdout] 64 |         let mut black_panel: HashSet<Vector2> = HashSet::new();
[INFO] [stdout]    |             ----^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_11.rs:158:20
[INFO] [stdout]     |
[INFO] [stdout] 158 |     fn solve_part1(mut input: Self::Input) -> Result<Self::Output, Error> {
[INFO] [stdout]     |                    ----^^^^^
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_17.rs:149:13
[INFO] [stdout]     |
[INFO] [stdout] 149 |         let mut stdout = io::stdout();
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_18.rs:236:30
[INFO] [stdout]     |
[INFO] [stdout] 236 |             let (_, new_pos, mut small_path) = self.run_brute(&pos, keys.clone(), brute_seq.pop());
[INFO] [stdout]     |                              ----^^^^^^^^^^
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_12.rs:193:13
[INFO] [stdout]     |
[INFO] [stdout] 193 |         let mut start = Universe::new(input);
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_18.rs:308:20
[INFO] [stdout]     |
[INFO] [stdout] 308 |     fn solve_part1(mut input: Self::Input) -> Result<Self::Output, Error> {
[INFO] [stdout]     |                    ----^^^^^
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_18.rs:330:13
[INFO] [stdout]     |
[INFO] [stdout] 330 |         let mut rpos = vec![start1, start2, start3, start4];
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_18.rs:331:13
[INFO] [stdout]     |
[INFO] [stdout] 331 |         let mut total_d = input.run_multi_brute(rpos, vec![]);
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_13.rs:256:20
[INFO] [stdout]     |
[INFO] [stdout] 256 |     fn solve_part1(mut input: Self::Input) -> Result<Self::Output, Error> {
[INFO] [stdout]     |                    ----^^^^^
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_13.rs:258:13
[INFO] [stdout]     |
[INFO] [stdout] 258 |         let mut stdout = stdout.lock();
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_13.rs:262:13
[INFO] [stdout]     |
[INFO] [stdout] 262 |         let mut stderr = stderr.lock();
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_13.rs:273:13
[INFO] [stdout]     |
[INFO] [stdout] 273 |         let mut stdout = stdout;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_13.rs:276:13
[INFO] [stdout]     |
[INFO] [stdout] 276 |         let mut stdout = stdout.into_raw_mode().unwrap();
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_14.rs:129:13
[INFO] [stdout]     |
[INFO] [stdout] 129 |         let mut fuel = target / res;
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `find_leaves`
[INFO] [stdout]   --> src/solutions/r2019_6.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn find_leaves(root: String, map: &HashMap<String, Vec<String>>) -> Vec<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `state`
[INFO] [stdout]   --> src/solutions/r2019_7.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 |     fn state(&self) -> State {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct is never constructed: `Panel`
[INFO] [stdout]  --> src/solutions/r2019_11.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct Panel {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `regent_parser`
[INFO] [stdout]   --> src/solutions/r2019_14.rs:84:4
[INFO] [stdout]    |
[INFO] [stdout] 84 | fn regent_parser() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `rotate`
[INFO] [stdout]   --> src/solutions/r2019_15.rs:50:8
[INFO] [stdout]    |
[INFO] [stdout] 50 |     fn rotate(&self) -> Self {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `get_input`
[INFO] [stdout]    --> src/solutions/r2019_15.rs:141:8
[INFO] [stdout]     |
[INFO] [stdout] 141 |     fn get_input(&mut self) -> Move{
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `build_matrix`
[INFO] [stdout]  --> src/solutions/r2019_16.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn build_matrix(size: usize) -> Vec<Vec<i32>> {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `multiply_matrix`
[INFO] [stdout]   --> src/solutions/r2019_16.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 |     fn multiply_matrix(m0: &Vec<Vec<i32>>, m1: &Vec<Vec<i32>>) -> Vec<Vec<i32>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `power_matrix`
[INFO] [stdout]   --> src/solutions/r2019_16.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn power_matrix(m: Vec<Vec<i32>>, n: usize) -> Vec<Vec<i32>>{
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `phase_power`
[INFO] [stdout]   --> src/solutions/r2019_16.rs:50:8
[INFO] [stdout]    |
[INFO] [stdout] 50 |     fn phase_power(input:Vec<i32>, n: usize) -> Vec<i32> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `from_ascii`
[INFO] [stdout]   --> src/solutions/r2019_17.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 |     fn from_ascii(c: u8) -> Tile{
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `is_key_or_door`
[INFO] [stdout]   --> src/solutions/r2019_18.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn is_key_or_door(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `is_wall`
[INFO] [stdout]   --> src/solutions/r2019_18.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn is_wall(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `is_door`
[INFO] [stdout]   --> src/solutions/r2019_18.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 51 |     fn is_door(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `analyse`
[INFO] [stdout]    --> src/solutions/r2019_18.rs:124:8
[INFO] [stdout]     |
[INFO] [stdout] 124 |     fn analyse(&self) -> HashMap<Tile, Vector2> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `is_label`
[INFO] [stdout]   --> src/solutions/r2019_20.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn is_label(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `state`
[INFO] [stdout]   --> src/solutions/intcode.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub fn state(&self) -> State {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `scale`
[INFO] [stdout]   --> src/solutions/common.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn scale(&self, scalar: i32) -> Vector2 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `None`
[INFO] [stdout]   --> src/solutions/common.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 64 |     None,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `North`
[INFO] [stdout]   --> src/solutions/common.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 |     North,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `South`
[INFO] [stdout]   --> src/solutions/common.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     South,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `East`
[INFO] [stdout]   --> src/solutions/common.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 67 |     East,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `West`
[INFO] [stdout]   --> src/solutions/common.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 |     West
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `to_input`
[INFO] [stdout]   --> src/solutions/common.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub fn to_input(&self) -> i64 {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `to_vector`
[INFO] [stdout]   --> src/solutions/common.rs:82:12
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub fn to_vector(&self) -> Vector2 {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `rotate`
[INFO] [stdout]   --> src/solutions/common.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub fn rotate(&self) -> Self {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `new`
[INFO] [stdout]   --> src/solutions/mod.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 |     fn new(year: &str, day: &str, part: &str) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/solutions/r2019_17.rs:43:17
[INFO] [stdout]    |
[INFO] [stdout] 43 |                 stdout.write(&[*c]);
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/solutions/r2019_18.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |         f.write_str(&c.to_string());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_15.rs:197:13
[INFO] [stdout]     |
[INFO] [stdout] 197 |         let mut moved = false;
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 118 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_17.rs:149:13
[INFO] [stdout]     |
[INFO] [stdout] 149 |         let mut stdout = io::stdout();
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_18.rs:236:30
[INFO] [stdout]     |
[INFO] [stdout] 236 |             let (_, new_pos, mut small_path) = self.run_brute(&pos, keys.clone(), brute_seq.pop());
[INFO] [stdout]     |                              ----^^^^^^^^^^
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_18.rs:308:20
[INFO] [stdout]     |
[INFO] [stdout] 308 |     fn solve_part1(mut input: Self::Input) -> Result<Self::Output, Error> {
[INFO] [stdout]     |                    ----^^^^^
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_18.rs:330:13
[INFO] [stdout]     |
[INFO] [stdout] 330 |         let mut rpos = vec![start1, start2, start3, start4];
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/r2019_18.rs:331:13
[INFO] [stdout]     |
[INFO] [stdout] 331 |         let mut total_d = input.run_multi_brute(rpos, vec![]);
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `find_leaves`
[INFO] [stdout]   --> src/solutions/r2019_6.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn find_leaves(root: String, map: &HashMap<String, Vec<String>>) -> Vec<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `state`
[INFO] [stdout]   --> src/solutions/r2019_7.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 |     fn state(&self) -> State {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct is never constructed: `Panel`
[INFO] [stdout]  --> src/solutions/r2019_11.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct Panel {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `regent_parser`
[INFO] [stdout]   --> src/solutions/r2019_14.rs:84:4
[INFO] [stdout]    |
[INFO] [stdout] 84 | fn regent_parser() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `rotate`
[INFO] [stdout]   --> src/solutions/r2019_15.rs:50:8
[INFO] [stdout]    |
[INFO] [stdout] 50 |     fn rotate(&self) -> Self {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `get_input`
[INFO] [stdout]    --> src/solutions/r2019_15.rs:141:8
[INFO] [stdout]     |
[INFO] [stdout] 141 |     fn get_input(&mut self) -> Move{
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `from_ascii`
[INFO] [stdout]   --> src/solutions/r2019_17.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 |     fn from_ascii(c: u8) -> Tile{
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `is_key_or_door`
[INFO] [stdout]   --> src/solutions/r2019_18.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn is_key_or_door(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `is_wall`
[INFO] [stdout]   --> src/solutions/r2019_18.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn is_wall(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `is_door`
[INFO] [stdout]   --> src/solutions/r2019_18.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 51 |     fn is_door(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `analyse`
[INFO] [stdout]    --> src/solutions/r2019_18.rs:124:8
[INFO] [stdout]     |
[INFO] [stdout] 124 |     fn analyse(&self) -> HashMap<Tile, Vector2> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `is_label`
[INFO] [stdout]   --> src/solutions/r2019_20.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn is_label(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `state`
[INFO] [stdout]   --> src/solutions/intcode.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub fn state(&self) -> State {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `scale`
[INFO] [stdout]   --> src/solutions/common.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn scale(&self, scalar: i32) -> Vector2 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `None`
[INFO] [stdout]   --> src/solutions/common.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 64 |     None,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `North`
[INFO] [stdout]   --> src/solutions/common.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 |     North,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `South`
[INFO] [stdout]   --> src/solutions/common.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     South,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `East`
[INFO] [stdout]   --> src/solutions/common.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 67 |     East,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `West`
[INFO] [stdout]   --> src/solutions/common.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 |     West
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `to_input`
[INFO] [stdout]   --> src/solutions/common.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub fn to_input(&self) -> i64 {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `to_vector`
[INFO] [stdout]   --> src/solutions/common.rs:82:12
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub fn to_vector(&self) -> Vector2 {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `rotate`
[INFO] [stdout]   --> src/solutions/common.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub fn rotate(&self) -> Self {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `new`
[INFO] [stdout]   --> src/solutions/mod.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 |     fn new(year: &str, day: &str, part: &str) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/solutions/r2019_3.rs:151:9
[INFO] [stdout]     |
[INFO] [stdout] 151 |         dbg!(Solution::solve(str_v, true));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/solutions/r2019_3.rs:157:9
[INFO] [stdout]     |
[INFO] [stdout] 157 |         dbg!(Solution::solve(str_v, true));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/solutions/r2019_7.rs:294:9
[INFO] [stdout]     |
[INFO] [stdout] 294 |         dbg!(res);
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/solutions/r2019_7.rs:301:9
[INFO] [stdout]     |
[INFO] [stdout] 301 |         dbg!(res);
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/solutions/r2019_7.rs:308:9
[INFO] [stdout]     |
[INFO] [stdout] 308 |         dbg!(res);
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/solutions/r2019_17.rs:43:17
[INFO] [stdout]    |
[INFO] [stdout] 43 |                 stdout.write(&[*c]);
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/solutions/r2019_18.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |         f.write_str(&c.to_string());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/solutions/r2019_20.rs:268:9
[INFO] [stdout]     |
[INFO] [stdout] 268 |         dbg!(r);
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 123 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 2m 07s
[INFO] running `Command { std: "docker" "inspect" "349b54663dee077659ad5b2a7bb6cfab16b7eeb2866d31d11f42234a412ab27f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "349b54663dee077659ad5b2a7bb6cfab16b7eeb2866d31d11f42234a412ab27f", kill_on_drop: false }`
[INFO] [stdout] 349b54663dee077659ad5b2a7bb6cfab16b7eeb2866d31d11f42234a412ab27f
