[INFO] crate multiqueue 0.3.2 is already in cache [INFO] extracting crate multiqueue 0.3.2 into work/ex/clippy-test-run/sources/stable/reg/multiqueue/0.3.2 [INFO] extracting crate multiqueue 0.3.2 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/multiqueue/0.3.2 [INFO] validating manifest of multiqueue-0.3.2 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of multiqueue-0.3.2 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing multiqueue-0.3.2 [INFO] finished frobbing multiqueue-0.3.2 [INFO] frobbed toml for multiqueue-0.3.2 written to work/ex/clippy-test-run/sources/stable/reg/multiqueue/0.3.2/Cargo.toml [INFO] started frobbing multiqueue-0.3.2 [INFO] finished frobbing multiqueue-0.3.2 [INFO] frobbed toml for multiqueue-0.3.2 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/multiqueue/0.3.2/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting multiqueue-0.3.2 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/multiqueue/0.3.2:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] b28d4fc96c363418b52d62dcd161766cc494751488c8183e8fb819f2144aa71e [INFO] running `"docker" "start" "-a" "b28d4fc96c363418b52d62dcd161766cc494751488c8183e8fb819f2144aa71e"` [INFO] [stderr] Checking owning_ref v0.2.4 [INFO] [stderr] Checking smallvec v0.3.4 [INFO] [stderr] Checking thread-id v3.3.0 [INFO] [stderr] Checking parking_lot v0.3.8 [INFO] [stderr] Checking multiqueue v0.3.2 (/opt/crater/workdir) [INFO] [stderr] warning: lint name `inline_always` is deprecated and may not have an effect in the future. Also `cfg_attr(cargo-clippy)` won't be necessary anymore [INFO] [stderr] --> src/lib.rs:304:45 [INFO] [stderr] | [INFO] [stderr] 304 | #![cfg_attr(feature = "cargo-clippy", allow(inline_always))] [INFO] [stderr] | ^^^^^^^^^^^^^ help: change it to: `clippy::inline_always` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(renamed_and_removed_lints)] on by default [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mpmc.rs:402:13 [INFO] [stderr] | [INFO] [stderr] 402 | op: op, [INFO] [stderr] | ^^^^^^ help: replace it with: `op` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mpmc.rs:427:13 [INFO] [stderr] | [INFO] [stderr] 427 | op: op, [INFO] [stderr] | ^^^^^^ help: replace it with: `op` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mpmc.rs:472:61 [INFO] [stderr] | [INFO] [stderr] 472 | Err((o, receiver)) => Err((o, MPMCFutReceiver { receiver: receiver })), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `receiver` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/multiqueue.rs:251:13 [INFO] [stderr] | [INFO] [stderr] 251 | needs_notify: needs_notify, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `needs_notify` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/multiqueue.rs:270:13 [INFO] [stderr] | [INFO] [stderr] 270 | reader: reader, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `reader` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/multiqueue.rs:648:17 [INFO] [stderr] | [INFO] [stderr] 648 | op: op, [INFO] [stderr] | ^^^^^^ help: replace it with: `op` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/multiqueue.rs:697:13 [INFO] [stderr] | [INFO] [stderr] 697 | op: op, [INFO] [stderr] | ^^^^^^ help: replace it with: `op` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/multiqueue.rs:844:13 [INFO] [stderr] | [INFO] [stderr] 844 | spins_first: spins_first, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `spins_first` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/multiqueue.rs:845:13 [INFO] [stderr] | [INFO] [stderr] 845 | spins_yield: spins_yield, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `spins_yield` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/broadcast.rs:529:13 [INFO] [stderr] | [INFO] [stderr] 529 | op: op, [INFO] [stderr] | ^^^^^^ help: replace it with: `op` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/broadcast.rs:556:13 [INFO] [stderr] | [INFO] [stderr] 556 | op: op, [INFO] [stderr] | ^^^^^^ help: replace it with: `op` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/broadcast.rs:607:66 [INFO] [stderr] | [INFO] [stderr] 607 | Err((o, receiver)) => Err((o, BroadcastFutReceiver { receiver: receiver })), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `receiver` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/wait.rs:95:13 [INFO] [stderr] | [INFO] [stderr] 95 | spins_first: spins_first, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `spins_first` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/wait.rs:96:13 [INFO] [stderr] | [INFO] [stderr] 96 | spins_yield: spins_yield, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `spins_yield` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/wait.rs:111:13 [INFO] [stderr] | [INFO] [stderr] 111 | spins_first: spins_first, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `spins_first` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/wait.rs:112:13 [INFO] [stderr] | [INFO] [stderr] 112 | spins_yield: spins_yield, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `spins_yield` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: lint name `inline_always` is deprecated and may not have an effect in the future. Also `cfg_attr(cargo-clippy)` won't be necessary anymore [INFO] [stderr] --> src/lib.rs:304:45 [INFO] [stderr] | [INFO] [stderr] 304 | #![cfg_attr(feature = "cargo-clippy", allow(inline_always))] [INFO] [stderr] | ^^^^^^^^^^^^^ help: change it to: `clippy::inline_always` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(renamed_and_removed_lints)] on by default [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mpmc.rs:402:13 [INFO] [stderr] | [INFO] [stderr] 402 | op: op, [INFO] [stderr] | ^^^^^^ help: replace it with: `op` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mpmc.rs:427:13 [INFO] [stderr] | [INFO] [stderr] 427 | op: op, [INFO] [stderr] | ^^^^^^ help: replace it with: `op` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mpmc.rs:472:61 [INFO] [stderr] | [INFO] [stderr] 472 | Err((o, receiver)) => Err((o, MPMCFutReceiver { receiver: receiver })), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `receiver` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/multiqueue.rs:251:13 [INFO] [stderr] | [INFO] [stderr] 251 | needs_notify: needs_notify, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `needs_notify` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/multiqueue.rs:270:13 [INFO] [stderr] | [INFO] [stderr] 270 | reader: reader, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `reader` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/multiqueue.rs:648:17 [INFO] [stderr] | [INFO] [stderr] 648 | op: op, [INFO] [stderr] | ^^^^^^ help: replace it with: `op` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/multiqueue.rs:697:13 [INFO] [stderr] | [INFO] [stderr] 697 | op: op, [INFO] [stderr] | ^^^^^^ help: replace it with: `op` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/multiqueue.rs:844:13 [INFO] [stderr] | [INFO] [stderr] 844 | spins_first: spins_first, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `spins_first` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/multiqueue.rs:845:13 [INFO] [stderr] | [INFO] [stderr] 845 | spins_yield: spins_yield, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `spins_yield` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/broadcast.rs:529:13 [INFO] [stderr] | [INFO] [stderr] 529 | op: op, [INFO] [stderr] | ^^^^^^ help: replace it with: `op` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/broadcast.rs:556:13 [INFO] [stderr] | [INFO] [stderr] 556 | op: op, [INFO] [stderr] | ^^^^^^ help: replace it with: `op` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/broadcast.rs:607:66 [INFO] [stderr] | [INFO] [stderr] 607 | Err((o, receiver)) => Err((o, BroadcastFutReceiver { receiver: receiver })), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `receiver` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/wait.rs:95:13 [INFO] [stderr] | [INFO] [stderr] 95 | spins_first: spins_first, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `spins_first` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/wait.rs:96:13 [INFO] [stderr] | [INFO] [stderr] 96 | spins_yield: spins_yield, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `spins_yield` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/wait.rs:111:13 [INFO] [stderr] | [INFO] [stderr] 111 | spins_first: spins_first, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `spins_first` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/wait.rs:112:13 [INFO] [stderr] | [INFO] [stderr] 112 | spins_yield: spins_yield, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `spins_yield` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: lint name `inline_always` is deprecated and may not have an effect in the future. Also `cfg_attr(cargo-clippy)` won't be necessary anymore [INFO] [stderr] --> src/lib.rs:304:45 [INFO] [stderr] | [INFO] [stderr] 304 | #![cfg_attr(feature = "cargo-clippy", allow(inline_always))] [INFO] [stderr] | ^^^^^^^^^^^^^ help: change it to: `clippy::inline_always` [INFO] [stderr] [INFO] [stderr] warning: lint name `inline_always` is deprecated and may not have an effect in the future. Also `cfg_attr(cargo-clippy)` won't be necessary anymore [INFO] [stderr] --> src/lib.rs:304:45 [INFO] [stderr] | [INFO] [stderr] 304 | #![cfg_attr(feature = "cargo-clippy", allow(inline_always))] [INFO] [stderr] | ^^^^^^^^^^^^^ help: change it to: `clippy::inline_always` [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/multiqueue.rs:474:9 [INFO] [stderr] | [INFO] [stderr] 474 | / if val.is_ok() { [INFO] [stderr] 475 | | if self.queue.needs_notify { [INFO] [stderr] 476 | | self.queue.waiter.notify(); [INFO] [stderr] 477 | | } [INFO] [stderr] 478 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 474 | if val.is_ok() && self.queue.needs_notify { [INFO] [stderr] 475 | self.queue.waiter.notify(); [INFO] [stderr] 476 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/multiqueue.rs:867:9 [INFO] [stderr] | [INFO] [stderr] 867 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/multiqueue.rs:876:9 [INFO] [stderr] | [INFO] [stderr] 876 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/multiqueue.rs:902:17 [INFO] [stderr] | [INFO] [stderr] 902 | return Err(TrySendError::Full(v)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(TrySendError::Full(v))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/multiqueue.rs:904:18 [INFO] [stderr] | [INFO] [stderr] 904 | v => return v, [INFO] [stderr] | ^^^^^^^^ help: remove `return` as shown: `v` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/read_cursor.rs:89:9 [INFO] [stderr] | [INFO] [stderr] 89 | / if self.state.get() == ReaderState::Multi { [INFO] [stderr] 90 | | if unsafe { (*self.meta).num_consumers.load(Ordering::Relaxed) } == 1 { [INFO] [stderr] 91 | | fence(Ordering::Acquire); [INFO] [stderr] 92 | | self.state.set(ReaderState::Single); [INFO] [stderr] 93 | | } [INFO] [stderr] 94 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 89 | if self.state.get() == ReaderState::Multi && unsafe { (*self.meta).num_consumers.load(Ordering::Relaxed) } == 1 { [INFO] [stderr] 90 | fence(Ordering::Acquire); [INFO] [stderr] 91 | self.state.set(ReaderState::Single); [INFO] [stderr] 92 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'mpmc::futures::task::park': renamed to `current` [INFO] [stderr] --> src/multiqueue.rs:29:27 [INFO] [stderr] | [INFO] [stderr] 29 | use self::futures::task::{park, Task}; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'mpmc::futures::task::park': renamed to `current` [INFO] [stderr] --> src/multiqueue.rs:875:26 [INFO] [stderr] | [INFO] [stderr] 875 | parked.push_back(park()); [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'mpmc::futures::task::park': renamed to `current` [INFO] [stderr] --> src/multiqueue.rs:901:34 [INFO] [stderr] | [INFO] [stderr] 901 | parked.push_back(park()); [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/mpmc.rs:759:24 [INFO] [stderr] | [INFO] [stderr] 759 | let num_loop = 100000; [INFO] [stderr] | ^^^^^^ help: consider: `100_000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/mpmc.rs:766:37 [INFO] [stderr] | [INFO] [stderr] 766 | for _ in 0..100000000 { [INFO] [stderr] | ^^^^^^^^^ help: consider: `100_000_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/mpmc.rs:817:24 [INFO] [stderr] | [INFO] [stderr] 817 | let num_loop = 1000000; [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/mpmc.rs:826:37 [INFO] [stderr] | [INFO] [stderr] 826 | for _ in 0..100000000 { [INFO] [stderr] | ^^^^^^^^^ help: consider: `100_000_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/multiqueue.rs:474:9 [INFO] [stderr] | [INFO] [stderr] 474 | / if val.is_ok() { [INFO] [stderr] 475 | | if self.queue.needs_notify { [INFO] [stderr] 476 | | self.queue.waiter.notify(); [INFO] [stderr] 477 | | } [INFO] [stderr] 478 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 474 | if val.is_ok() && self.queue.needs_notify { [INFO] [stderr] 475 | self.queue.waiter.notify(); [INFO] [stderr] 476 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/multiqueue.rs:867:9 [INFO] [stderr] | [INFO] [stderr] 867 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/multiqueue.rs:876:9 [INFO] [stderr] | [INFO] [stderr] 876 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/multiqueue.rs:902:17 [INFO] [stderr] | [INFO] [stderr] 902 | return Err(TrySendError::Full(v)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(TrySendError::Full(v))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/multiqueue.rs:904:18 [INFO] [stderr] | [INFO] [stderr] 904 | v => return v, [INFO] [stderr] | ^^^^^^^^ help: remove `return` as shown: `v` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/broadcast.rs:907:24 [INFO] [stderr] | [INFO] [stderr] 907 | let num_loop = 100000; [INFO] [stderr] | ^^^^^^ help: consider: `100_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/broadcast.rs:914:37 [INFO] [stderr] | [INFO] [stderr] 914 | for _ in 0..100000000 { [INFO] [stderr] | ^^^^^^^^^ help: consider: `100_000_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/broadcast.rs:998:24 [INFO] [stderr] | [INFO] [stderr] 998 | let num_loop = 1000000; [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/broadcast.rs:1009:37 [INFO] [stderr] | [INFO] [stderr] 1009 | for _ in 0..100000000 { [INFO] [stderr] | ^^^^^^^^^ help: consider: `100_000_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/read_cursor.rs:89:9 [INFO] [stderr] | [INFO] [stderr] 89 | / if self.state.get() == ReaderState::Multi { [INFO] [stderr] 90 | | if unsafe { (*self.meta).num_consumers.load(Ordering::Relaxed) } == 1 { [INFO] [stderr] 91 | | fence(Ordering::Acquire); [INFO] [stderr] 92 | | self.state.set(ReaderState::Single); [INFO] [stderr] 93 | | } [INFO] [stderr] 94 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 89 | if self.state.get() == ReaderState::Multi && unsafe { (*self.meta).num_consumers.load(Ordering::Relaxed) } == 1 { [INFO] [stderr] 90 | fence(Ordering::Acquire); [INFO] [stderr] 91 | self.state.set(ReaderState::Single); [INFO] [stderr] 92 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/wait.rs:245:37 [INFO] [stderr] | [INFO] [stderr] 245 | for _ in 0..100000000 { [INFO] [stderr] | ^^^^^^^^^ help: consider: `100_000_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'mpmc::futures::task::park': renamed to `current` [INFO] [stderr] --> src/multiqueue.rs:29:27 [INFO] [stderr] | [INFO] [stderr] 29 | use self::futures::task::{park, Task}; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'mpmc::futures::task::park': renamed to `current` [INFO] [stderr] --> src/multiqueue.rs:875:26 [INFO] [stderr] | [INFO] [stderr] 875 | parked.push_back(park()); [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'mpmc::futures::task::park': renamed to `current` [INFO] [stderr] --> src/multiqueue.rs:901:34 [INFO] [stderr] | [INFO] [stderr] 901 | parked.push_back(park()); [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: type annotations needed [INFO] [stderr] --> src/multiqueue.rs:228:55 [INFO] [stderr] | [INFO] [stderr] 228 | let elem: &QueueEntry = &*queuedat.offset(i); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(tyvar_behind_raw_pointer)] on by default [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2018 edition! [INFO] [stderr] = note: for more information, see issue #46906 [INFO] [stderr] [INFO] [stderr] warning: type annotations needed [INFO] [stderr] --> src/multiqueue.rs:231:46 [INFO] [stderr] | [INFO] [stderr] 231 | let refd: &RefCnt = &*refdat.offset(i); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2018 edition! [INFO] [stderr] = note: for more information, see issue #46906 [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'mpmc::futures::task::Task::unpark': renamed to `notify` [INFO] [stderr] --> src/multiqueue.rs:913:21 [INFO] [stderr] | [INFO] [stderr] 913 | val.unpark(); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'mpmc::futures::task::Task::unpark': renamed to `notify` [INFO] [stderr] --> src/multiqueue.rs:931:25 [INFO] [stderr] | [INFO] [stderr] 931 | val.unpark(); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'mpmc::futures::task::Task::unpark': renamed to `notify` [INFO] [stderr] --> src/multiqueue.rs:938:25 [INFO] [stderr] | [INFO] [stderr] 938 | val.unpark(); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type annotations needed [INFO] [stderr] --> src/multiqueue.rs:228:55 [INFO] [stderr] | [INFO] [stderr] 228 | let elem: &QueueEntry = &*queuedat.offset(i); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(tyvar_behind_raw_pointer)] on by default [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2018 edition! [INFO] [stderr] = note: for more information, see issue #46906 [INFO] [stderr] [INFO] [stderr] warning: type annotations needed [INFO] [stderr] --> src/multiqueue.rs:231:46 [INFO] [stderr] | [INFO] [stderr] 231 | let refd: &RefCnt = &*refdat.offset(i); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2018 edition! [INFO] [stderr] = note: for more information, see issue #46906 [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `1` [INFO] [stderr] --> src/atomicsignal.rs:3:29 [INFO] [stderr] | [INFO] [stderr] 3 | const UPDATE_EPOCH: usize = 1 << 0; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/memory.rs:37:35 [INFO] [stderr] | [INFO] [stderr] 37 | let to_free: *mut F = mem::transmute(pt); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `pt as *mut F` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::transmute_ptr_to_ptr)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/memory.rs:78:12 [INFO] [stderr] | [INFO] [stderr] 78 | if self.tokens.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.tokens.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'mpmc::futures::task::Task::unpark': renamed to `notify` [INFO] [stderr] --> src/multiqueue.rs:913:21 [INFO] [stderr] | [INFO] [stderr] 913 | val.unpark(); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'mpmc::futures::task::Task::unpark': renamed to `notify` [INFO] [stderr] --> src/multiqueue.rs:931:25 [INFO] [stderr] | [INFO] [stderr] 931 | val.unpark(); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'mpmc::futures::task::Task::unpark': renamed to `notify` [INFO] [stderr] --> src/multiqueue.rs:938:25 [INFO] [stderr] | [INFO] [stderr] 938 | val.unpark(); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mpmc.rs:272:5 [INFO] [stderr] | [INFO] [stderr] 272 | / pub fn try_iter<'a>(&'a self) -> MPMCRefIter<'a, T> { [INFO] [stderr] 273 | | MPMCRefIter { recv: self } [INFO] [stderr] 274 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mpmc.rs:424:5 [INFO] [stderr] | [INFO] [stderr] 424 | / pub fn try_iter_with<'a, R, F: FnMut(&T) -> R>(&'a self, op: F) -> MPMCUniRefIter<'a, R, F, T> { [INFO] [stderr] 425 | | MPMCUniRefIter { [INFO] [stderr] 426 | | recv: self, [INFO] [stderr] 427 | | op: op, [INFO] [stderr] 428 | | } [INFO] [stderr] 429 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/multiqueue.rs:212:5 [INFO] [stderr] | [INFO] [stderr] 212 | / pub fn new(_capacity: Index) -> (InnerSend, InnerRecv) { [INFO] [stderr] 213 | | MultiQueue::new_with(_capacity, BlockingWait::new()) [INFO] [stderr] 214 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_ret_no_self)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/multiqueue.rs:635:13 [INFO] [stderr] | [INFO] [stderr] 635 | -> Result, (F, FutInnerRecv)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/multiqueue.rs:910:9 [INFO] [stderr] | [INFO] [stderr] 910 | / match parked.pop_front() { [INFO] [stderr] 911 | | Some(val) => { [INFO] [stderr] 912 | | drop(parked); [INFO] [stderr] 913 | | val.unpark(); [INFO] [stderr] 914 | | } [INFO] [stderr] 915 | | None => (), [INFO] [stderr] 916 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 910 | if let Some(val) = parked.pop_front() { [INFO] [stderr] 911 | drop(parked); [INFO] [stderr] 912 | val.unpark(); [INFO] [stderr] 913 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/broadcast.rs:378:5 [INFO] [stderr] | [INFO] [stderr] 378 | / pub fn try_iter<'a>(&'a self) -> BroadcastRefIter<'a, T> { [INFO] [stderr] 379 | | BroadcastRefIter { recv: self } [INFO] [stderr] 380 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/broadcast.rs:551:5 [INFO] [stderr] | [INFO] [stderr] 551 | / pub fn try_iter_with<'a, R, F: FnMut(&T) -> R>(&'a self, [INFO] [stderr] 552 | | op: F) [INFO] [stderr] 553 | | -> BroadcastUniRefIter<'a, R, F, T> { [INFO] [stderr] 554 | | BroadcastUniRefIter { [INFO] [stderr] ... | [INFO] [stderr] 557 | | } [INFO] [stderr] 558 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `wait::BusyWait` [INFO] [stderr] --> src/wait.rs:80:5 [INFO] [stderr] | [INFO] [stderr] 80 | / pub fn new() -> BusyWait { [INFO] [stderr] 81 | | BusyWait {} [INFO] [stderr] 82 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 55 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `wait::YieldingWait` [INFO] [stderr] --> src/wait.rs:87:5 [INFO] [stderr] | [INFO] [stderr] 87 | / pub fn new() -> YieldingWait { [INFO] [stderr] 88 | | YieldingWait::with_spins(DEFAULT_TRY_SPINS, DEFAULT_YIELD_SPINS) [INFO] [stderr] 89 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 59 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `wait::BlockingWait` [INFO] [stderr] --> src/wait.rs:103:5 [INFO] [stderr] | [INFO] [stderr] 103 | / pub fn new() -> BlockingWait { [INFO] [stderr] 104 | | BlockingWait::with_spins(DEFAULT_TRY_SPINS, DEFAULT_YIELD_SPINS) [INFO] [stderr] 105 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 65 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `1` [INFO] [stderr] --> src/atomicsignal.rs:3:29 [INFO] [stderr] | [INFO] [stderr] 3 | const UPDATE_EPOCH: usize = 1 << 0; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/countedindex.rs:207:21 [INFO] [stderr] | [INFO] [stderr] 207 | / loop { [INFO] [stderr] 208 | | match trans.commit(1, Release) { [INFO] [stderr] 209 | | Some(new_t) => trans = new_t, [INFO] [stderr] 210 | | None => break, [INFO] [stderr] 211 | | } [INFO] [stderr] 212 | | } [INFO] [stderr] | |_____________________^ help: try: `while let Some(new_t) = trans.commit(1, Release) { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u64 may become silently lossy if types change [INFO] [stderr] --> src/countedindex.rs:233:29 [INFO] [stderr] | [INFO] [stderr] 233 | test_incr_param(1 + ::std::u16::MAX as Index, 2) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(::std::u16::MAX)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u64 may become silently lossy if types change [INFO] [stderr] --> src/countedindex.rs:248:34 [INFO] [stderr] | [INFO] [stderr] 248 | test_incr_param_threaded(::std::u16::MAX as Index + 1, 2, 13) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(::std::u16::MAX)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/memory.rs:37:35 [INFO] [stderr] | [INFO] [stderr] 37 | let to_free: *mut F = mem::transmute(pt); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `pt as *mut F` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::transmute_ptr_to_ptr)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/memory.rs:78:12 [INFO] [stderr] | [INFO] [stderr] 78 | if self.tokens.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.tokens.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mpmc.rs:272:5 [INFO] [stderr] | [INFO] [stderr] 272 | / pub fn try_iter<'a>(&'a self) -> MPMCRefIter<'a, T> { [INFO] [stderr] 273 | | MPMCRefIter { recv: self } [INFO] [stderr] 274 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mpmc.rs:424:5 [INFO] [stderr] | [INFO] [stderr] 424 | / pub fn try_iter_with<'a, R, F: FnMut(&T) -> R>(&'a self, op: F) -> MPMCUniRefIter<'a, R, F, T> { [INFO] [stderr] 425 | | MPMCUniRefIter { [INFO] [stderr] 426 | | recv: self, [INFO] [stderr] 427 | | op: op, [INFO] [stderr] 428 | | } [INFO] [stderr] 429 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: unused return value of `std::clone::Clone::clone` that must be used [INFO] [stderr] --> src/mpmc.rs:940:9 [INFO] [stderr] | [INFO] [stderr] 940 | reader.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: cloning is often expensive and is not expected to have side effects [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/multiqueue.rs:212:5 [INFO] [stderr] | [INFO] [stderr] 212 | / pub fn new(_capacity: Index) -> (InnerSend, InnerRecv) { [INFO] [stderr] 213 | | MultiQueue::new_with(_capacity, BlockingWait::new()) [INFO] [stderr] 214 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_ret_no_self)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/multiqueue.rs:635:13 [INFO] [stderr] | [INFO] [stderr] 635 | -> Result, (F, FutInnerRecv)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/multiqueue.rs:910:9 [INFO] [stderr] | [INFO] [stderr] 910 | / match parked.pop_front() { [INFO] [stderr] 911 | | Some(val) => { [INFO] [stderr] 912 | | drop(parked); [INFO] [stderr] 913 | | val.unpark(); [INFO] [stderr] 914 | | } [INFO] [stderr] 915 | | None => (), [INFO] [stderr] 916 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 910 | if let Some(val) = parked.pop_front() { [INFO] [stderr] 911 | drop(parked); [INFO] [stderr] 912 | val.unpark(); [INFO] [stderr] 913 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/broadcast.rs:378:5 [INFO] [stderr] | [INFO] [stderr] 378 | / pub fn try_iter<'a>(&'a self) -> BroadcastRefIter<'a, T> { [INFO] [stderr] 379 | | BroadcastRefIter { recv: self } [INFO] [stderr] 380 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/broadcast.rs:551:5 [INFO] [stderr] | [INFO] [stderr] 551 | / pub fn try_iter_with<'a, R, F: FnMut(&T) -> R>(&'a self, [INFO] [stderr] 552 | | op: F) [INFO] [stderr] 553 | | -> BroadcastUniRefIter<'a, R, F, T> { [INFO] [stderr] 554 | | BroadcastUniRefIter { [INFO] [stderr] ... | [INFO] [stderr] 557 | | } [INFO] [stderr] 558 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `wait::BusyWait` [INFO] [stderr] --> src/wait.rs:80:5 [INFO] [stderr] | [INFO] [stderr] 80 | / pub fn new() -> BusyWait { [INFO] [stderr] 81 | | BusyWait {} [INFO] [stderr] 82 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 55 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `wait::YieldingWait` [INFO] [stderr] --> src/wait.rs:87:5 [INFO] [stderr] | [INFO] [stderr] 87 | / pub fn new() -> YieldingWait { [INFO] [stderr] 88 | | YieldingWait::with_spins(DEFAULT_TRY_SPINS, DEFAULT_YIELD_SPINS) [INFO] [stderr] 89 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 59 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `wait::BlockingWait` [INFO] [stderr] --> src/wait.rs:103:5 [INFO] [stderr] | [INFO] [stderr] 103 | / pub fn new() -> BlockingWait { [INFO] [stderr] 104 | | BlockingWait::with_spins(DEFAULT_TRY_SPINS, DEFAULT_YIELD_SPINS) [INFO] [stderr] 105 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 65 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/bin/throughput.rs:23:17 [INFO] [stderr] | [INFO] [stderr] 23 | / if cur != pushed { [INFO] [stderr] 24 | | if check { [INFO] [stderr] 25 | | panic!("Got {}, expected {}", pushed, cur); [INFO] [stderr] 26 | | } [INFO] [stderr] 27 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 23 | if cur != pushed && check { [INFO] [stderr] 24 | panic!("Got {}, expected {}", pushed, cur); [INFO] [stderr] 25 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bin/throughput.rs:50:18 [INFO] [stderr] | [INFO] [stderr] 50 | let num_do = 100000000; [INFO] [stderr] | ^^^^^^^^^ help: consider: `100_000_000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: use of a blacklisted/placeholder name `bar` [INFO] [stderr] --> src/bin/throughput.rs:15:9 [INFO] [stderr] | [INFO] [stderr] 15 | fn recv(bar: &Barrier, mreader: BroadcastReceiver, sum: &AtomicUsize, check: bool) { [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::blacklisted_name)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#blacklisted_name [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/bin/throughput.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | / loop { [INFO] [stderr] 21 | | match reader.recv() { [INFO] [stderr] 22 | | Ok(pushed) => { [INFO] [stderr] 23 | | if cur != pushed { [INFO] [stderr] ... | [INFO] [stderr] 31 | | } [INFO] [stderr] 32 | | } [INFO] [stderr] | |_____^ help: try: `while let Ok(pushed) = reader.recv() { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: use of a blacklisted/placeholder name `bar` [INFO] [stderr] --> src/bin/throughput.rs:37:9 [INFO] [stderr] | [INFO] [stderr] 37 | fn send(bar: &Barrier, writer: BroadcastSender, num_push: usize) { [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#blacklisted_name [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stderr] --> src/bin/throughput.rs:42:20 [INFO] [stderr] | [INFO] [stderr] 42 | if let Ok(_) = writer.try_send(topush) { [INFO] [stderr] | _____________- ^^^^^ [INFO] [stderr] 43 | | break; [INFO] [stderr] 44 | | } [INFO] [stderr] | |_____________- help: try this: `if writer.try_send(topush).is_ok()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: use of a blacklisted/placeholder name `bar` [INFO] [stderr] --> src/bin/throughput.rs:52:9 [INFO] [stderr] | [INFO] [stderr] 52 | let bar = Barrier::new(1 + n_senders + n_readers); [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#blacklisted_name [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/bin/throughput.rs:23:17 [INFO] [stderr] | [INFO] [stderr] 23 | / if cur != pushed { [INFO] [stderr] 24 | | if check { [INFO] [stderr] 25 | | panic!("Got {}, expected {}", pushed, cur); [INFO] [stderr] 26 | | } [INFO] [stderr] 27 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 23 | if cur != pushed && check { [INFO] [stderr] 24 | panic!("Got {}, expected {}", pushed, cur); [INFO] [stderr] 25 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bin/throughput.rs:50:18 [INFO] [stderr] | [INFO] [stderr] 50 | let num_do = 100000000; [INFO] [stderr] | ^^^^^^^^^ help: consider: `100_000_000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: use of a blacklisted/placeholder name `bar` [INFO] [stderr] --> src/bin/throughput.rs:15:9 [INFO] [stderr] | [INFO] [stderr] 15 | fn recv(bar: &Barrier, mreader: BroadcastReceiver, sum: &AtomicUsize, check: bool) { [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::blacklisted_name)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#blacklisted_name [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/bin/throughput.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | / loop { [INFO] [stderr] 21 | | match reader.recv() { [INFO] [stderr] 22 | | Ok(pushed) => { [INFO] [stderr] 23 | | if cur != pushed { [INFO] [stderr] ... | [INFO] [stderr] 31 | | } [INFO] [stderr] 32 | | } [INFO] [stderr] | |_____^ help: try: `while let Ok(pushed) = reader.recv() { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: use of a blacklisted/placeholder name `bar` [INFO] [stderr] --> src/bin/throughput.rs:37:9 [INFO] [stderr] | [INFO] [stderr] 37 | fn send(bar: &Barrier, writer: BroadcastSender, num_push: usize) { [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#blacklisted_name [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stderr] --> src/bin/throughput.rs:42:20 [INFO] [stderr] | [INFO] [stderr] 42 | if let Ok(_) = writer.try_send(topush) { [INFO] [stderr] | _____________- ^^^^^ [INFO] [stderr] 43 | | break; [INFO] [stderr] 44 | | } [INFO] [stderr] | |_____________- help: try this: `if writer.try_send(topush).is_ok()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: use of a blacklisted/placeholder name `bar` [INFO] [stderr] --> src/bin/throughput.rs:52:9 [INFO] [stderr] | [INFO] [stderr] 52 | let bar = Barrier::new(1 + n_senders + n_readers); [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#blacklisted_name [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 7.77s [INFO] running `"docker" "inspect" "b28d4fc96c363418b52d62dcd161766cc494751488c8183e8fb819f2144aa71e"` [INFO] running `"docker" "rm" "-f" "b28d4fc96c363418b52d62dcd161766cc494751488c8183e8fb819f2144aa71e"` [INFO] [stdout] b28d4fc96c363418b52d62dcd161766cc494751488c8183e8fb819f2144aa71e