[INFO] fetching crate promise 0.0.4...
[INFO] checking promise-0.0.4 against master#39cb3386ddc6c71657418be28dbb3987eea4aa4b for pr-133536
[INFO] extracting crate promise 0.0.4 into /workspace/builds/worker-4-tc1/source
[INFO] validating manifest of crates.io crate promise 0.0.4 on toolchain 39cb3386ddc6c71657418be28dbb3987eea4aa4b
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+39cb3386ddc6c71657418be28dbb3987eea4aa4b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate promise 0.0.4
[INFO] finished tweaking crates.io crate promise 0.0.4
[INFO] tweaked toml for crates.io crate promise 0.0.4 written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+39cb3386ddc6c71657418be28dbb3987eea4aa4b" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+39cb3386ddc6c71657418be28dbb3987eea4aa4b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+39cb3386ddc6c71657418be28dbb3987eea4aa4b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 4a80afc1ef4ea4a4a419218482f378cbb4fb13041a9393b72a6c96a1192d3ece
[INFO] running `Command { std: "docker" "start" "-a" "4a80afc1ef4ea4a4a419218482f378cbb4fb13041a9393b72a6c96a1192d3ece", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4a80afc1ef4ea4a4a419218482f378cbb4fb13041a9393b72a6c96a1192d3ece", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4a80afc1ef4ea4a4a419218482f378cbb4fb13041a9393b72a6c96a1192d3ece", kill_on_drop: false }`
[INFO] [stdout] 4a80afc1ef4ea4a4a419218482f378cbb4fb13041a9393b72a6c96a1192d3ece
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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=forbid" "-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:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+39cb3386ddc6c71657418be28dbb3987eea4aa4b" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 78c56b5833248aabecaf7e0e689be68578d31eec4344e0a37acc11b5e4190b6c
[INFO] running `Command { std: "docker" "start" "-a" "78c56b5833248aabecaf7e0e689be68578d31eec4344e0a37acc11b5e4190b6c", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]     Checking promise v0.0.4 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0432]: unresolved import `std::io::timer`
[INFO] [stdout]  --> src/lib.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io::timer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^ no `timer` in `io`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `std::io::timer`
[INFO] [stdout]  --> src/lib.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io::timer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^ no `timer` in `io`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `std::time::duration`
[INFO] [stdout]  --> src/lib.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::time::duration::Duration;
[INFO] [stdout]   |                ^^^^^^^^ could not find `duration` in `time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `std::sync::mpsc::Select`
[INFO] [stdout]  --> src/lib.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     Select,
[INFO] [stdout]   |     ^^^^^^ no `Select` in `sync::mpsc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `std::time::duration`
[INFO] [stdout]  --> src/lib.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::time::duration::Duration;
[INFO] [stdout]   |                ^^^^^^^^ could not find `duration` in `time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `std::sync::mpsc::Select`
[INFO] [stdout]  --> src/lib.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     Select,
[INFO] [stdout]   |     ^^^^^^ no `Select` in `sync::mpsc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `std::boxed::BoxAny`
[INFO] [stdout]    --> src/lib.rs:270:9
[INFO] [stdout]     |
[INFO] [stdout] 270 |     use std::boxed::BoxAny;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^ no `BoxAny` in `boxed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `std::time::duration`
[INFO] [stdout]    --> src/lib.rs:271:20
[INFO] [stdout]     |
[INFO] [stdout] 271 |     use std::time::duration::Duration;
[INFO] [stdout]     |                    ^^^^^^^^ could not find `duration` in `time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `range` in this scope
[INFO] [stdout]    --> src/lib.rs:117:22
[INFO] [stdout]     |
[INFO] [stdout] 117 |             for _ in range(0, futures.len()) {
[INFO] [stdout]     |                      ^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 4   + use std::slice::range;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `std::io::timer`
[INFO] [stdout]    --> src/lib.rs:272:9
[INFO] [stdout]     |
[INFO] [stdout] 272 |     use std::io::timer;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ no `timer` in `io`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this unresolved item through its public re-export instead
[INFO] [stdout]     |
[INFO] [stdout] 272 |     use timer;
[INFO] [stdout]     |         ~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `range` in this scope
[INFO] [stdout]    --> src/lib.rs:117:22
[INFO] [stdout]     |
[INFO] [stdout] 117 |             for _ in range(0, futures.len()) {
[INFO] [stdout]     |                      ^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 4   + use std::slice::range;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0658]: use of unstable library feature `test`
[INFO] [stdout]  --> src/lib.rs:2:1
[INFO] [stdout]   |
[INFO] [stdout] 2 | extern crate test;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: see issue #50297 <https://github.com/rust-lang/rust/issues/50297> for more information
[INFO] [stdout]   = help: add `#![feature(test)]` to the crate attributes to enable
[INFO] [stdout]   = note: this compiler was built on 2024-11-27; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:18:21
[INFO] [stdout]    |
[INFO] [stdout] 18 |     TaskFailure(Box<Any+Send>),
[INFO] [stdout]    |                     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) 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]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 18 |     TaskFailure(Box<dyn Any+Send>),
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: invalid suffix `us` for number literal
[INFO] [stdout]    --> src/lib.rs:281:30
[INFO] [stdout]     |
[INFO] [stdout] 281 |         assert_eq!(p.resolve(123us), Ok(()));
[INFO] [stdout]     |                              ^^^^^ invalid suffix `us`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the suffix must be one of the numeric types (`u32`, `isize`, `f32`, etc.)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: invalid suffix `us` for number literal
[INFO] [stdout]    --> src/lib.rs:282:39
[INFO] [stdout]     |
[INFO] [stdout] 282 |         assert_eq!(f.get().ok(), Some(123us));
[INFO] [stdout]     |                                       ^^^^^ invalid suffix `us`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the suffix must be one of the numeric types (`u32`, `isize`, `f32`, etc.)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: invalid suffix `us` for number literal
[INFO] [stdout]    --> src/lib.rs:300:41
[INFO] [stdout]     |
[INFO] [stdout] 300 |         let f = Future::from_fn(move || 123us);
[INFO] [stdout]     |                                         ^^^^^ invalid suffix `us`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the suffix must be one of the numeric types (`u32`, `isize`, `f32`, etc.)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: invalid suffix `us` for number literal
[INFO] [stdout]    --> src/lib.rs:301:39
[INFO] [stdout]     |
[INFO] [stdout] 301 |         assert_eq!(f.get().ok(), Some(123us));
[INFO] [stdout]     |                                       ^^^^^ invalid suffix `us`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the suffix must be one of the numeric types (`u32`, `isize`, `f32`, etc.)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: invalid suffix `us` for number literal
[INFO] [stdout]    --> src/lib.rs:308:13
[INFO] [stdout]     |
[INFO] [stdout] 308 |             123us
[INFO] [stdout]     |             ^^^^^ invalid suffix `us`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the suffix must be one of the numeric types (`u32`, `isize`, `f32`, etc.)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: invalid suffix `us` for number literal
[INFO] [stdout]    --> src/lib.rs:320:40
[INFO] [stdout]     |
[INFO] [stdout] 320 |         let f = Future::delay(move ||  123us, Duration::seconds(3));
[INFO] [stdout]     |                                        ^^^^^ invalid suffix `us`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the suffix must be one of the numeric types (`u32`, `isize`, `f32`, etc.)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: invalid suffix `us` for number literal
[INFO] [stdout]    --> src/lib.rs:322:39
[INFO] [stdout]     |
[INFO] [stdout] 322 |         assert_eq!(f.get().ok(), Some(123us));
[INFO] [stdout]     |                                       ^^^^^ invalid suffix `us`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the suffix must be one of the numeric types (`u32`, `isize`, `f32`, etc.)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: invalid suffix `us` for number literal
[INFO] [stdout]    --> src/lib.rs:357:31
[INFO] [stdout]     |
[INFO] [stdout] 357 |         let f = Future::value(123us);
[INFO] [stdout]     |                               ^^^^^ invalid suffix `us`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the suffix must be one of the numeric types (`u32`, `isize`, `f32`, etc.)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: invalid suffix `us` for number literal
[INFO] [stdout]    --> src/lib.rs:358:39
[INFO] [stdout]     |
[INFO] [stdout] 358 |         assert_eq!(f.get().ok(), Some(123us));
[INFO] [stdout]     |                                       ^^^^^ invalid suffix `us`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the suffix must be one of the numeric types (`u32`, `isize`, `f32`, etc.)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: invalid suffix `us` for number literal
[INFO] [stdout]    --> src/lib.rs:364:39
[INFO] [stdout]     |
[INFO] [stdout] 364 |         let f = Future::delay(move || 123us, Duration::seconds(1));
[INFO] [stdout]     |                                       ^^^^^ invalid suffix `us`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the suffix must be one of the numeric types (`u32`, `isize`, `f32`, etc.)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: invalid suffix `us` for number literal
[INFO] [stdout]    --> src/lib.rs:368:59
[INFO] [stdout]     |
[INFO] [stdout] 368 |         assert_eq!(rx.recv().ok().unwrap().ok().unwrap(), 123us)
[INFO] [stdout]     |                                                           ^^^^^ invalid suffix `us`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the suffix must be one of the numeric types (`u32`, `isize`, `f32`, etc.)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: invalid suffix `us` for number literal
[INFO] [stdout]    --> src/lib.rs:374:39
[INFO] [stdout]     |
[INFO] [stdout] 374 |         let f = Future::delay(move || 123us, Duration::seconds(1));
[INFO] [stdout]     |                                       ^^^^^ invalid suffix `us`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the suffix must be one of the numeric types (`u32`, `isize`, `f32`, etc.)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: invalid suffix `us` for number literal
[INFO] [stdout]    --> src/lib.rs:378:45
[INFO] [stdout]     |
[INFO] [stdout] 378 |         assert_eq!(rx.recv().ok().unwrap(), 123us)
[INFO] [stdout]     |                                             ^^^^^ invalid suffix `us`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the suffix must be one of the numeric types (`u32`, `isize`, `f32`, etc.)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: invalid suffix `us` for number literal
[INFO] [stdout]    --> src/lib.rs:384:31
[INFO] [stdout]     |
[INFO] [stdout] 384 |         let f = Future::value(3us);
[INFO] [stdout]     |                               ^^^ invalid suffix `us`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the suffix must be one of the numeric types (`u32`, `isize`, `f32`, etc.)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: invalid suffix `us` for number literal
[INFO] [stdout]    --> src/lib.rs:389:45
[INFO] [stdout]     |
[INFO] [stdout] 389 |         assert_eq!(rx.recv().ok().unwrap(), 9us);
[INFO] [stdout]     |                                             ^^^ invalid suffix `us`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the suffix must be one of the numeric types (`u32`, `isize`, `f32`, etc.)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0658]: use of unstable library feature `test`
[INFO] [stdout]  --> src/lib.rs:2:1
[INFO] [stdout]   |
[INFO] [stdout] 2 | extern crate test;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: see issue #50297 <https://github.com/rust-lang/rust/issues/50297> for more information
[INFO] [stdout]   = help: add `#![feature(test)]` to the crate attributes to enable
[INFO] [stdout]   = note: this compiler was built on 2024-11-27; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:18:21
[INFO] [stdout]    |
[INFO] [stdout] 18 |     TaskFailure(Box<Any+Send>),
[INFO] [stdout]    |                     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) 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]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 18 |     TaskFailure(Box<dyn Any+Send>),
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: trait takes 1 generic argument but 2 generic arguments were supplied
[INFO] [stdout]    --> src/lib.rs:166:23
[INFO] [stdout]     |
[INFO] [stdout] 166 |     pub fn from_fn<F: FnOnce<(), T> + Send>(func: F) -> Future<T> {
[INFO] [stdout]     |                       ^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] help: replace the generic bound with the associated type
[INFO] [stdout]     |
[INFO] [stdout] 166 |     pub fn from_fn<F: FnOnce<(), Output = T> + Send>(func: F) -> Future<T> {
[INFO] [stdout]     |                                  ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: trait takes 1 generic argument but 2 generic arguments were supplied
[INFO] [stdout]    --> src/lib.rs:181:21
[INFO] [stdout]     |
[INFO] [stdout] 181 |     pub fn delay<F: FnOnce<(), T>+Send>(func: F, duration: Duration) -> Future<T> {
[INFO] [stdout]     |                     ^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] help: replace the generic bound with the associated type
[INFO] [stdout]     |
[INFO] [stdout] 181 |     pub fn delay<F: FnOnce<(), Output = T>+Send>(func: F, duration: Duration) -> Future<T> {
[INFO] [stdout]     |                                ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: trait takes 1 generic argument but 2 generic arguments were supplied
[INFO] [stdout]    --> src/lib.rs:190:28
[INFO] [stdout]     |
[INFO] [stdout] 190 |     pub fn map<B: Send, F: FnOnce<(T,), B>+Send>(self, func: F) -> Future<B> {
[INFO] [stdout]     |                            ^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] help: replace the generic bound with the associated type
[INFO] [stdout]     |
[INFO] [stdout] 190 |     pub fn map<B: Send, F: FnOnce<(T,), Output = B>+Send>(self, func: F) -> Future<B> {
[INFO] [stdout]     |                                         ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: trait takes 1 generic argument but 2 generic arguments were supplied
[INFO] [stdout]    --> src/lib.rs:219:25
[INFO] [stdout]     |
[INFO] [stdout] 219 |     pub fn on_result<F: FnOnce<(Result<T, FutureError>,), ()>+Send>(self, f: F) {
[INFO] [stdout]     |                         ^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] help: replace the generic bound with the associated type
[INFO] [stdout]     |
[INFO] [stdout] 219 |     pub fn on_result<F: FnOnce<(Result<T, FutureError>,), Output = ()>+Send>(self, f: F) {
[INFO] [stdout]     |                                                           ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: trait takes 1 generic argument but 2 generic arguments were supplied
[INFO] [stdout]    --> src/lib.rs:228:26
[INFO] [stdout]     |
[INFO] [stdout] 228 |     pub fn on_success<F: FnOnce<(T,), ()>+Send>(self, f: F) {
[INFO] [stdout]     |                          ^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] help: replace the generic bound with the associated type
[INFO] [stdout]     |
[INFO] [stdout] 228 |     pub fn on_success<F: FnOnce<(T,), Output = ()>+Send>(self, f: F) {
[INFO] [stdout]     |                                       ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: trait takes 1 generic argument but 2 generic arguments were supplied
[INFO] [stdout]    --> src/lib.rs:239:26
[INFO] [stdout]     |
[INFO] [stdout] 239 |     pub fn on_failure<F: FnOnce<(FutureError,), ()>+Send>(self, f: F) {
[INFO] [stdout]     |                          ^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] help: replace the generic bound with the associated type
[INFO] [stdout]     |
[INFO] [stdout] 239 |     pub fn on_failure<F: FnOnce<(FutureError,), Output = ()>+Send>(self, f: F) {
[INFO] [stdout]     |                                                 ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: trait takes 1 generic argument but 2 generic arguments were supplied
[INFO] [stdout]    --> src/lib.rs:250:27
[INFO] [stdout]     |
[INFO] [stdout] 250 |     pub fn on_complete<S: FnOnce<(T,),()>+Send, F: FnOnce<(FutureError,),()>+Send>(self, success: S, failure: F) {
[INFO] [stdout]     |                           ^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] help: replace the generic bound with the associated type
[INFO] [stdout]     |
[INFO] [stdout] 250 |     pub fn on_complete<S: FnOnce<(T,),Output = ()>+Send, F: FnOnce<(FutureError,),()>+Send>(self, success: S, failure: F) {
[INFO] [stdout]     |                                       ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: trait takes 1 generic argument but 2 generic arguments were supplied
[INFO] [stdout]    --> src/lib.rs:250:52
[INFO] [stdout]     |
[INFO] [stdout] 250 |     pub fn on_complete<S: FnOnce<(T,),()>+Send, F: FnOnce<(FutureError,),()>+Send>(self, success: S, failure: F) {
[INFO] [stdout]     |                                                    ^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] help: replace the generic bound with the associated type
[INFO] [stdout]     |
[INFO] [stdout] 250 |     pub fn on_complete<S: FnOnce<(T,),()>+Send, F: FnOnce<(FutureError,),Output = ()>+Send>(self, success: S, failure: F) {
[INFO] [stdout]     |                                                                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: trait takes 1 generic argument but 2 generic arguments were supplied
[INFO] [stdout]    --> src/lib.rs:166:23
[INFO] [stdout]     |
[INFO] [stdout] 166 |     pub fn from_fn<F: FnOnce<(), T> + Send>(func: F) -> Future<T> {
[INFO] [stdout]     |                       ^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] help: replace the generic bound with the associated type
[INFO] [stdout]     |
[INFO] [stdout] 166 |     pub fn from_fn<F: FnOnce<(), Output = T> + Send>(func: F) -> Future<T> {
[INFO] [stdout]     |                                  ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: trait takes 1 generic argument but 2 generic arguments were supplied
[INFO] [stdout]    --> src/lib.rs:181:21
[INFO] [stdout]     |
[INFO] [stdout] 181 |     pub fn delay<F: FnOnce<(), T>+Send>(func: F, duration: Duration) -> Future<T> {
[INFO] [stdout]     |                     ^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] help: replace the generic bound with the associated type
[INFO] [stdout]     |
[INFO] [stdout] 181 |     pub fn delay<F: FnOnce<(), Output = T>+Send>(func: F, duration: Duration) -> Future<T> {
[INFO] [stdout]     |                                ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: trait takes 1 generic argument but 2 generic arguments were supplied
[INFO] [stdout]    --> src/lib.rs:190:28
[INFO] [stdout]     |
[INFO] [stdout] 190 |     pub fn map<B: Send, F: FnOnce<(T,), B>+Send>(self, func: F) -> Future<B> {
[INFO] [stdout]     |                            ^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] help: replace the generic bound with the associated type
[INFO] [stdout]     |
[INFO] [stdout] 190 |     pub fn map<B: Send, F: FnOnce<(T,), Output = B>+Send>(self, func: F) -> Future<B> {
[INFO] [stdout]     |                                         ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: trait takes 1 generic argument but 2 generic arguments were supplied
[INFO] [stdout]    --> src/lib.rs:219:25
[INFO] [stdout]     |
[INFO] [stdout] 219 |     pub fn on_result<F: FnOnce<(Result<T, FutureError>,), ()>+Send>(self, f: F) {
[INFO] [stdout]     |                         ^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] help: replace the generic bound with the associated type
[INFO] [stdout]     |
[INFO] [stdout] 219 |     pub fn on_result<F: FnOnce<(Result<T, FutureError>,), Output = ()>+Send>(self, f: F) {
[INFO] [stdout]     |                                                           ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: trait takes 1 generic argument but 2 generic arguments were supplied
[INFO] [stdout]    --> src/lib.rs:228:26
[INFO] [stdout]     |
[INFO] [stdout] 228 |     pub fn on_success<F: FnOnce<(T,), ()>+Send>(self, f: F) {
[INFO] [stdout]     |                          ^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] help: replace the generic bound with the associated type
[INFO] [stdout]     |
[INFO] [stdout] 228 |     pub fn on_success<F: FnOnce<(T,), Output = ()>+Send>(self, f: F) {
[INFO] [stdout]     |                                       ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: trait takes 1 generic argument but 2 generic arguments were supplied
[INFO] [stdout]    --> src/lib.rs:239:26
[INFO] [stdout]     |
[INFO] [stdout] 239 |     pub fn on_failure<F: FnOnce<(FutureError,), ()>+Send>(self, f: F) {
[INFO] [stdout]     |                          ^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] help: replace the generic bound with the associated type
[INFO] [stdout]     |
[INFO] [stdout] 239 |     pub fn on_failure<F: FnOnce<(FutureError,), Output = ()>+Send>(self, f: F) {
[INFO] [stdout]     |                                                 ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: trait takes 1 generic argument but 2 generic arguments were supplied
[INFO] [stdout]    --> src/lib.rs:250:27
[INFO] [stdout]     |
[INFO] [stdout] 250 |     pub fn on_complete<S: FnOnce<(T,),()>+Send, F: FnOnce<(FutureError,),()>+Send>(self, success: S, failure: F) {
[INFO] [stdout]     |                           ^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] help: replace the generic bound with the associated type
[INFO] [stdout]     |
[INFO] [stdout] 250 |     pub fn on_complete<S: FnOnce<(T,),Output = ()>+Send, F: FnOnce<(FutureError,),()>+Send>(self, success: S, failure: F) {
[INFO] [stdout]     |                                       ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: trait takes 1 generic argument but 2 generic arguments were supplied
[INFO] [stdout]    --> src/lib.rs:250:52
[INFO] [stdout]     |
[INFO] [stdout] 250 |     pub fn on_complete<S: FnOnce<(T,),()>+Send, F: FnOnce<(FutureError,),()>+Send>(self, success: S, failure: F) {
[INFO] [stdout]     |                                                    ^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] help: replace the generic bound with the associated type
[INFO] [stdout]     |
[INFO] [stdout] 250 |     pub fn on_complete<S: FnOnce<(T,),()>+Send, F: FnOnce<(FutureError,),Output = ()>+Send>(self, success: S, failure: F) {
[INFO] [stdout]     |                                                                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `spawn` found for struct `Thread` in the current scope
[INFO] [stdout]   --> src/lib.rs:66:17
[INFO] [stdout]    |
[INFO] [stdout] 66 |         Thread::spawn(move || {
[INFO] [stdout]    |                 ^^^^^ function or associated item not found in `Thread`
[INFO] [stdout]    |
[INFO] [stdout] note: if you're trying to build a new `Thread`, consider using `Thread::from_raw` which returns `Thread`
[INFO] [stdout]   --> /rustc/39cb3386ddc6c71657418be28dbb3987eea4aa4b/library/std/src/thread/mod.rs:1602:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `spawn` found for struct `Thread` in the current scope
[INFO] [stdout]   --> src/lib.rs:66:17
[INFO] [stdout]    |
[INFO] [stdout] 66 |         Thread::spawn(move || {
[INFO] [stdout]    |                 ^^^^^ function or associated item not found in `Thread`
[INFO] [stdout]    |
[INFO] [stdout] note: if you're trying to build a new `Thread`, consider using `Thread::from_raw` which returns `Thread`
[INFO] [stdout]   --> /rustc/39cb3386ddc6c71657418be28dbb3987eea4aa4b/library/std/src/thread/mod.rs:1602:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `spawn` found for struct `Thread` in the current scope
[INFO] [stdout]    --> src/lib.rs:101:17
[INFO] [stdout]     |
[INFO] [stdout] 101 |         Thread::spawn(move || {
[INFO] [stdout]     |                 ^^^^^ function or associated item not found in `Thread`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `Thread`, consider using `Thread::from_raw` which returns `Thread`
[INFO] [stdout]    --> /rustc/39cb3386ddc6c71657418be28dbb3987eea4aa4b/library/std/src/thread/mod.rs:1602:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/lib.rs:110:28
[INFO] [stdout]     |
[INFO] [stdout] 110 |                     handle.add();
[INFO] [stdout]     |                            ^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `spawn` found for struct `Thread` in the current scope
[INFO] [stdout]    --> src/lib.rs:101:17
[INFO] [stdout]     |
[INFO] [stdout] 101 |         Thread::spawn(move || {
[INFO] [stdout]     |                 ^^^^^ function or associated item not found in `Thread`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `Thread`, consider using `Thread::from_raw` which returns `Thread`
[INFO] [stdout]    --> /rustc/39cb3386ddc6c71657418be28dbb3987eea4aa4b/library/std/src/thread/mod.rs:1602:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/lib.rs:121:34
[INFO] [stdout]     |
[INFO] [stdout] 121 |                     match handle.recv() {
[INFO] [stdout]     |                                  ^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/lib.rs:110:28
[INFO] [stdout]     |
[INFO] [stdout] 110 |                     handle.add();
[INFO] [stdout]     |                            ^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/lib.rs:121:34
[INFO] [stdout]     |
[INFO] [stdout] 121 |                     match handle.recv() {
[INFO] [stdout]     |                                  ^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/lib.rs:143:28
[INFO] [stdout]     |
[INFO] [stdout] 143 |                     handle.remove();
[INFO] [stdout]     |                            ^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `spawn` found for struct `Thread` in the current scope
[INFO] [stdout]    --> src/lib.rs:168:17
[INFO] [stdout]     |
[INFO] [stdout] 168 |         Thread::spawn(move ||  {
[INFO] [stdout]     |                 ^^^^^ function or associated item not found in `Thread`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `Thread`, consider using `Thread::from_raw` which returns `Thread`
[INFO] [stdout]    --> /rustc/39cb3386ddc6c71657418be28dbb3987eea4aa4b/library/std/src/thread/mod.rs:1602:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `scoped` found for struct `Thread` in the current scope
[INFO] [stdout]    --> src/lib.rs:169:34
[INFO] [stdout]     |
[INFO] [stdout] 169 |             let result = Thread::scoped(move || func()).join();
[INFO] [stdout]     |                                  ^^^^^^ function or associated item not found in `Thread`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `Thread`, consider using `Thread::from_raw` which returns `Thread`
[INFO] [stdout]    --> /rustc/39cb3386ddc6c71657418be28dbb3987eea4aa4b/library/std/src/thread/mod.rs:1602:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/lib.rs:143:28
[INFO] [stdout]     |
[INFO] [stdout] 143 |                     handle.remove();
[INFO] [stdout]     |                            ^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `scoped` found for struct `Thread` in the current scope
[INFO] [stdout]    --> src/lib.rs:195:42
[INFO] [stdout]     |
[INFO] [stdout] 195 |                     let result = Thread::scoped(move || func(val)).join();
[INFO] [stdout]     |                                          ^^^^^^ function or associated item not found in `Thread`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `Thread`, consider using `Thread::from_raw` which returns `Thread`
[INFO] [stdout]    --> /rustc/39cb3386ddc6c71657418be28dbb3987eea4aa4b/library/std/src/thread/mod.rs:1602:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `spawn` found for struct `Thread` in the current scope
[INFO] [stdout]    --> src/lib.rs:168:17
[INFO] [stdout]     |
[INFO] [stdout] 168 |         Thread::spawn(move ||  {
[INFO] [stdout]     |                 ^^^^^ function or associated item not found in `Thread`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `Thread`, consider using `Thread::from_raw` which returns `Thread`
[INFO] [stdout]    --> /rustc/39cb3386ddc6c71657418be28dbb3987eea4aa4b/library/std/src/thread/mod.rs:1602:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `spawn` found for struct `Thread` in the current scope
[INFO] [stdout]    --> src/lib.rs:220:17
[INFO] [stdout]     |
[INFO] [stdout] 220 |         Thread::spawn(move || {
[INFO] [stdout]     |                 ^^^^^ function or associated item not found in `Thread`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `Thread`, consider using `Thread::from_raw` which returns `Thread`
[INFO] [stdout]    --> /rustc/39cb3386ddc6c71657418be28dbb3987eea4aa4b/library/std/src/thread/mod.rs:1602:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `scoped` found for struct `Thread` in the current scope
[INFO] [stdout]    --> src/lib.rs:169:34
[INFO] [stdout]     |
[INFO] [stdout] 169 |             let result = Thread::scoped(move || func()).join();
[INFO] [stdout]     |                                  ^^^^^^ function or associated item not found in `Thread`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `Thread`, consider using `Thread::from_raw` which returns `Thread`
[INFO] [stdout]    --> /rustc/39cb3386ddc6c71657418be28dbb3987eea4aa4b/library/std/src/thread/mod.rs:1602:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `spawn` found for struct `Thread` in the current scope
[INFO] [stdout]    --> src/lib.rs:229:17
[INFO] [stdout]     |
[INFO] [stdout] 229 |         Thread::spawn(move || {
[INFO] [stdout]     |                 ^^^^^ function or associated item not found in `Thread`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `Thread`, consider using `Thread::from_raw` which returns `Thread`
[INFO] [stdout]    --> /rustc/39cb3386ddc6c71657418be28dbb3987eea4aa4b/library/std/src/thread/mod.rs:1602:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `scoped` found for struct `Thread` in the current scope
[INFO] [stdout]    --> src/lib.rs:195:42
[INFO] [stdout]     |
[INFO] [stdout] 195 |                     let result = Thread::scoped(move || func(val)).join();
[INFO] [stdout]     |                                          ^^^^^^ function or associated item not found in `Thread`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `Thread`, consider using `Thread::from_raw` which returns `Thread`
[INFO] [stdout]    --> /rustc/39cb3386ddc6c71657418be28dbb3987eea4aa4b/library/std/src/thread/mod.rs:1602:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `spawn` found for struct `Thread` in the current scope
[INFO] [stdout]    --> src/lib.rs:220:17
[INFO] [stdout]     |
[INFO] [stdout] 220 |         Thread::spawn(move || {
[INFO] [stdout]     |                 ^^^^^ function or associated item not found in `Thread`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `Thread`, consider using `Thread::from_raw` which returns `Thread`
[INFO] [stdout]    --> /rustc/39cb3386ddc6c71657418be28dbb3987eea4aa4b/library/std/src/thread/mod.rs:1602:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `spawn` found for struct `Thread` in the current scope
[INFO] [stdout]    --> src/lib.rs:229:17
[INFO] [stdout]     |
[INFO] [stdout] 229 |         Thread::spawn(move || {
[INFO] [stdout]     |                 ^^^^^ function or associated item not found in `Thread`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `Thread`, consider using `Thread::from_raw` which returns `Thread`
[INFO] [stdout]    --> /rustc/39cb3386ddc6c71657418be28dbb3987eea4aa4b/library/std/src/thread/mod.rs:1602:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: `match` arms have incompatible types
[INFO] [stdout]    --> src/lib.rs:232:22
[INFO] [stdout]     |
[INFO] [stdout] 230 | /             match self.get() {
[INFO] [stdout] 231 | |                 Ok(value) => f(value),
[INFO] [stdout]     | |                              -------- this is found to be of type `<F as FnOnce<(T,)>>::Output`
[INFO] [stdout] 232 | |                 _ => (),
[INFO] [stdout]     | |                      ^^ expected associated type, found `()`
[INFO] [stdout] 233 | |             }
[INFO] [stdout]     | |_____________- `match` arms have incompatible types
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected associated type `<F as FnOnce<(T,)>>::Output`
[INFO] [stdout]                      found unit type `()`
[INFO] [stdout]     = help: consider constraining the associated type `<F as FnOnce<(T,)>>::Output` to `()`
[INFO] [stdout]     = note: for more information, visit https://doc.rust-lang.org/book/ch19-03-advanced-traits.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `spawn` found for struct `Thread` in the current scope
[INFO] [stdout]    --> src/lib.rs:240:17
[INFO] [stdout]     |
[INFO] [stdout] 240 |         Thread::spawn(move || {
[INFO] [stdout]     |                 ^^^^^ function or associated item not found in `Thread`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `Thread`, consider using `Thread::from_raw` which returns `Thread`
[INFO] [stdout]    --> /rustc/39cb3386ddc6c71657418be28dbb3987eea4aa4b/library/std/src/thread/mod.rs:1602:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: `match` arms have incompatible types
[INFO] [stdout]    --> src/lib.rs:243:22
[INFO] [stdout]     |
[INFO] [stdout] 241 | /             match self.get() {
[INFO] [stdout] 242 | |                 Err(err) => f(err),
[INFO] [stdout]     | |                             ------ this is found to be of type `<F as FnOnce<(FutureError,)>>::Output`
[INFO] [stdout] 243 | |                 _ => () ,
[INFO] [stdout]     | |                      ^^ expected associated type, found `()`
[INFO] [stdout] 244 | |             }
[INFO] [stdout]     | |_____________- `match` arms have incompatible types
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected associated type `<F as FnOnce<(FutureError,)>>::Output`
[INFO] [stdout]                      found unit type `()`
[INFO] [stdout]     = help: consider constraining the associated type `<F as FnOnce<(FutureError,)>>::Output` to `()`
[INFO] [stdout]     = note: for more information, visit https://doc.rust-lang.org/book/ch19-03-advanced-traits.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: `match` arms have incompatible types
[INFO] [stdout]    --> src/lib.rs:232:22
[INFO] [stdout]     |
[INFO] [stdout] 230 | /             match self.get() {
[INFO] [stdout] 231 | |                 Ok(value) => f(value),
[INFO] [stdout]     | |                              -------- this is found to be of type `<F as FnOnce<(T,)>>::Output`
[INFO] [stdout] 232 | |                 _ => (),
[INFO] [stdout]     | |                      ^^ expected associated type, found `()`
[INFO] [stdout] 233 | |             }
[INFO] [stdout]     | |_____________- `match` arms have incompatible types
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected associated type `<F as FnOnce<(T,)>>::Output`
[INFO] [stdout]                      found unit type `()`
[INFO] [stdout]     = help: consider constraining the associated type `<F as FnOnce<(T,)>>::Output` to `()`
[INFO] [stdout]     = note: for more information, visit https://doc.rust-lang.org/book/ch19-03-advanced-traits.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `spawn` found for struct `Thread` in the current scope
[INFO] [stdout]    --> src/lib.rs:240:17
[INFO] [stdout]     |
[INFO] [stdout] 240 |         Thread::spawn(move || {
[INFO] [stdout]     |                 ^^^^^ function or associated item not found in `Thread`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `Thread`, consider using `Thread::from_raw` which returns `Thread`
[INFO] [stdout]    --> /rustc/39cb3386ddc6c71657418be28dbb3987eea4aa4b/library/std/src/thread/mod.rs:1602:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `spawn` found for struct `Thread` in the current scope
[INFO] [stdout]    --> src/lib.rs:251:17
[INFO] [stdout]     |
[INFO] [stdout] 251 |         Thread::spawn(move || {
[INFO] [stdout]     |                 ^^^^^ function or associated item not found in `Thread`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `Thread`, consider using `Thread::from_raw` which returns `Thread`
[INFO] [stdout]    --> /rustc/39cb3386ddc6c71657418be28dbb3987eea4aa4b/library/std/src/thread/mod.rs:1602:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: `match` arms have incompatible types
[INFO] [stdout]    --> src/lib.rs:243:22
[INFO] [stdout]     |
[INFO] [stdout] 241 | /             match self.get() {
[INFO] [stdout] 242 | |                 Err(err) => f(err),
[INFO] [stdout]     | |                             ------ this is found to be of type `<F as FnOnce<(FutureError,)>>::Output`
[INFO] [stdout] 243 | |                 _ => () ,
[INFO] [stdout]     | |                      ^^ expected associated type, found `()`
[INFO] [stdout] 244 | |             }
[INFO] [stdout]     | |_____________- `match` arms have incompatible types
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected associated type `<F as FnOnce<(FutureError,)>>::Output`
[INFO] [stdout]                      found unit type `()`
[INFO] [stdout]     = help: consider constraining the associated type `<F as FnOnce<(FutureError,)>>::Output` to `()`
[INFO] [stdout]     = note: for more information, visit https://doc.rust-lang.org/book/ch19-03-advanced-traits.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: `match` arms have incompatible types
[INFO] [stdout]    --> src/lib.rs:254:29
[INFO] [stdout]     |
[INFO] [stdout] 250 |       pub fn on_complete<S: FnOnce<(T,),()>+Send, F: FnOnce<(FutureError,),()>+Send>(self, success: S, failure: F) {
[INFO] [stdout]     |                          -                        - found type parameter
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          expected type parameter
[INFO] [stdout] 251 |           Thread::spawn(move || {
[INFO] [stdout] 252 | /             match self.get() {
[INFO] [stdout] 253 | |                 Ok(value) => success(value),
[INFO] [stdout]     | |                              -------------- this is found to be of type `<S as FnOnce<(T,)>>::Output`
[INFO] [stdout] 254 | |                 Err(err) => failure(err),
[INFO] [stdout]     | |                             ^^^^^^^^^^^^ expected type parameter `S`, found type parameter `F`
[INFO] [stdout] 255 | |             }
[INFO] [stdout]     | |_____________- `match` arms have incompatible types
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected associated type `<S as FnOnce<(T,)>>::Output`
[INFO] [stdout]                found associated type `<F as FnOnce<(FutureError,)>>::Output`
[INFO] [stdout]     = note: a type parameter was expected, but a different one was found; you might be missing a type parameter or trait bound
[INFO] [stdout]     = note: for more information, visit https://doc.rust-lang.org/book/ch10-02-traits.html#traits-as-parameters
[INFO] [stdout]     = note: an associated type was expected, but a different one was found
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `spawn` found for struct `Thread` in the current scope
[INFO] [stdout]    --> src/lib.rs:251:17
[INFO] [stdout]     |
[INFO] [stdout] 251 |         Thread::spawn(move || {
[INFO] [stdout]     |                 ^^^^^ function or associated item not found in `Thread`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `Thread`, consider using `Thread::from_raw` which returns `Thread`
[INFO] [stdout]    --> /rustc/39cb3386ddc6c71657418be28dbb3987eea4aa4b/library/std/src/thread/mod.rs:1602:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: `match` arms have incompatible types
[INFO] [stdout]    --> src/lib.rs:254:29
[INFO] [stdout]     |
[INFO] [stdout] 250 |       pub fn on_complete<S: FnOnce<(T,),()>+Send, F: FnOnce<(FutureError,),()>+Send>(self, success: S, failure: F) {
[INFO] [stdout]     |                          -                        - found type parameter
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          expected type parameter
[INFO] [stdout] 251 |           Thread::spawn(move || {
[INFO] [stdout] 252 | /             match self.get() {
[INFO] [stdout] 253 | |                 Ok(value) => success(value),
[INFO] [stdout]     | |                              -------------- this is found to be of type `<S as FnOnce<(T,)>>::Output`
[INFO] [stdout] 254 | |                 Err(err) => failure(err),
[INFO] [stdout]     | |                             ^^^^^^^^^^^^ expected type parameter `S`, found type parameter `F`
[INFO] [stdout] 255 | |             }
[INFO] [stdout]     | |_____________- `match` arms have incompatible types
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected associated type `<S as FnOnce<(T,)>>::Output`
[INFO] [stdout]                found associated type `<F as FnOnce<(FutureError,)>>::Output`
[INFO] [stdout]     = note: a type parameter was expected, but a different one was found; you might be missing a type parameter or trait bound
[INFO] [stdout]     = note: for more information, visit https://doc.rust-lang.org/book/ch10-02-traits.html#traits-as-parameters
[INFO] [stdout]     = note: an associated type was expected, but a different one was found
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `spawn` found for struct `Thread` in the current scope
[INFO] [stdout]    --> src/lib.rs:288:17
[INFO] [stdout]     |
[INFO] [stdout] 288 |         Thread::spawn(move || {
[INFO] [stdout]     |                 ^^^^^ function or associated item not found in `Thread`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `Thread`, consider using `Thread::from_raw` which returns `Thread`
[INFO] [stdout]    --> /rustc/39cb3386ddc6c71657418be28dbb3987eea4aa4b/library/std/src/thread/mod.rs:1602:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/lib.rs:308:13
[INFO] [stdout]     |
[INFO] [stdout] 307 |             panic!("ooops");
[INFO] [stdout]     |             --------------- any code following this expression is unreachable
[INFO] [stdout] 308 |             123us
[INFO] [stdout]     |             ^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0107, E0282, E0308, E0425, E0432, E0599, E0658.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0107`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `promise` (lib) due to 28 previous errors; 1 warning emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] Some errors have detailed explanations: E0107, E0282, E0308, E0425, E0432, E0599, E0658.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0107`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `promise` (lib test) due to 47 previous errors; 2 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "78c56b5833248aabecaf7e0e689be68578d31eec4344e0a37acc11b5e4190b6c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "78c56b5833248aabecaf7e0e689be68578d31eec4344e0a37acc11b5e4190b6c", kill_on_drop: false }`
[INFO] [stdout] 78c56b5833248aabecaf7e0e689be68578d31eec4344e0a37acc11b5e4190b6c
