[INFO] cloning repository https://github.com/tStreichenberger/aoc_23
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/tStreichenberger/aoc_23" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FtStreichenberger%2Faoc_23", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FtStreichenberger%2Faoc_23'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] d4868a41e6e61d4735c42c712f212732821c54cc
[INFO] checking tStreichenberger/aoc_23 against try#4f260f0f20b3133d20cfb50353c0221943af5796+rustflags=-Dunmustuse_in_always_ok for pr-148577
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FtStreichenberger%2Faoc_23" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/tStreichenberger/aoc_23
[INFO] finished tweaking git repo https://github.com/tStreichenberger/aoc_23
[INFO] tweaked toml for git repo https://github.com/tStreichenberger/aoc_23 written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/tStreichenberger/aoc_23 on toolchain 4f260f0f20b3133d20cfb50353c0221943af5796
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/tStreichenberger/aoc_23 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 3d24ba70d335a4a0e8d3feecf8d22a297a1a88b923a3105cfd5ef94c13346cab
[INFO] running `Command { std: "docker" "start" "-a" "3d24ba70d335a4a0e8d3feecf8d22a297a1a88b923a3105cfd5ef94c13346cab", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3d24ba70d335a4a0e8d3feecf8d22a297a1a88b923a3105cfd5ef94c13346cab", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3d24ba70d335a4a0e8d3feecf8d22a297a1a88b923a3105cfd5ef94c13346cab", kill_on_drop: false }`
[INFO] [stdout] 3d24ba70d335a4a0e8d3feecf8d22a297a1a88b923a3105cfd5ef94c13346cab
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dunmustuse_in_always_ok" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] cb3ae88e6ff24d78fe7045a7dbbb17b5208dbaf2282a892fa7c41b1d9dddbfd8
[INFO] running `Command { std: "docker" "start" "-a" "cb3ae88e6ff24d78fe7045a7dbbb17b5208dbaf2282a892fa7c41b1d9dddbfd8", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.70
[INFO] [stderr]    Compiling memoffset v0.9.0
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.15
[INFO] [stderr]    Compiling num-traits v0.2.17
[INFO] [stderr]    Compiling rustix v0.38.25
[INFO] [stderr]     Checking anstyle v1.0.4
[INFO] [stderr]     Checking bitflags v2.4.1
[INFO] [stderr]    Compiling rayon-core v1.12.0
[INFO] [stderr]     Checking memchr v2.6.4
[INFO] [stderr]     Checking linux-raw-sys v0.4.11
[INFO] [stderr]     Checking anstyle-parse v0.2.2
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]     Checking either v1.9.0
[INFO] [stderr]     Checking clap_lex v0.6.0
[INFO] [stderr]     Checking index_list v0.2.11
[INFO] [stderr]     Checking log v0.4.20
[INFO] [stderr]     Checking itertools v0.12.0
[INFO] [stderr]     Checking aho-corasick v1.1.2
[INFO] [stderr]     Checking anstream v0.6.4
[INFO] [stderr]    Compiling quote v1.0.33
[INFO] [stderr]     Checking crossbeam-deque v0.8.3
[INFO] [stderr]     Checking clap_builder v4.4.9
[INFO] [stderr]    Compiling syn v2.0.39
[INFO] [stderr]     Checking regex-automata v0.4.3
[INFO] [stderr]     Checking is-terminal v0.4.9
[INFO] [stderr]     Checking colored v2.0.4
[INFO] [stderr]     Checking rayon v1.8.0
[INFO] [stderr]     Checking chrono v0.4.31
[INFO] [stderr]     Checking regex v1.10.2
[INFO] [stderr]    Compiling clap_derive v4.4.7
[INFO] [stderr]    Compiling macros v0.1.0 (/opt/rustwide/workdir/macros)
[INFO] [stderr]     Checking clap v4.4.10
[INFO] [stderr]     Checking aoc_23 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]   --> src/days/day05.rs:33:38
[INFO] [stdout]    |
[INFO] [stdout] 33 |             .flat_map(|(start, len)| (*start..*start + len))
[INFO] [stdout]    |                                      ^                    ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 33 -             .flat_map(|(start, len)| (*start..*start + len))
[INFO] [stdout] 33 +             .flat_map(|(start, len)| *start..*start + len )
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]   --> src/days/day05.rs:33:38
[INFO] [stdout]    |
[INFO] [stdout] 33 |             .flat_map(|(start, len)| (*start..*start + len))
[INFO] [stdout]    |                                      ^                    ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 33 -             .flat_map(|(start, len)| (*start..*start + len))
[INFO] [stdout] 33 +             .flat_map(|(start, len)| *start..*start + len )
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<collections::Grid<T>, std::convert::Infallible>
[INFO] [stdout]   --> src/collections.rs:75:53
[INFO] [stdout]    |
[INFO] [stdout] 75 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 76 | |         Ok(Self {
[INFO] [stdout] 77 | |             data: s
[INFO] [stdout] 78 | |                 .lines()
[INFO] [stdout] ...  |
[INFO] [stdout] 81 | |         })
[INFO] [stdout] 82 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-D unmustuse-in-always-ok`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<collections::Grid<T>, std::convert::Infallible>
[INFO] [stdout]   --> src/collections.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 76 | /         Ok(Self {
[INFO] [stdout] 77 | |             data: s
[INFO] [stdout] 78 | |                 .lines()
[INFO] [stdout] 79 | |                 .map(|line| line.chars().map(T::from).collect())
[INFO] [stdout] 80 | |                 .collect(),
[INFO] [stdout] 81 | |         })
[INFO] [stdout]    | |__________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<CalibrationValue, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day01.rs:27:53
[INFO] [stdout]    |
[INFO] [stdout] 27 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 28 | |         let mut first = true;
[INFO] [stdout] 29 | |         let mut val = 0;
[INFO] [stdout] 30 | |         let mut last = 0;
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |         Ok(Self(val))
[INFO] [stdout] 42 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<CalibrationValue, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day01.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |         Ok(Self(val))
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<FancyCalibrationValue, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day01.rs:56:53
[INFO] [stdout]    |
[INFO] [stdout] 56 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 57 | |         let first = parse_maybe_written_number(NUMBERS_REGEX.find(s).unwrap().as_str());
[INFO] [stdout] 58 | |         let last = SREBMUN_REGEX
[INFO] [stdout] 59 | |             .find(&s.chars().rev().collect::<String>())
[INFO] [stdout] ...  |
[INFO] [stdout] 62 | |         Ok(Self(first * 10 + last))
[INFO] [stdout] 63 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<FancyCalibrationValue, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day01.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |         Ok(Self(first * 10 + last))
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Game, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day02.rs:38:53
[INFO] [stdout]    |
[INFO] [stdout] 38 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 39 | |         let (game_header, subsets) = s.split_once(": ").unwrap();
[INFO] [stdout] 40 | |
[INFO] [stdout] 41 | |         let id = game_header[5..].parse().unwrap();
[INFO] [stdout] ...  |
[INFO] [stdout] 45 | |         Ok(Self { id, subsets })
[INFO] [stdout] 46 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Game, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day02.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |         Ok(Self { id, subsets })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Subset, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day02.rs:85:53
[INFO] [stdout]    |
[INFO] [stdout] 85 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 86 | |         let mut subset = Subset::empty();
[INFO] [stdout] 87 | |         for handful in s.split(", ") {
[INFO] [stdout] 88 | |             let (num, color) = handful.split_once(' ').unwrap();
[INFO] [stdout] ...  |
[INFO] [stdout] 97 | |         Ok(subset)
[INFO] [stdout] 98 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Subset, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day02.rs:97:9
[INFO] [stdout]    |
[INFO] [stdout] 97 |         Ok(subset)
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day03::Engine, std::convert::Infallible>
[INFO] [stdout]  --> src/days/day03.rs:9:34
[INFO] [stdout]   |
[INFO] [stdout] 9 |         let mut engine: Engine = input.parse().unwrap();
[INFO] [stdout]   |                                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day03::Engine, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day03.rs:23:34
[INFO] [stdout]    |
[INFO] [stdout] 23 |         let mut engine: Engine = input.parse().unwrap();
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day03::Engine, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day03.rs:42:53
[INFO] [stdout]    |
[INFO] [stdout] 42 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 43 | |         let raw_data = s
[INFO] [stdout] 44 | |             .lines()
[INFO] [stdout] 45 | |             .map(|line| line.chars().collect_vec())
[INFO] [stdout] ...  |
[INFO] [stdout] 54 | |         })
[INFO] [stdout] 55 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day03::Engine, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day03.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 | /         Ok(Self {
[INFO] [stdout] 52 | |             raw_data,
[INFO] [stdout] 53 | |             found_parts,
[INFO] [stdout] 54 | |         })
[INFO] [stdout]    | |__________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<CardSheet, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day04.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |         input.parse::<CardSheet>().unwrap().score().to_string()
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day04::Card, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day04.rs:35:53
[INFO] [stdout]    |
[INFO] [stdout] 35 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 36 | |         let (_, nums) = s.split_once(": ").unwrap();
[INFO] [stdout] 37 | |         let (winning, numbers) = nums.split_once(" | ").unwrap();
[INFO] [stdout] 38 | |         let numbers = numbers.split_ascii_whitespace().parse_each().collect();
[INFO] [stdout] ...  |
[INFO] [stdout] 43 | |         })
[INFO] [stdout] 44 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day04::Card, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day04.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 | /         Ok(Self {
[INFO] [stdout] 41 | |             winning_numbers,
[INFO] [stdout] 42 | |             numbers,
[INFO] [stdout] 43 | |         })
[INFO] [stdout]    | |__________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<CardSheet, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day04.rs:72:53
[INFO] [stdout]    |
[INFO] [stdout] 72 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 73 | |         let cards = s.parsed_lines().collect_vec();
[INFO] [stdout] 74 | |         Ok(Self {
[INFO] [stdout] 75 | |             card_scores: vec![None; cards.len()],
[INFO] [stdout] 76 | |             cards,
[INFO] [stdout] 77 | |         })
[INFO] [stdout] 78 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<CardSheet, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day04.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 74 | /         Ok(Self {
[INFO] [stdout] 75 | |             card_scores: vec![None; cards.len()],
[INFO] [stdout] 76 | |             cards,
[INFO] [stdout] 77 | |         })
[INFO] [stdout]    | |__________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Conversion, std::convert::Infallible>
[INFO] [stdout]    --> src/days/day05.rs:255:53
[INFO] [stdout]     |
[INFO] [stdout] 255 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]     |  _____________________________________________________^
[INFO] [stdout] 256 | |         let mut split = s.split_ascii_whitespace();
[INFO] [stdout] 257 | |         let dest_start: usize = split.next().unwrap().parse().unwrap();
[INFO] [stdout] 258 | |         let src_start: usize = split.next().unwrap().parse().unwrap();
[INFO] [stdout] ...   |
[INFO] [stdout] 261 | |         Ok(Self { range, dest_start })
[INFO] [stdout] 262 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Conversion, std::convert::Infallible>
[INFO] [stdout]    --> src/days/day05.rs:261:9
[INFO] [stdout]     |
[INFO] [stdout] 261 |         Ok(Self { range, dest_start })
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Race, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day06.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | /         input
[INFO] [stdout] 15 | |             .parse::<Race>()
[INFO] [stdout]    | |____________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Race, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day06.rs:38:53
[INFO] [stdout]    |
[INFO] [stdout] 38 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 39 | |         let mut lines = s.lines();
[INFO] [stdout] 40 | |         let time = lines
[INFO] [stdout] 41 | |             .next()
[INFO] [stdout] ...  |
[INFO] [stdout] 58 | |         Ok(Self { time, record })
[INFO] [stdout] 59 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Race, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day06.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |         Ok(Self { time, record })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Hand, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day07.rs:35:53
[INFO] [stdout]    |
[INFO] [stdout] 35 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 36 | |         let (cards, bid) = s.split_once(' ').unwrap();
[INFO] [stdout] 37 | |         let cards = cards.chars().map(Card::from).collect_vec();
[INFO] [stdout] 38 | |         let bid = bid.parse().unwrap();
[INFO] [stdout] ...  |
[INFO] [stdout] 44 | |         })
[INFO] [stdout] 45 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Hand, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day07.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 | /         Ok(Self {
[INFO] [stdout] 41 | |             cards,
[INFO] [stdout] 42 | |             bid,
[INFO] [stdout] 43 | |             hand_type,
[INFO] [stdout] 44 | |         })
[INFO] [stdout]    | |__________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<History, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day09.rs:28:53
[INFO] [stdout]    |
[INFO] [stdout] 28 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 29 | |         Ok(Self {
[INFO] [stdout] 30 | |             values: s.split_ascii_whitespace().parse_each().collect(),
[INFO] [stdout] 31 | |         })
[INFO] [stdout] 32 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<History, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day09.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | /         Ok(Self {
[INFO] [stdout] 30 | |             values: s.split_ascii_whitespace().parse_each().collect(),
[INFO] [stdout] 31 | |         })
[INFO] [stdout]    | |__________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PipeMaze, std::convert::Infallible>
[INFO] [stdout]  --> src/days/day10.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 |         (input.parse::<PipeMaze>().unwrap().loop_length() / 2).to_string()
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PipeMaze, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day10.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | /         input
[INFO] [stdout] 13 | |             .parse::<PipeMaze>()
[INFO] [stdout]    | |________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PipeMaze, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day10.rs:33:53
[INFO] [stdout]    |
[INFO] [stdout] 33 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 34 | |         let data = s
[INFO] [stdout] 35 | |             .lines()
[INFO] [stdout] 36 | |             .map(|line| line.chars().collect_vec())
[INFO] [stdout] ...  |
[INFO] [stdout] 47 | |         })
[INFO] [stdout] 48 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PipeMaze, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day10.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 | /         Ok(Self {
[INFO] [stdout] 43 | |             loop_pipes: bools.clone(),
[INFO] [stdout] 44 | |             found_inside: bools,
[INFO] [stdout] 45 | |             data,
[INFO] [stdout] 46 | |             num_found: 0,
[INFO] [stdout] 47 | |         })
[INFO] [stdout]    | |__________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Galaxy, std::convert::Infallible>
[INFO] [stdout]  --> src/days/day11.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | /         input
[INFO] [stdout] 7 | |             .parse::<Galaxy>()
[INFO] [stdout]   | |______________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Galaxy, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day11.rs:17:18
[INFO] [stdout]    |
[INFO] [stdout] 17 |           let e2 = input
[INFO] [stdout]    |  __________________^
[INFO] [stdout] 18 | |             .parse::<Galaxy>()
[INFO] [stdout]    | |______________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Galaxy, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day11.rs:26:18
[INFO] [stdout]    |
[INFO] [stdout] 26 |           let e3 = input
[INFO] [stdout]    |  __________________^
[INFO] [stdout] 27 | |             .parse::<Galaxy>()
[INFO] [stdout]    | |______________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Galaxy, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day11.rs:45:53
[INFO] [stdout]    |
[INFO] [stdout] 45 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 46 | |         Ok(Self {
[INFO] [stdout] 47 | |             data: s.parse().unwrap(),
[INFO] [stdout] 48 | |         })
[INFO] [stdout] 49 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Galaxy, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day11.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 | /         Ok(Self {
[INFO] [stdout] 47 | |             data: s.parse().unwrap(),
[INFO] [stdout] 48 | |         })
[INFO] [stdout]    | |__________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<collections::Grid<char>, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day11.rs:47:19
[INFO] [stdout]    |
[INFO] [stdout] 47 |             data: s.parse().unwrap(),
[INFO] [stdout]    |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day12::Engine, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day12.rs:56:53
[INFO] [stdout]    |
[INFO] [stdout] 56 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 57 | |         let (parts_str, broken_parts_str) = s.split_once(' ').unwrap();
[INFO] [stdout] 58 | |         let parts = parts_str.chars().map(Part::from).collect();
[INFO] [stdout] 59 | |         let broken_parts = broken_parts_str.split(',').parse_each().collect();
[INFO] [stdout] ...  |
[INFO] [stdout] 63 | |         })
[INFO] [stdout] 64 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day12::Engine, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day12.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 | /         Ok(Self {
[INFO] [stdout] 61 | |             parts,
[INFO] [stdout] 62 | |             broken_parts,
[INFO] [stdout] 63 | |         })
[INFO] [stdout]    | |__________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day13::Mirror, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day13.rs:30:53
[INFO] [stdout]    |
[INFO] [stdout] 30 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 31 | |         let grid: Grid<char> = s.parse()?;
[INFO] [stdout] 32 | |
[INFO] [stdout] 33 | |         Ok(Self { grid })
[INFO] [stdout] 34 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: ControlFlow<Result<std::convert::Infallible, std::convert::Infallible>, collections::Grid<char>>
[INFO] [stdout]   --> src/days/day13.rs:31:32
[INFO] [stdout]    |
[INFO] [stdout] 31 |         let grid: Grid<char> = s.parse()?;
[INFO] [stdout]    |                                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<collections::Grid<char>, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day13.rs:31:32
[INFO] [stdout]    |
[INFO] [stdout] 31 |         let grid: Grid<char> = s.parse()?;
[INFO] [stdout]    |                                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day13::Mirror, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day13.rs:31:32
[INFO] [stdout]    |
[INFO] [stdout] 31 |         let grid: Grid<char> = s.parse()?;
[INFO] [stdout]    |                                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day13::Mirror, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day13.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |         Ok(Self { grid })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Lens, std::convert::Infallible>
[INFO] [stdout]  --> src/days/day14.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | /         input
[INFO] [stdout] 8 | |             .parse::<Lens>()
[INFO] [stdout]   | |____________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Lens, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day14.rs:16:30
[INFO] [stdout]    |
[INFO] [stdout] 16 |         let mut lens: Lens = input.parse().unwrap();
[INFO] [stdout]    |                              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Lens, std::convert::Infallible>
[INFO] [stdout]    --> src/days/day14.rs:106:53
[INFO] [stdout]     |
[INFO] [stdout] 106 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]     |  _____________________________________________________^
[INFO] [stdout] 107 | |         Ok(Self {
[INFO] [stdout] 108 | |             grid: s.parse()?,
[INFO] [stdout] 109 | |             cache: HashMap::new(),
[INFO] [stdout] 110 | |             cycle_num: 0,
[INFO] [stdout] 111 | |         })
[INFO] [stdout] 112 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Lens, std::convert::Infallible>
[INFO] [stdout]    --> src/days/day14.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 107 | /         Ok(Self {
[INFO] [stdout] 108 | |             grid: s.parse()?,
[INFO] [stdout] 109 | |             cache: HashMap::new(),
[INFO] [stdout] 110 | |             cycle_num: 0,
[INFO] [stdout] 111 | |         })
[INFO] [stdout]     | |__________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: ControlFlow<Result<std::convert::Infallible, std::convert::Infallible>, collections::Grid<LensPiece>>
[INFO] [stdout]    --> src/days/day14.rs:108:19
[INFO] [stdout]     |
[INFO] [stdout] 108 |             grid: s.parse()?,
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<collections::Grid<LensPiece>, std::convert::Infallible>
[INFO] [stdout]    --> src/days/day14.rs:108:19
[INFO] [stdout]     |
[INFO] [stdout] 108 |             grid: s.parse()?,
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Lens, std::convert::Infallible>
[INFO] [stdout]    --> src/days/day14.rs:108:19
[INFO] [stdout]     |
[INFO] [stdout] 108 |             grid: s.parse()?,
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Instruction, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day15.rs:46:53
[INFO] [stdout]    |
[INFO] [stdout] 46 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 47 | |         let mut split = s.split(['=', '-']);
[INFO] [stdout] 48 | |         let label = split.next().unwrap();
[INFO] [stdout] 49 | |         match split.next().and_then(|maybe_num| maybe_num.parse().ok()) {
[INFO] [stdout] ...  |
[INFO] [stdout] 56 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Instruction, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day15.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 | /         match split.next().and_then(|maybe_num| maybe_num.parse().ok()) {
[INFO] [stdout] 50 | |             None => Ok(Self::Remove(label.into())),
[INFO] [stdout] 51 | |             Some(focal_length) => Ok(Self::Insert(LabeledLens {
[INFO] [stdout] 52 | |                 label: label.into(),
[INFO] [stdout] 53 | |                 length: focal_length,
[INFO] [stdout] 54 | |             })),
[INFO] [stdout] 55 | |         }
[INFO] [stdout]    | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Instruction, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day15.rs:50:21
[INFO] [stdout]    |
[INFO] [stdout] 50 |             None => Ok(Self::Remove(label.into())),
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Instruction, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day15.rs:51:35
[INFO] [stdout]    |
[INFO] [stdout] 51 |               Some(focal_length) => Ok(Self::Insert(LabeledLens {
[INFO] [stdout]    |  ___________________________________^
[INFO] [stdout] 52 | |                 label: label.into(),
[INFO] [stdout] 53 | |                 length: focal_length,
[INFO] [stdout] 54 | |             })),
[INFO] [stdout]    | |_______________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<MirrorMaze, std::convert::Infallible>
[INFO] [stdout]  --> src/days/day16.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | /         input
[INFO] [stdout] 7 | |             .parse::<MirrorMaze>()
[INFO] [stdout]   | |__________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<MirrorMaze, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day16.rs:15:32
[INFO] [stdout]    |
[INFO] [stdout] 15 |         let maze: MirrorMaze = input.parse().unwrap();
[INFO] [stdout]    |                                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<MirrorMaze, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day16.rs:56:53
[INFO] [stdout]    |
[INFO] [stdout] 56 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 57 | |         let grid: Grid<Mirror> = s.parse()?;
[INFO] [stdout] 58 | |         let traversed = grid
[INFO] [stdout] 59 | |             .rows()
[INFO] [stdout] ...  |
[INFO] [stdout] 62 | |         Ok(Self { grid, traversed })
[INFO] [stdout] 63 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: ControlFlow<Result<std::convert::Infallible, std::convert::Infallible>, collections::Grid<day16::Mirror>>
[INFO] [stdout]   --> src/days/day16.rs:57:34
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let grid: Grid<Mirror> = s.parse()?;
[INFO] [stdout]    |                                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<collections::Grid<day16::Mirror>, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day16.rs:57:34
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let grid: Grid<Mirror> = s.parse()?;
[INFO] [stdout]    |                                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<MirrorMaze, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day16.rs:57:34
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let grid: Grid<Mirror> = s.parse()?;
[INFO] [stdout]    |                                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<MirrorMaze, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day16.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |         Ok(Self { grid, traversed })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<City, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day17.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | /         input
[INFO] [stdout] 11 | |             .parse::<City>()
[INFO] [stdout]    | |____________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<City, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day17.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | /         input
[INFO] [stdout] 18 | |             .parse::<City>()
[INFO] [stdout]    | |____________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<City, std::convert::Infallible>
[INFO] [stdout]    --> src/days/day17.rs:168:53
[INFO] [stdout]     |
[INFO] [stdout] 168 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]     |  _____________________________________________________^
[INFO] [stdout] 169 | |         Ok(Self {
[INFO] [stdout] 170 | |             streets: s
[INFO] [stdout] 171 | |                 .parse::<Grid<Street>>()?
[INFO] [stdout] ...   |
[INFO] [stdout] 175 | |         })
[INFO] [stdout] 176 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<City, std::convert::Infallible>
[INFO] [stdout]    --> src/days/day17.rs:169:9
[INFO] [stdout]     |
[INFO] [stdout] 169 | /         Ok(Self {
[INFO] [stdout] 170 | |             streets: s
[INFO] [stdout] 171 | |                 .parse::<Grid<Street>>()?
[INFO] [stdout] 172 | |                 .into_iter()
[INFO] [stdout] 173 | |                 .map(|row| row.into_iter().map(|v| v.0).collect())
[INFO] [stdout] 174 | |                 .collect(),
[INFO] [stdout] 175 | |         })
[INFO] [stdout]     | |__________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: ControlFlow<Result<std::convert::Infallible, std::convert::Infallible>, collections::Grid<Street>>
[INFO] [stdout]    --> src/days/day17.rs:170:22
[INFO] [stdout]     |
[INFO] [stdout] 170 |               streets: s
[INFO] [stdout]     |  ______________________^
[INFO] [stdout] 171 | |                 .parse::<Grid<Street>>()?
[INFO] [stdout]     | |_________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<collections::Grid<Street>, std::convert::Infallible>
[INFO] [stdout]    --> src/days/day17.rs:170:22
[INFO] [stdout]     |
[INFO] [stdout] 170 |               streets: s
[INFO] [stdout]     |  ______________________^
[INFO] [stdout] 171 | |                 .parse::<Grid<Street>>()?
[INFO] [stdout]     | |________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<City, std::convert::Infallible>
[INFO] [stdout]    --> src/days/day17.rs:170:22
[INFO] [stdout]     |
[INFO] [stdout] 170 |               streets: s
[INFO] [stdout]     |  ______________________^
[INFO] [stdout] 171 | |                 .parse::<Grid<Street>>()?
[INFO] [stdout]     | |_________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<DigInstruction, std::convert::Infallible>
[INFO] [stdout]    --> src/days/day18.rs:89:53
[INFO] [stdout]     |
[INFO] [stdout]  89 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]     |  _____________________________________________________^
[INFO] [stdout]  90 | |         let mut split = s.split_ascii_whitespace();
[INFO] [stdout]  91 | |         let dir = split.next().unwrap().chars().next().unwrap().into();
[INFO] [stdout]  92 | |         let amount = split.next().unwrap().parse().unwrap();
[INFO] [stdout] ...   |
[INFO] [stdout] 107 | |         })
[INFO] [stdout] 108 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<DigInstruction, std::convert::Infallible>
[INFO] [stdout]    --> src/days/day18.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 102 | /         Ok(Self {
[INFO] [stdout] 103 | |             dir,
[INFO] [stdout] 104 | |             amount,
[INFO] [stdout] 105 | |             color_dir,
[INFO] [stdout] 106 | |             color_dist,
[INFO] [stdout] 107 | |         })
[INFO] [stdout]     | |__________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day19::Part, std::convert::Infallible>
[INFO] [stdout]    --> src/days/day19.rs:99:53
[INFO] [stdout]     |
[INFO] [stdout]  99 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]     |  _____________________________________________________^
[INFO] [stdout] 100 | |         // {x=787,m=2655,a=1222,s=2876}
[INFO] [stdout] 101 | |         let mut nums = s
[INFO] [stdout] 102 | |             .strip_prefix('{')
[INFO] [stdout] ...   |
[INFO] [stdout] 115 | |         })
[INFO] [stdout] 116 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day19::Part, std::convert::Infallible>
[INFO] [stdout]    --> src/days/day19.rs:110:9
[INFO] [stdout]     |
[INFO] [stdout] 110 | /         Ok(Self {
[INFO] [stdout] 111 | |             x: nums.next().unwrap(),
[INFO] [stdout] 112 | |             m: nums.next().unwrap(),
[INFO] [stdout] 113 | |             a: nums.next().unwrap(),
[INFO] [stdout] 114 | |             s: nums.next().unwrap(),
[INFO] [stdout] 115 | |         })
[INFO] [stdout]     | |__________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/days/day19.rs:205:14
[INFO] [stdout]     |
[INFO] [stdout] 205 |     fn check(&self, part: &Part) -> Option<Label> {
[INFO] [stdout]     |              ^^^^^                         ^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |              |
[INFO] [stdout]     |              the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 205 |     fn check(&self, part: &Part) -> Option<Label<'_>> {
[INFO] [stdout]     |                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]    --> src/days/day19.rs:212:22
[INFO] [stdout]     |
[INFO] [stdout] 212 |         let offset = (self.cmp == usize::gt) as usize;
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the address of the same function can vary between different codegen units
[INFO] [stdout]     = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]     = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]     = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]     |
[INFO] [stdout] 212 -         let offset = (self.cmp == usize::gt) as usize;
[INFO] [stdout] 212 +         let offset = std::ptr::fn_addr_eq(self.cmp, usize::gt as for<'a, 'b> fn(&'a usize, &'b usize) -> bool) as usize;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `aoc_23` (bin "aoc_23") due to 74 previous errors; 3 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: this type will no longer be must used: Result<collections::Grid<T>, std::convert::Infallible>
[INFO] [stdout]   --> src/collections.rs:75:53
[INFO] [stdout]    |
[INFO] [stdout] 75 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 76 | |         Ok(Self {
[INFO] [stdout] 77 | |             data: s
[INFO] [stdout] 78 | |                 .lines()
[INFO] [stdout] ...  |
[INFO] [stdout] 81 | |         })
[INFO] [stdout] 82 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-D unmustuse-in-always-ok`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<collections::Grid<T>, std::convert::Infallible>
[INFO] [stdout]   --> src/collections.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 76 | /         Ok(Self {
[INFO] [stdout] 77 | |             data: s
[INFO] [stdout] 78 | |                 .lines()
[INFO] [stdout] 79 | |                 .map(|line| line.chars().map(T::from).collect())
[INFO] [stdout] 80 | |                 .collect(),
[INFO] [stdout] 81 | |         })
[INFO] [stdout]    | |__________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<CalibrationValue, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day01.rs:27:53
[INFO] [stdout]    |
[INFO] [stdout] 27 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 28 | |         let mut first = true;
[INFO] [stdout] 29 | |         let mut val = 0;
[INFO] [stdout] 30 | |         let mut last = 0;
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |         Ok(Self(val))
[INFO] [stdout] 42 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<CalibrationValue, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day01.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |         Ok(Self(val))
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<FancyCalibrationValue, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day01.rs:56:53
[INFO] [stdout]    |
[INFO] [stdout] 56 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 57 | |         let first = parse_maybe_written_number(NUMBERS_REGEX.find(s).unwrap().as_str());
[INFO] [stdout] 58 | |         let last = SREBMUN_REGEX
[INFO] [stdout] 59 | |             .find(&s.chars().rev().collect::<String>())
[INFO] [stdout] ...  |
[INFO] [stdout] 62 | |         Ok(Self(first * 10 + last))
[INFO] [stdout] 63 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<FancyCalibrationValue, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day01.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |         Ok(Self(first * 10 + last))
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Game, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day02.rs:38:53
[INFO] [stdout]    |
[INFO] [stdout] 38 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 39 | |         let (game_header, subsets) = s.split_once(": ").unwrap();
[INFO] [stdout] 40 | |
[INFO] [stdout] 41 | |         let id = game_header[5..].parse().unwrap();
[INFO] [stdout] ...  |
[INFO] [stdout] 45 | |         Ok(Self { id, subsets })
[INFO] [stdout] 46 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Game, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day02.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |         Ok(Self { id, subsets })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Subset, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day02.rs:85:53
[INFO] [stdout]    |
[INFO] [stdout] 85 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 86 | |         let mut subset = Subset::empty();
[INFO] [stdout] 87 | |         for handful in s.split(", ") {
[INFO] [stdout] 88 | |             let (num, color) = handful.split_once(' ').unwrap();
[INFO] [stdout] ...  |
[INFO] [stdout] 97 | |         Ok(subset)
[INFO] [stdout] 98 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Subset, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day02.rs:97:9
[INFO] [stdout]    |
[INFO] [stdout] 97 |         Ok(subset)
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day03::Engine, std::convert::Infallible>
[INFO] [stdout]  --> src/days/day03.rs:9:34
[INFO] [stdout]   |
[INFO] [stdout] 9 |         let mut engine: Engine = input.parse().unwrap();
[INFO] [stdout]   |                                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day03::Engine, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day03.rs:23:34
[INFO] [stdout]    |
[INFO] [stdout] 23 |         let mut engine: Engine = input.parse().unwrap();
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day03::Engine, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day03.rs:42:53
[INFO] [stdout]    |
[INFO] [stdout] 42 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 43 | |         let raw_data = s
[INFO] [stdout] 44 | |             .lines()
[INFO] [stdout] 45 | |             .map(|line| line.chars().collect_vec())
[INFO] [stdout] ...  |
[INFO] [stdout] 54 | |         })
[INFO] [stdout] 55 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day03::Engine, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day03.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 | /         Ok(Self {
[INFO] [stdout] 52 | |             raw_data,
[INFO] [stdout] 53 | |             found_parts,
[INFO] [stdout] 54 | |         })
[INFO] [stdout]    | |__________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<CardSheet, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day04.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |         input.parse::<CardSheet>().unwrap().score().to_string()
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day04::Card, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day04.rs:35:53
[INFO] [stdout]    |
[INFO] [stdout] 35 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 36 | |         let (_, nums) = s.split_once(": ").unwrap();
[INFO] [stdout] 37 | |         let (winning, numbers) = nums.split_once(" | ").unwrap();
[INFO] [stdout] 38 | |         let numbers = numbers.split_ascii_whitespace().parse_each().collect();
[INFO] [stdout] ...  |
[INFO] [stdout] 43 | |         })
[INFO] [stdout] 44 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day04::Card, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day04.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 | /         Ok(Self {
[INFO] [stdout] 41 | |             winning_numbers,
[INFO] [stdout] 42 | |             numbers,
[INFO] [stdout] 43 | |         })
[INFO] [stdout]    | |__________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<CardSheet, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day04.rs:72:53
[INFO] [stdout]    |
[INFO] [stdout] 72 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 73 | |         let cards = s.parsed_lines().collect_vec();
[INFO] [stdout] 74 | |         Ok(Self {
[INFO] [stdout] 75 | |             card_scores: vec![None; cards.len()],
[INFO] [stdout] 76 | |             cards,
[INFO] [stdout] 77 | |         })
[INFO] [stdout] 78 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<CardSheet, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day04.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 74 | /         Ok(Self {
[INFO] [stdout] 75 | |             card_scores: vec![None; cards.len()],
[INFO] [stdout] 76 | |             cards,
[INFO] [stdout] 77 | |         })
[INFO] [stdout]    | |__________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Conversion, std::convert::Infallible>
[INFO] [stdout]    --> src/days/day05.rs:255:53
[INFO] [stdout]     |
[INFO] [stdout] 255 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]     |  _____________________________________________________^
[INFO] [stdout] 256 | |         let mut split = s.split_ascii_whitespace();
[INFO] [stdout] 257 | |         let dest_start: usize = split.next().unwrap().parse().unwrap();
[INFO] [stdout] 258 | |         let src_start: usize = split.next().unwrap().parse().unwrap();
[INFO] [stdout] ...   |
[INFO] [stdout] 261 | |         Ok(Self { range, dest_start })
[INFO] [stdout] 262 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Conversion, std::convert::Infallible>
[INFO] [stdout]    --> src/days/day05.rs:261:9
[INFO] [stdout]     |
[INFO] [stdout] 261 |         Ok(Self { range, dest_start })
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Race, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day06.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | /         input
[INFO] [stdout] 15 | |             .parse::<Race>()
[INFO] [stdout]    | |____________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Race, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day06.rs:38:53
[INFO] [stdout]    |
[INFO] [stdout] 38 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 39 | |         let mut lines = s.lines();
[INFO] [stdout] 40 | |         let time = lines
[INFO] [stdout] 41 | |             .next()
[INFO] [stdout] ...  |
[INFO] [stdout] 58 | |         Ok(Self { time, record })
[INFO] [stdout] 59 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Race, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day06.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |         Ok(Self { time, record })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Hand, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day07.rs:35:53
[INFO] [stdout]    |
[INFO] [stdout] 35 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 36 | |         let (cards, bid) = s.split_once(' ').unwrap();
[INFO] [stdout] 37 | |         let cards = cards.chars().map(Card::from).collect_vec();
[INFO] [stdout] 38 | |         let bid = bid.parse().unwrap();
[INFO] [stdout] ...  |
[INFO] [stdout] 44 | |         })
[INFO] [stdout] 45 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Hand, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day07.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 | /         Ok(Self {
[INFO] [stdout] 41 | |             cards,
[INFO] [stdout] 42 | |             bid,
[INFO] [stdout] 43 | |             hand_type,
[INFO] [stdout] 44 | |         })
[INFO] [stdout]    | |__________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<History, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day09.rs:28:53
[INFO] [stdout]    |
[INFO] [stdout] 28 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 29 | |         Ok(Self {
[INFO] [stdout] 30 | |             values: s.split_ascii_whitespace().parse_each().collect(),
[INFO] [stdout] 31 | |         })
[INFO] [stdout] 32 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<History, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day09.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | /         Ok(Self {
[INFO] [stdout] 30 | |             values: s.split_ascii_whitespace().parse_each().collect(),
[INFO] [stdout] 31 | |         })
[INFO] [stdout]    | |__________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PipeMaze, std::convert::Infallible>
[INFO] [stdout]  --> src/days/day10.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 |         (input.parse::<PipeMaze>().unwrap().loop_length() / 2).to_string()
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PipeMaze, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day10.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | /         input
[INFO] [stdout] 13 | |             .parse::<PipeMaze>()
[INFO] [stdout]    | |________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PipeMaze, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day10.rs:33:53
[INFO] [stdout]    |
[INFO] [stdout] 33 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 34 | |         let data = s
[INFO] [stdout] 35 | |             .lines()
[INFO] [stdout] 36 | |             .map(|line| line.chars().collect_vec())
[INFO] [stdout] ...  |
[INFO] [stdout] 47 | |         })
[INFO] [stdout] 48 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<PipeMaze, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day10.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 | /         Ok(Self {
[INFO] [stdout] 43 | |             loop_pipes: bools.clone(),
[INFO] [stdout] 44 | |             found_inside: bools,
[INFO] [stdout] 45 | |             data,
[INFO] [stdout] 46 | |             num_found: 0,
[INFO] [stdout] 47 | |         })
[INFO] [stdout]    | |__________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Galaxy, std::convert::Infallible>
[INFO] [stdout]  --> src/days/day11.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | /         input
[INFO] [stdout] 7 | |             .parse::<Galaxy>()
[INFO] [stdout]   | |______________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Galaxy, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day11.rs:17:18
[INFO] [stdout]    |
[INFO] [stdout] 17 |           let e2 = input
[INFO] [stdout]    |  __________________^
[INFO] [stdout] 18 | |             .parse::<Galaxy>()
[INFO] [stdout]    | |______________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Galaxy, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day11.rs:26:18
[INFO] [stdout]    |
[INFO] [stdout] 26 |           let e3 = input
[INFO] [stdout]    |  __________________^
[INFO] [stdout] 27 | |             .parse::<Galaxy>()
[INFO] [stdout]    | |______________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Galaxy, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day11.rs:45:53
[INFO] [stdout]    |
[INFO] [stdout] 45 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 46 | |         Ok(Self {
[INFO] [stdout] 47 | |             data: s.parse().unwrap(),
[INFO] [stdout] 48 | |         })
[INFO] [stdout] 49 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Galaxy, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day11.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 | /         Ok(Self {
[INFO] [stdout] 47 | |             data: s.parse().unwrap(),
[INFO] [stdout] 48 | |         })
[INFO] [stdout]    | |__________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<collections::Grid<char>, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day11.rs:47:19
[INFO] [stdout]    |
[INFO] [stdout] 47 |             data: s.parse().unwrap(),
[INFO] [stdout]    |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day12::Engine, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day12.rs:56:53
[INFO] [stdout]    |
[INFO] [stdout] 56 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 57 | |         let (parts_str, broken_parts_str) = s.split_once(' ').unwrap();
[INFO] [stdout] 58 | |         let parts = parts_str.chars().map(Part::from).collect();
[INFO] [stdout] 59 | |         let broken_parts = broken_parts_str.split(',').parse_each().collect();
[INFO] [stdout] ...  |
[INFO] [stdout] 63 | |         })
[INFO] [stdout] 64 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day12::Engine, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day12.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 | /         Ok(Self {
[INFO] [stdout] 61 | |             parts,
[INFO] [stdout] 62 | |             broken_parts,
[INFO] [stdout] 63 | |         })
[INFO] [stdout]    | |__________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day13::Mirror, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day13.rs:30:53
[INFO] [stdout]    |
[INFO] [stdout] 30 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 31 | |         let grid: Grid<char> = s.parse()?;
[INFO] [stdout] 32 | |
[INFO] [stdout] 33 | |         Ok(Self { grid })
[INFO] [stdout] 34 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: ControlFlow<Result<std::convert::Infallible, std::convert::Infallible>, collections::Grid<char>>
[INFO] [stdout]   --> src/days/day13.rs:31:32
[INFO] [stdout]    |
[INFO] [stdout] 31 |         let grid: Grid<char> = s.parse()?;
[INFO] [stdout]    |                                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<collections::Grid<char>, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day13.rs:31:32
[INFO] [stdout]    |
[INFO] [stdout] 31 |         let grid: Grid<char> = s.parse()?;
[INFO] [stdout]    |                                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day13::Mirror, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day13.rs:31:32
[INFO] [stdout]    |
[INFO] [stdout] 31 |         let grid: Grid<char> = s.parse()?;
[INFO] [stdout]    |                                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day13::Mirror, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day13.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |         Ok(Self { grid })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Lens, std::convert::Infallible>
[INFO] [stdout]  --> src/days/day14.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | /         input
[INFO] [stdout] 8 | |             .parse::<Lens>()
[INFO] [stdout]   | |____________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Lens, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day14.rs:16:30
[INFO] [stdout]    |
[INFO] [stdout] 16 |         let mut lens: Lens = input.parse().unwrap();
[INFO] [stdout]    |                              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Lens, std::convert::Infallible>
[INFO] [stdout]    --> src/days/day14.rs:106:53
[INFO] [stdout]     |
[INFO] [stdout] 106 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]     |  _____________________________________________________^
[INFO] [stdout] 107 | |         Ok(Self {
[INFO] [stdout] 108 | |             grid: s.parse()?,
[INFO] [stdout] 109 | |             cache: HashMap::new(),
[INFO] [stdout] 110 | |             cycle_num: 0,
[INFO] [stdout] 111 | |         })
[INFO] [stdout] 112 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Lens, std::convert::Infallible>
[INFO] [stdout]    --> src/days/day14.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 107 | /         Ok(Self {
[INFO] [stdout] 108 | |             grid: s.parse()?,
[INFO] [stdout] 109 | |             cache: HashMap::new(),
[INFO] [stdout] 110 | |             cycle_num: 0,
[INFO] [stdout] 111 | |         })
[INFO] [stdout]     | |__________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: ControlFlow<Result<std::convert::Infallible, std::convert::Infallible>, collections::Grid<LensPiece>>
[INFO] [stdout]    --> src/days/day14.rs:108:19
[INFO] [stdout]     |
[INFO] [stdout] 108 |             grid: s.parse()?,
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<collections::Grid<LensPiece>, std::convert::Infallible>
[INFO] [stdout]    --> src/days/day14.rs:108:19
[INFO] [stdout]     |
[INFO] [stdout] 108 |             grid: s.parse()?,
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Lens, std::convert::Infallible>
[INFO] [stdout]    --> src/days/day14.rs:108:19
[INFO] [stdout]     |
[INFO] [stdout] 108 |             grid: s.parse()?,
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Instruction, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day15.rs:46:53
[INFO] [stdout]    |
[INFO] [stdout] 46 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 47 | |         let mut split = s.split(['=', '-']);
[INFO] [stdout] 48 | |         let label = split.next().unwrap();
[INFO] [stdout] 49 | |         match split.next().and_then(|maybe_num| maybe_num.parse().ok()) {
[INFO] [stdout] ...  |
[INFO] [stdout] 56 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Instruction, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day15.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 | /         match split.next().and_then(|maybe_num| maybe_num.parse().ok()) {
[INFO] [stdout] 50 | |             None => Ok(Self::Remove(label.into())),
[INFO] [stdout] 51 | |             Some(focal_length) => Ok(Self::Insert(LabeledLens {
[INFO] [stdout] 52 | |                 label: label.into(),
[INFO] [stdout] 53 | |                 length: focal_length,
[INFO] [stdout] 54 | |             })),
[INFO] [stdout] 55 | |         }
[INFO] [stdout]    | |_________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Instruction, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day15.rs:50:21
[INFO] [stdout]    |
[INFO] [stdout] 50 |             None => Ok(Self::Remove(label.into())),
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Instruction, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day15.rs:51:35
[INFO] [stdout]    |
[INFO] [stdout] 51 |               Some(focal_length) => Ok(Self::Insert(LabeledLens {
[INFO] [stdout]    |  ___________________________________^
[INFO] [stdout] 52 | |                 label: label.into(),
[INFO] [stdout] 53 | |                 length: focal_length,
[INFO] [stdout] 54 | |             })),
[INFO] [stdout]    | |_______________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<MirrorMaze, std::convert::Infallible>
[INFO] [stdout]  --> src/days/day16.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | /         input
[INFO] [stdout] 7 | |             .parse::<MirrorMaze>()
[INFO] [stdout]   | |__________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<MirrorMaze, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day16.rs:15:32
[INFO] [stdout]    |
[INFO] [stdout] 15 |         let maze: MirrorMaze = input.parse().unwrap();
[INFO] [stdout]    |                                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<MirrorMaze, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day16.rs:56:53
[INFO] [stdout]    |
[INFO] [stdout] 56 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 57 | |         let grid: Grid<Mirror> = s.parse()?;
[INFO] [stdout] 58 | |         let traversed = grid
[INFO] [stdout] 59 | |             .rows()
[INFO] [stdout] ...  |
[INFO] [stdout] 62 | |         Ok(Self { grid, traversed })
[INFO] [stdout] 63 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: ControlFlow<Result<std::convert::Infallible, std::convert::Infallible>, collections::Grid<day16::Mirror>>
[INFO] [stdout]   --> src/days/day16.rs:57:34
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let grid: Grid<Mirror> = s.parse()?;
[INFO] [stdout]    |                                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<collections::Grid<day16::Mirror>, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day16.rs:57:34
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let grid: Grid<Mirror> = s.parse()?;
[INFO] [stdout]    |                                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<MirrorMaze, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day16.rs:57:34
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let grid: Grid<Mirror> = s.parse()?;
[INFO] [stdout]    |                                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<MirrorMaze, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day16.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |         Ok(Self { grid, traversed })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<City, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day17.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | /         input
[INFO] [stdout] 11 | |             .parse::<City>()
[INFO] [stdout]    | |____________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<City, std::convert::Infallible>
[INFO] [stdout]   --> src/days/day17.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | /         input
[INFO] [stdout] 18 | |             .parse::<City>()
[INFO] [stdout]    | |____________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<City, std::convert::Infallible>
[INFO] [stdout]    --> src/days/day17.rs:168:53
[INFO] [stdout]     |
[INFO] [stdout] 168 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]     |  _____________________________________________________^
[INFO] [stdout] 169 | |         Ok(Self {
[INFO] [stdout] 170 | |             streets: s
[INFO] [stdout] 171 | |                 .parse::<Grid<Street>>()?
[INFO] [stdout] ...   |
[INFO] [stdout] 175 | |         })
[INFO] [stdout] 176 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<City, std::convert::Infallible>
[INFO] [stdout]    --> src/days/day17.rs:169:9
[INFO] [stdout]     |
[INFO] [stdout] 169 | /         Ok(Self {
[INFO] [stdout] 170 | |             streets: s
[INFO] [stdout] 171 | |                 .parse::<Grid<Street>>()?
[INFO] [stdout] 172 | |                 .into_iter()
[INFO] [stdout] 173 | |                 .map(|row| row.into_iter().map(|v| v.0).collect())
[INFO] [stdout] 174 | |                 .collect(),
[INFO] [stdout] 175 | |         })
[INFO] [stdout]     | |__________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: ControlFlow<Result<std::convert::Infallible, std::convert::Infallible>, collections::Grid<Street>>
[INFO] [stdout]    --> src/days/day17.rs:170:22
[INFO] [stdout]     |
[INFO] [stdout] 170 |               streets: s
[INFO] [stdout]     |  ______________________^
[INFO] [stdout] 171 | |                 .parse::<Grid<Street>>()?
[INFO] [stdout]     | |_________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<collections::Grid<Street>, std::convert::Infallible>
[INFO] [stdout]    --> src/days/day17.rs:170:22
[INFO] [stdout]     |
[INFO] [stdout] 170 |               streets: s
[INFO] [stdout]     |  ______________________^
[INFO] [stdout] 171 | |                 .parse::<Grid<Street>>()?
[INFO] [stdout]     | |________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<City, std::convert::Infallible>
[INFO] [stdout]    --> src/days/day17.rs:170:22
[INFO] [stdout]     |
[INFO] [stdout] 170 |               streets: s
[INFO] [stdout]     |  ______________________^
[INFO] [stdout] 171 | |                 .parse::<Grid<Street>>()?
[INFO] [stdout]     | |_________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<DigInstruction, std::convert::Infallible>
[INFO] [stdout]    --> src/days/day18.rs:89:53
[INFO] [stdout]     |
[INFO] [stdout]  89 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]     |  _____________________________________________________^
[INFO] [stdout]  90 | |         let mut split = s.split_ascii_whitespace();
[INFO] [stdout]  91 | |         let dir = split.next().unwrap().chars().next().unwrap().into();
[INFO] [stdout]  92 | |         let amount = split.next().unwrap().parse().unwrap();
[INFO] [stdout] ...   |
[INFO] [stdout] 107 | |         })
[INFO] [stdout] 108 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<DigInstruction, std::convert::Infallible>
[INFO] [stdout]    --> src/days/day18.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 102 | /         Ok(Self {
[INFO] [stdout] 103 | |             dir,
[INFO] [stdout] 104 | |             amount,
[INFO] [stdout] 105 | |             color_dir,
[INFO] [stdout] 106 | |             color_dist,
[INFO] [stdout] 107 | |         })
[INFO] [stdout]     | |__________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day19::Part, std::convert::Infallible>
[INFO] [stdout]    --> src/days/day19.rs:99:53
[INFO] [stdout]     |
[INFO] [stdout]  99 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]     |  _____________________________________________________^
[INFO] [stdout] 100 | |         // {x=787,m=2655,a=1222,s=2876}
[INFO] [stdout] 101 | |         let mut nums = s
[INFO] [stdout] 102 | |             .strip_prefix('{')
[INFO] [stdout] ...   |
[INFO] [stdout] 115 | |         })
[INFO] [stdout] 116 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day19::Part, std::convert::Infallible>
[INFO] [stdout]    --> src/days/day19.rs:110:9
[INFO] [stdout]     |
[INFO] [stdout] 110 | /         Ok(Self {
[INFO] [stdout] 111 | |             x: nums.next().unwrap(),
[INFO] [stdout] 112 | |             m: nums.next().unwrap(),
[INFO] [stdout] 113 | |             a: nums.next().unwrap(),
[INFO] [stdout] 114 | |             s: nums.next().unwrap(),
[INFO] [stdout] 115 | |         })
[INFO] [stdout]     | |__________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/days/day19.rs:205:14
[INFO] [stdout]     |
[INFO] [stdout] 205 |     fn check(&self, part: &Part) -> Option<Label> {
[INFO] [stdout]     |              ^^^^^                         ^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |              |
[INFO] [stdout]     |              the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 205 |     fn check(&self, part: &Part) -> Option<Label<'_>> {
[INFO] [stdout]     |                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]    --> src/days/day19.rs:212:22
[INFO] [stdout]     |
[INFO] [stdout] 212 |         let offset = (self.cmp == usize::gt) as usize;
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the address of the same function can vary between different codegen units
[INFO] [stdout]     = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]     = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]     = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint
[INFO] [stdout]     |
[INFO] [stdout] 212 -         let offset = (self.cmp == usize::gt) as usize;
[INFO] [stdout] 212 +         let offset = std::ptr::fn_addr_eq(self.cmp, usize::gt as for<'a, 'b> fn(&'a usize, &'b usize) -> bool) as usize;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `aoc_23` (bin "aoc_23" test) due to 74 previous errors; 3 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "cb3ae88e6ff24d78fe7045a7dbbb17b5208dbaf2282a892fa7c41b1d9dddbfd8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cb3ae88e6ff24d78fe7045a7dbbb17b5208dbaf2282a892fa7c41b1d9dddbfd8", kill_on_drop: false }`
[INFO] [stdout] cb3ae88e6ff24d78fe7045a7dbbb17b5208dbaf2282a892fa7c41b1d9dddbfd8
