[INFO] fetching crate gj 0.2.0... [INFO] linting gj-0.2.0 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate gj 0.2.0 into /workspace/builds/worker-2-tc1/source [INFO] started tweaking crates.io crate gj 0.2.0 [INFO] finished tweaking crates.io crate gj 0.2.0 [INFO] tweaked toml for crates.io crate gj 0.2.0 written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate gj 0.2.0 on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "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" "+nightly" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] d64bebbb7855aa995b708614bbdae68e15791b8fb72dadfdfe395a4343590745 [INFO] running `Command { std: "docker" "start" "-a" "d64bebbb7855aa995b708614bbdae68e15791b8fb72dadfdfe395a4343590745", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d64bebbb7855aa995b708614bbdae68e15791b8fb72dadfdfe395a4343590745", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d64bebbb7855aa995b708614bbdae68e15791b8fb72dadfdfe395a4343590745", kill_on_drop: false }` [INFO] [stdout] d64bebbb7855aa995b708614bbdae68e15791b8fb72dadfdfe395a4343590745 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 0ec7a6c352b90cde66a28ed5c1e2f7b1561ed4fb27c97fdd4c93da6ca86f1177 [INFO] running `Command { std: "docker" "start" "-a" "0ec7a6c352b90cde66a28ed5c1e2f7b1561ed4fb27c97fdd4c93da6ca86f1177", kill_on_drop: false }` [INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024` [INFO] [stderr] Checking gj v0.2.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/private/promise_node.rs:43:21 [INFO] [stdout] | [INFO] [stdout] 43 | Transform { dependency: dependency, func: func} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `dependency` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/private/promise_node.rs:43:45 [INFO] [stdout] | [INFO] [stdout] 43 | Transform { dependency: dependency, func: func} [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `func` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/private/promise_node.rs:67:21 [INFO] [stdout] | [INFO] [stdout] 67 | Immediate { result: result } [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `result` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/private/promise_node.rs:185:17 [INFO] [stdout] | [INFO] [stdout] 185 | Chain { state: state, dropper: dropper } [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/private/promise_node.rs:185:31 [INFO] [stdout] | [INFO] [stdout] 185 | Chain { state: state, dropper: dropper } [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `dropper` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/private/promise_node.rs:321:20 [INFO] [stdout] | [INFO] [stdout] 321 | ArrayJoin {state: state} [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/private/promise_node.rs:410:32 [INFO] [stdout] | [INFO] [stdout] 410 | return ExclusiveJoin { state: state }; [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/private/promise_node.rs:463:19 [INFO] [stdout] | [INFO] [stdout] 463 | ForkHub { state: state, dropper: dropper } [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/private/promise_node.rs:463:33 [INFO] [stdout] | [INFO] [stdout] 463 | ForkHub { state: state, dropper: dropper } [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `dropper` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit expression [INFO] [stdout] --> src/private/promise_node.rs:478:13 [INFO] [stdout] | [INFO] [stdout] 478 | () [INFO] [stdout] | ^^ help: remove the final `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/private/promise_node.rs:488:13 [INFO] [stdout] | [INFO] [stdout] 488 | on_ready_event: on_ready_event, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `on_ready_event` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/private/mod.rs:174:21 [INFO] [stdout] | [INFO] [stdout] 174 | BoolEvent { fired: fired } [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `fired` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/private/mod.rs:258:38 [INFO] [stdout] | [INFO] [stdout] 258 | PromiseAndFulfillerWrapper { hub: hub } [INFO] [stdout] | ^^^^^^^^ help: replace it with: `hub` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/private/promise_node.rs:43:21 [INFO] [stdout] | [INFO] [stdout] 43 | Transform { dependency: dependency, func: func} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `dependency` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/private/promise_node.rs:43:45 [INFO] [stdout] | [INFO] [stdout] 43 | Transform { dependency: dependency, func: func} [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `func` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/private/promise_node.rs:67:21 [INFO] [stdout] | [INFO] [stdout] 67 | Immediate { result: result } [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `result` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/private/promise_node.rs:185:17 [INFO] [stdout] | [INFO] [stdout] 185 | Chain { state: state, dropper: dropper } [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/private/promise_node.rs:185:31 [INFO] [stdout] | [INFO] [stdout] 185 | Chain { state: state, dropper: dropper } [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `dropper` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/private/promise_node.rs:321:20 [INFO] [stdout] | [INFO] [stdout] 321 | ArrayJoin {state: state} [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/private/promise_node.rs:410:32 [INFO] [stdout] | [INFO] [stdout] 410 | return ExclusiveJoin { state: state }; [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/lib.rs:220:21 [INFO] [stdout] | [INFO] [stdout] 220 | try!(event_source.wait()); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/private/promise_node.rs:463:19 [INFO] [stdout] | [INFO] [stdout] 463 | ForkHub { state: state, dropper: dropper } [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/private/promise_node.rs:463:33 [INFO] [stdout] | [INFO] [stdout] 463 | ForkHub { state: state, dropper: dropper } [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `dropper` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit expression [INFO] [stdout] --> src/private/promise_node.rs:478:13 [INFO] [stdout] | [INFO] [stdout] 478 | () [INFO] [stdout] | ^^ help: remove the final `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/private/promise_node.rs:488:13 [INFO] [stdout] | [INFO] [stdout] 488 | on_ready_event: on_ready_event, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `on_ready_event` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/private/mod.rs:174:21 [INFO] [stdout] | [INFO] [stdout] 174 | BoolEvent { fired: fired } [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `fired` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit expression [INFO] [stdout] --> src/lib.rs:451:36 [INFO] [stdout] | [INFO] [stdout] 451 | fn fulfiller_dropped() -> () { () } [INFO] [stdout] | ^^ help: remove the final `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/private/mod.rs:258:38 [INFO] [stdout] | [INFO] [stdout] 258 | PromiseAndFulfillerWrapper { hub: hub } [INFO] [stdout] | ^^^^^^^^ help: replace it with: `hub` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/lib.rs:220:21 [INFO] [stdout] | [INFO] [stdout] 220 | try!(event_source.wait()); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit expression [INFO] [stdout] --> src/lib.rs:451:36 [INFO] [stdout] | [INFO] [stdout] 451 | fn fulfiller_dropped() -> () { () } [INFO] [stdout] | ^^ help: remove the final `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/promise_node.rs:35:21 [INFO] [stdout] | [INFO] [stdout] 35 | dependency: Box>, [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 [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] 35 | dependency: Box>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/promise_node.rs:101:15 [INFO] [stdout] | [INFO] [stdout] 101 | Step1(Box, E>>, Option, Option>>>), [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 101 | Step1(Box, E>>, Option, Option>>>), [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/promise_node.rs:102:15 [INFO] [stdout] | [INFO] [stdout] 102 | Step2(Box>, Option>>>), [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 102 | Step2(Box>, Option>>>), [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/promise_node.rs:273:17 [INFO] [stdout] | [INFO] [stdout] 273 | Waiting(Box>, EventDropper), [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 273 | Waiting(Box>, EventDropper), [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/promise_node.rs:377:23 [INFO] [stdout] | [INFO] [stdout] 377 | left: Option<(Box>, EventDropper)>, [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 377 | left: Option<(Box>, EventDropper)>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/promise_node.rs:378:24 [INFO] [stdout] | [INFO] [stdout] 378 | right: Option<(Box>, EventDropper)>, [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 378 | right: Option<(Box>, EventDropper)>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/promise_node.rs:438:17 [INFO] [stdout] | [INFO] [stdout] 438 | Waiting(Box>), [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 438 | Waiting(Box>), [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/mod.rs:121:27 [INFO] [stdout] | [INFO] [stdout] 121 | pub event: Option>, [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 121 | pub event: Option>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/mod.rs:281:28 [INFO] [stdout] | [INFO] [stdout] 281 | reaper: Rc>>>, [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 281 | reaper: Rc>>>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/mod.rs:308:35 [INFO] [stdout] | [INFO] [stdout] 308 | weak_reaper: Weak>>>, [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 308 | weak_reaper: Weak>>>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/mod.rs:310:22 [INFO] [stdout] | [INFO] [stdout] 310 | node: Option>>, [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 310 | node: Option>>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/lib.rs:80:15 [INFO] [stdout] | [INFO] [stdout] 80 | node: Box>, [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 80 | node: Box>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/promise_node.rs:35:21 [INFO] [stdout] | [INFO] [stdout] 35 | dependency: Box>, [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 [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] 35 | dependency: Box>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/promise_node.rs:101:15 [INFO] [stdout] | [INFO] [stdout] 101 | Step1(Box, E>>, Option, Option>>>), [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 101 | Step1(Box, E>>, Option, Option>>>), [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/promise_node.rs:42:32 [INFO] [stdout] | [INFO] [stdout] 42 | pub fn new(dependency: Box>, func: Func) -> Transform { [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 42 | pub fn new(dependency: Box>, func: Func) -> Transform { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/promise_node.rs:176:31 [INFO] [stdout] | [INFO] [stdout] 176 | pub fn new(mut inner: Box, E>>) -> Chain { [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 176 | pub fn new(mut inner: Box, E>>) -> Chain { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/promise_node.rs:386:30 [INFO] [stdout] | [INFO] [stdout] 386 | pub fn new(mut left: Box>, mut right: Box>) -> ExclusiveJoin { [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 386 | pub fn new(mut left: Box>, mut right: Box>) -> ExclusiveJoin { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/promise_node.rs:386:65 [INFO] [stdout] | [INFO] [stdout] 386 | pub fn new(mut left: Box>, mut right: Box>) -> ExclusiveJoin { [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 386 | pub fn new(mut left: Box>, mut right: Box>) -> ExclusiveJoin { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/promise_node.rs:453:31 [INFO] [stdout] | [INFO] [stdout] 453 | pub fn new(mut inner: Box>) -> ForkHub { [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 453 | pub fn new(mut inner: Box>) -> ForkHub { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/promise_node.rs:102:15 [INFO] [stdout] | [INFO] [stdout] 102 | Step2(Box>, Option>>>), [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 102 | Step2(Box>, Option>>>), [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/promise_node.rs:273:17 [INFO] [stdout] | [INFO] [stdout] 273 | Waiting(Box>, EventDropper), [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 273 | Waiting(Box>, EventDropper), [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/mod.rs:286:28 [INFO] [stdout] | [INFO] [stdout] 286 | pub fn new(reaper: Box>) -> TaskSetImpl { [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 286 | pub fn new(reaper: Box>) -> TaskSetImpl { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/mod.rs:293:39 [INFO] [stdout] | [INFO] [stdout] 293 | pub fn add(&self, mut node: Box>) { [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 293 | pub fn add(&self, mut node: Box>) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/promise_node.rs:377:23 [INFO] [stdout] | [INFO] [stdout] 377 | left: Option<(Box>, EventDropper)>, [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 377 | left: Option<(Box>, EventDropper)>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/promise_node.rs:378:24 [INFO] [stdout] | [INFO] [stdout] 378 | right: Option<(Box>, EventDropper)>, [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 378 | right: Option<(Box>, EventDropper)>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/lib.rs:204:74 [INFO] [stdout] | [INFO] [stdout] 204 | pub fn wait(mut self, wait_scope: &WaitScope, event_source: &mut EventPort) -> Result [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 204 | pub fn wait(mut self, wait_scope: &WaitScope, event_source: &mut dyn EventPort) -> Result [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/promise_node.rs:438:17 [INFO] [stdout] | [INFO] [stdout] 438 | Waiting(Box>), [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 438 | Waiting(Box>), [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/lib.rs:467:28 [INFO] [stdout] | [INFO] [stdout] 467 | pub fn new(reaper: Box>) -> TaskSet { [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 467 | pub fn new(reaper: Box>) -> TaskSet { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/mod.rs:121:27 [INFO] [stdout] | [INFO] [stdout] 121 | pub event: Option>, [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 121 | pub event: Option>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/mod.rs:281:28 [INFO] [stdout] | [INFO] [stdout] 281 | reaper: Rc>>>, [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 281 | reaper: Rc>>>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/mod.rs:308:35 [INFO] [stdout] | [INFO] [stdout] 308 | weak_reaper: Weak>>>, [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 308 | weak_reaper: Weak>>>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/mod.rs:310:22 [INFO] [stdout] | [INFO] [stdout] 310 | node: Option>>, [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 310 | node: Option>>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/lib.rs:80:15 [INFO] [stdout] | [INFO] [stdout] 80 | node: Box>, [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 80 | node: Box>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/promise_node.rs:42:32 [INFO] [stdout] | [INFO] [stdout] 42 | pub fn new(dependency: Box>, func: Func) -> Transform { [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 42 | pub fn new(dependency: Box>, func: Func) -> Transform { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/promise_node.rs:176:31 [INFO] [stdout] | [INFO] [stdout] 176 | pub fn new(mut inner: Box, E>>) -> Chain { [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 176 | pub fn new(mut inner: Box, E>>) -> Chain { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/promise_node.rs:386:30 [INFO] [stdout] | [INFO] [stdout] 386 | pub fn new(mut left: Box>, mut right: Box>) -> ExclusiveJoin { [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 386 | pub fn new(mut left: Box>, mut right: Box>) -> ExclusiveJoin { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/promise_node.rs:386:65 [INFO] [stdout] | [INFO] [stdout] 386 | pub fn new(mut left: Box>, mut right: Box>) -> ExclusiveJoin { [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 386 | pub fn new(mut left: Box>, mut right: Box>) -> ExclusiveJoin { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/promise_node.rs:453:31 [INFO] [stdout] | [INFO] [stdout] 453 | pub fn new(mut inner: Box>) -> ForkHub { [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 453 | pub fn new(mut inner: Box>) -> ForkHub { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/mod.rs:286:28 [INFO] [stdout] | [INFO] [stdout] 286 | pub fn new(reaper: Box>) -> TaskSetImpl { [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 286 | pub fn new(reaper: Box>) -> TaskSetImpl { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/mod.rs:293:39 [INFO] [stdout] | [INFO] [stdout] 293 | pub fn add(&self, mut node: Box>) { [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 293 | pub fn add(&self, mut node: Box>) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/lib.rs:204:74 [INFO] [stdout] | [INFO] [stdout] 204 | pub fn wait(mut self, wait_scope: &WaitScope, event_source: &mut EventPort) -> Result [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 204 | pub fn wait(mut self, wait_scope: &WaitScope, event_source: &mut dyn EventPort) -> Result [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/lib.rs:467:28 [INFO] [stdout] | [INFO] [stdout] 467 | pub fn new(reaper: Box>) -> TaskSet { [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 467 | pub fn new(reaper: Box>) -> TaskSet { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/mod.rs:97:34 [INFO] [stdout] | [INFO] [stdout] 97 | pub fn set(&self, event: Box) { [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 97 | pub fn set(&self, event: Box) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/mod.rs:97:34 [INFO] [stdout] | [INFO] [stdout] 97 | pub fn set(&self, event: Box) { [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 97 | pub fn set(&self, event: Box) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/promise_node.rs:459:73 [INFO] [stdout] | [INFO] [stdout] 459 | let event = Box::new(ForkEvent { state: state.clone() }) as Box; [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 459 | let event = Box::new(ForkEvent { state: state.clone() }) as Box; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/private/promise_node.rs:459:73 [INFO] [stdout] | [INFO] [stdout] 459 | let event = Box::new(ForkEvent { state: state.clone() }) as Box; [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 [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 459 | let event = Box::new(ForkEvent { state: state.clone() }) as Box; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Event` [INFO] [stdout] --> src/lib.rs:54:29 [INFO] [stdout] | [INFO] [stdout] 54 | use private::{promise_node, Event, BoolEvent, PromiseAndFulfillerHub, PromiseAndFulfillerWrapper, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Event` [INFO] [stdout] --> src/lib.rs:54:29 [INFO] [stdout] | [INFO] [stdout] 54 | use private::{promise_node, Event, BoolEvent, PromiseAndFulfillerHub, PromiseAndFulfillerWrapper, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/private/promise_node.rs:117:25 [INFO] [stdout] | [INFO] [stdout] 117 | / match on_ready_event { [INFO] [stdout] 118 | | Some(event) => { [INFO] [stdout] 119 | | intermediate.node.on_ready(event); [INFO] [stdout] ... | [INFO] [stdout] 122 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 117 ~ if let Some(event) = on_ready_event { [INFO] [stdout] 118 + intermediate.node.on_ready(event); [INFO] [stdout] 119 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/private/promise_node.rs:128:25 [INFO] [stdout] | [INFO] [stdout] 128 | / match on_ready_event { [INFO] [stdout] 129 | | Some(event) => { [INFO] [stdout] 130 | | node.on_ready(event); [INFO] [stdout] ... | [INFO] [stdout] 133 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 128 ~ if let Some(event) = on_ready_event { [INFO] [stdout] 129 + node.on_ready(event); [INFO] [stdout] 130 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/private/promise_node.rs:316:12 [INFO] [stdout] | [INFO] [stdout] 316 | if branches.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `branches.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/private/promise_node.rs:410:9 [INFO] [stdout] | [INFO] [stdout] 410 | return ExclusiveJoin { state: state }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 410 - return ExclusiveJoin { state: state }; [INFO] [stdout] 410 + ExclusiveJoin { state: state } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/private/promise_node.rs:117:25 [INFO] [stdout] | [INFO] [stdout] 117 | / match on_ready_event { [INFO] [stdout] 118 | | Some(event) => { [INFO] [stdout] 119 | | intermediate.node.on_ready(event); [INFO] [stdout] ... | [INFO] [stdout] 122 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 117 ~ if let Some(event) = on_ready_event { [INFO] [stdout] 118 + intermediate.node.on_ready(event); [INFO] [stdout] 119 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/private/promise_node.rs:424:17 [INFO] [stdout] | [INFO] [stdout] 424 | return node.get(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 424 - return node.get(); [INFO] [stdout] 424 + node.get() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/private/promise_node.rs:128:25 [INFO] [stdout] | [INFO] [stdout] 128 | / match on_ready_event { [INFO] [stdout] 129 | | Some(event) => { [INFO] [stdout] 130 | | node.on_ready(event); [INFO] [stdout] ... | [INFO] [stdout] 133 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 128 ~ if let Some(event) = on_ready_event { [INFO] [stdout] 129 + node.on_ready(event); [INFO] [stdout] 130 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/private/promise_node.rs:427:17 [INFO] [stdout] | [INFO] [stdout] 427 | return node.get(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 427 - return node.get(); [INFO] [stdout] 427 + node.get() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing an `Option` with `None` [INFO] [stdout] --> src/private/promise_node.rs:419:20 [INFO] [stdout] | [INFO] [stdout] 419 | let left = ::std::mem::replace(&mut self.state.borrow_mut().left, None); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider `Option::take()` instead: `self.state.borrow_mut().left.take()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [INFO] [stdout] = note: `#[warn(clippy::mem_replace_option_with_none)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing an `Option` with `None` [INFO] [stdout] --> src/private/promise_node.rs:420:21 [INFO] [stdout] | [INFO] [stdout] 420 | let right = ::std::mem::replace(&mut self.state.borrow_mut().right, None); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider `Option::take()` instead: `self.state.borrow_mut().right.take()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stdout] --> src/private/promise_node.rs:468:17 [INFO] [stdout] | [INFO] [stdout] 468 | let ref state = &hub.borrow().state; [INFO] [stdout] | ----^^^^^^^^^----------------------- help: try: `let state = &&hub.borrow().state;` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stdout] = note: `#[warn(clippy::toplevel_ref_arg)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this pattern creates a reference to a reference [INFO] [stdout] --> src/private/promise_node.rs:468:17 [INFO] [stdout] | [INFO] [stdout] 468 | let ref state = &hub.borrow().state; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 468 - let ref state = &hub.borrow().state; [INFO] [stdout] 468 + let state = &hub.borrow().state; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/private/promise_node.rs:316:12 [INFO] [stdout] | [INFO] [stdout] 316 | if branches.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `branches.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: initializer for `thread_local` value can be made `const` [INFO] [stdout] --> src/private/mod.rs:31:67 [INFO] [stdout] | [INFO] [stdout] 31 | thread_local!(pub static EVENT_LOOP: RefCell> = RefCell::new(None)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace with: `const { RefCell::new(None) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_thread_local [INFO] [stdout] = note: `#[warn(clippy::missing_const_for_thread_local)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/private/promise_node.rs:410:9 [INFO] [stdout] | [INFO] [stdout] 410 | return ExclusiveJoin { state: state }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 410 - return ExclusiveJoin { state: state }; [INFO] [stdout] 410 + ExclusiveJoin { state: state } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/private/promise_node.rs:424:17 [INFO] [stdout] | [INFO] [stdout] 424 | return node.get(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 424 - return node.get(); [INFO] [stdout] 424 + node.get() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/private/promise_node.rs:427:17 [INFO] [stdout] | [INFO] [stdout] 427 | return node.get(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 427 - return node.get(); [INFO] [stdout] 427 + node.get() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing an `Option` with `None` [INFO] [stdout] --> src/private/promise_node.rs:419:20 [INFO] [stdout] | [INFO] [stdout] 419 | let left = ::std::mem::replace(&mut self.state.borrow_mut().left, None); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider `Option::take()` instead: `self.state.borrow_mut().left.take()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [INFO] [stdout] = note: `#[warn(clippy::mem_replace_option_with_none)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing an `Option` with `None` [INFO] [stdout] --> src/private/promise_node.rs:420:21 [INFO] [stdout] | [INFO] [stdout] 420 | let right = ::std::mem::replace(&mut self.state.borrow_mut().right, None); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider `Option::take()` instead: `self.state.borrow_mut().right.take()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/private/mod.rs:192:9 [INFO] [stdout] | [INFO] [stdout] 192 | / match self { [INFO] [stdout] 193 | | &OnReadyEvent::AlreadyReady => true, [INFO] [stdout] 194 | | _ => false, [INFO] [stdout] 195 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 192 - match self { [INFO] [stdout] 193 - &OnReadyEvent::AlreadyReady => true, [INFO] [stdout] 194 - _ => false, [INFO] [stdout] 195 - } [INFO] [stdout] 192 + matches!(self, &OnReadyEvent::AlreadyReady) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stdout] --> src/private/promise_node.rs:468:17 [INFO] [stdout] | [INFO] [stdout] 468 | let ref state = &hub.borrow().state; [INFO] [stdout] | ----^^^^^^^^^----------------------- help: try: `let state = &&hub.borrow().state;` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stdout] = note: `#[warn(clippy::toplevel_ref_arg)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/private/mod.rs:199:9 [INFO] [stdout] | [INFO] [stdout] 199 | / match self { [INFO] [stdout] 200 | | &OnReadyEvent::Empty => true, [INFO] [stdout] 201 | | _ => false, [INFO] [stdout] 202 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 199 - match self { [INFO] [stdout] 200 - &OnReadyEvent::Empty => true, [INFO] [stdout] 201 - _ => false, [INFO] [stdout] 202 - } [INFO] [stdout] 199 + matches!(self, &OnReadyEvent::Empty) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this pattern creates a reference to a reference [INFO] [stdout] --> src/private/promise_node.rs:468:17 [INFO] [stdout] | [INFO] [stdout] 468 | let ref state = &hub.borrow().state; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 468 - let ref state = &hub.borrow().state; [INFO] [stdout] 468 + let state = &hub.borrow().state; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing an `Option` with `None` [INFO] [stdout] --> src/private/mod.rs:273:15 [INFO] [stdout] | [INFO] [stdout] 273 | match ::std::mem::replace(&mut self.hub.borrow_mut().result, None) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider `Option::take()` instead: `self.hub.borrow_mut().result.take()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: initializer for `thread_local` value can be made `const` [INFO] [stdout] --> src/private/mod.rs:31:67 [INFO] [stdout] | [INFO] [stdout] 31 | thread_local!(pub static EVENT_LOOP: RefCell> = RefCell::new(None)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace with: `const { RefCell::new(None) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_thread_local [INFO] [stdout] = note: `#[warn(clippy::missing_const_for_thread_local)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing an `Option` with `None` [INFO] [stdout] --> src/private/mod.rs:316:26 [INFO] [stdout] | [INFO] [stdout] 316 | let maybe_node = ::std::mem::replace(&mut self.node, None); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider `Option::take()` instead: `self.node.take()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/handle_table.rs:59:12 [INFO] [stdout] | [INFO] [stdout] 59 | if !result.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `result.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/handle_table.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 63 | return result; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 63 - return result; [INFO] [stdout] 63 + result [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing an `Option` with `None` [INFO] [stdout] --> src/handle_table.rs:58:22 [INFO] [stdout] | [INFO] [stdout] 58 | let result = ::std::mem::replace(&mut self.slots[handle.val], None); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider `Option::take()` instead: `self.slots[handle.val].take()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/handle_table.rs:70:36 [INFO] [stdout] | [INFO] [stdout] 70 | assert!(self.slots[id as usize].is_none()); [INFO] [stdout] | ^^^^^^^^^^^ help: try: `{ id }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/handle_table.rs:71:28 [INFO] [stdout] | [INFO] [stdout] 71 | self.slots[id as usize] = Some(val); [INFO] [stdout] | ^^^^^^^^^^^ help: try: `id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/handle_table.rs:90:14 [INFO] [stdout] | [INFO] [stdout] 90 | fn index<'a>(&'a self, idx: Handle) -> &'a T { [INFO] [stdout] | ^^ ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 90 - fn index<'a>(&'a self, idx: Handle) -> &'a T { [INFO] [stdout] 90 + fn index(&self, idx: Handle) -> &T { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/handle_table.rs:92:29 [INFO] [stdout] | [INFO] [stdout] 92 | &Some(ref v) => return v, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 92 - &Some(ref v) => return v, [INFO] [stdout] 92 + &Some(ref v) => v, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stdout] --> src/handle_table.rs:91:9 [INFO] [stdout] | [INFO] [stdout] 91 | / match &self.slots[idx.val] { [INFO] [stdout] 92 | | &Some(ref v) => return v, [INFO] [stdout] 93 | | &None => panic!("invalid handle idx: {}", idx.val), [INFO] [stdout] 94 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stdout] = note: `#[warn(clippy::match_ref_pats)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 91 ~ match self.slots[idx.val] { [INFO] [stdout] 92 ~ Some(ref v) => return v, [INFO] [stdout] 93 ~ None => panic!("invalid handle idx: {}", idx.val), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/handle_table.rs:92:13 [INFO] [stdout] | [INFO] [stdout] 92 | &Some(ref v) => return v, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] = note: `#[warn(clippy::needless_borrowed_reference)]` on by default [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 92 - &Some(ref v) => return v, [INFO] [stdout] 92 + Some(v) => return v, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/private/mod.rs:192:9 [INFO] [stdout] | [INFO] [stdout] 192 | / match self { [INFO] [stdout] 193 | | &OnReadyEvent::AlreadyReady => true, [INFO] [stdout] 194 | | _ => false, [INFO] [stdout] 195 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 192 - match self { [INFO] [stdout] 193 - &OnReadyEvent::AlreadyReady => true, [INFO] [stdout] 194 - _ => false, [INFO] [stdout] 195 - } [INFO] [stdout] 192 + matches!(self, &OnReadyEvent::AlreadyReady) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/private/mod.rs:199:9 [INFO] [stdout] | [INFO] [stdout] 199 | / match self { [INFO] [stdout] 200 | | &OnReadyEvent::Empty => true, [INFO] [stdout] 201 | | _ => false, [INFO] [stdout] 202 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 199 - match self { [INFO] [stdout] 200 - &OnReadyEvent::Empty => true, [INFO] [stdout] 201 - _ => false, [INFO] [stdout] 202 - } [INFO] [stdout] 199 + matches!(self, &OnReadyEvent::Empty) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/handle_table.rs:99:18 [INFO] [stdout] | [INFO] [stdout] 99 | fn index_mut<'a>(&'a mut self, idx: Handle) -> &'a mut T { [INFO] [stdout] | ^^ ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 99 - fn index_mut<'a>(&'a mut self, idx: Handle) -> &'a mut T { [INFO] [stdout] 99 + fn index_mut(&mut self, idx: Handle) -> &mut T { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/handle_table.rs:101:37 [INFO] [stdout] | [INFO] [stdout] 101 | &mut Some(ref mut v) => return v, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 101 - &mut Some(ref mut v) => return v, [INFO] [stdout] 101 + &mut Some(ref mut v) => v, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you don't need to add `&` to all patterns [INFO] [stdout] --> src/handle_table.rs:100:9 [INFO] [stdout] | [INFO] [stdout] 100 | / match &mut self.slots[idx.val] { [INFO] [stdout] 101 | | &mut Some(ref mut v) => return v, [INFO] [stdout] 102 | | &mut None => panic!("invalid handle idx: {}", idx.val), [INFO] [stdout] 103 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stdout] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stdout] | [INFO] [stdout] 100 ~ match *&mut self.slots[idx.val] { [INFO] [stdout] 101 ~ Some(ref mut v) => return v, [INFO] [stdout] 102 ~ None => panic!("invalid handle idx: {}", idx.val), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing an `Option` with `None` [INFO] [stdout] --> src/private/mod.rs:273:15 [INFO] [stdout] | [INFO] [stdout] 273 | match ::std::mem::replace(&mut self.hub.borrow_mut().result, None) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider `Option::take()` instead: `self.hub.borrow_mut().result.take()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing an `Option` with `None` [INFO] [stdout] --> src/private/mod.rs:316:26 [INFO] [stdout] | [INFO] [stdout] 316 | let maybe_node = ::std::mem::replace(&mut self.node, None); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider `Option::take()` instead: `self.node.take()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/handle_table.rs:59:12 [INFO] [stdout] | [INFO] [stdout] 59 | if !result.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `result.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/handle_table.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 63 | return result; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 63 - return result; [INFO] [stdout] 63 + result [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing an `Option` with `None` [INFO] [stdout] --> src/handle_table.rs:58:22 [INFO] [stdout] | [INFO] [stdout] 58 | let result = ::std::mem::replace(&mut self.slots[handle.val], None); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider `Option::take()` instead: `self.slots[handle.val].take()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/handle_table.rs:70:36 [INFO] [stdout] | [INFO] [stdout] 70 | assert!(self.slots[id as usize].is_none()); [INFO] [stdout] | ^^^^^^^^^^^ help: try: `{ id }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/handle_table.rs:71:28 [INFO] [stdout] | [INFO] [stdout] 71 | self.slots[id as usize] = Some(val); [INFO] [stdout] | ^^^^^^^^^^^ help: try: `id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/handle_table.rs:90:14 [INFO] [stdout] | [INFO] [stdout] 90 | fn index<'a>(&'a self, idx: Handle) -> &'a T { [INFO] [stdout] | ^^ ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 90 - fn index<'a>(&'a self, idx: Handle) -> &'a T { [INFO] [stdout] 90 + fn index(&self, idx: Handle) -> &T { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/handle_table.rs:92:29 [INFO] [stdout] | [INFO] [stdout] 92 | &Some(ref v) => return v, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 92 - &Some(ref v) => return v, [INFO] [stdout] 92 + &Some(ref v) => v, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing an `Option` with `None` [INFO] [stdout] --> src/lib.rs:312:22 [INFO] [stdout] | [INFO] [stdout] 312 | let el = ::std::mem::replace(&mut *maybe_event_loop.borrow_mut(), None); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider `Option::take()` instead: `(*maybe_event_loop.borrow_mut()).take()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stdout] --> src/handle_table.rs:91:9 [INFO] [stdout] | [INFO] [stdout] 91 | / match &self.slots[idx.val] { [INFO] [stdout] 92 | | &Some(ref v) => return v, [INFO] [stdout] 93 | | &None => panic!("invalid handle idx: {}", idx.val), [INFO] [stdout] 94 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stdout] = note: `#[warn(clippy::match_ref_pats)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 91 ~ match self.slots[idx.val] { [INFO] [stdout] 92 ~ Some(ref v) => return v, [INFO] [stdout] 93 ~ None => panic!("invalid handle idx: {}", idx.val), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/handle_table.rs:92:13 [INFO] [stdout] | [INFO] [stdout] 92 | &Some(ref v) => return v, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] = note: `#[warn(clippy::needless_borrowed_reference)]` on by default [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 92 - &Some(ref v) => return v, [INFO] [stdout] 92 + Some(v) => return v, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/handle_table.rs:99:18 [INFO] [stdout] | [INFO] [stdout] 99 | fn index_mut<'a>(&'a mut self, idx: Handle) -> &'a mut T { [INFO] [stdout] | ^^ ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 99 - fn index_mut<'a>(&'a mut self, idx: Handle) -> &'a mut T { [INFO] [stdout] 99 + fn index_mut(&mut self, idx: Handle) -> &mut T { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/handle_table.rs:101:37 [INFO] [stdout] | [INFO] [stdout] 101 | &mut Some(ref mut v) => return v, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 101 - &mut Some(ref mut v) => return v, [INFO] [stdout] 101 + &mut Some(ref mut v) => v, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you don't need to add `&` to all patterns [INFO] [stdout] --> src/handle_table.rs:100:9 [INFO] [stdout] | [INFO] [stdout] 100 | / match &mut self.slots[idx.val] { [INFO] [stdout] 101 | | &mut Some(ref mut v) => return v, [INFO] [stdout] 102 | | &mut None => panic!("invalid handle idx: {}", idx.val), [INFO] [stdout] 103 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stdout] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stdout] | [INFO] [stdout] 100 ~ match *&mut self.slots[idx.val] { [INFO] [stdout] 101 ~ Some(ref mut v) => return v, [INFO] [stdout] 102 ~ None => panic!("invalid handle idx: {}", idx.val), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing an `Option` with `None` [INFO] [stdout] --> src/lib.rs:380:25 [INFO] [stdout] | [INFO] [stdout] 380 | let mut event = ::std::mem::replace(&mut self.events.borrow_mut()[event_handle.0].event, None) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider `Option::take()` instead: `self.events.borrow_mut()[event_handle.0].event.take()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/lib.rs:451:27 [INFO] [stdout] | [INFO] [stdout] 451 | fn fulfiller_dropped() -> () { () } [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/lib.rs:456:9 [INFO] [stdout] | [INFO] [stdout] 456 | ::std::io::Error::new(::std::io::ErrorKind::Other, "Promise fulfiller was dropped.") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] = note: `#[warn(clippy::io_other_error)]` on by default [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 456 - ::std::io::Error::new(::std::io::ErrorKind::Other, "Promise fulfiller was dropped.") [INFO] [stdout] 456 + ::std::io::Error::other("Promise fulfiller was dropped.") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing [INFO] [stdout] --> src/lib.rs:207:9 [INFO] [stdout] | [INFO] [stdout] 207 | drop(wait_scope); [INFO] [stdout] | ^^^^^----------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `&WaitScope` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dropping_references)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 207 - drop(wait_scope); [INFO] [stdout] 207 + let _ = wait_scope; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing an `Option` with `None` [INFO] [stdout] --> src/lib.rs:312:22 [INFO] [stdout] | [INFO] [stdout] 312 | let el = ::std::mem::replace(&mut *maybe_event_loop.borrow_mut(), None); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider `Option::take()` instead: `(*maybe_event_loop.borrow_mut()).take()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing an `Option` with `None` [INFO] [stdout] --> src/lib.rs:380:25 [INFO] [stdout] | [INFO] [stdout] 380 | let mut event = ::std::mem::replace(&mut self.events.borrow_mut()[event_handle.0].event, None) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider `Option::take()` instead: `self.events.borrow_mut()[event_handle.0].event.take()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/lib.rs:451:27 [INFO] [stdout] | [INFO] [stdout] 451 | fn fulfiller_dropped() -> () { () } [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/lib.rs:456:9 [INFO] [stdout] | [INFO] [stdout] 456 | ::std::io::Error::new(::std::io::ErrorKind::Other, "Promise fulfiller was dropped.") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] = note: `#[warn(clippy::io_other_error)]` on by default [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 456 - ::std::io::Error::new(::std::io::ErrorKind::Other, "Promise fulfiller was dropped.") [INFO] [stdout] 456 + ::std::io::Error::other("Promise fulfiller was dropped.") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/private/promise_node.rs:157:29 [INFO] [stdout] | [INFO] [stdout] 157 | / ... ::std::mem::replace(&mut *strong_self_ptr.borrow_mut(), [INFO] [stdout] 158 | | ... ChainState::Step2(inner, None)); [INFO] [stdout] | |_________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 157 | let _ = ::std::mem::replace(&mut *strong_self_ptr.borrow_mut(), [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing [INFO] [stdout] --> src/lib.rs:207:9 [INFO] [stdout] | [INFO] [stdout] 207 | drop(wait_scope); [INFO] [stdout] | ^^^^^----------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `&WaitScope` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dropping_references)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 207 - drop(wait_scope); [INFO] [stdout] 207 + let _ = wait_scope; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used [INFO] [stdout] --> src/private/promise_node.rs:157:29 [INFO] [stdout] | [INFO] [stdout] 157 | / ... ::std::mem::replace(&mut *strong_self_ptr.borrow_mut(), [INFO] [stdout] 158 | | ... ChainState::Step2(inner, None)); [INFO] [stdout] | |_________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: if you don't need the old value, you can just assign the new value directly [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 157 | let _ = ::std::mem::replace(&mut *strong_self_ptr.borrow_mut(), [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> tests/promises.rs:40:9 [INFO] [stdout] | [INFO] [stdout] 40 | try!(promise.wait(wait_scope, &mut ClosedEventPort(()))); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> tests/promises.rs:54:21 [INFO] [stdout] | [INFO] [stdout] 54 | let value = try!(promise.wait(wait_scope, &mut ClosedEventPort(()))); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> tests/promises.rs:125:21 [INFO] [stdout] | [INFO] [stdout] 125 | let value = try!(promise3.wait(wait_scope, &mut ClosedEventPort(()))); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> tests/promises.rs:135:49 [INFO] [stdout] | [INFO] [stdout] 135 | let promise2: Promise<&'static str, Box<::std::error::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 [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] 135 | let promise2: Promise<&'static str, Box> = [INFO] [stdout] | +++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> tests/promises.rs:39:9 [INFO] [stdout] | [INFO] [stdout] 39 | assert_eq!(done.get(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_assert_comparison)]` on by default [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 39 - assert_eq!(done.get(), false); [INFO] [stdout] 39 + assert!(!done.get()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> tests/promises.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | assert_eq!(done.get(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 41 - assert_eq!(done.get(), true); [INFO] [stdout] 41 + assert!(done.get()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> tests/promises.rs:66:13 [INFO] [stdout] | [INFO] [stdout] 66 | return Ok(x + 1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 66 - return Ok(x + 1); [INFO] [stdout] 66 + Ok(x + 1) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> tests/promises.rs:199:27 [INFO] [stdout] | [INFO] [stdout] 199 | let mut promises: Vec>>>> = Vec::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing an `Option` with `None` [INFO] [stdout] --> tests/promises.rs:262:27 [INFO] [stdout] | [INFO] [stdout] 262 | let maybe_p = ::std::mem::replace(&mut *p.borrow_mut(), None); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider `Option::take()` instead: `(*p.borrow_mut()).take()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none [INFO] [stdout] = note: `#[warn(clippy::mem_replace_option_with_none)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> tests/promises.rs:467:9 [INFO] [stdout] | [INFO] [stdout] 467 | assert_eq!(bad_thing_happened.get(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 467 - assert_eq!(bad_thing_happened.get(), false); [INFO] [stdout] 467 + assert!(!bad_thing_happened.get()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> tests/promises.rs:499:13 [INFO] [stdout] | [INFO] [stdout] 499 | return Ok(123); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 499 - return Ok(123); [INFO] [stdout] 499 + Ok(123) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> tests/promises.rs:512:13 [INFO] [stdout] | [INFO] [stdout] 512 | return Ok(456); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 512 - return Ok(456); [INFO] [stdout] 512 + Ok(456) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> tests/promises.rs:552:9 [INFO] [stdout] | [INFO] [stdout] 552 | Ok(foo(100000).wait(wait_scope, &mut event_port).unwrap()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] = note: `#[warn(clippy::unit_arg)]` on by default [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 552 ~ foo(100000).wait(wait_scope, &mut event_port).unwrap(); [INFO] [stdout] 553 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> tests/promises.rs:636:9 [INFO] [stdout] | [INFO] [stdout] 636 | assert_eq!(false, bad_thing_happened.get()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 636 - assert_eq!(false, bad_thing_happened.get()); [INFO] [stdout] 636 + assert!(!bad_thing_happened.get()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> tests/promises.rs:719:9 [INFO] [stdout] | [INFO] [stdout] 719 | assert_eq!(false, called.get()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 719 - assert_eq!(false, called.get()); [INFO] [stdout] 719 + assert!(!called.get()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> tests/promises.rs:724:9 [INFO] [stdout] | [INFO] [stdout] 724 | assert_eq!(true, called.get()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 724 - assert_eq!(true, called.get()); [INFO] [stdout] 724 + assert!(called.get()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.59s [INFO] running `Command { std: "docker" "inspect" "0ec7a6c352b90cde66a28ed5c1e2f7b1561ed4fb27c97fdd4c93da6ca86f1177", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0ec7a6c352b90cde66a28ed5c1e2f7b1561ed4fb27c97fdd4c93da6ca86f1177", kill_on_drop: false }` [INFO] [stdout] 0ec7a6c352b90cde66a28ed5c1e2f7b1561ed4fb27c97fdd4c93da6ca86f1177