[INFO] crate smartpool 0.2.1 is already in cache [INFO] extracting crate smartpool 0.2.1 into work/ex/clippy-test-run/sources/stable/reg/smartpool/0.2.1 [INFO] extracting crate smartpool 0.2.1 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/smartpool/0.2.1 [INFO] validating manifest of smartpool-0.2.1 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 smartpool-0.2.1 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 smartpool-0.2.1 [INFO] finished frobbing smartpool-0.2.1 [INFO] frobbed toml for smartpool-0.2.1 written to work/ex/clippy-test-run/sources/stable/reg/smartpool/0.2.1/Cargo.toml [INFO] started frobbing smartpool-0.2.1 [INFO] finished frobbing smartpool-0.2.1 [INFO] frobbed toml for smartpool-0.2.1 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/smartpool/0.2.1/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 smartpool-0.2.1 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/smartpool/0.2.1:/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] eb248df73885d602143c6e5ee2abc5aad01ff7526a1d4bc7fd6b39303911d42d [INFO] running `"docker" "start" "-a" "eb248df73885d602143c6e5ee2abc5aad01ff7526a1d4bc7fd6b39303911d42d"` [INFO] [stderr] Checking through v0.1.0 [INFO] [stderr] Checking atomic v0.4.3 [INFO] [stderr] Checking monitor v0.1.0 [INFO] [stderr] Checking stopwatch v0.0.7 [INFO] [stderr] Checking atomicmonitor v0.1.2 [INFO] [stderr] Checking smallqueue v0.1.0 [INFO] [stderr] Checking smartpool v0.2.1 (/opt/crater/workdir) [INFO] [stderr] warning: Creating a reference that is immediately dereferenced. [INFO] [stderr] --> src/pool.rs:559:15 [INFO] [stderr] | [INFO] [stderr] 559 | match (&mut*task).spawn.poll_future_notify(&IntoAtomicFollowup { [INFO] [stderr] | ^^^^^^^^^^^ help: try this: `*task.spawn` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ref_in_deref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ref_in_deref [INFO] [stderr] [INFO] [stderr] warning: Creating a reference that is immediately dereferenced. [INFO] [stderr] --> src/pool.rs:574:44 [INFO] [stderr] | [INFO] [stderr] 574 | if let Ok(_) = (&*task).close_counted.compare_exchange( [INFO] [stderr] | ^^^^^^^^ help: try this: `*task.close_counted` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ref_in_deref [INFO] [stderr] [INFO] [stderr] warning: Creating a reference that is immediately dereferenced. [INFO] [stderr] --> src/pool.rs:592:20 [INFO] [stderr] | [INFO] [stderr] 592 | if (&*task).close_counted.load(Ordering::Acquire) { [INFO] [stderr] | ^^^^^^^^ help: try this: `*task.close_counted` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ref_in_deref [INFO] [stderr] [INFO] [stderr] warning: All variants have the same postfix: `BeTakenCareOf` [INFO] [stderr] --> src/pool.rs:609:5 [INFO] [stderr] | [INFO] [stderr] 609 | / enum RunStatus { [INFO] [stderr] 610 | | NotRequestedAndWillBeTakenCareOf, [INFO] [stderr] 611 | | RequestedAndWillBeTakenCareOf, [INFO] [stderr] 612 | | NotRequestedAndWillNotBeTakenCareOf [INFO] [stderr] 613 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::enum_variant_names)] on by default [INFO] [stderr] = help: remove the postfixes and use full paths to the variants instead of glob imports [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `channel::sdf::ShortestDeadlineFirst` [INFO] [stderr] --> src/channel/sdf.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | / pub fn new() -> Self { [INFO] [stderr] 20 | | ShortestDeadlineFirst { [INFO] [stderr] 21 | | tree: Mutex::new(BTreeMap::new()), [INFO] [stderr] 22 | | bit: StatusBit::new(), [INFO] [stderr] 23 | | } [INFO] [stderr] 24 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 18 | impl Default for channel::sdf::ShortestDeadlineFirst { [INFO] [stderr] 19 | fn default() -> Self { [INFO] [stderr] 20 | Self::new() [INFO] [stderr] 21 | } [INFO] [stderr] 22 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `channel::VecDequeChannel` [INFO] [stderr] --> src/channel/mod.rs:145:5 [INFO] [stderr] | [INFO] [stderr] 145 | / pub fn new() -> Self { [INFO] [stderr] 146 | | VecDequeChannel { [INFO] [stderr] 147 | | queue: Mutex::new(VecDeque::new()), [INFO] [stderr] 148 | | bit: StatusBit::new() [INFO] [stderr] 149 | | } [INFO] [stderr] 150 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 144 | impl Default for channel::VecDequeChannel { [INFO] [stderr] 145 | fn default() -> Self { [INFO] [stderr] 146 | Self::new() [INFO] [stderr] 147 | } [INFO] [stderr] 148 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/pool.rs:290:16 [INFO] [stderr] | [INFO] [stderr] 290 | completed: Arc>>>>, [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: redundant pattern matching, consider using `is_ok()` [INFO] [stderr] --> src/pool.rs:574:36 [INFO] [stderr] | [INFO] [stderr] 574 | if let Ok(_) = (&*task).close_counted.compare_exchange( [INFO] [stderr] | ^^^^^ [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] help: try this [INFO] [stderr] | [INFO] [stderr] 574 | if (&*task).close_counted.compare_exchange( [INFO] [stderr] 575 | false, true, Ordering::SeqCst, Ordering::SeqCst).is_ok() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/run.rs:32:43 [INFO] [stderr] | [INFO] [stderr] 32 | (self.work.take().unwrap())().map(|item| Async::Ready(item)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Async::Ready` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `timescheduler::TimeScheduler` [INFO] [stderr] --> src/timescheduler.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | / pub fn new() -> Self { [INFO] [stderr] 22 | | let scheduler = TimeScheduler { [INFO] [stderr] 23 | | tasks: Arc::new(Monitor::new(BTreeMap::new())) [INFO] [stderr] 24 | | }; [INFO] [stderr] ... | [INFO] [stderr] 51 | | scheduler [INFO] [stderr] 52 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 20 | impl Default for timescheduler::TimeScheduler { [INFO] [stderr] 21 | fn default() -> Self { [INFO] [stderr] 22 | Self::new() [INFO] [stderr] 23 | } [INFO] [stderr] 24 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/timescheduler.rs:70:21 [INFO] [stderr] | [INFO] [stderr] 70 | / if let &mut ScheduledEvent::Multiple(ref mut vec) = a { [INFO] [stderr] 71 | | vec.push(b); [INFO] [stderr] 72 | | } else { [INFO] [stderr] 73 | | unreachable!() [INFO] [stderr] 74 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 70 | if let ScheduledEvent::Multiple(ref mut vec) = *a { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `StatusBit` [INFO] [stderr] --> src/lib.rs:75:5 [INFO] [stderr] | [INFO] [stderr] 75 | / pub fn new() -> Self { [INFO] [stderr] 76 | | StatusBit { [INFO] [stderr] 77 | | inner: None [INFO] [stderr] 78 | | } [INFO] [stderr] 79 | | } [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] 63 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/channel/test.rs:84:80 [INFO] [stderr] | [INFO] [stderr] 84 | let elapsed = elapsed.subsec_nanos() as u128 + elapsed.as_secs() as u128 * 1000000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_000_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: long literal lacking separators [INFO] [stderr] --> src/channel/test.rs:153:80 [INFO] [stderr] | [INFO] [stderr] 153 | let elapsed = elapsed.subsec_nanos() as u128 + elapsed.as_secs() as u128 * 1000000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_000_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: Creating a reference that is immediately dereferenced. [INFO] [stderr] --> src/pool.rs:559:15 [INFO] [stderr] | [INFO] [stderr] 559 | match (&mut*task).spawn.poll_future_notify(&IntoAtomicFollowup { [INFO] [stderr] | ^^^^^^^^^^^ help: try this: `*task.spawn` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ref_in_deref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ref_in_deref [INFO] [stderr] [INFO] [stderr] warning: Creating a reference that is immediately dereferenced. [INFO] [stderr] --> src/pool.rs:574:44 [INFO] [stderr] | [INFO] [stderr] 574 | if let Ok(_) = (&*task).close_counted.compare_exchange( [INFO] [stderr] | ^^^^^^^^ help: try this: `*task.close_counted` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ref_in_deref [INFO] [stderr] [INFO] [stderr] warning: Creating a reference that is immediately dereferenced. [INFO] [stderr] --> src/pool.rs:592:20 [INFO] [stderr] | [INFO] [stderr] 592 | if (&*task).close_counted.load(Ordering::Acquire) { [INFO] [stderr] | ^^^^^^^^ help: try this: `*task.close_counted` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ref_in_deref [INFO] [stderr] [INFO] [stderr] warning: All variants have the same postfix: `BeTakenCareOf` [INFO] [stderr] --> src/pool.rs:609:5 [INFO] [stderr] | [INFO] [stderr] 609 | / enum RunStatus { [INFO] [stderr] 610 | | NotRequestedAndWillBeTakenCareOf, [INFO] [stderr] 611 | | RequestedAndWillBeTakenCareOf, [INFO] [stderr] 612 | | NotRequestedAndWillNotBeTakenCareOf [INFO] [stderr] 613 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::enum_variant_names)] on by default [INFO] [stderr] = help: remove the postfixes and use full paths to the variants instead of glob imports [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `channel::sdf::ShortestDeadlineFirst` [INFO] [stderr] --> src/channel/sdf.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | / pub fn new() -> Self { [INFO] [stderr] 20 | | ShortestDeadlineFirst { [INFO] [stderr] 21 | | tree: Mutex::new(BTreeMap::new()), [INFO] [stderr] 22 | | bit: StatusBit::new(), [INFO] [stderr] 23 | | } [INFO] [stderr] 24 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 18 | impl Default for channel::sdf::ShortestDeadlineFirst { [INFO] [stderr] 19 | fn default() -> Self { [INFO] [stderr] 20 | Self::new() [INFO] [stderr] 21 | } [INFO] [stderr] 22 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u128 may become silently lossy if types change [INFO] [stderr] --> src/channel/test.rs:84:19 [INFO] [stderr] | [INFO] [stderr] 84 | let elapsed = elapsed.subsec_nanos() as u128 + elapsed.as_secs() as u128 * 1000000000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u128::from(elapsed.subsec_nanos())` [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 u64 to u128 may become silently lossy if types change [INFO] [stderr] --> src/channel/test.rs:84:52 [INFO] [stderr] | [INFO] [stderr] 84 | let elapsed = elapsed.subsec_nanos() as u128 + elapsed.as_secs() as u128 * 1000000000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u128::from(elapsed.as_secs())` [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: casting u32 to u128 may become silently lossy if types change [INFO] [stderr] --> src/channel/test.rs:153:19 [INFO] [stderr] | [INFO] [stderr] 153 | let elapsed = elapsed.subsec_nanos() as u128 + elapsed.as_secs() as u128 * 1000000000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u128::from(elapsed.subsec_nanos())` [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: casting u64 to u128 may become silently lossy if types change [INFO] [stderr] --> src/channel/test.rs:153:52 [INFO] [stderr] | [INFO] [stderr] 153 | let elapsed = elapsed.subsec_nanos() as u128 + elapsed.as_secs() as u128 * 1000000000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u128::from(elapsed.as_secs())` [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: you should consider adding a `Default` implementation for `channel::VecDequeChannel` [INFO] [stderr] --> src/channel/mod.rs:145:5 [INFO] [stderr] | [INFO] [stderr] 145 | / pub fn new() -> Self { [INFO] [stderr] 146 | | VecDequeChannel { [INFO] [stderr] 147 | | queue: Mutex::new(VecDeque::new()), [INFO] [stderr] 148 | | bit: StatusBit::new() [INFO] [stderr] 149 | | } [INFO] [stderr] 150 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 144 | impl Default for channel::VecDequeChannel { [INFO] [stderr] 145 | fn default() -> Self { [INFO] [stderr] 146 | Self::new() [INFO] [stderr] 147 | } [INFO] [stderr] 148 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/pool.rs:290:16 [INFO] [stderr] | [INFO] [stderr] 290 | completed: Arc>>>>, [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: redundant pattern matching, consider using `is_ok()` [INFO] [stderr] --> src/pool.rs:574:36 [INFO] [stderr] | [INFO] [stderr] 574 | if let Ok(_) = (&*task).close_counted.compare_exchange( [INFO] [stderr] | ^^^^^ [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] help: try this [INFO] [stderr] | [INFO] [stderr] 574 | if (&*task).close_counted.compare_exchange( [INFO] [stderr] 575 | false, true, Ordering::SeqCst, Ordering::SeqCst).is_ok() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/run.rs:32:43 [INFO] [stderr] | [INFO] [stderr] 32 | (self.work.take().unwrap())().map(|item| Async::Ready(item)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Async::Ready` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `timescheduler::TimeScheduler` [INFO] [stderr] --> src/timescheduler.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | / pub fn new() -> Self { [INFO] [stderr] 22 | | let scheduler = TimeScheduler { [INFO] [stderr] 23 | | tasks: Arc::new(Monitor::new(BTreeMap::new())) [INFO] [stderr] 24 | | }; [INFO] [stderr] ... | [INFO] [stderr] 51 | | scheduler [INFO] [stderr] 52 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 20 | impl Default for timescheduler::TimeScheduler { [INFO] [stderr] 21 | fn default() -> Self { [INFO] [stderr] 22 | Self::new() [INFO] [stderr] 23 | } [INFO] [stderr] 24 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/timescheduler.rs:70:21 [INFO] [stderr] | [INFO] [stderr] 70 | / if let &mut ScheduledEvent::Multiple(ref mut vec) = a { [INFO] [stderr] 71 | | vec.push(b); [INFO] [stderr] 72 | | } else { [INFO] [stderr] 73 | | unreachable!() [INFO] [stderr] 74 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 70 | if let ScheduledEvent::Multiple(ref mut vec) = *a { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/test.rs:193:9 [INFO] [stderr] | [INFO] [stderr] 193 | / match key { [INFO] [stderr] 194 | | true => toucher.touch(&self.do_complete), [INFO] [stderr] 195 | | false => toucher.touch(&self.do_not_complete), [INFO] [stderr] 196 | | } [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if key { toucher.touch(&self.do_complete) } else { toucher.touch(&self.do_not_complete) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/test.rs:200:9 [INFO] [stderr] | [INFO] [stderr] 200 | / match key { [INFO] [stderr] 201 | | true => toucher.touch_mut(&mut self.do_complete), [INFO] [stderr] 202 | | false => toucher.touch_mut(&mut self.do_not_complete), [INFO] [stderr] 203 | | } [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if key { toucher.touch_mut(&mut self.do_complete) } else { toucher.touch_mut(&mut self.do_not_complete) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/test.rs:207:9 [INFO] [stderr] | [INFO] [stderr] 207 | / match from { [INFO] [stderr] 208 | | true => self.do_complete.submit(task), [INFO] [stderr] 209 | | false => self.do_not_complete.submit(task) [INFO] [stderr] 210 | | } [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if from { self.do_complete.submit(task) } else { self.do_not_complete.submit(task) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 30 [INFO] [stderr] --> src/test.rs:384:1 [INFO] [stderr] | [INFO] [stderr] 384 | / fn multi_level_test() { [INFO] [stderr] 385 | | init_log(); [INFO] [stderr] 386 | | let owned = OwnedPool::new(MultiLevelPool::new()).unwrap(); [INFO] [stderr] 387 | | [INFO] [stderr] ... | [INFO] [stderr] 522 | | let _ = owned.close(); [INFO] [stderr] 523 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `StatusBit` [INFO] [stderr] --> src/lib.rs:75:5 [INFO] [stderr] | [INFO] [stderr] 75 | / pub fn new() -> Self { [INFO] [stderr] 76 | | StatusBit { [INFO] [stderr] 77 | | inner: None [INFO] [stderr] 78 | | } [INFO] [stderr] 79 | | } [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] 63 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 7.33s [INFO] running `"docker" "inspect" "eb248df73885d602143c6e5ee2abc5aad01ff7526a1d4bc7fd6b39303911d42d"` [INFO] running `"docker" "rm" "-f" "eb248df73885d602143c6e5ee2abc5aad01ff7526a1d4bc7fd6b39303911d42d"` [INFO] [stdout] eb248df73885d602143c6e5ee2abc5aad01ff7526a1d4bc7fd6b39303911d42d