[INFO] fetching crate idiom-solitaire 0.1.0...
[INFO] testing idiom-solitaire-0.1.0 against 1.69.0 for beta-1.70-1
[INFO] extracting crate idiom-solitaire 0.1.0 into /workspace/builds/worker-3-tc1/source
[INFO] validating manifest of crates.io crate idiom-solitaire 0.1.0 on toolchain 1.69.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.69.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate idiom-solitaire 0.1.0
[INFO] finished tweaking crates.io crate idiom-solitaire 0.1.0
[INFO] tweaked toml for crates.io crate idiom-solitaire 0.1.0 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" __CARGO_TEST_CHANNEL_OVERRIDE_DO_NOT_USE_THIS="nightly" "/workspace/cargo-home/bin/cargo" "+1.69.0" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.69.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded integer-sqrt v0.1.5
[INFO] [stderr]   Downloaded pathfinding v2.2.3
[INFO] [stderr]   Downloaded pinyin v0.8.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/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:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+1.69.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 369b96a112f28ca82476d20158572669642c5a77329539119218d879d362d777
[INFO] running `Command { std: "docker" "start" "-a" "369b96a112f28ca82476d20158572669642c5a77329539119218d879d362d777", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "369b96a112f28ca82476d20158572669642c5a77329539119218d879d362d777", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "369b96a112f28ca82476d20158572669642c5a77329539119218d879d362d777", kill_on_drop: false }`
[INFO] [stdout] 369b96a112f28ca82476d20158572669642c5a77329539119218d879d362d777
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+1.69.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6e665aa852bfecc04b71467d66185bace8ae8fb272cd0fae5261ba52f44b2cc1
[INFO] running `Command { std: "docker" "start" "-a" "6e665aa852bfecc04b71467d66185bace8ae8fb272cd0fae5261ba52f44b2cc1", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v1.1.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.56
[INFO] [stderr]    Compiling libc v0.2.142
[INFO] [stderr]    Compiling quote v1.0.26
[INFO] [stderr]    Compiling getrandom v0.1.16
[INFO] [stderr]    Compiling unicode-ident v1.0.8
[INFO] [stderr]    Compiling memchr v2.5.0
[INFO] [stderr]    Compiling serde_derive v1.0.160
[INFO] [stderr]    Compiling serde v1.0.160
[INFO] [stderr]    Compiling either v1.8.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.17
[INFO] [stderr]    Compiling hashbrown v0.12.3
[INFO] [stderr]    Compiling pinyin v0.8.0
[INFO] [stderr]    Compiling ryu v1.0.13
[INFO] [stderr]    Compiling fixedbitset v0.4.2
[INFO] [stderr]    Compiling itoa v1.0.6
[INFO] [stderr]    Compiling rustc-hash v1.1.0
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling itertools v0.9.0
[INFO] [stderr]    Compiling num-traits v0.2.15
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling csv-core v0.1.10
[INFO] [stderr]    Compiling syn v2.0.15
[INFO] [stderr]    Compiling rand_core v0.5.1
[INFO] [stderr]    Compiling rand_pcg v0.2.1
[INFO] [stderr]    Compiling rand_chacha v0.2.2
[INFO] [stderr]    Compiling rand v0.7.3
[INFO] [stderr]    Compiling integer-sqrt v0.1.5
[INFO] [stderr]    Compiling pathfinding v2.2.3
[INFO] [stderr]    Compiling csv v1.2.1
[INFO] [stderr]    Compiling idiom-solitaire v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0412]: cannot find type `NoneError` in module `std::option`
[INFO] [stdout]   --> src/errors.rs:23:24
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl From<std::option::NoneError> for Error {
[INFO] [stdout]    |                        ^^^^^^^^^ not found in `std::option`
[INFO] [stdout]    |
[INFO] [stdout] help: there is an enum variant `crate::Error::NoneError`; try using the variant's enum
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl From<crate::Error> for Error {
[INFO] [stdout]    |           ~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `NoneError` in module `std::option`
[INFO] [stdout]   --> src/errors.rs:24:29
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn from(_: std::option::NoneError) -> Self {
[INFO] [stdout]    |                             ^^^^^^^^^ not found in `std::option`
[INFO] [stdout]    |
[INFO] [stdout] help: there is an enum variant `crate::Error::NoneError`; try using the variant's enum
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn from(_: crate::Error) -> Self {
[INFO] [stdout]    |                ~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0554]: `#![feature]` may not be used on the stable release channel
[INFO] [stdout]  --> src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(try_trait)]
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0635]: unknown feature `try_trait`
[INFO] [stdout]  --> src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(try_trait)]
[INFO] [stdout]   |            ^^^^^^^^^
[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/solver/mod.rs:96:55
[INFO] [stdout]    |
[INFO] [stdout] 91 |     pub fn solve_random(&mut self, input: &str) -> Result<Idiom> {
[INFO] [stdout]    |     ------------------------------------------------------------ this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 96 |             let i = (0..s.len()).choose(&mut self.rng)?;
[INFO] [stdout]    |                                                       ^ use `.ok_or(...)?` to provide an error compatible with `std::result::Result<Idiom, errors::Error>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `std::result::Result<Idiom, errors::Error>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <std::result::Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <std::result::Result<T, F> as FromResidual<std::result::Result<Infallible, E>>>
[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/solver/mod.rs:104:43
[INFO] [stdout]     |
[INFO] [stdout] 102 |     pub fn solve_target(&mut self, input: &str, target: &str) -> Result<Vec<Idiom>> {
[INFO] [stdout]     |     ------------------------------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] 103 |         let first = Idiom::from(input);
[INFO] [stdout] 104 |         let target = target.chars().next()?;
[INFO] [stdout]     |                                           ^ use `.ok_or(...)?` to provide an error compatible with `std::result::Result<Vec<Idiom>, errors::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `std::result::Result<Vec<Idiom>, errors::Error>`
[INFO] [stdout]     = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]               <std::result::Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]               <std::result::Result<T, F> as FromResidual<std::result::Result<Infallible, E>>>
[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/solver/mod.rs:107:54
[INFO] [stdout]     |
[INFO] [stdout] 102 |     pub fn solve_target(&mut self, input: &str, target: &str) -> Result<Vec<Idiom>> {
[INFO] [stdout]     |     ------------------------------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 107 |             SolitaireMode::Tone => target.to_pinyin()?.with_tone().to_string(),
[INFO] [stdout]     |                                                      ^ use `.ok_or(...)?` to provide an error compatible with `std::result::Result<Vec<Idiom>, errors::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `std::result::Result<Vec<Idiom>, errors::Error>`
[INFO] [stdout]     = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]               <std::result::Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]               <std::result::Result<T, F> as FromResidual<std::result::Result<Infallible, E>>>
[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/solver/mod.rs:108:55
[INFO] [stdout]     |
[INFO] [stdout] 102 |     pub fn solve_target(&mut self, input: &str, target: &str) -> Result<Vec<Idiom>> {
[INFO] [stdout]     |     ------------------------------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 108 |             SolitaireMode::Sound => target.to_pinyin()?.plain().to_string(),
[INFO] [stdout]     |                                                       ^ use `.ok_or(...)?` to provide an error compatible with `std::result::Result<Vec<Idiom>, errors::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `std::result::Result<Vec<Idiom>, errors::Error>`
[INFO] [stdout]     = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]               <std::result::Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]               <std::result::Result<T, F> as FromResidual<std::result::Result<Infallible, E>>>
[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/solver/mod.rs:110:95
[INFO] [stdout]     |
[INFO] [stdout] 102 |     pub fn solve_target(&mut self, input: &str, target: &str) -> Result<Vec<Idiom>> {
[INFO] [stdout]     |     ------------------------------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 110 |         let result = bfs(&first, |p| self.successors(p), |p| self.get_key(&p.idiom) == target)?;
[INFO] [stdout]     |                                                                                               ^ use `.ok_or(...)?` to provide an error compatible with `std::result::Result<Vec<Idiom>, errors::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `std::result::Result<Vec<Idiom>, errors::Error>`
[INFO] [stdout]     = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]               <std::result::Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]               <std::result::Result<T, F> as FromResidual<std::result::Result<Infallible, E>>>
[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/solver/mod.rs:133:57
[INFO] [stdout]     |
[INFO] [stdout] 114 |     pub fn solve_greedy(&mut self, input: &str) -> Result<Idiom> {
[INFO] [stdout]     |     ------------------------------------------------------------ this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 133 |         let s = self.state.get_mut(&self.get_key(input))?;
[INFO] [stdout]     |                                                         ^ use `.ok_or(...)?` to provide an error compatible with `std::result::Result<Idiom, errors::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `std::result::Result<Idiom, errors::Error>`
[INFO] [stdout]     = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]               <std::result::Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]               <std::result::Result<T, F> as FromResidual<std::result::Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 10 previous errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0412, E0554, E0635.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `idiom-solitaire` due to 11 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] running `Command { std: "docker" "inspect" "6e665aa852bfecc04b71467d66185bace8ae8fb272cd0fae5261ba52f44b2cc1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6e665aa852bfecc04b71467d66185bace8ae8fb272cd0fae5261ba52f44b2cc1", kill_on_drop: false }`
[INFO] [stdout] 6e665aa852bfecc04b71467d66185bace8ae8fb272cd0fae5261ba52f44b2cc1
