[INFO] cloning repository https://github.com/nrxus/advent_2018
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/nrxus/advent_2018" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnrxus%2Fadvent_2018", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnrxus%2Fadvent_2018'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 0f7b9bc6e61ad765717d77e17cb205c55563b07c
[INFO] checking nrxus/advent_2018 against beta-2021-10-15 for beta-1.56-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnrxus%2Fadvent_2018" "/workspace/builds/worker-4/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/nrxus/advent_2018 on toolchain beta-2021-10-15
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2021-10-15" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/nrxus/advent_2018
[INFO] finished tweaking git repo https://github.com/nrxus/advent_2018
[INFO] tweaked toml for git repo https://github.com/nrxus/advent_2018 written to /workspace/builds/worker-4/source/Cargo.toml
[INFO] crate git repo https://github.com/nrxus/advent_2018 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2021-10-15" "fetch" "--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-4/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "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:a89201d6b5b9fd45c15d5952ece0a0129e7e80cb26ec023fd59cf09bc26f1604" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2021-10-15" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 75daeb443d32c26e0bd743d4aad85317bf27d097a2447caf616cbfef09da794d
[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" "75daeb443d32c26e0bd743d4aad85317bf27d097a2447caf616cbfef09da794d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "75daeb443d32c26e0bd743d4aad85317bf27d097a2447caf616cbfef09da794d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "75daeb443d32c26e0bd743d4aad85317bf27d097a2447caf616cbfef09da794d", kill_on_drop: false }`
[INFO] [stdout] 75daeb443d32c26e0bd743d4aad85317bf27d097a2447caf616cbfef09da794d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:a89201d6b5b9fd45c15d5952ece0a0129e7e80cb26ec023fd59cf09bc26f1604" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2021-10-15" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] cf4ff73098cea810bb7a355eacc3f1d97f0542defaa54187a86f3fb66cd1c056
[INFO] running `Command { std: "docker" "start" "-a" "cf4ff73098cea810bb7a355eacc3f1d97f0542defaa54187a86f3fb66cd1c056", kill_on_drop: false }`
[INFO] [stderr]    Compiling crc32fast v1.1.1
[INFO] [stderr]    Compiling unicode-segmentation v1.2.1
[INFO] [stderr]     Checking strum v0.13.0
[INFO] [stderr]     Checking crossbeam-utils v0.2.2
[INFO] [stderr]    Compiling memchr v2.1.2
[INFO] [stderr]    Compiling libc v0.2.44
[INFO] [stderr]     Checking mio v0.6.16
[INFO] [stderr]     Checking uuid v0.7.1
[INFO] [stderr]    Compiling syn v0.14.9
[INFO] [stderr]     Checking serde_json v1.0.33
[INFO] [stderr]    Compiling syn v0.15.23
[INFO] [stderr]     Checking cookie v0.11.0
[INFO] [stderr]     Checking serde_urlencoded v0.5.4
[INFO] [stderr]     Checking h2 v0.1.13
[INFO] [stderr]     Checking crossbeam-epoch v0.3.1
[INFO] [stderr]    Compiling heck v0.3.1
[INFO] [stderr]    Compiling rand v0.5.5
[INFO] [stderr]     Checking crossbeam-deque v0.2.0
[INFO] [stderr]     Checking libflate v0.1.19
[INFO] [stderr]     Checking tokio-reactor v0.1.7
[INFO] [stderr]     Checking mio-uds v0.6.7
[INFO] [stderr]     Checking aho-corasick v0.6.9
[INFO] [stderr]     Checking rayon-core v1.4.1
[INFO] [stderr]     Checking regex v1.1.0
[INFO] [stderr]     Checking tokio-uds v0.2.4
[INFO] [stderr]     Checking tokio-udp v0.1.3
[INFO] [stderr]     Checking tokio-tcp v0.1.2
[INFO] [stderr]     Checking rayon v1.0.3
[INFO] [stderr]    Compiling phf_generator v0.7.23
[INFO] [stderr]     Checking tokio v0.1.13
[INFO] [stderr]    Compiling phf_codegen v0.7.23
[INFO] [stderr]    Compiling mime_guess v2.0.0-alpha.6
[INFO] [stderr]     Checking hyper v0.12.16
[INFO] [stderr]    Compiling enum-map-derive v0.4.0
[INFO] [stderr]     Checking enum-map v0.4.1
[INFO] [stderr]    Compiling strum_macros v0.13.0
[INFO] [stderr]     Checking hyper-tls v0.3.1
[INFO] [stderr]     Checking reqwest v0.9.5
[INFO] [stderr]     Checking advent_2018 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0554]: `#![feature]` may not be used on the beta release channel
[INFO] [stdout]  --> src/seven_a.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(never_type)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `std::option::NoneError`
[INFO] [stdout]   --> src/twenty_two_b.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     option::NoneError,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ no `NoneError` in `option`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0554]: `#![feature]` may not be used on the beta release channel
[INFO] [stdout]  --> src/twenty_two_b.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(try_trait)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to previous error
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0554`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `advent_2018` due to 2 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0554]: `#![feature]` may not be used on the beta release channel
[INFO] [stdout]  --> src/twenty_five.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(drain_filter)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/twenty_five.rs:40:32
[INFO] [stdout]    |
[INFO] [stdout] 40 |     type Err = std::boxed::Box<std::error::Error>;
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn std::error::Error`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ten_a.rs:47:20
[INFO] [stdout]    |
[INFO] [stdout] 47 |     type Err = Box<std::error::Error>;
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn std::error::Error`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to previous error; 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0554`.
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `std::option::NoneError`
[INFO] [stdout]  --> src/three_a.rs:3:31
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::{num::ParseIntError, option::NoneError, str::FromStr};
[INFO] [stdout]   |                               ^^^^^^^^^^^^^^^^^ no `NoneError` in `option`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0554]: `#![feature]` may not be used on the beta release channel
[INFO] [stdout]  --> src/three_a.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(try_trait)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0554]: `#![feature]` may not be used on the beta release channel
[INFO] [stdout]  --> src/twenty_five.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(drain_filter)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/twenty_five.rs:40:32
[INFO] [stdout]    |
[INFO] [stdout] 40 |     type Err = std::boxed::Box<std::error::Error>;
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn std::error::Error`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to previous error; 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0554`.
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ten_b.rs:25:20
[INFO] [stdout]    |
[INFO] [stdout] 25 |     type Err = Box<std::error::Error>;
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn std::error::Error`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0554]: `#![feature]` may not be used on the beta release channel
[INFO] [stdout]  --> src/seven_b.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(never_type)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `std::option::NoneError`
[INFO] [stdout]  --> src/guard_schedule.rs:1:71
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, convert::TryFrom, num::ParseIntError, option::NoneError};
[INFO] [stdout]   |                                                                       ^^^^^^^^^^^^^^^^^ no `NoneError` in `option`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0554]: `#![feature]` may not be used on the beta release channel
[INFO] [stdout]  --> src/four_a.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(try_trait)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to previous error
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0554`.
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]    --> src/twenty_two_b.rs:281:41
[INFO] [stdout]     |
[INFO] [stdout] 276 | /     fn from_str(input: &str) -> Result<Self, Self::Err> {
[INFO] [stdout] 277 | |         let regex = Regex::new(
[INFO] [stdout] 278 | |             r"depth: (?P<depth>\d+)
[INFO] [stdout] 279 | | target: (?P<tx>\d+),(?P<ty>\d+)",
[INFO] [stdout] 280 | |         )?;
[INFO] [stdout] 281 | |         let caps = regex.captures(input)?;
[INFO] [stdout]     | |                                         ^ use `.ok_or(...)?` to provide an error compatible with `Result<Cave, ParsingError>`
[INFO] [stdout] ...   |
[INFO] [stdout] 310 | |         })
[INFO] [stdout] 311 | |     }
[INFO] [stdout]     | |_____- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<Cave, ParsingError>`
[INFO] [stdout] note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]    --> src/guard_schedule.rs:78:51
[INFO] [stdout]     |
[INFO] [stdout] 70  | /     fn try_from(raw: &'s str) -> Result<Self, Self::Error> {
[INFO] [stdout] 71  | |         let date = &raw[1..17];
[INFO] [stdout] 72  | |         let action = &raw[19..];
[INFO] [stdout] 73  | |         if action.contains("falls asleep") {
[INFO] [stdout] ...   |
[INFO] [stdout] 78  | |             let id = action[7..].split(' ').nth(0)?.parse::<u16>()?;
[INFO] [stdout]     | |                                                   ^ use `.ok_or(...)?` to provide an error compatible with `Result<guard_schedule::Entry<'_>, EntryParseError>`
[INFO] [stdout] 79  | |             Ok(Entry::BeginShift(date, id))
[INFO] [stdout] 80  | |         }
[INFO] [stdout] 81  | |     }
[INFO] [stdout]     | |_____- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<guard_schedule::Entry<'_>, EntryParseError>`
[INFO] [stdout] note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]    --> src/three_a.rs:101:46
[INFO] [stdout]     |
[INFO] [stdout] 100 | /     fn from_str(line: &str) -> Result<Self, Self::Err> {
[INFO] [stdout] 101 | |         let mut line = line.split('@').nth(1)?.split(':');
[INFO] [stdout]     | |                                              ^ use `.ok_or(...)?` to provide an error compatible with `Result<Claim, ClaimParseError>`
[INFO] [stdout] 102 | |         let mut top_left = line.next()?.trim().split(',');
[INFO] [stdout] 103 | |         let left = top_left.next()?.parse()?;
[INFO] [stdout] ...   |
[INFO] [stdout] 111 | |         })
[INFO] [stdout] 112 | |     }
[INFO] [stdout]     | |_____- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<Claim, ClaimParseError>`
[INFO] [stdout] note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]    --> src/three_a.rs:102:39
[INFO] [stdout]     |
[INFO] [stdout] 100 | /     fn from_str(line: &str) -> Result<Self, Self::Err> {
[INFO] [stdout] 101 | |         let mut line = line.split('@').nth(1)?.split(':');
[INFO] [stdout] 102 | |         let mut top_left = line.next()?.trim().split(',');
[INFO] [stdout]     | |                                       ^ use `.ok_or(...)?` to provide an error compatible with `Result<Claim, ClaimParseError>`
[INFO] [stdout] 103 | |         let left = top_left.next()?.parse()?;
[INFO] [stdout] ...   |
[INFO] [stdout] 111 | |         })
[INFO] [stdout] 112 | |     }
[INFO] [stdout]     | |_____- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<Claim, ClaimParseError>`
[INFO] [stdout] note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]    --> src/three_a.rs:103:35
[INFO] [stdout]     |
[INFO] [stdout] 100 | /     fn from_str(line: &str) -> Result<Self, Self::Err> {
[INFO] [stdout] 101 | |         let mut line = line.split('@').nth(1)?.split(':');
[INFO] [stdout] 102 | |         let mut top_left = line.next()?.trim().split(',');
[INFO] [stdout] 103 | |         let left = top_left.next()?.parse()?;
[INFO] [stdout]     | |                                   ^ use `.ok_or(...)?` to provide an error compatible with `Result<Claim, ClaimParseError>`
[INFO] [stdout] ...   |
[INFO] [stdout] 111 | |         })
[INFO] [stdout] 112 | |     }
[INFO] [stdout]     | |_____- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<Claim, ClaimParseError>`
[INFO] [stdout] note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]    --> src/twenty_two_b.rs:282:46
[INFO] [stdout]     |
[INFO] [stdout] 276 | /     fn from_str(input: &str) -> Result<Self, Self::Err> {
[INFO] [stdout] 277 | |         let regex = Regex::new(
[INFO] [stdout] 278 | |             r"depth: (?P<depth>\d+)
[INFO] [stdout] 279 | | target: (?P<tx>\d+),(?P<ty>\d+)",
[INFO] [stdout] ...   |
[INFO] [stdout] 282 | |         let depth: usize = caps.name("depth")?.as_str().parse()?;
[INFO] [stdout]     | |                                              ^ use `.ok_or(...)?` to provide an error compatible with `Result<Cave, ParsingError>`
[INFO] [stdout] ...   |
[INFO] [stdout] 310 | |         })
[INFO] [stdout] 311 | |     }
[INFO] [stdout]     | |_____- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<Cave, ParsingError>`
[INFO] [stdout] note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]    --> src/three_a.rs:104:34
[INFO] [stdout]     |
[INFO] [stdout] 100 | /     fn from_str(line: &str) -> Result<Self, Self::Err> {
[INFO] [stdout] 101 | |         let mut line = line.split('@').nth(1)?.split(':');
[INFO] [stdout] 102 | |         let mut top_left = line.next()?.trim().split(',');
[INFO] [stdout] 103 | |         let left = top_left.next()?.parse()?;
[INFO] [stdout] 104 | |         let top = top_left.next()?.parse()?;
[INFO] [stdout]     | |                                  ^ use `.ok_or(...)?` to provide an error compatible with `Result<Claim, ClaimParseError>`
[INFO] [stdout] ...   |
[INFO] [stdout] 111 | |         })
[INFO] [stdout] 112 | |     }
[INFO] [stdout]     | |_____- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<Claim, ClaimParseError>`
[INFO] [stdout] note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0271]: type mismatch resolving `<usize as FromStr>::Err == regex::Error`
[INFO] [stdout]    --> src/twenty_two_b.rs:282:57
[INFO] [stdout]     |
[INFO] [stdout] 282 |         let depth: usize = caps.name("depth")?.as_str().parse()?;
[INFO] [stdout]     |                                                         ^^^^^ expected struct `ParseIntError`, found enum `regex::Error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]    --> src/three_a.rs:105:35
[INFO] [stdout]     |
[INFO] [stdout] 100 | /     fn from_str(line: &str) -> Result<Self, Self::Err> {
[INFO] [stdout] 101 | |         let mut line = line.split('@').nth(1)?.split(':');
[INFO] [stdout] 102 | |         let mut top_left = line.next()?.trim().split(',');
[INFO] [stdout] 103 | |         let left = top_left.next()?.parse()?;
[INFO] [stdout] 104 | |         let top = top_left.next()?.parse()?;
[INFO] [stdout] 105 | |         let mut size = line.next()?.trim().split('x');
[INFO] [stdout]     | |                                   ^ use `.ok_or(...)?` to provide an error compatible with `Result<Claim, ClaimParseError>`
[INFO] [stdout] ...   |
[INFO] [stdout] 111 | |         })
[INFO] [stdout] 112 | |     }
[INFO] [stdout]     | |_____- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<Claim, ClaimParseError>`
[INFO] [stdout] note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]    --> src/three_a.rs:106:39
[INFO] [stdout]     |
[INFO] [stdout] 100 | /     fn from_str(line: &str) -> Result<Self, Self::Err> {
[INFO] [stdout] 101 | |         let mut line = line.split('@').nth(1)?.split(':');
[INFO] [stdout] 102 | |         let mut top_left = line.next()?.trim().split(',');
[INFO] [stdout] 103 | |         let left = top_left.next()?.parse()?;
[INFO] [stdout] ...   |
[INFO] [stdout] 106 | |         let right = left + size.next()?.parse::<usize>()?;
[INFO] [stdout]     | |                                       ^ use `.ok_or(...)?` to provide an error compatible with `Result<Claim, ClaimParseError>`
[INFO] [stdout] ...   |
[INFO] [stdout] 111 | |         })
[INFO] [stdout] 112 | |     }
[INFO] [stdout]     | |_____- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<Claim, ClaimParseError>`
[INFO] [stdout] note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]    --> src/twenty_two_b.rs:283:40
[INFO] [stdout]     |
[INFO] [stdout] 276 | /     fn from_str(input: &str) -> Result<Self, Self::Err> {
[INFO] [stdout] 277 | |         let regex = Regex::new(
[INFO] [stdout] 278 | |             r"depth: (?P<depth>\d+)
[INFO] [stdout] 279 | | target: (?P<tx>\d+),(?P<ty>\d+)",
[INFO] [stdout] ...   |
[INFO] [stdout] 283 | |         let tx: usize = caps.name("tx")?.as_str().parse()?;
[INFO] [stdout]     | |                                        ^ use `.ok_or(...)?` to provide an error compatible with `Result<Cave, ParsingError>`
[INFO] [stdout] ...   |
[INFO] [stdout] 310 | |         })
[INFO] [stdout] 311 | |     }
[INFO] [stdout]     | |_____- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<Cave, ParsingError>`
[INFO] [stdout] note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0271]: type mismatch resolving `<usize as FromStr>::Err == regex::Error`
[INFO] [stdout]    --> src/twenty_two_b.rs:283:51
[INFO] [stdout]     |
[INFO] [stdout] 283 |         let tx: usize = caps.name("tx")?.as_str().parse()?;
[INFO] [stdout]     |                                                   ^^^^^ expected struct `ParseIntError`, found enum `regex::Error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]    --> src/three_a.rs:107:39
[INFO] [stdout]     |
[INFO] [stdout] 100 | /     fn from_str(line: &str) -> Result<Self, Self::Err> {
[INFO] [stdout] 101 | |         let mut line = line.split('@').nth(1)?.split(':');
[INFO] [stdout] 102 | |         let mut top_left = line.next()?.trim().split(',');
[INFO] [stdout] 103 | |         let left = top_left.next()?.parse()?;
[INFO] [stdout] ...   |
[INFO] [stdout] 107 | |         let bottom = top + size.next()?.parse::<usize>()?;
[INFO] [stdout]     | |                                       ^ use `.ok_or(...)?` to provide an error compatible with `Result<Claim, ClaimParseError>`
[INFO] [stdout] ...   |
[INFO] [stdout] 111 | |         })
[INFO] [stdout] 112 | |     }
[INFO] [stdout]     | |_____- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<Claim, ClaimParseError>`
[INFO] [stdout] note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 9 previous errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0432, E0554.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]    --> src/twenty_two_b.rs:284:40
[INFO] [stdout]     |
[INFO] [stdout] 276 | /     fn from_str(input: &str) -> Result<Self, Self::Err> {
[INFO] [stdout] 277 | |         let regex = Regex::new(
[INFO] [stdout] 278 | |             r"depth: (?P<depth>\d+)
[INFO] [stdout] 279 | | target: (?P<tx>\d+),(?P<ty>\d+)",
[INFO] [stdout] ...   |
[INFO] [stdout] 284 | |         let ty: usize = caps.name("ty")?.as_str().parse()?;
[INFO] [stdout]     | |                                        ^ use `.ok_or(...)?` to provide an error compatible with `Result<Cave, ParsingError>`
[INFO] [stdout] ...   |
[INFO] [stdout] 310 | |         })
[INFO] [stdout] 311 | |     }
[INFO] [stdout]     | |_____- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<Cave, ParsingError>`
[INFO] [stdout] note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0271]: type mismatch resolving `<usize as FromStr>::Err == regex::Error`
[INFO] [stdout]    --> src/twenty_two_b.rs:284:51
[INFO] [stdout]     |
[INFO] [stdout] 284 |         let ty: usize = caps.name("ty")?.as_str().parse()?;
[INFO] [stdout]     |                                                   ^^^^^ expected struct `ParseIntError`, found enum `regex::Error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0432, E0554.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 9 previous errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0271, E0277, E0432, E0554.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0271`.
[INFO] [stdout] 
[INFO] [stderr] error: build failed
[INFO] running `Command { std: "docker" "inspect" "cf4ff73098cea810bb7a355eacc3f1d97f0542defaa54187a86f3fb66cd1c056", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cf4ff73098cea810bb7a355eacc3f1d97f0542defaa54187a86f3fb66cd1c056", kill_on_drop: false }`
[INFO] [stdout] cf4ff73098cea810bb7a355eacc3f1d97f0542defaa54187a86f3fb66cd1c056
