[INFO] fetching crate rusty-variation 0.1.0...
[INFO] testing rusty-variation-0.1.0 against 1.95.0 for beta-1.96-2
[INFO] extracting crate rusty-variation 0.1.0 into /workspace/builds/worker-0-tc1/source
[INFO] started tweaking crates.io crate rusty-variation 0.1.0
[INFO] finished tweaking crates.io crate rusty-variation 0.1.0
[INFO] tweaked toml for crates.io crate rusty-variation 0.1.0 written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate rusty-variation 0.1.0 on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 11 packages to latest compatible versions
[INFO] [stderr]       Adding rand v0.5.6 (available: v0.10.1)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "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-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 490b1454e0016f3020556d89930281ceed4dd87265145fcd11e3cb0fcce2a104
[INFO] running `Command { std: "docker" "start" "-a" "490b1454e0016f3020556d89930281ceed4dd87265145fcd11e3cb0fcce2a104", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "490b1454e0016f3020556d89930281ceed4dd87265145fcd11e3cb0fcce2a104", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "490b1454e0016f3020556d89930281ceed4dd87265145fcd11e3cb0fcce2a104", kill_on_drop: false }`
[INFO] [stdout] 490b1454e0016f3020556d89930281ceed4dd87265145fcd11e3cb0fcce2a104
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b3145acb0ba533ebf974a59eec81dd74c3543fa6577ddf37c9e5f5cd5a4d3f41
[INFO] running `Command { std: "docker" "start" "-a" "b3145acb0ba533ebf974a59eec81dd74c3543fa6577ddf37c9e5f5cd5a4d3f41", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling rusty-variation v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:65:73
[INFO] [stdout]    |
[INFO] [stdout] 65 | ...                   -> Result<S, Box<Error + 'a>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 65 |                                                        -> Result<S, Box<dyn Error + 'a>> {
[INFO] [stdout]    |                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:72:71
[INFO] [stdout]    |
[INFO] [stdout] 72 | ...                   -> Result<(T, S), Box<Error + 'a>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 72 |                                                 -> Result<(T, S), Box<dyn Error + 'a>> {
[INFO] [stdout]    |                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:82:42
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn cancel<T>(x: T) -> Result<(), Box<Error>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn cancel<T>(x: T) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:138:77
[INFO] [stdout]     |
[INFO] [stdout] 138 | ...                   -> Result<R, Box<Error + 'a>>
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 138 |                                                            -> Result<R, Box<dyn Error + 'a>>
[INFO] [stdout]     |                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:148:78
[INFO] [stdout]     |
[INFO] [stdout] 148 | ...                   -> Result<S1, Box<Error + 'a>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 148 |                                                            -> Result<S1, Box<dyn Error + 'a>> {
[INFO] [stdout]     |                                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:155:79
[INFO] [stdout]     |
[INFO] [stdout] 155 | ...                   -> Result<S2, Box<Error + 'a>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 155 |                                                             -> Result<S2, Box<dyn Error + 'a>> {
[INFO] [stdout]     |                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:77:40
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn close(s: End) -> Result<(), Box<Error>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn close(s: End) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:140:36
[INFO] [stdout]     |
[INFO] [stdout] 140 |     F: FnOnce(S1) -> Result<R, Box<Error + 'a>>,
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 140 |     F: FnOnce(S1) -> Result<R, Box<dyn Error + 'a>>,
[INFO] [stdout]     |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:141:36
[INFO] [stdout]     |
[INFO] [stdout] 141 |     G: FnOnce(S2) -> Result<R, Box<Error + 'a>>,
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 141 |     G: FnOnce(S2) -> Result<R, Box<dyn Error + 'a>>,
[INFO] [stdout]     |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.35s
[INFO] running `Command { std: "docker" "inspect" "b3145acb0ba533ebf974a59eec81dd74c3543fa6577ddf37c9e5f5cd5a4d3f41", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b3145acb0ba533ebf974a59eec81dd74c3543fa6577ddf37c9e5f5cd5a4d3f41", kill_on_drop: false }`
[INFO] [stdout] b3145acb0ba533ebf974a59eec81dd74c3543fa6577ddf37c9e5f5cd5a4d3f41
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 263b8f708f9f10fbf2873e6673ae9bb2823066e4777421693ca00240140f42cc
[INFO] running `Command { std: "docker" "start" "-a" "263b8f708f9f10fbf2873e6673ae9bb2823066e4777421693ca00240140f42cc", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]    Compiling rand_core v0.4.2
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:65:73
[INFO] [stdout]    |
[INFO] [stdout] 65 | ...                   -> Result<S, Box<Error + 'a>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 65 |                                                        -> Result<S, Box<dyn Error + 'a>> {
[INFO] [stdout]    |                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:72:71
[INFO] [stdout]    |
[INFO] [stdout] 72 | ...                   -> Result<(T, S), Box<Error + 'a>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 72 |                                                 -> Result<(T, S), Box<dyn Error + 'a>> {
[INFO] [stdout]    |                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:82:42
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn cancel<T>(x: T) -> Result<(), Box<Error>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn cancel<T>(x: T) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:138:77
[INFO] [stdout]     |
[INFO] [stdout] 138 | ...                   -> Result<R, Box<Error + 'a>>
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 138 |                                                            -> Result<R, Box<dyn Error + 'a>>
[INFO] [stdout]     |                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:148:78
[INFO] [stdout]     |
[INFO] [stdout] 148 | ...                   -> Result<S1, Box<Error + 'a>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 148 |                                                            -> Result<S1, Box<dyn Error + 'a>> {
[INFO] [stdout]     |                                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:155:79
[INFO] [stdout]     |
[INFO] [stdout] 155 | ...                   -> Result<S2, Box<Error + 'a>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 155 |                                                             -> Result<S2, Box<dyn Error + 'a>> {
[INFO] [stdout]     |                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:77:40
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn close(s: End) -> Result<(), Box<Error>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn close(s: End) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:140:36
[INFO] [stdout]     |
[INFO] [stdout] 140 |     F: FnOnce(S1) -> Result<R, Box<Error + 'a>>,
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 140 |     F: FnOnce(S1) -> Result<R, Box<dyn Error + 'a>>,
[INFO] [stdout]     |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:141:36
[INFO] [stdout]     |
[INFO] [stdout] 141 |     G: FnOnce(S2) -> Result<R, Box<Error + 'a>>,
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 141 |     G: FnOnce(S2) -> Result<R, Box<dyn Error + 'a>>,
[INFO] [stdout]     |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling rand_core v0.3.1
[INFO] [stderr]    Compiling rand v0.5.6
[INFO] [stderr]    Compiling rusty-variation v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:65:73
[INFO] [stdout]    |
[INFO] [stdout] 65 | ...                   -> Result<S, Box<Error + 'a>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 65 |                                                        -> Result<S, Box<dyn Error + 'a>> {
[INFO] [stdout]    |                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:72:71
[INFO] [stdout]    |
[INFO] [stdout] 72 | ...                   -> Result<(T, S), Box<Error + 'a>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 72 |                                                 -> Result<(T, S), Box<dyn Error + 'a>> {
[INFO] [stdout]    |                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:82:42
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn cancel<T>(x: T) -> Result<(), Box<Error>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn cancel<T>(x: T) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:138:77
[INFO] [stdout]     |
[INFO] [stdout] 138 | ...                   -> Result<R, Box<Error + 'a>>
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 138 |                                                            -> Result<R, Box<dyn Error + 'a>>
[INFO] [stdout]     |                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:148:78
[INFO] [stdout]     |
[INFO] [stdout] 148 | ...                   -> Result<S1, Box<Error + 'a>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 148 |                                                            -> Result<S1, Box<dyn Error + 'a>> {
[INFO] [stdout]     |                                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:155:79
[INFO] [stdout]     |
[INFO] [stdout] 155 | ...                   -> Result<S2, Box<Error + 'a>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 155 |                                                             -> Result<S2, Box<dyn Error + 'a>> {
[INFO] [stdout]     |                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:77:40
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn close(s: End) -> Result<(), Box<Error>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn close(s: End) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:140:36
[INFO] [stdout]     |
[INFO] [stdout] 140 |     F: FnOnce(S1) -> Result<R, Box<Error + 'a>>,
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 140 |     F: FnOnce(S1) -> Result<R, Box<dyn Error + 'a>>,
[INFO] [stdout]     |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:141:36
[INFO] [stdout]     |
[INFO] [stdout] 141 |     G: FnOnce(S2) -> Result<R, Box<Error + 'a>>,
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 141 |     G: FnOnce(S2) -> Result<R, Box<dyn Error + 'a>>,
[INFO] [stdout]     |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:221:71
[INFO] [stdout]     |
[INFO] [stdout] 221 |     fn simple_calc_server(s: SimpleCalcServer<i32>) -> Result<(), Box<Error>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 221 |     fn simple_calc_server(s: SimpleCalcServer<i32>) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:278:67
[INFO] [stdout]     |
[INFO] [stdout] 278 |     fn nice_calc_server(s: NiceCalcServer<i32>) -> Result<(), Box<Error>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 278 |     fn nice_calc_server(s: NiceCalcServer<i32>) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:420:65
[INFO] [stdout]     |
[INFO] [stdout] 420 |     fn nice_sum_server(s: NiceSumServer<i32>) -> Result<(), Box<Error>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 420 |     fn nice_sum_server(s: NiceSumServer<i32>) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:424:79
[INFO] [stdout]     |
[INFO] [stdout] 424 |     fn nice_sum_server_accum(s: NiceSumServer<i32>, x: i32) -> Result<(), Box<Error>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 424 |     fn nice_sum_server_accum(s: NiceSumServer<i32>, x: i32) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:438:49
[INFO] [stdout]     |
[INFO] [stdout] 438 | ...                   -> Result<i32, Box<Error>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 438 |                              -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]     |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:198:38
[INFO] [stdout]     |
[INFO] [stdout] 198 |         assert!(|| -> Result<(), Box<Error>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 198 |         assert!(|| -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:107:47
[INFO] [stdout]     |
[INFO] [stdout] 107 |               let r = (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                                 ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |               let s = fork!(move |s: Send<(), End>| {
[INFO] [stdout]     |  _____________________-
[INFO] [stdout] 201 | |                 let s = send((), s)?;
[INFO] [stdout] 202 | |                 close(s)
[INFO] [stdout] 203 | |             });
[INFO] [stdout]     | |______________- in this macro invocation
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:112:42
[INFO] [stdout]     |
[INFO] [stdout] 112 |                   Err(e) => panic!("{}", e.description()),
[INFO] [stdout]     |                                            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |               let s = fork!(move |s: Send<(), End>| {
[INFO] [stdout]     |  _____________________-
[INFO] [stdout] 201 | |                 let s = send((), s)?;
[INFO] [stdout] 202 | |                 close(s)
[INFO] [stdout] 203 | |             });
[INFO] [stdout]     | |______________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:238:38
[INFO] [stdout]     |
[INFO] [stdout] 238 |         assert!(|| -> Result<(), Box<Error>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 238 |         assert!(|| -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:97:42
[INFO] [stdout]     |
[INFO] [stdout]  97 |                 Err(e) => panic!("{}", e.description()),
[INFO] [stdout]     |                                          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 244 |                 let s: SimpleCalcClient<i32> = fork!(simple_calc_server);
[INFO] [stdout]     |                                                ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:97:42
[INFO] [stdout]     |
[INFO] [stdout]  97 |                 Err(e) => panic!("{}", e.description()),
[INFO] [stdout]     |                                          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |                 let s: SimpleCalcClient<i32> = fork!(simple_calc_server);
[INFO] [stdout]     |                                                ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:296:38
[INFO] [stdout]     |
[INFO] [stdout] 296 |         assert!(|| -> Result<(), Box<Error>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 296 |         assert!(|| -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:97:42
[INFO] [stdout]     |
[INFO] [stdout]  97 |                 Err(e) => panic!("{}", e.description()),
[INFO] [stdout]     |                                          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 303 |                 let s: NiceCalcClient<i32> = fork!(nice_calc_server);
[INFO] [stdout]     |                                              ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:178:35
[INFO] [stdout]     |
[INFO] [stdout] 178 |         (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 305 |                 let s = select!(CalcOp::Neg, s)?;
[INFO] [stdout]     |                         ----------------------- in this macro invocation
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `select` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:97:42
[INFO] [stdout]     |
[INFO] [stdout]  97 |                 Err(e) => panic!("{}", e.description()),
[INFO] [stdout]     |                                          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 314 |                 let s: NiceCalcClient<i32> = fork!(nice_calc_server);
[INFO] [stdout]     |                                              ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:178:35
[INFO] [stdout]     |
[INFO] [stdout] 178 |         (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 317 |                 let s = select!(CalcOp::Add, s)?;
[INFO] [stdout]     |                         ----------------------- in this macro invocation
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `select` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:97:42
[INFO] [stdout]     |
[INFO] [stdout]  97 |                 Err(e) => panic!("{}", e.description()),
[INFO] [stdout]     |                                          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 333 |         let (other_thread, s) = fork_with_thread_id!(nice_calc_server);
[INFO] [stdout]     |                                 -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:335:38
[INFO] [stdout]     |
[INFO] [stdout] 335 |         assert!(|| -> Result<(), Box<Error>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 335 |         assert!(|| -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:107:47
[INFO] [stdout]     |
[INFO] [stdout] 107 |               let r = (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                                 ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 353 |           let (other_thread, s) = fork_with_thread_id!(
[INFO] [stdout]     |  _________________________________-
[INFO] [stdout] 354 | |             move |s: NiceCalcServer<i32>| {cancel(s)});
[INFO] [stdout]     | |______________________________________________________- in this macro invocation
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:112:42
[INFO] [stdout]     |
[INFO] [stdout] 112 |                   Err(e) => panic!("{}", e.description()),
[INFO] [stdout]     |                                            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 353 |           let (other_thread, s) = fork_with_thread_id!(
[INFO] [stdout]     |  _________________________________-
[INFO] [stdout] 354 | |             move |s: NiceCalcServer<i32>| {cancel(s)});
[INFO] [stdout]     | |______________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:356:38
[INFO] [stdout]     |
[INFO] [stdout] 356 |         assert!(|| -> Result<(), Box<Error>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 356 |         assert!(|| -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:178:35
[INFO] [stdout]     |
[INFO] [stdout] 178 |         (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 358 |             let s = select!(CalcOp::Add, s)?;
[INFO] [stdout]     |                     ----------------------- in this macro invocation
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `select` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:97:42
[INFO] [stdout]     |
[INFO] [stdout]  97 |                 Err(e) => panic!("{}", e.description()),
[INFO] [stdout]     |                                          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 373 |         let (other_thread1, s) = fork_with_thread_id!(nice_calc_server);
[INFO] [stdout]     |                                  -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:107:47
[INFO] [stdout]     |
[INFO] [stdout] 107 |               let r = (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                                 ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 374 |           let (other_thread2, u) = fork_with_thread_id!(
[INFO] [stdout]     |  __________________________________-
[INFO] [stdout] 375 | |             move |u: Recv<NiceCalcClient<i32>, End>| {cancel(u)});
[INFO] [stdout]     | |_________________________________________________________________- in this macro invocation
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:112:42
[INFO] [stdout]     |
[INFO] [stdout] 112 |                   Err(e) => panic!("{}", e.description()),
[INFO] [stdout]     |                                            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 374 |           let (other_thread2, u) = fork_with_thread_id!(
[INFO] [stdout]     |  __________________________________-
[INFO] [stdout] 375 | |             move |u: Recv<NiceCalcClient<i32>, End>| {cancel(u)});
[INFO] [stdout]     | |_________________________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:377:38
[INFO] [stdout]     |
[INFO] [stdout] 377 |         assert!(|| -> Result<(), Box<Error>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 377 |         assert!(|| -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:97:42
[INFO] [stdout]     |
[INFO] [stdout]  97 |                 Err(e) => panic!("{}", e.description()),
[INFO] [stdout]     |                                          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 391 |         let (other_thread, s) = fork_with_thread_id!(nice_calc_server);
[INFO] [stdout]     |                                 -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:393:39
[INFO] [stdout]     |
[INFO] [stdout] 393 |         assert!(|| -> Result<i32, Box<Error>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 393 |         assert!(|| -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:396:54
[INFO] [stdout]     |
[INFO] [stdout] 396 |             let f = move |x: i32| -> Result<i32, Box<Error>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 396 |             let f = move |x: i32| -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]     |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:178:35
[INFO] [stdout]     |
[INFO] [stdout] 178 |         (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 397 |                 let s = select!(CalcOp::Neg, s)?;
[INFO] [stdout]     |                         ----------------------- in this macro invocation
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `select` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:178:35
[INFO] [stdout]     |
[INFO] [stdout] 178 |         (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 441 |                 let s = select!(SumOp::More, s)?;
[INFO] [stdout]     |                         ----------------------- in this macro invocation
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `select` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:178:35
[INFO] [stdout]     |
[INFO] [stdout] 178 |         (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 446 |                 let s = select!(SumOp::Done, s)?;
[INFO] [stdout]     |                         ----------------------- in this macro invocation
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `select` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:97:42
[INFO] [stdout]     |
[INFO] [stdout]  97 |                 Err(e) => panic!("{}", e.description()),
[INFO] [stdout]     |                                          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 462 |         let (other_thread, s) = fork_with_thread_id!(nice_sum_server);
[INFO] [stdout]     |                                 ------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:464:38
[INFO] [stdout]     |
[INFO] [stdout] 464 |         assert!(|| -> Result<(), Box<Error>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 464 |         assert!(|| -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:107:47
[INFO] [stdout]     |
[INFO] [stdout] 107 |               let r = (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                                 ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 478 |           let s = fork!(move |s: Send<(), End>| {
[INFO] [stdout]     |  _________________-
[INFO] [stdout] 479 | |             loop {
[INFO] [stdout] 480 | |                 // Let's trick the reachability checker
[INFO] [stdout] 481 | |                 if false { break; }
[INFO] [stdout] ...   |
[INFO] [stdout] 484 | |             Ok(())
[INFO] [stdout] 485 | |         });
[INFO] [stdout]     | |__________- in this macro invocation
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:112:42
[INFO] [stdout]     |
[INFO] [stdout] 112 |                   Err(e) => panic!("{}", e.description()),
[INFO] [stdout]     |                                            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 478 |           let s = fork!(move |s: Send<(), End>| {
[INFO] [stdout]     |  _________________-
[INFO] [stdout] 479 | |             loop {
[INFO] [stdout] 480 | |                 // Let's trick the reachability checker
[INFO] [stdout] 481 | |                 if false { break; }
[INFO] [stdout] ...   |
[INFO] [stdout] 484 | |             Ok(())
[INFO] [stdout] 485 | |         });
[INFO] [stdout]     | |__________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:487:30
[INFO] [stdout]     |
[INFO] [stdout] 487 |         || -> Result<(), Box<Error>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 487 |         || -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:107:47
[INFO] [stdout]     |
[INFO] [stdout] 107 |               let r = (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                                 ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 496 |           let s = fork!(move |s: Send<(), End>| {
[INFO] [stdout]     |  _________________-
[INFO] [stdout] 497 | |             mem::forget(s);
[INFO] [stdout] 498 | |             Ok(())
[INFO] [stdout] 499 | |         });
[INFO] [stdout]     | |__________- in this macro invocation
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:112:42
[INFO] [stdout]     |
[INFO] [stdout] 112 |                   Err(e) => panic!("{}", e.description()),
[INFO] [stdout]     |                                            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 496 |           let s = fork!(move |s: Send<(), End>| {
[INFO] [stdout]     |  _________________-
[INFO] [stdout] 497 | |             mem::forget(s);
[INFO] [stdout] 498 | |             Ok(())
[INFO] [stdout] 499 | |         });
[INFO] [stdout]     | |__________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:501:30
[INFO] [stdout]     |
[INFO] [stdout] 501 |         || -> Result<(), Box<Error>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 501 |         || -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:107:47
[INFO] [stdout]     |
[INFO] [stdout] 107 |               let r = (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                                 ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 511 |           let r2 = fork!(move |s2: Send<(), End>| {
[INFO] [stdout]     |  __________________-
[INFO] [stdout] 512 | |             let (x, End) = recv(r1)?;
[INFO] [stdout] 513 | |             let End = send(x, s2)?;
[INFO] [stdout] 514 | |             Ok(())
[INFO] [stdout] 515 | |         });
[INFO] [stdout]     | |__________- in this macro invocation
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:112:42
[INFO] [stdout]     |
[INFO] [stdout] 112 |                   Err(e) => panic!("{}", e.description()),
[INFO] [stdout]     |                                            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 511 |           let r2 = fork!(move |s2: Send<(), End>| {
[INFO] [stdout]     |  __________________-
[INFO] [stdout] 512 | |             let (x, End) = recv(r1)?;
[INFO] [stdout] 513 | |             let End = send(x, s2)?;
[INFO] [stdout] 514 | |             Ok(())
[INFO] [stdout] 515 | |         });
[INFO] [stdout]     | |__________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:517:30
[INFO] [stdout]     |
[INFO] [stdout] 517 |         || -> Result<(), Box<Error>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 517 |         || -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.93s
[INFO] running `Command { std: "docker" "inspect" "263b8f708f9f10fbf2873e6673ae9bb2823066e4777421693ca00240140f42cc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "263b8f708f9f10fbf2873e6673ae9bb2823066e4777421693ca00240140f42cc", kill_on_drop: false }`
[INFO] [stdout] 263b8f708f9f10fbf2873e6673ae9bb2823066e4777421693ca00240140f42cc
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] a07832253bd83261772e8a51dbd5425b8cc6b1566cc29650c4ea8627db010836
[INFO] running `Command { std: "docker" "start" "-a" "a07832253bd83261772e8a51dbd5425b8cc6b1566cc29650c4ea8627db010836", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/lib.rs:65:73
[INFO] [stderr]    |
[INFO] [stderr] 65 | ...                   -> Result<S, Box<Error + 'a>> {
[INFO] [stderr]    |                                        ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 65 |                                                        -> Result<S, Box<dyn Error + 'a>> {
[INFO] [stderr]    |                                                                         +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/lib.rs:72:71
[INFO] [stderr]    |
[INFO] [stderr] 72 | ...                   -> Result<(T, S), Box<Error + 'a>> {
[INFO] [stderr]    |                                             ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 72 |                                                 -> Result<(T, S), Box<dyn Error + 'a>> {
[INFO] [stderr]    |                                                                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/lib.rs:82:42
[INFO] [stderr]    |
[INFO] [stderr] 82 | pub fn cancel<T>(x: T) -> Result<(), Box<Error>> {
[INFO] [stderr]    |                                          ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 82 | pub fn cancel<T>(x: T) -> Result<(), Box<dyn Error>> {
[INFO] [stderr]    |                                          +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:138:77
[INFO] [stderr]     |
[INFO] [stderr] 138 | ...                   -> Result<R, Box<Error + 'a>>
[INFO] [stderr]     |                                        ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 138 |                                                            -> Result<R, Box<dyn Error + 'a>>
[INFO] [stderr]     |                                                                             +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:148:78
[INFO] [stderr]     |
[INFO] [stderr] 148 | ...                   -> Result<S1, Box<Error + 'a>> {
[INFO] [stderr]     |                                         ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 148 |                                                            -> Result<S1, Box<dyn Error + 'a>> {
[INFO] [stderr]     |                                                                              +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:155:79
[INFO] [stderr]     |
[INFO] [stderr] 155 | ...                   -> Result<S2, Box<Error + 'a>> {
[INFO] [stderr]     |                                         ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 155 |                                                             -> Result<S2, Box<dyn Error + 'a>> {
[INFO] [stderr]     |                                                                               +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/lib.rs:77:40
[INFO] [stderr]    |
[INFO] [stderr] 77 | pub fn close(s: End) -> Result<(), Box<Error>> {
[INFO] [stderr]    |                                        ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 77 | pub fn close(s: End) -> Result<(), Box<dyn Error>> {
[INFO] [stderr]    |                                        +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:140:36
[INFO] [stderr]     |
[INFO] [stderr] 140 |     F: FnOnce(S1) -> Result<R, Box<Error + 'a>>,
[INFO] [stderr]     |                                    ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 140 |     F: FnOnce(S1) -> Result<R, Box<dyn Error + 'a>>,
[INFO] [stderr]     |                                    +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:141:36
[INFO] [stderr]     |
[INFO] [stderr] 141 |     G: FnOnce(S2) -> Result<R, Box<Error + 'a>>,
[INFO] [stderr]     |                                    ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 141 |     G: FnOnce(S2) -> Result<R, Box<dyn Error + 'a>>,
[INFO] [stderr]     |                                    +++
[INFO] [stderr] 
[INFO] [stderr] warning: `rusty-variation` (lib) generated 9 warnings (run `cargo fix --lib -p rusty-variation` to apply 9 suggestions)
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:221:71
[INFO] [stderr]     |
[INFO] [stderr] 221 |     fn simple_calc_server(s: SimpleCalcServer<i32>) -> Result<(), Box<Error>> {
[INFO] [stderr]     |                                                                       ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 221 |     fn simple_calc_server(s: SimpleCalcServer<i32>) -> Result<(), Box<dyn Error>> {
[INFO] [stderr]     |                                                                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:278:67
[INFO] [stderr]     |
[INFO] [stderr] 278 |     fn nice_calc_server(s: NiceCalcServer<i32>) -> Result<(), Box<Error>> {
[INFO] [stderr]     |                                                                   ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 278 |     fn nice_calc_server(s: NiceCalcServer<i32>) -> Result<(), Box<dyn Error>> {
[INFO] [stderr]     |                                                                   +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:420:65
[INFO] [stderr]     |
[INFO] [stderr] 420 |     fn nice_sum_server(s: NiceSumServer<i32>) -> Result<(), Box<Error>> {
[INFO] [stderr]     |                                                                 ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 420 |     fn nice_sum_server(s: NiceSumServer<i32>) -> Result<(), Box<dyn Error>> {
[INFO] [stderr]     |                                                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:424:79
[INFO] [stderr]     |
[INFO] [stderr] 424 |     fn nice_sum_server_accum(s: NiceSumServer<i32>, x: i32) -> Result<(), Box<Error>> {
[INFO] [stderr]     |                                                                               ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 424 |     fn nice_sum_server_accum(s: NiceSumServer<i32>, x: i32) -> Result<(), Box<dyn Error>> {
[INFO] [stderr]     |                                                                               +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:438:49
[INFO] [stderr]     |
[INFO] [stderr] 438 | ...                   -> Result<i32, Box<Error>> {
[INFO] [stderr]     |                                          ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 438 |                              -> Result<i32, Box<dyn Error>> {
[INFO] [stderr]     |                                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:198:38
[INFO] [stderr]     |
[INFO] [stderr] 198 |         assert!(|| -> Result<(), Box<Error>> {
[INFO] [stderr]     |                                      ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 198 |         assert!(|| -> Result<(), Box<dyn Error>> {
[INFO] [stderr]     |                                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:107:47
[INFO] [stderr]     |
[INFO] [stderr] 107 |               let r = (move || -> Result<_, Box<Error>> {
[INFO] [stderr]     |                                                 ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 200 |               let s = fork!(move |s: Send<(), End>| {
[INFO] [stderr]     |  _____________________-
[INFO] [stderr] 201 | |                 let s = send((), s)?;
[INFO] [stderr] 202 | |                 close(s)
[INFO] [stderr] 203 | |             });
[INFO] [stderr]     | |______________- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]    --> src/lib.rs:112:42
[INFO] [stderr]     |
[INFO] [stderr] 112 |                   Err(e) => panic!("{}", e.description()),
[INFO] [stderr]     |                                            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 200 |               let s = fork!(move |s: Send<(), End>| {
[INFO] [stderr]     |  _____________________-
[INFO] [stderr] 201 | |                 let s = send((), s)?;
[INFO] [stderr] 202 | |                 close(s)
[INFO] [stderr] 203 | |             });
[INFO] [stderr]     | |______________- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(deprecated)]` on by default
[INFO] [stderr]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:238:38
[INFO] [stderr]     |
[INFO] [stderr] 238 |         assert!(|| -> Result<(), Box<Error>> {
[INFO] [stderr]     |                                      ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 238 |         assert!(|| -> Result<(), Box<dyn Error>> {
[INFO] [stderr]     |                                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]    --> src/lib.rs:97:42
[INFO] [stderr]     |
[INFO] [stderr]  97 |                 Err(e) => panic!("{}", e.description()),
[INFO] [stderr]     |                                          ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 244 |                 let s: SimpleCalcClient<i32> = fork!(simple_calc_server);
[INFO] [stderr]     |                                                ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]    --> src/lib.rs:97:42
[INFO] [stderr]     |
[INFO] [stderr]  97 |                 Err(e) => panic!("{}", e.description()),
[INFO] [stderr]     |                                          ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 254 |                 let s: SimpleCalcClient<i32> = fork!(simple_calc_server);
[INFO] [stderr]     |                                                ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:296:38
[INFO] [stderr]     |
[INFO] [stderr] 296 |         assert!(|| -> Result<(), Box<Error>> {
[INFO] [stderr]     |                                      ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 296 |         assert!(|| -> Result<(), Box<dyn Error>> {
[INFO] [stderr]     |                                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]    --> src/lib.rs:97:42
[INFO] [stderr]     |
[INFO] [stderr]  97 |                 Err(e) => panic!("{}", e.description()),
[INFO] [stderr]     |                                          ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 303 |                 let s: NiceCalcClient<i32> = fork!(nice_calc_server);
[INFO] [stderr]     |                                              ----------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:178:35
[INFO] [stderr]     |
[INFO] [stderr] 178 |         (move || -> Result<_, Box<Error>> {
[INFO] [stderr]     |                                   ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 305 |                 let s = select!(CalcOp::Neg, s)?;
[INFO] [stderr]     |                         ----------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]     = note: this warning originates in the macro `select` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]    --> src/lib.rs:97:42
[INFO] [stderr]     |
[INFO] [stderr]  97 |                 Err(e) => panic!("{}", e.description()),
[INFO] [stderr]     |                                          ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 314 |                 let s: NiceCalcClient<i32> = fork!(nice_calc_server);
[INFO] [stderr]     |                                              ----------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:178:35
[INFO] [stderr]     |
[INFO] [stderr] 178 |         (move || -> Result<_, Box<Error>> {
[INFO] [stderr]     |                                   ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 317 |                 let s = select!(CalcOp::Add, s)?;
[INFO] [stderr]     |                         ----------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]     = note: this warning originates in the macro `select` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]    --> src/lib.rs:97:42
[INFO] [stderr]     |
[INFO] [stderr]  97 |                 Err(e) => panic!("{}", e.description()),
[INFO] [stderr]     |                                          ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 333 |         let (other_thread, s) = fork_with_thread_id!(nice_calc_server);
[INFO] [stderr]     |                                 -------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `fork_with_thread_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:335:38
[INFO] [stderr]     |
[INFO] [stderr] 335 |         assert!(|| -> Result<(), Box<Error>> {
[INFO] [stderr]     |                                      ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 335 |         assert!(|| -> Result<(), Box<dyn Error>> {
[INFO] [stderr]     |                                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:107:47
[INFO] [stderr]     |
[INFO] [stderr] 107 |               let r = (move || -> Result<_, Box<Error>> {
[INFO] [stderr]     |                                                 ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 353 |           let (other_thread, s) = fork_with_thread_id!(
[INFO] [stderr]     |  _________________________________-
[INFO] [stderr] 354 | |             move |s: NiceCalcServer<i32>| {cancel(s)});
[INFO] [stderr]     | |______________________________________________________- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]     = note: this warning originates in the macro `fork_with_thread_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]    --> src/lib.rs:112:42
[INFO] [stderr]     |
[INFO] [stderr] 112 |                   Err(e) => panic!("{}", e.description()),
[INFO] [stderr]     |                                            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 353 |           let (other_thread, s) = fork_with_thread_id!(
[INFO] [stderr]     |  _________________________________-
[INFO] [stderr] 354 | |             move |s: NiceCalcServer<i32>| {cancel(s)});
[INFO] [stderr]     | |______________________________________________________- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `fork_with_thread_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:356:38
[INFO] [stderr]     |
[INFO] [stderr] 356 |         assert!(|| -> Result<(), Box<Error>> {
[INFO] [stderr]     |                                      ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 356 |         assert!(|| -> Result<(), Box<dyn Error>> {
[INFO] [stderr]     |                                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:178:35
[INFO] [stderr]     |
[INFO] [stderr] 178 |         (move || -> Result<_, Box<Error>> {
[INFO] [stderr]     |                                   ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 358 |             let s = select!(CalcOp::Add, s)?;
[INFO] [stderr]     |                     ----------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]     = note: this warning originates in the macro `select` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]    --> src/lib.rs:97:42
[INFO] [stderr]     |
[INFO] [stderr]  97 |                 Err(e) => panic!("{}", e.description()),
[INFO] [stderr]     |                                          ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 373 |         let (other_thread1, s) = fork_with_thread_id!(nice_calc_server);
[INFO] [stderr]     |                                  -------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `fork_with_thread_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:107:47
[INFO] [stderr]     |
[INFO] [stderr] 107 |               let r = (move || -> Result<_, Box<Error>> {
[INFO] [stderr]     |                                                 ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 374 |           let (other_thread2, u) = fork_with_thread_id!(
[INFO] [stderr]     |  __________________________________-
[INFO] [stderr] 375 | |             move |u: Recv<NiceCalcClient<i32>, End>| {cancel(u)});
[INFO] [stderr]     | |_________________________________________________________________- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]     = note: this warning originates in the macro `fork_with_thread_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]    --> src/lib.rs:112:42
[INFO] [stderr]     |
[INFO] [stderr] 112 |                   Err(e) => panic!("{}", e.description()),
[INFO] [stderr]     |                                            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 374 |           let (other_thread2, u) = fork_with_thread_id!(
[INFO] [stderr]     |  __________________________________-
[INFO] [stderr] 375 | |             move |u: Recv<NiceCalcClient<i32>, End>| {cancel(u)});
[INFO] [stderr]     | |_________________________________________________________________- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `fork_with_thread_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:377:38
[INFO] [stderr]     |
[INFO] [stderr] 377 |         assert!(|| -> Result<(), Box<Error>> {
[INFO] [stderr]     |                                      ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 377 |         assert!(|| -> Result<(), Box<dyn Error>> {
[INFO] [stderr]     |                                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]    --> src/lib.rs:97:42
[INFO] [stderr]     |
[INFO] [stderr]  97 |                 Err(e) => panic!("{}", e.description()),
[INFO] [stderr]     |                                          ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 391 |         let (other_thread, s) = fork_with_thread_id!(nice_calc_server);
[INFO] [stderr]     |                                 -------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `fork_with_thread_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:393:39
[INFO] [stderr]     |
[INFO] [stderr] 393 |         assert!(|| -> Result<i32, Box<Error>> {
[INFO] [stderr]     |                                       ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 393 |         assert!(|| -> Result<i32, Box<dyn Error>> {
[INFO] [stderr]     |                                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:396:54
[INFO] [stderr]     |
[INFO] [stderr] 396 |             let f = move |x: i32| -> Result<i32, Box<Error>> {
[INFO] [stderr]     |                                                      ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 396 |             let f = move |x: i32| -> Result<i32, Box<dyn Error>> {
[INFO] [stderr]     |                                                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:178:35
[INFO] [stderr]     |
[INFO] [stderr] 178 |         (move || -> Result<_, Box<Error>> {
[INFO] [stderr]     |                                   ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 397 |                 let s = select!(CalcOp::Neg, s)?;
[INFO] [stderr]     |                         ----------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]     = note: this warning originates in the macro `select` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:178:35
[INFO] [stderr]     |
[INFO] [stderr] 178 |         (move || -> Result<_, Box<Error>> {
[INFO] [stderr]     |                                   ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 441 |                 let s = select!(SumOp::More, s)?;
[INFO] [stderr]     |                         ----------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]     = note: this warning originates in the macro `select` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:178:35
[INFO] [stderr]     |
[INFO] [stderr] 178 |         (move || -> Result<_, Box<Error>> {
[INFO] [stderr]     |                                   ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 446 |                 let s = select!(SumOp::Done, s)?;
[INFO] [stderr]     |                         ----------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]     = note: this warning originates in the macro `select` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]    --> src/lib.rs:97:42
[INFO] [stderr]     |
[INFO] [stderr]  97 |                 Err(e) => panic!("{}", e.description()),
[INFO] [stderr]     |                                          ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 462 |         let (other_thread, s) = fork_with_thread_id!(nice_sum_server);
[INFO] [stderr]     |                                 ------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `fork_with_thread_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:464:38
[INFO] [stderr]     |
[INFO] [stderr] 464 |         assert!(|| -> Result<(), Box<Error>> {
[INFO] [stderr]     |                                      ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 464 |         assert!(|| -> Result<(), Box<dyn Error>> {
[INFO] [stderr]     |                                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:107:47
[INFO] [stderr]     |
[INFO] [stderr] 107 |               let r = (move || -> Result<_, Box<Error>> {
[INFO] [stderr]     |                                                 ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 478 |           let s = fork!(move |s: Send<(), End>| {
[INFO] [stderr]     |  _________________-
[INFO] [stderr] 479 | |             loop {
[INFO] [stderr] 480 | |                 // Let's trick the reachability checker
[INFO] [stderr] 481 | |                 if false { break; }
[INFO] [stderr] ...   |
[INFO] [stderr] 484 | |             Ok(())
[INFO] [stderr] 485 | |         });
[INFO] [stderr]     | |__________- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]    --> src/lib.rs:112:42
[INFO] [stderr]     |
[INFO] [stderr] 112 |                   Err(e) => panic!("{}", e.description()),
[INFO] [stderr]     |                                            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 478 |           let s = fork!(move |s: Send<(), End>| {
[INFO] [stderr]     |  _________________-
[INFO] [stderr] 479 | |             loop {
[INFO] [stderr] 480 | |                 // Let's trick the reachability checker
[INFO] [stderr] 481 | |                 if false { break; }
[INFO] [stderr] ...   |
[INFO] [stderr] 484 | |             Ok(())
[INFO] [stderr] 485 | |         });
[INFO] [stderr]     | |__________- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:487:30
[INFO] [stderr]     |
[INFO] [stderr] 487 |         || -> Result<(), Box<Error>> {
[INFO] [stderr]     |                              ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 487 |         || -> Result<(), Box<dyn Error>> {
[INFO] [stderr]     |                              +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:107:47
[INFO] [stderr]     |
[INFO] [stderr] 107 |               let r = (move || -> Result<_, Box<Error>> {
[INFO] [stderr]     |                                                 ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 496 |           let s = fork!(move |s: Send<(), End>| {
[INFO] [stderr]     |  _________________-
[INFO] [stderr] 497 | |             mem::forget(s);
[INFO] [stderr] 498 | |             Ok(())
[INFO] [stderr] 499 | |         });
[INFO] [stderr]     | |__________- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]    --> src/lib.rs:112:42
[INFO] [stderr]     |
[INFO] [stderr] 112 |                   Err(e) => panic!("{}", e.description()),
[INFO] [stderr]     |                                            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 496 |           let s = fork!(move |s: Send<(), End>| {
[INFO] [stderr]     |  _________________-
[INFO] [stderr] 497 | |             mem::forget(s);
[INFO] [stderr] 498 | |             Ok(())
[INFO] [stderr] 499 | |         });
[INFO] [stderr]     | |__________- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:501:30
[INFO] [stderr]     |
[INFO] [stderr] 501 |         || -> Result<(), Box<Error>> {
[INFO] [stderr]     |                              ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 501 |         || -> Result<(), Box<dyn Error>> {
[INFO] [stderr]     |                              +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:107:47
[INFO] [stderr]     |
[INFO] [stderr] 107 |               let r = (move || -> Result<_, Box<Error>> {
[INFO] [stderr]     |                                                 ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 511 |           let r2 = fork!(move |s2: Send<(), End>| {
[INFO] [stderr]     |  __________________-
[INFO] [stderr] 512 | |             let (x, End) = recv(r1)?;
[INFO] [stderr] 513 | |             let End = send(x, s2)?;
[INFO] [stderr] 514 | |             Ok(())
[INFO] [stderr] 515 | |         });
[INFO] [stderr]     | |__________- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]    --> src/lib.rs:112:42
[INFO] [stderr]     |
[INFO] [stderr] 112 |                   Err(e) => panic!("{}", e.description()),
[INFO] [stderr]     |                                            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 511 |           let r2 = fork!(move |s2: Send<(), End>| {
[INFO] [stderr]     |  __________________-
[INFO] [stderr] 512 | |             let (x, End) = recv(r1)?;
[INFO] [stderr] 513 | |             let End = send(x, s2)?;
[INFO] [stderr] 514 | |             Ok(())
[INFO] [stderr] 515 | |         });
[INFO] [stderr]     | |__________- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:517:30
[INFO] [stderr]     |
[INFO] [stderr] 517 |         || -> Result<(), Box<Error>> {
[INFO] [stderr]     |                              ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 517 |         || -> Result<(), Box<dyn Error>> {
[INFO] [stderr]     |                              +++
[INFO] [stderr] 
[INFO] [stderr] warning: `rusty-variation` (lib test) generated 52 warnings (9 duplicates) (run `cargo fix --lib -p rusty-variation --tests` to apply 17 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.10s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rusty_variation-75f4751f7f7ddb50)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test tests::ping_works ... ok
[INFO] [stdout] test tests::recursion_works ... ok
[INFO] [stdout] test tests::nice_calc_works ... ok
[INFO] [stdout] test tests::simple_calc_works ... ok
[INFO] [stdout] test tests::delegation_works ... ok
[INFO] [stdout] test tests::closure_works ... ok
[INFO] [stdout] test tests::cancel_send_works ... ok
[INFO] [stdout] test tests::cancel_recv_works ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests rusty_variation
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "a07832253bd83261772e8a51dbd5425b8cc6b1566cc29650c4ea8627db010836", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a07832253bd83261772e8a51dbd5425b8cc6b1566cc29650c4ea8627db010836", kill_on_drop: false }`
[INFO] [stdout] a07832253bd83261772e8a51dbd5425b8cc6b1566cc29650c4ea8627db010836
