[INFO] fetching crate futures-intrusive 0.5.0... [INFO] linting futures-intrusive-0.5.0 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate futures-intrusive 0.5.0 into /workspace/builds/worker-1-tc1/source [INFO] started tweaking crates.io crate futures-intrusive 0.5.0 [INFO] removed 0 missing examples [INFO] finished tweaking crates.io crate futures-intrusive 0.5.0 [INFO] tweaked toml for crates.io crate futures-intrusive 0.5.0 written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate futures-intrusive 0.5.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] crate crates.io crate futures-intrusive 0.5.0 already has a lockfile, it will not be regenerated [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] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded unicode-xid v0.2.1 [INFO] [stderr] Downloaded proc-macro2 v1.0.24 [INFO] [stderr] Downloaded parking_lot_core v0.9.4 [INFO] [stderr] Downloaded quote v1.0.7 [INFO] [stderr] Downloaded socket2 v0.4.7 [INFO] [stderr] Downloaded cast v0.2.3 [INFO] [stderr] Downloaded futures-executor v0.3.8 [INFO] [stderr] Downloaded event-listener v2.5.1 [INFO] [stderr] Downloaded polling v2.0.2 [INFO] [stderr] Downloaded nb-connect v1.0.2 [INFO] [stderr] Downloaded cache-padded v1.1.1 [INFO] [stderr] Downloaded async-global-executor v1.4.3 [INFO] [stderr] Downloaded async-executor v1.4.0 [INFO] [stderr] Downloaded vec-arena v1.0.0 [INFO] [stderr] Downloaded cc v1.0.63 [INFO] [stderr] Downloaded memchr v2.3.4 [INFO] [stderr] Downloaded async-io v1.2.0 [INFO] [stderr] Downloaded blocking v1.0.2 [INFO] [stderr] Downloaded wepoll-sys v3.0.1 [INFO] [stderr] Downloaded regex-automata v0.1.9 [INFO] [stderr] Downloaded criterion v0.3.3 [INFO] [stderr] Downloaded itertools v0.9.0 [INFO] [stderr] Downloaded async-std v1.7.0 [INFO] [stderr] Downloaded bumpalo v3.4.0 [INFO] [stderr] Downloaded syn v1.0.67 [INFO] [stderr] Downloaded rayon v1.5.0 [INFO] [stderr] Downloaded serde_json v1.0.59 [INFO] [stderr] Downloaded futures-util v0.3.8 [INFO] [stderr] Downloaded serde_cbor v0.11.1 [INFO] [stderr] Downloaded regex-syntax v0.6.21 [INFO] [stderr] Downloaded bstr v0.2.14 [INFO] [stderr] Downloaded wasm-bindgen v0.2.68 [INFO] [stderr] Downloaded serde v1.0.117 [INFO] [stderr] Downloaded js-sys v0.3.45 [INFO] [stderr] Downloaded windows_x86_64_gnullvm v0.42.0 [INFO] [stderr] Downloaded regex v1.4.2 [INFO] [stderr] Downloaded crossbeam-channel v0.5.0 [INFO] [stderr] Downloaded serde_derive v1.0.117 [INFO] [stderr] Downloaded crossbeam-utils v0.8.0 [INFO] [stderr] Downloaded libc v0.2.135 [INFO] [stderr] Downloaded tokio v1.19.2 [INFO] [stderr] Downloaded rayon-core v1.9.0 [INFO] [stderr] Downloaded windows_aarch64_gnullvm v0.42.0 [INFO] [stderr] Downloaded futures v0.3.8 [INFO] [stderr] Downloaded getrandom v0.1.15 [INFO] [stderr] Downloaded async-task v4.0.3 [INFO] [stderr] Downloaded windows_x86_64_msvc v0.42.0 [INFO] [stderr] Downloaded crossbeam-epoch v0.9.0 [INFO] [stderr] Downloaded tinytemplate v1.1.0 [INFO] [stderr] Downloaded futures-core v0.3.8 [INFO] [stderr] Downloaded windows_aarch64_msvc v0.42.0 [INFO] [stderr] Downloaded windows_i686_msvc v0.42.0 [INFO] [stderr] Downloaded web-sys v0.3.45 [INFO] [stderr] Downloaded windows_i686_gnu v0.42.0 [INFO] [stderr] Downloaded windows_x86_64_gnu v0.42.0 [INFO] [stderr] Downloaded futures-io v0.3.8 [INFO] [stderr] Downloaded futures-task v0.3.8 [INFO] [stderr] Downloaded pin-project-internal v1.0.2 [INFO] [stderr] Downloaded pin-project v1.0.2 [INFO] [stderr] Downloaded async-mutex v1.4.0 [INFO] [stderr] Downloaded async-channel v1.5.1 [INFO] [stderr] Downloaded csv v1.1.4 [INFO] [stderr] Downloaded atomic-waker v1.0.0 [INFO] [stderr] Downloaded futures-lite v1.11.2 [INFO] [stderr] Downloaded pin-project-lite v0.1.11 [INFO] [stderr] Downloaded criterion-plot v0.4.3 [INFO] [stderr] Downloaded byteorder v1.3.4 [INFO] [stderr] Downloaded wasm-bindgen-macro-support v0.2.68 [INFO] [stderr] Downloaded plotters v0.2.15 [INFO] [stderr] Downloaded crossbeam-deque v0.8.0 [INFO] [stderr] Downloaded half v1.6.0 [INFO] [stderr] Downloaded futures-sink v0.3.8 [INFO] [stderr] Downloaded slab v0.4.2 [INFO] [stderr] Downloaded fastrand v1.4.0 [INFO] [stderr] Downloaded waker-fn v1.1.0 [INFO] [stderr] Downloaded wasm-bindgen-futures v0.4.18 [INFO] [stderr] Downloaded oorandom v11.1.2 [INFO] [stderr] Downloaded wasm-bindgen-shared v0.2.68 [INFO] [stderr] Downloaded wasm-bindgen-macro v0.2.68 [INFO] [stderr] Downloaded const_fn v0.4.3 [INFO] [stderr] Downloaded futures-macro v0.3.8 [INFO] [stderr] Downloaded once_cell v1.5.2 [INFO] [stderr] Downloaded concurrent-queue v1.2.2 [INFO] [stderr] Downloaded parking v2.0.0 [INFO] [stderr] Downloaded wasm-bindgen-backend v0.2.68 [INFO] [stderr] Downloaded futures-channel v0.3.8 [INFO] [stderr] Downloaded itoa v0.4.6 [INFO] [stderr] Downloaded walkdir v2.3.1 [INFO] [stderr] Downloaded crossbeam-deque v0.7.3 [INFO] [stderr] Downloaded proc-macro-nested v0.1.6 [INFO] [stderr] Downloaded lock_api v0.4.6 [INFO] [stderr] Downloaded gloo-timers v0.2.1 [INFO] [stderr] Downloaded futures-test v0.3.8 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] 7d2eedd3f76dd6a73c6b782874d65a4a83d3ed3aebf2a2ac23063827a1792077 [INFO] running `Command { std: "docker" "start" "-a" "7d2eedd3f76dd6a73c6b782874d65a4a83d3ed3aebf2a2ac23063827a1792077", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "7d2eedd3f76dd6a73c6b782874d65a4a83d3ed3aebf2a2ac23063827a1792077", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7d2eedd3f76dd6a73c6b782874d65a4a83d3ed3aebf2a2ac23063827a1792077", kill_on_drop: false }` [INFO] [stdout] 7d2eedd3f76dd6a73c6b782874d65a4a83d3ed3aebf2a2ac23063827a1792077 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] 3fe7664d915b74061bc9319a8c01ec8682c2093a48b3ccbb85f60c42583bc90f [INFO] running `Command { std: "docker" "start" "-a" "3fe7664d915b74061bc9319a8c01ec8682c2093a48b3ccbb85f60c42583bc90f", kill_on_drop: false }` [INFO] [stderr] Compiling autocfg v1.0.1 [INFO] [stderr] Compiling libc v0.2.135 [INFO] [stderr] Compiling memchr v2.3.4 [INFO] [stderr] Compiling proc-macro2 v1.0.24 [INFO] [stderr] Compiling unicode-xid v0.2.1 [INFO] [stderr] Checking futures-core v0.3.8 [INFO] [stderr] Compiling syn v1.0.67 [INFO] [stderr] Checking scopeguard v1.1.0 [INFO] [stderr] Checking once_cell v1.5.2 [INFO] [stderr] Compiling const_fn v0.4.3 [INFO] [stderr] Checking futures-io v0.3.8 [INFO] [stderr] Compiling log v0.4.11 [INFO] [stderr] Compiling serde v1.0.117 [INFO] [stderr] Checking cache-padded v1.1.1 [INFO] [stderr] Compiling proc-macro-hack v0.5.19 [INFO] [stderr] Compiling proc-macro-nested v0.1.6 [INFO] [stderr] Checking waker-fn v1.1.0 [INFO] [stderr] Checking concurrent-queue v1.2.2 [INFO] [stderr] Checking fastrand v1.4.0 [INFO] [stderr] Checking parking v2.0.0 [INFO] [stderr] Compiling ryu v1.0.5 [INFO] [stderr] Compiling byteorder v1.3.4 [INFO] [stderr] Checking pin-project-lite v0.1.11 [INFO] [stderr] Compiling rayon-core v1.9.0 [INFO] [stderr] Compiling getrandom v0.1.15 [INFO] [stderr] Compiling parking_lot_core v0.9.4 [INFO] [stderr] Checking slab v0.4.2 [INFO] [stderr] Checking futures-sink v0.3.8 [INFO] [stderr] Compiling cast v0.2.3 [INFO] [stderr] Checking futures-task v0.3.8 [INFO] [stderr] Checking futures-channel v0.3.8 [INFO] [stderr] Checking event-listener v2.5.1 [INFO] [stderr] Compiling memoffset v0.5.6 [INFO] [stderr] Compiling crossbeam-utils v0.8.0 [INFO] [stderr] Compiling crossbeam-utils v0.7.2 [INFO] [stderr] Checking futures-lite v1.11.2 [INFO] [stderr] Compiling crossbeam-epoch v0.8.2 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Checking async-task v4.0.3 [INFO] [stderr] Checking smallvec v1.10.0 [INFO] [stderr] Checking either v1.6.1 [INFO] [stderr] Compiling serde_json v1.0.59 [INFO] [stderr] Checking vec-arena v1.0.0 [INFO] [stderr] Compiling bitflags v1.2.1 [INFO] [stderr] Checking itoa v0.4.6 [INFO] [stderr] Compiling rayon v1.5.0 [INFO] [stderr] Checking lock_api v0.4.6 [INFO] [stderr] Compiling quote v1.0.7 [INFO] [stderr] Checking regex-automata v0.1.9 [INFO] [stderr] Checking unicode-width v0.1.8 [INFO] [stderr] Compiling serde_derive v1.0.117 [INFO] [stderr] Checking itertools v0.9.0 [INFO] [stderr] Checking textwrap v0.11.0 [INFO] [stderr] Checking num_cpus v1.13.0 [INFO] [stderr] Checking polling v2.0.2 [INFO] [stderr] Checking nb-connect v1.0.2 [INFO] [stderr] Checking signal-hook-registry v1.2.2 [INFO] [stderr] Checking rand_core v0.5.1 [INFO] [stderr] Checking async-channel v1.5.1 [INFO] [stderr] Checking csv-core v0.1.10 [INFO] [stderr] Checking ppv-lite86 v0.2.10 [INFO] [stderr] Checking half v1.6.0 [INFO] [stderr] Checking atomic-waker v1.0.0 [INFO] [stderr] Checking regex-syntax v0.6.21 [INFO] [stderr] Checking walkdir v2.3.1 [INFO] [stderr] Checking parking_lot v0.12.1 [INFO] [stderr] Checking clap v2.33.3 [INFO] [stderr] Checking socket2 v0.4.7 [INFO] [stderr] Checking mio v0.8.4 [INFO] [stderr] Checking async-io v1.2.0 [INFO] [stderr] Checking async-executor v1.4.0 [INFO] [stderr] Checking blocking v1.0.2 [INFO] [stderr] Checking crossbeam-queue v0.2.3 [INFO] [stderr] Checking crossbeam-epoch v0.9.0 [INFO] [stderr] Checking crossbeam-channel v0.5.0 [INFO] [stderr] Checking crossbeam-channel v0.4.4 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking crossbeam-deque v0.7.3 [INFO] [stderr] Checking async-mutex v1.4.0 [INFO] [stderr] Checking kv-log-macro v1.0.7 [INFO] [stderr] Checking bytes v1.2.1 [INFO] [stderr] Checking crossbeam-deque v0.8.0 [INFO] [stderr] Checking oorandom v11.1.2 [INFO] [stderr] Checking rand_chacha v0.2.2 [INFO] [stderr] Checking pin-project-lite v0.2.9 [INFO] [stderr] Checking signal-hook v0.1.16 [INFO] [stderr] Checking futures-intrusive v0.5.0 (/opt/rustwide/workdir) [INFO] [stderr] Checking async-global-executor v1.4.3 [INFO] [stderr] Checking plotters v0.2.15 [INFO] [stderr] Checking criterion-plot v0.4.3 [INFO] [stderr] Checking async-std v1.7.0 [INFO] [stderr] Checking rand v0.7.3 [INFO] [stderr] Checking crossbeam v0.7.3 [INFO] [stdout] warning: docs for unsafe trait missing `# Safety` section [INFO] [stdout] --> src/buffer/real_array.rs:41:1 [INFO] [stdout] | [INFO] [stdout] 41 | pub unsafe trait RealArray { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_safety_doc [INFO] [stdout] = note: `#[warn(clippy::missing_safety_doc)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/buffer/ring_buffer.rs:240:21 [INFO] [stdout] | [INFO] [stdout] 240 | assert!(self.buffer.len() > 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.buffer.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] [stderr] Checking regex v1.4.2 [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/buffer/ring_buffer.rs:310:27 [INFO] [stdout] | [INFO] [stdout] 310 | debug_assert!(self.buffer.len() > 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.buffer.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] [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/intrusive_double_linked_list.rs:74:9 [INFO] [stdout] | [INFO] [stdout] 74 | / match self.head { [INFO] [stdout] 75 | | Some(mut head) => head.as_mut().prev = Some(node.into()), [INFO] [stdout] 76 | | None => {} [INFO] [stdout] 77 | | }; [INFO] [stdout] | |_________^ help: try: `if let Some(mut head) = self.head { head.as_mut().prev = Some(node.into()) }` [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] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/intrusive_double_linked_list.rs:206:12 [INFO] [stdout] | [INFO] [stdout] 206 | if !self.head.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `self.head.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: match expression looks like `matches!` macro [INFO] [stdout] --> src/channel/error.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | / match self { [INFO] [stdout] 24 | | Self::Empty => true, [INFO] [stdout] 25 | | _ => false, [INFO] [stdout] 26 | | } [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] 23 - match self { [INFO] [stdout] 24 - Self::Empty => true, [INFO] [stdout] 25 - _ => false, [INFO] [stdout] 26 - } [INFO] [stdout] 23 + matches!(self, Self::Empty) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/channel/error.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | / match self { [INFO] [stdout] 32 | | Self::Closed => true, [INFO] [stdout] 33 | | _ => false, [INFO] [stdout] 34 | | } [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] 31 - match self { [INFO] [stdout] 32 - Self::Closed => true, [INFO] [stdout] 33 - _ => false, [INFO] [stdout] 34 - } [INFO] [stdout] 31 + matches!(self, Self::Closed) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/channel/error.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 59 | / match self { [INFO] [stdout] 60 | | Self::Full(_) => true, [INFO] [stdout] 61 | | _ => false, [INFO] [stdout] 62 | | } [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] 59 - match self { [INFO] [stdout] 60 - Self::Full(_) => true, [INFO] [stdout] 61 - _ => false, [INFO] [stdout] 62 - } [INFO] [stdout] 59 + matches!(self, Self::Full(_)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/channel/error.rs:67:9 [INFO] [stdout] | [INFO] [stdout] 67 | / match self { [INFO] [stdout] 68 | | Self::Closed(_) => true, [INFO] [stdout] 69 | | _ => false, [INFO] [stdout] 70 | | } [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] 67 - match self { [INFO] [stdout] 68 - Self::Closed(_) => true, [INFO] [stdout] 69 - _ => false, [INFO] [stdout] 70 - } [INFO] [stdout] 67 + matches!(self, Self::Closed(_)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/channel/channel_future.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | / match self { [INFO] [stdout] 23 | | Self::NewlyClosed => true, [INFO] [stdout] 24 | | _ => false, [INFO] [stdout] 25 | | } [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] 22 - match self { [INFO] [stdout] 23 - Self::NewlyClosed => true, [INFO] [stdout] 24 - _ => false, [INFO] [stdout] 25 - } [INFO] [stdout] 22 + matches!(self, Self::NewlyClosed) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/channel/channel_future.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | / match self { [INFO] [stdout] 31 | | Self::AlreadyClosed => true, [INFO] [stdout] 32 | | _ => false, [INFO] [stdout] 33 | | } [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] 30 - match self { [INFO] [stdout] 31 - Self::AlreadyClosed => true, [INFO] [stdout] 32 - _ => false, [INFO] [stdout] 33 - } [INFO] [stdout] 30 + matches!(self, Self::AlreadyClosed) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `GenericOneshotChannel` [INFO] [stdout] --> src/channel/oneshot.rs:174:5 [INFO] [stdout] | [INFO] [stdout] 174 | / pub fn new() -> GenericOneshotChannel { [INFO] [stdout] 175 | | GenericOneshotChannel { [INFO] [stdout] 176 | | inner: Mutex::new(ChannelState::new()), [INFO] [stdout] 177 | | } [INFO] [stdout] 178 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 172 + impl Default for GenericOneshotChannel { [INFO] [stdout] 173 + fn default() -> Self { [INFO] [stdout] 174 + Self::new() [INFO] [stdout] 175 + } [INFO] [stdout] 176 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `GenericOneshotBroadcastChannel` [INFO] [stdout] --> src/channel/oneshot_broadcast.rs:181:5 [INFO] [stdout] | [INFO] [stdout] 181 | / pub fn new() -> GenericOneshotBroadcastChannel { [INFO] [stdout] 182 | | GenericOneshotBroadcastChannel { [INFO] [stdout] 183 | | inner: Mutex::new(ChannelState::new()), [INFO] [stdout] 184 | | } [INFO] [stdout] 185 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 176 + impl Default for GenericOneshotBroadcastChannel [INFO] [stdout] 177 + where [INFO] [stdout] 178 + T: Clone, [INFO] [stdout] 179 + { [INFO] [stdout] 180 + fn default() -> Self { [INFO] [stdout] 181 + Self::new() [INFO] [stdout] 182 + } [INFO] [stdout] 183 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/channel/state_broadcast.rs:210:49 [INFO] [stdout] | [INFO] [stdout] 210 | if self.is_closed || self.state_id.0 == core::u64::MAX { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 210 - if self.is_closed || self.state_id.0 == core::u64::MAX { [INFO] [stdout] 210 + if self.is_closed || self.state_id.0 == u64::MAX { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `GenericStateBroadcastChannel` [INFO] [stdout] --> src/channel/state_broadcast.rs:349:5 [INFO] [stdout] | [INFO] [stdout] 349 | / pub fn new() -> GenericStateBroadcastChannel [INFO] [stdout] 350 | | where [INFO] [stdout] 351 | | T: Clone, [INFO] [stdout] ... | [INFO] [stdout] 356 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 344 + impl Default for GenericStateBroadcastChannel [INFO] [stdout] 345 + where [INFO] [stdout] 346 + T: Clone, [INFO] [stdout] 347 + T: Clone, [INFO] [stdout] 348 + { [INFO] [stdout] 349 + fn default() -> Self { [INFO] [stdout] 350 + Self::new() [INFO] [stdout] 351 + } [INFO] [stdout] 352 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/channel/state_broadcast.rs:635:31 [INFO] [stdout] | [INFO] [stdout] 635 | if old_size > (core::isize::MAX) as usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 635 - if old_size > (core::isize::MAX) as usize { [INFO] [stdout] 635 + if old_size > isize::MAX as usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/channel/state_broadcast.rs:668:31 [INFO] [stdout] | [INFO] [stdout] 668 | if old_size > (core::isize::MAX) as usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 668 - if old_size > (core::isize::MAX) as usize { [INFO] [stdout] 668 + if old_size > isize::MAX as usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/channel/mpmc.rs:164:21 [INFO] [stdout] | [INFO] [stdout] 164 | return (Poll::Pending, None, waker); [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] 164 - return (Poll::Pending, None, waker); [INFO] [stdout] 164 + (Poll::Pending, None, waker) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `GenericChannel` [INFO] [stdout] --> src/channel/mpmc.rs:407:5 [INFO] [stdout] | [INFO] [stdout] 407 | / pub fn new() -> Self { [INFO] [stdout] 408 | | GenericChannel { [INFO] [stdout] 409 | | inner: Mutex::new(ChannelState::new(A::new())), [INFO] [stdout] 410 | | } [INFO] [stdout] 411 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 401 + impl Default for GenericChannel [INFO] [stdout] 402 + where [INFO] [stdout] 403 + A: RingBuf, [INFO] [stdout] 404 + { [INFO] [stdout] 405 + fn default() -> Self { [INFO] [stdout] 406 + Self::new() [INFO] [stdout] 407 + } [INFO] [stdout] 408 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/channel/mpmc.rs:809:31 [INFO] [stdout] | [INFO] [stdout] 809 | if old_size > (core::isize::MAX) as usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 809 - if old_size > (core::isize::MAX) as usize { [INFO] [stdout] 809 + if old_size > isize::MAX as usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/channel/mpmc.rs:842:31 [INFO] [stdout] | [INFO] [stdout] 842 | if old_size > (core::isize::MAX) as usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 842 - if old_size > (core::isize::MAX) as usize { [INFO] [stdout] 842 + if old_size > isize::MAX as usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: inequality checks against true can be replaced by a negation [INFO] [stdout] --> src/sync/manual_reset_event.rs:64:12 [INFO] [stdout] | [INFO] [stdout] 64 | if self.is_set != true { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `!self.is_set` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/sync/mutex.rs:454:25 [INFO] [stdout] | [INFO] [stdout] 454 | mutex: Some(&self), [INFO] [stdout] | ^^^^^ help: change this to: `self` [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] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/sync/semaphore.rs:487:29 [INFO] [stdout] | [INFO] [stdout] 487 | semaphore: Some(&self), [INFO] [stdout] | ^^^^^ help: change this to: `self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `MockClock` [INFO] [stdout] --> src/timer/clock.rs:44:5 [INFO] [stdout] | [INFO] [stdout] 44 | / pub const fn new() -> MockClock { [INFO] [stdout] 45 | | MockClock { [INFO] [stdout] 46 | | now: AtomicUsize::new(0), [INFO] [stdout] 47 | | } [INFO] [stdout] 48 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 41 + impl Default for MockClock { [INFO] [stdout] 42 + fn default() -> Self { [INFO] [stdout] 43 + Self::new() [INFO] [stdout] 44 + } [INFO] [stdout] 45 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/timer/clock.rs:52:25 [INFO] [stdout] | [INFO] [stdout] 52 | if timestamp > (core::usize::MAX as u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 52 - if timestamp > (core::usize::MAX as u64) { [INFO] [stdout] 52 + if timestamp > (usize::MAX as u64) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `StdClock` [INFO] [stdout] --> src/timer/clock.rs:85:9 [INFO] [stdout] | [INFO] [stdout] 85 | / pub fn new() -> StdClock { [INFO] [stdout] 86 | | StdClock { [INFO] [stdout] 87 | | start: Instant::now(), [INFO] [stdout] 88 | | } [INFO] [stdout] 89 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 83 ~ impl Default for StdClock { [INFO] [stdout] 84 + fn default() -> Self { [INFO] [stdout] 85 + Self::new() [INFO] [stdout] 86 + } [INFO] [stdout] 87 + } [INFO] [stdout] 88 + [INFO] [stdout] 89 ~ impl StdClock { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/timer/mod.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 | mod timer; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-canonical implementation of `partial_cmp` on an `Ord` type [INFO] [stdout] --> src/timer/timer.rs:60:1 [INFO] [stdout] | [INFO] [stdout] 60 | / impl PartialOrd for TimerQueueEntry { [INFO] [stdout] 61 | | fn partial_cmp( [INFO] [stdout] 62 | | &self, [INFO] [stdout] 63 | | other: &TimerQueueEntry, [INFO] [stdout] ... | [INFO] [stdout] 68 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_canonical_partial_ord_impl [INFO] [stdout] = note: `#[warn(clippy::non_canonical_partial_ord_impl)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 64 - ) -> Option { [INFO] [stdout] 65 - // Compare timer queue entries by expiration time [INFO] [stdout] 66 - self.expiry.partial_cmp(&other.expiry) [INFO] [stdout] 67 - } [INFO] [stdout] 64 + ) -> Option { Some(self.cmp(other)) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/timer/timer.rs:291:50 [INFO] [stdout] | [INFO] [stdout] 291 | core::cmp::min(duration.as_millis(), core::u64::MAX as u128) as u64; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 291 - core::cmp::min(duration.as_millis(), core::u64::MAX as u128) as u64; [INFO] [stdout] 291 + core::cmp::min(duration.as_millis(), u64::MAX as u128) as u64; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/timer/timer.rs:300:30 [INFO] [stdout] | [INFO] [stdout] 300 | LocalTimer::deadline(&*self, deadline) [INFO] [stdout] | ^^^^^^ help: if you would like to reborrow, try removing `&*`: `self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] = note: `#[warn(clippy::borrow_deref_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/timer/timer.rs:320:25 [INFO] [stdout] | [INFO] [stdout] 320 | Timer::deadline(&*self, deadline) [INFO] [stdout] | ^^^^^^ help: if you would like to reborrow, try removing `&*`: `self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/utils/mod.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | if waker_option [INFO] [stdout] | ________^ [INFO] [stdout] 9 | | .as_ref() [INFO] [stdout] 10 | | .map_or(true, |stored_waker| !stored_waker.will_wake(cx.waker())) [INFO] [stdout] | |_________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_none_or` instead [INFO] [stdout] | [INFO] [stdout] 10 - .map_or(true, |stored_waker| !stored_waker.will_wake(cx.waker())) [INFO] [stdout] 10 + .is_none_or(|stored_waker| !stored_waker.will_wake(cx.waker())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/channel/oneshot.rs:202:20 [INFO] [stdout] | [INFO] [stdout] 202 | pub fn receive(&self) -> ChannelReceiveFuture { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 202 | pub fn receive(&self) -> ChannelReceiveFuture<'_, MutexType, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/channel/oneshot_broadcast.rs:209:20 [INFO] [stdout] | [INFO] [stdout] 209 | pub fn receive(&self) -> ChannelReceiveFuture { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 209 | pub fn receive(&self) -> ChannelReceiveFuture<'_, MutexType, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/channel/state_broadcast.rs:387:9 [INFO] [stdout] | [INFO] [stdout] 387 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] 388 | state_id: StateId, [INFO] [stdout] 389 | ) -> StateReceiveFuture { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 389 | ) -> StateReceiveFuture<'_, MutexType, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/channel/mpmc.rs:426:17 [INFO] [stdout] | [INFO] [stdout] 426 | pub fn send(&self, value: T) -> ChannelSendFuture { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 426 | pub fn send(&self, value: T) -> ChannelSendFuture<'_, MutexType, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/channel/mpmc.rs:459:20 [INFO] [stdout] | [INFO] [stdout] 459 | pub fn receive(&self) -> ChannelReceiveFuture { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 459 | pub fn receive(&self) -> ChannelReceiveFuture<'_, MutexType, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/channel/mpmc.rs:486:19 [INFO] [stdout] | [INFO] [stdout] 486 | pub fn stream(&self) -> ChannelStream { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 486 | pub fn stream(&self) -> ChannelStream<'_, MutexType, T, A> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/sync/manual_reset_event.rs:200:17 [INFO] [stdout] | [INFO] [stdout] 200 | pub fn wait(&self) -> GenericWaitForEventFuture { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 200 | pub fn wait(&self) -> GenericWaitForEventFuture<'_, MutexType> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/timer/timer.rs:194:14 [INFO] [stdout] | [INFO] [stdout] 194 | fn delay(&self, delay: Duration) -> LocalTimerFuture; [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 194 | fn delay(&self, delay: Duration) -> LocalTimerFuture<'_>; [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/timer/timer.rs:198:17 [INFO] [stdout] | [INFO] [stdout] 198 | fn deadline(&self, timestamp: u64) -> LocalTimerFuture; [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 198 | fn deadline(&self, timestamp: u64) -> LocalTimerFuture<'_>; [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/timer/timer.rs:210:14 [INFO] [stdout] | [INFO] [stdout] 210 | fn delay(&self, delay: Duration) -> TimerFuture; [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 210 | fn delay(&self, delay: Duration) -> TimerFuture<'_>; [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/timer/timer.rs:214:17 [INFO] [stdout] | [INFO] [stdout] 214 | fn deadline(&self, timestamp: u64) -> TimerFuture; [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 214 | fn deadline(&self, timestamp: u64) -> TimerFuture<'_>; [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/timer/timer.rs:298:14 [INFO] [stdout] | [INFO] [stdout] 298 | fn delay(&self, delay: Duration) -> LocalTimerFuture { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 298 | fn delay(&self, delay: Duration) -> LocalTimerFuture<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/timer/timer.rs:305:17 [INFO] [stdout] | [INFO] [stdout] 305 | fn deadline(&self, timestamp: u64) -> LocalTimerFuture { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 305 | fn deadline(&self, timestamp: u64) -> LocalTimerFuture<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/timer/timer.rs:318:14 [INFO] [stdout] | [INFO] [stdout] 318 | fn delay(&self, delay: Duration) -> TimerFuture { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 318 | fn delay(&self, delay: Duration) -> TimerFuture<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/timer/timer.rs:325:17 [INFO] [stdout] | [INFO] [stdout] 325 | fn deadline(&self, timestamp: u64) -> TimerFuture { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 325 | fn deadline(&self, timestamp: u64) -> TimerFuture<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking bstr v0.2.14 [INFO] [stderr] Checking serde_cbor v0.11.1 [INFO] [stderr] Checking csv v1.1.4 [INFO] [stderr] Compiling pin-project-internal v1.0.2 [INFO] [stderr] Compiling futures-macro v0.3.8 [INFO] [stderr] Compiling tokio-macros v1.8.0 [INFO] [stderr] Checking tinytemplate v1.1.0 [INFO] [stderr] Checking tokio v1.19.2 [INFO] [stderr] Checking pin-project v1.0.2 [INFO] [stderr] Checking futures-util v0.3.8 [INFO] [stderr] Checking criterion v0.3.3 [INFO] [stderr] Checking futures-executor v0.3.8 [INFO] [stderr] Checking futures-test v0.3.8 [INFO] [stderr] Checking futures v0.3.8 [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> examples/cancellation.rs:89:1 [INFO] [stdout] | [INFO] [stdout] 89 | use signal_hook; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] = note: `#[warn(clippy::single_component_path_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> examples/cancellation.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | //! should stop their work as soon as it is convenient for them. The [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] = note: `#[warn(clippy::doc_lazy_continuation)]` on by default [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 39 | //! should stop their work as soon as it is convenient for them. The [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> examples/cancellation.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | //! cancellation signal can either originate from a parent task, the sub task [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 40 | //! cancellation signal can either originate from a parent task, the sub task [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> examples/cancellation.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | //! itself, or one of the sibling tasks. In order to distribute cancellation [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 41 | //! itself, or one of the sibling tasks. In order to distribute cancellation [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> examples/cancellation.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | //! signals we utilize an async `ManualResetEvent` as a cancellation token. [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 42 | //! signals we utilize an async `ManualResetEvent` as a cancellation token. [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> examples/cancellation.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | //! This datastructure allows to signal an arbitrary amount of tasks. [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 43 | //! This datastructure allows to signal an arbitrary amount of tasks. [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> examples/cancellation.rs:44:5 [INFO] [stdout] | [INFO] [stdout] 44 | //! The signal can be emitted by any component which has access to [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 44 | //! The signal can be emitted by any component which has access to [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> examples/cancellation.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 45 | //! `ManualResetEvent`. [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 45 | //! `ManualResetEvent`. [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> examples/cancellation.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 47 | //! support graceful cancellation, subtasks need to detect the condition that [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 47 | //! support graceful cancellation, subtasks need to detect the condition that [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> examples/cancellation.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | //! they are supposed to shut down. In order to do this we use the futures-rs [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 48 | //! they are supposed to shut down. In order to do this we use the futures-rs [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> examples/cancellation.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | //! `select!` macro to wait in parallel for either the async calculation on [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 49 | //! `select!` macro to wait in parallel for either the async calculation on [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> examples/cancellation.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 50 | //! the "normal path" to complete or for the cancellation to get signalled. [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 50 | //! the "normal path" to complete or for the cancellation to get signalled. [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> examples/cancellation.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | //! Not all subtasks have to explicitly support this. Some of them just need [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 51 | //! Not all subtasks have to explicitly support this. Some of them just need [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> examples/cancellation.rs:52:5 [INFO] [stdout] | [INFO] [stdout] 52 | //! to forward the cancellation token to their child tasks. When these finish [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 52 | //! to forward the cancellation token to their child tasks. When these finish [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> examples/cancellation.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | //! early due to cancellation, then the parent will also finish early. [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 53 | //! early due to cancellation, then the parent will also finish early. [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> examples/cancellation.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 54 | //! Child tasks can return an error result in order to indicate that they have [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 54 | //! Child tasks can return an error result in order to indicate that they have [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> examples/cancellation.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | //! returned due the explicit cancellation. E.g. `Err(Cancelled)` could be [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 55 | //! returned due the explicit cancellation. E.g. `Err(Cancelled)` could be [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> examples/cancellation.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 56 | //! returned to the parent. [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 56 | //! returned to the parent. [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> examples/cancellation.rs:58:5 [INFO] [stdout] | [INFO] [stdout] 58 | //! their wait-handles (which in our case are `Future`s that can be awaited [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 58 | //! their wait-handles (which in our case are `Future`s that can be awaited [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> examples/cancellation.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | //! via `await` or various `join` functions). [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 59 | //! via `await` or various `join` functions). [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> examples/cancellation.rs:174:20 [INFO] [stdout] | [INFO] [stdout] 174 | if !result.is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `result.is_err()` [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: usage of a legacy numeric constant [INFO] [stdout] --> examples/cancellation.rs:282:43 [INFO] [stdout] | [INFO] [stdout] 282 | let result = block_on(fizzbuzz_search(std::usize::MAX, cancellation_token)); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 282 - let result = block_on(fizzbuzz_search(std::usize::MAX, cancellation_token)); [INFO] [stdout] 282 + let result = block_on(fizzbuzz_search(usize::MAX, cancellation_token)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Block` is never used [INFO] [stdout] --> benches/semaphore.rs:36:7 [INFO] [stdout] | [INFO] [stdout] 36 | trait Block { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an array of `Range` that is only one element [INFO] [stdout] --> tests/manual_reset_event.rs:193:63 [INFO] [stdout] | [INFO] [stdout] 193 | let waiters: Vec> = [1..4] [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_range_in_vec_init [INFO] [stdout] = note: `#[warn(clippy::single_range_in_vec_init)]` on by default [INFO] [stdout] help: if you wanted a `Vec` that contains the entire range, try [INFO] [stdout] | [INFO] [stdout] 193 - let waiters: Vec> = [1..4] [INFO] [stdout] 193 + let waiters: Vec> = (1..4).collect::>() [INFO] [stdout] | [INFO] [stdout] help: if you wanted an array of len 4, try [INFO] [stdout] | [INFO] [stdout] 193 - let waiters: Vec> = [1..4] [INFO] [stdout] 193 + let waiters: Vec> = [1; 4] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/mutex.rs:464:47 [INFO] [stdout] | [INFO] [stdout] 464 | let cx = &mut Context::from_waker(&waker); [INFO] [stdout] | ^^^^^^ help: change this to: `waker` [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] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::ops::Range` [INFO] [stdout] --> benches/mpmc_channel.rs:149:37 [INFO] [stdout] | [INFO] [stdout] 149 | let produce_done = join_all((0..producers).into_iter().map(|_| { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(0..producers)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::ops::Range` [INFO] [stdout] --> benches/mpmc_channel.rs:180:37 [INFO] [stdout] | [INFO] [stdout] 180 | let produce_done = join_all((0..producers).into_iter().map(|_| { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(0..producers)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::ops::Range` [INFO] [stdout] --> benches/mpmc_channel.rs:260:37 [INFO] [stdout] | [INFO] [stdout] 260 | let produce_done = join_all((0..producers).into_iter().map(|_| { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(0..producers)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: docs for unsafe trait missing `# Safety` section [INFO] [stdout] --> src/buffer/real_array.rs:41:1 [INFO] [stdout] | [INFO] [stdout] 41 | pub unsafe trait RealArray { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_safety_doc [INFO] [stdout] = note: `#[warn(clippy::missing_safety_doc)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/buffer/ring_buffer.rs:240:21 [INFO] [stdout] | [INFO] [stdout] 240 | assert!(self.buffer.len() > 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.buffer.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: length comparison to zero [INFO] [stdout] --> src/buffer/ring_buffer.rs:310:27 [INFO] [stdout] | [INFO] [stdout] 310 | debug_assert!(self.buffer.len() > 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.buffer.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] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/buffer/ring_buffer.rs:328:9 [INFO] [stdout] | [INFO] [stdout] 328 | assert_eq!(true, buf.is_empty()); [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] 328 - assert_eq!(true, buf.is_empty()); [INFO] [stdout] 328 + assert!(buf.is_empty()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/buffer/ring_buffer.rs:329:9 [INFO] [stdout] | [INFO] [stdout] 329 | assert_eq!(true, buf.can_push()); [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] 329 - assert_eq!(true, buf.can_push()); [INFO] [stdout] 329 + assert!(buf.can_push()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/buffer/ring_buffer.rs:336:9 [INFO] [stdout] | [INFO] [stdout] 336 | assert_eq!(false, buf.is_empty()); [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] 336 - assert_eq!(false, buf.is_empty()); [INFO] [stdout] 336 + assert!(!buf.is_empty()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/buffer/ring_buffer.rs:337:9 [INFO] [stdout] | [INFO] [stdout] 337 | assert_eq!(true, buf.can_push()); [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] 337 - assert_eq!(true, buf.can_push()); [INFO] [stdout] 337 + assert!(buf.can_push()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/buffer/ring_buffer.rs:342:9 [INFO] [stdout] | [INFO] [stdout] 342 | assert_eq!(false, buf.is_empty()); [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] 342 - assert_eq!(false, buf.is_empty()); [INFO] [stdout] 342 + assert!(!buf.is_empty()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/buffer/ring_buffer.rs:345:9 [INFO] [stdout] | [INFO] [stdout] 345 | assert_eq!(true, buf.is_empty()); [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] 345 - assert_eq!(true, buf.is_empty()); [INFO] [stdout] 345 + assert!(buf.is_empty()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/buffer/ring_buffer.rs:351:13 [INFO] [stdout] | [INFO] [stdout] 351 | assert_eq!(false, buf.is_empty()); [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] 351 - assert_eq!(false, buf.is_empty()); [INFO] [stdout] 351 + assert!(!buf.is_empty()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/buffer/ring_buffer.rs:357:13 [INFO] [stdout] | [INFO] [stdout] 357 | assert_eq!(true, buf.can_push()); [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] 357 - assert_eq!(true, buf.can_push()); [INFO] [stdout] 357 + assert!(buf.can_push()); [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/intrusive_double_linked_list.rs:74:9 [INFO] [stdout] | [INFO] [stdout] 74 | / match self.head { [INFO] [stdout] 75 | | Some(mut head) => head.as_mut().prev = Some(node.into()), [INFO] [stdout] 76 | | None => {} [INFO] [stdout] 77 | | }; [INFO] [stdout] | |_________^ help: try: `if let Some(mut head) = self.head { head.as_mut().prev = Some(node.into()) }` [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] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/intrusive_double_linked_list.rs:206:12 [INFO] [stdout] | [INFO] [stdout] 206 | if !self.head.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `self.head.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: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/intrusive_double_linked_list.rs:369:17 [INFO] [stdout] | [INFO] [stdout] 369 | assert_eq!(true, list.is_empty()); [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] 369 - assert_eq!(true, list.is_empty()); [INFO] [stdout] 369 + assert!(list.is_empty()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/intrusive_double_linked_list.rs:372:17 [INFO] [stdout] | [INFO] [stdout] 372 | assert_eq!(false, list.is_empty()); [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] 372 - assert_eq!(false, list.is_empty()); [INFO] [stdout] 372 + assert!(!list.is_empty()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/intrusive_double_linked_list.rs:562:17 [INFO] [stdout] | [INFO] [stdout] 562 | assert_eq!(true, list.remove(&mut a)); [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] 562 - assert_eq!(true, list.remove(&mut a)); [INFO] [stdout] 562 + assert!(list.remove(&mut a)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&mut intrusive_double_linked_list::ListNode` [INFO] [stdout] --> src/intrusive_double_linked_list.rs:563:30 [INFO] [stdout] | [INFO] [stdout] 563 | assert_clean((&mut a).into()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider removing `.into()`: `(&mut a)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/intrusive_double_linked_list.rs:565:17 [INFO] [stdout] | [INFO] [stdout] 565 | assert_eq!(false, list.remove(&mut a)); [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] 565 - assert_eq!(false, list.remove(&mut a)); [INFO] [stdout] 565 + assert!(!list.remove(&mut a)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/intrusive_double_linked_list.rs:574:17 [INFO] [stdout] | [INFO] [stdout] 574 | assert_eq!(true, list.remove(&mut a)); [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] 574 - assert_eq!(true, list.remove(&mut a)); [INFO] [stdout] 574 + assert!(list.remove(&mut a)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&mut intrusive_double_linked_list::ListNode` [INFO] [stdout] --> src/intrusive_double_linked_list.rs:575:30 [INFO] [stdout] | [INFO] [stdout] 575 | assert_clean((&mut a).into()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider removing `.into()`: `(&mut a)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/intrusive_double_linked_list.rs:577:17 [INFO] [stdout] | [INFO] [stdout] 577 | assert_eq!(false, list.remove(&mut a)); [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] 577 - assert_eq!(false, list.remove(&mut a)); [INFO] [stdout] 577 + assert!(!list.remove(&mut a)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/intrusive_double_linked_list.rs:588:17 [INFO] [stdout] | [INFO] [stdout] 588 | assert_eq!(true, list.remove(&mut b)); [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] 588 - assert_eq!(true, list.remove(&mut b)); [INFO] [stdout] 588 + assert!(list.remove(&mut b)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&mut intrusive_double_linked_list::ListNode` [INFO] [stdout] --> src/intrusive_double_linked_list.rs:589:30 [INFO] [stdout] | [INFO] [stdout] 589 | assert_clean((&mut b).into()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider removing `.into()`: `(&mut b)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/intrusive_double_linked_list.rs:597:17 [INFO] [stdout] | [INFO] [stdout] 597 | assert_eq!(true, list.remove(&mut b)); [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] 597 - assert_eq!(true, list.remove(&mut b)); [INFO] [stdout] 597 + assert!(list.remove(&mut b)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&mut intrusive_double_linked_list::ListNode` [INFO] [stdout] --> src/intrusive_double_linked_list.rs:598:30 [INFO] [stdout] | [INFO] [stdout] 598 | assert_clean((&mut b).into()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider removing `.into()`: `(&mut b)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> tests/semaphore.rs:594:47 [INFO] [stdout] | [INFO] [stdout] 594 | let cx = &mut Context::from_waker(&waker); [INFO] [stdout] | ^^^^^^ help: change this to: `waker` [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] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/intrusive_double_linked_list.rs:609:17 [INFO] [stdout] | [INFO] [stdout] 609 | assert_eq!(true, list.remove(&mut c)); [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] 609 - assert_eq!(true, list.remove(&mut c)); [INFO] [stdout] 609 + assert!(list.remove(&mut c)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&mut intrusive_double_linked_list::ListNode` [INFO] [stdout] --> src/intrusive_double_linked_list.rs:610:30 [INFO] [stdout] | [INFO] [stdout] 610 | assert_clean((&mut c).into()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider removing `.into()`: `(&mut c)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/intrusive_double_linked_list.rs:618:17 [INFO] [stdout] | [INFO] [stdout] 618 | assert_eq!(true, list.remove(&mut c)); [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] 618 - assert_eq!(true, list.remove(&mut c)); [INFO] [stdout] 618 + assert!(list.remove(&mut c)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&mut intrusive_double_linked_list::ListNode` [INFO] [stdout] --> src/intrusive_double_linked_list.rs:619:30 [INFO] [stdout] | [INFO] [stdout] 619 | assert_clean((&mut c).into()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider removing `.into()`: `(&mut c)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/intrusive_double_linked_list.rs:630:17 [INFO] [stdout] | [INFO] [stdout] 630 | assert_eq!(true, list.remove(&mut a)); [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] 630 - assert_eq!(true, list.remove(&mut a)); [INFO] [stdout] 630 + assert!(list.remove(&mut a)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&mut intrusive_double_linked_list::ListNode` [INFO] [stdout] --> src/intrusive_double_linked_list.rs:631:30 [INFO] [stdout] | [INFO] [stdout] 631 | assert_clean((&mut a).into()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider removing `.into()`: `(&mut a)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/intrusive_double_linked_list.rs:633:17 [INFO] [stdout] | [INFO] [stdout] 633 | assert_eq!(false, list.remove(&mut a)); [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] 633 - assert_eq!(false, list.remove(&mut a)); [INFO] [stdout] 633 + assert!(!list.remove(&mut a)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/intrusive_double_linked_list.rs:643:17 [INFO] [stdout] | [INFO] [stdout] 643 | assert_eq!(true, list.remove(&mut a)); [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] 643 - assert_eq!(true, list.remove(&mut a)); [INFO] [stdout] 643 + assert!(list.remove(&mut a)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&mut intrusive_double_linked_list::ListNode` [INFO] [stdout] --> src/intrusive_double_linked_list.rs:644:30 [INFO] [stdout] | [INFO] [stdout] 644 | assert_clean((&mut a).into()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider removing `.into()`: `(&mut a)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/intrusive_double_linked_list.rs:646:17 [INFO] [stdout] | [INFO] [stdout] 646 | assert_eq!(false, list.remove(&mut a)); [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] 646 - assert_eq!(false, list.remove(&mut a)); [INFO] [stdout] 646 + assert!(!list.remove(&mut a)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/intrusive_double_linked_list.rs:659:17 [INFO] [stdout] | [INFO] [stdout] 659 | assert_eq!(true, list.remove(&mut b)); [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] 659 - assert_eq!(true, list.remove(&mut b)); [INFO] [stdout] 659 + assert!(list.remove(&mut b)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&mut intrusive_double_linked_list::ListNode` [INFO] [stdout] --> src/intrusive_double_linked_list.rs:660:30 [INFO] [stdout] | [INFO] [stdout] 660 | assert_clean((&mut b).into()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider removing `.into()`: `(&mut b)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/intrusive_double_linked_list.rs:670:17 [INFO] [stdout] | [INFO] [stdout] 670 | assert_eq!(true, list.remove(&mut b)); [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] 670 - assert_eq!(true, list.remove(&mut b)); [INFO] [stdout] 670 + assert!(list.remove(&mut b)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&mut intrusive_double_linked_list::ListNode` [INFO] [stdout] --> src/intrusive_double_linked_list.rs:671:30 [INFO] [stdout] | [INFO] [stdout] 671 | assert_clean((&mut b).into()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider removing `.into()`: `(&mut b)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/intrusive_double_linked_list.rs:684:17 [INFO] [stdout] | [INFO] [stdout] 684 | assert_eq!(true, list.remove(&mut a)); [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] 684 - assert_eq!(true, list.remove(&mut a)); [INFO] [stdout] 684 + assert!(list.remove(&mut a)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&mut intrusive_double_linked_list::ListNode` [INFO] [stdout] --> src/intrusive_double_linked_list.rs:685:30 [INFO] [stdout] | [INFO] [stdout] 685 | assert_clean((&mut a).into()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider removing `.into()`: `(&mut a)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/intrusive_double_linked_list.rs:697:17 [INFO] [stdout] | [INFO] [stdout] 697 | assert_eq!(false, list.remove(&mut c)); [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] 697 - assert_eq!(false, list.remove(&mut c)); [INFO] [stdout] 697 + assert!(!list.remove(&mut c)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/channel/error.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | / match self { [INFO] [stdout] 24 | | Self::Empty => true, [INFO] [stdout] 25 | | _ => false, [INFO] [stdout] 26 | | } [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] 23 - match self { [INFO] [stdout] 24 - Self::Empty => true, [INFO] [stdout] 25 - _ => false, [INFO] [stdout] 26 - } [INFO] [stdout] 23 + matches!(self, Self::Empty) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/channel/error.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | / match self { [INFO] [stdout] 32 | | Self::Closed => true, [INFO] [stdout] 33 | | _ => false, [INFO] [stdout] 34 | | } [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] 31 - match self { [INFO] [stdout] 32 - Self::Closed => true, [INFO] [stdout] 33 - _ => false, [INFO] [stdout] 34 - } [INFO] [stdout] 31 + matches!(self, Self::Closed) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/channel/error.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 59 | / match self { [INFO] [stdout] 60 | | Self::Full(_) => true, [INFO] [stdout] 61 | | _ => false, [INFO] [stdout] 62 | | } [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] 59 - match self { [INFO] [stdout] 60 - Self::Full(_) => true, [INFO] [stdout] 61 - _ => false, [INFO] [stdout] 62 - } [INFO] [stdout] 59 + matches!(self, Self::Full(_)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/channel/error.rs:67:9 [INFO] [stdout] | [INFO] [stdout] 67 | / match self { [INFO] [stdout] 68 | | Self::Closed(_) => true, [INFO] [stdout] 69 | | _ => false, [INFO] [stdout] 70 | | } [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] 67 - match self { [INFO] [stdout] 68 - Self::Closed(_) => true, [INFO] [stdout] 69 - _ => false, [INFO] [stdout] 70 - } [INFO] [stdout] 67 + matches!(self, Self::Closed(_)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/channel/channel_future.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | / match self { [INFO] [stdout] 23 | | Self::NewlyClosed => true, [INFO] [stdout] 24 | | _ => false, [INFO] [stdout] 25 | | } [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] 22 - match self { [INFO] [stdout] 23 - Self::NewlyClosed => true, [INFO] [stdout] 24 - _ => false, [INFO] [stdout] 25 - } [INFO] [stdout] 22 + matches!(self, Self::NewlyClosed) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/channel/channel_future.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | / match self { [INFO] [stdout] 31 | | Self::AlreadyClosed => true, [INFO] [stdout] 32 | | _ => false, [INFO] [stdout] 33 | | } [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] 30 - match self { [INFO] [stdout] 31 - Self::AlreadyClosed => true, [INFO] [stdout] 32 - _ => false, [INFO] [stdout] 33 - } [INFO] [stdout] 30 + matches!(self, Self::AlreadyClosed) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `GenericOneshotChannel` [INFO] [stdout] --> src/channel/oneshot.rs:174:5 [INFO] [stdout] | [INFO] [stdout] 174 | / pub fn new() -> GenericOneshotChannel { [INFO] [stdout] 175 | | GenericOneshotChannel { [INFO] [stdout] 176 | | inner: Mutex::new(ChannelState::new()), [INFO] [stdout] 177 | | } [INFO] [stdout] 178 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 172 + impl Default for GenericOneshotChannel { [INFO] [stdout] 173 + fn default() -> Self { [INFO] [stdout] 174 + Self::new() [INFO] [stdout] 175 + } [INFO] [stdout] 176 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `GenericOneshotBroadcastChannel` [INFO] [stdout] --> src/channel/oneshot_broadcast.rs:181:5 [INFO] [stdout] | [INFO] [stdout] 181 | / pub fn new() -> GenericOneshotBroadcastChannel { [INFO] [stdout] 182 | | GenericOneshotBroadcastChannel { [INFO] [stdout] 183 | | inner: Mutex::new(ChannelState::new()), [INFO] [stdout] 184 | | } [INFO] [stdout] 185 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 176 + impl Default for GenericOneshotBroadcastChannel [INFO] [stdout] 177 + where [INFO] [stdout] 178 + T: Clone, [INFO] [stdout] 179 + { [INFO] [stdout] 180 + fn default() -> Self { [INFO] [stdout] 181 + Self::new() [INFO] [stdout] 182 + } [INFO] [stdout] 183 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/channel/state_broadcast.rs:210:49 [INFO] [stdout] | [INFO] [stdout] 210 | if self.is_closed || self.state_id.0 == core::u64::MAX { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 210 - if self.is_closed || self.state_id.0 == core::u64::MAX { [INFO] [stdout] 210 + if self.is_closed || self.state_id.0 == u64::MAX { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `GenericStateBroadcastChannel` [INFO] [stdout] --> src/channel/state_broadcast.rs:349:5 [INFO] [stdout] | [INFO] [stdout] 349 | / pub fn new() -> GenericStateBroadcastChannel [INFO] [stdout] 350 | | where [INFO] [stdout] 351 | | T: Clone, [INFO] [stdout] ... | [INFO] [stdout] 356 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 344 + impl Default for GenericStateBroadcastChannel [INFO] [stdout] 345 + where [INFO] [stdout] 346 + T: Clone, [INFO] [stdout] 347 + T: Clone, [INFO] [stdout] 348 + { [INFO] [stdout] 349 + fn default() -> Self { [INFO] [stdout] 350 + Self::new() [INFO] [stdout] 351 + } [INFO] [stdout] 352 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/channel/state_broadcast.rs:635:31 [INFO] [stdout] | [INFO] [stdout] 635 | if old_size > (core::isize::MAX) as usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 635 - if old_size > (core::isize::MAX) as usize { [INFO] [stdout] 635 + if old_size > isize::MAX as usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/channel/state_broadcast.rs:668:31 [INFO] [stdout] | [INFO] [stdout] 668 | if old_size > (core::isize::MAX) as usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 668 - if old_size > (core::isize::MAX) as usize { [INFO] [stdout] 668 + if old_size > isize::MAX as usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/channel/mpmc.rs:164:21 [INFO] [stdout] | [INFO] [stdout] 164 | return (Poll::Pending, None, waker); [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] 164 - return (Poll::Pending, None, waker); [INFO] [stdout] 164 + (Poll::Pending, None, waker) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `GenericChannel` [INFO] [stdout] --> src/channel/mpmc.rs:407:5 [INFO] [stdout] | [INFO] [stdout] 407 | / pub fn new() -> Self { [INFO] [stdout] 408 | | GenericChannel { [INFO] [stdout] 409 | | inner: Mutex::new(ChannelState::new(A::new())), [INFO] [stdout] 410 | | } [INFO] [stdout] 411 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 401 + impl Default for GenericChannel [INFO] [stdout] 402 + where [INFO] [stdout] 403 + A: RingBuf, [INFO] [stdout] 404 + { [INFO] [stdout] 405 + fn default() -> Self { [INFO] [stdout] 406 + Self::new() [INFO] [stdout] 407 + } [INFO] [stdout] 408 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/channel/mpmc.rs:809:31 [INFO] [stdout] | [INFO] [stdout] 809 | if old_size > (core::isize::MAX) as usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 809 - if old_size > (core::isize::MAX) as usize { [INFO] [stdout] 809 + if old_size > isize::MAX as usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/channel/mpmc.rs:842:31 [INFO] [stdout] | [INFO] [stdout] 842 | if old_size > (core::isize::MAX) as usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 842 - if old_size > (core::isize::MAX) as usize { [INFO] [stdout] 842 + if old_size > isize::MAX as usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: inequality checks against true can be replaced by a negation [INFO] [stdout] --> src/sync/manual_reset_event.rs:64:12 [INFO] [stdout] | [INFO] [stdout] 64 | if self.is_set != true { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `!self.is_set` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/sync/mutex.rs:454:25 [INFO] [stdout] | [INFO] [stdout] 454 | mutex: Some(&self), [INFO] [stdout] | ^^^^^ help: change this to: `self` [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] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/sync/semaphore.rs:487:29 [INFO] [stdout] | [INFO] [stdout] 487 | semaphore: Some(&self), [INFO] [stdout] | ^^^^^ help: change this to: `self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `MockClock` [INFO] [stdout] --> src/timer/clock.rs:44:5 [INFO] [stdout] | [INFO] [stdout] 44 | / pub const fn new() -> MockClock { [INFO] [stdout] 45 | | MockClock { [INFO] [stdout] 46 | | now: AtomicUsize::new(0), [INFO] [stdout] 47 | | } [INFO] [stdout] 48 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 41 + impl Default for MockClock { [INFO] [stdout] 42 + fn default() -> Self { [INFO] [stdout] 43 + Self::new() [INFO] [stdout] 44 + } [INFO] [stdout] 45 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/timer/clock.rs:52:25 [INFO] [stdout] | [INFO] [stdout] 52 | if timestamp > (core::usize::MAX as u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 52 - if timestamp > (core::usize::MAX as u64) { [INFO] [stdout] 52 + if timestamp > (usize::MAX as u64) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `StdClock` [INFO] [stdout] --> src/timer/clock.rs:85:9 [INFO] [stdout] | [INFO] [stdout] 85 | / pub fn new() -> StdClock { [INFO] [stdout] 86 | | StdClock { [INFO] [stdout] 87 | | start: Instant::now(), [INFO] [stdout] 88 | | } [INFO] [stdout] 89 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 83 ~ impl Default for StdClock { [INFO] [stdout] 84 + fn default() -> Self { [INFO] [stdout] 85 + Self::new() [INFO] [stdout] 86 + } [INFO] [stdout] 87 + } [INFO] [stdout] 88 + [INFO] [stdout] 89 ~ impl StdClock { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/timer/mod.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 | mod timer; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-canonical implementation of `partial_cmp` on an `Ord` type [INFO] [stdout] --> src/timer/timer.rs:60:1 [INFO] [stdout] | [INFO] [stdout] 60 | / impl PartialOrd for TimerQueueEntry { [INFO] [stdout] 61 | | fn partial_cmp( [INFO] [stdout] 62 | | &self, [INFO] [stdout] 63 | | other: &TimerQueueEntry, [INFO] [stdout] ... | [INFO] [stdout] 68 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_canonical_partial_ord_impl [INFO] [stdout] = note: `#[warn(clippy::non_canonical_partial_ord_impl)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 64 - ) -> Option { [INFO] [stdout] 65 - // Compare timer queue entries by expiration time [INFO] [stdout] 66 - self.expiry.partial_cmp(&other.expiry) [INFO] [stdout] 67 - } [INFO] [stdout] 64 + ) -> Option { Some(self.cmp(other)) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/timer/timer.rs:291:50 [INFO] [stdout] | [INFO] [stdout] 291 | core::cmp::min(duration.as_millis(), core::u64::MAX as u128) as u64; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 291 - core::cmp::min(duration.as_millis(), core::u64::MAX as u128) as u64; [INFO] [stdout] 291 + core::cmp::min(duration.as_millis(), u64::MAX as u128) as u64; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/timer/timer.rs:300:30 [INFO] [stdout] | [INFO] [stdout] 300 | LocalTimer::deadline(&*self, deadline) [INFO] [stdout] | ^^^^^^ help: if you would like to reborrow, try removing `&*`: `self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] = note: `#[warn(clippy::borrow_deref_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/timer/timer.rs:320:25 [INFO] [stdout] | [INFO] [stdout] 320 | Timer::deadline(&*self, deadline) [INFO] [stdout] | ^^^^^^ help: if you would like to reborrow, try removing `&*`: `self` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/utils/mod.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | if waker_option [INFO] [stdout] | ________^ [INFO] [stdout] 9 | | .as_ref() [INFO] [stdout] 10 | | .map_or(true, |stored_waker| !stored_waker.will_wake(cx.waker())) [INFO] [stdout] | |_________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_none_or` instead [INFO] [stdout] | [INFO] [stdout] 10 - .map_or(true, |stored_waker| !stored_waker.will_wake(cx.waker())) [INFO] [stdout] 10 + .is_none_or(|stored_waker| !stored_waker.will_wake(cx.waker())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/channel/oneshot.rs:202:20 [INFO] [stdout] | [INFO] [stdout] 202 | pub fn receive(&self) -> ChannelReceiveFuture { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 202 | pub fn receive(&self) -> ChannelReceiveFuture<'_, MutexType, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/channel/oneshot_broadcast.rs:209:20 [INFO] [stdout] | [INFO] [stdout] 209 | pub fn receive(&self) -> ChannelReceiveFuture { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 209 | pub fn receive(&self) -> ChannelReceiveFuture<'_, MutexType, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/channel/state_broadcast.rs:387:9 [INFO] [stdout] | [INFO] [stdout] 387 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] 388 | state_id: StateId, [INFO] [stdout] 389 | ) -> StateReceiveFuture { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 389 | ) -> StateReceiveFuture<'_, MutexType, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/channel/mpmc.rs:426:17 [INFO] [stdout] | [INFO] [stdout] 426 | pub fn send(&self, value: T) -> ChannelSendFuture { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 426 | pub fn send(&self, value: T) -> ChannelSendFuture<'_, MutexType, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/channel/mpmc.rs:459:20 [INFO] [stdout] | [INFO] [stdout] 459 | pub fn receive(&self) -> ChannelReceiveFuture { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 459 | pub fn receive(&self) -> ChannelReceiveFuture<'_, MutexType, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/channel/mpmc.rs:486:19 [INFO] [stdout] | [INFO] [stdout] 486 | pub fn stream(&self) -> ChannelStream { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 486 | pub fn stream(&self) -> ChannelStream<'_, MutexType, T, A> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/sync/manual_reset_event.rs:200:17 [INFO] [stdout] | [INFO] [stdout] 200 | pub fn wait(&self) -> GenericWaitForEventFuture { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 200 | pub fn wait(&self) -> GenericWaitForEventFuture<'_, MutexType> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/timer/timer.rs:194:14 [INFO] [stdout] | [INFO] [stdout] 194 | fn delay(&self, delay: Duration) -> LocalTimerFuture; [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 194 | fn delay(&self, delay: Duration) -> LocalTimerFuture<'_>; [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/timer/timer.rs:198:17 [INFO] [stdout] | [INFO] [stdout] 198 | fn deadline(&self, timestamp: u64) -> LocalTimerFuture; [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 198 | fn deadline(&self, timestamp: u64) -> LocalTimerFuture<'_>; [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/timer/timer.rs:210:14 [INFO] [stdout] | [INFO] [stdout] 210 | fn delay(&self, delay: Duration) -> TimerFuture; [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 210 | fn delay(&self, delay: Duration) -> TimerFuture<'_>; [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/timer/timer.rs:214:17 [INFO] [stdout] | [INFO] [stdout] 214 | fn deadline(&self, timestamp: u64) -> TimerFuture; [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 214 | fn deadline(&self, timestamp: u64) -> TimerFuture<'_>; [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/timer/timer.rs:298:14 [INFO] [stdout] | [INFO] [stdout] 298 | fn delay(&self, delay: Duration) -> LocalTimerFuture { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 298 | fn delay(&self, delay: Duration) -> LocalTimerFuture<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/timer/timer.rs:305:17 [INFO] [stdout] | [INFO] [stdout] 305 | fn deadline(&self, timestamp: u64) -> LocalTimerFuture { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 305 | fn deadline(&self, timestamp: u64) -> LocalTimerFuture<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/timer/timer.rs:318:14 [INFO] [stdout] | [INFO] [stdout] 318 | fn delay(&self, delay: Duration) -> TimerFuture { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 318 | fn delay(&self, delay: Duration) -> TimerFuture<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/timer/timer.rs:325:17 [INFO] [stdout] | [INFO] [stdout] 325 | fn deadline(&self, timestamp: u64) -> TimerFuture { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 325 | fn deadline(&self, timestamp: u64) -> TimerFuture<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 23.96s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: criterion v0.3.3 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2` [INFO] running `Command { std: "docker" "inspect" "3fe7664d915b74061bc9319a8c01ec8682c2093a48b3ccbb85f60c42583bc90f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3fe7664d915b74061bc9319a8c01ec8682c2093a48b3ccbb85f60c42583bc90f", kill_on_drop: false }` [INFO] [stdout] 3fe7664d915b74061bc9319a8c01ec8682c2093a48b3ccbb85f60c42583bc90f