[INFO] crate asynchronous 0.4.5 is already in cache [INFO] extracting crate asynchronous 0.4.5 into work/ex/clippy-test-run/sources/stable/reg/asynchronous/0.4.5 [INFO] extracting crate asynchronous 0.4.5 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/asynchronous/0.4.5 [INFO] validating manifest of asynchronous-0.4.5 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 asynchronous-0.4.5 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 asynchronous-0.4.5 [INFO] removed 0 missing examples [INFO] finished frobbing asynchronous-0.4.5 [INFO] frobbed toml for asynchronous-0.4.5 written to work/ex/clippy-test-run/sources/stable/reg/asynchronous/0.4.5/Cargo.toml [INFO] started frobbing asynchronous-0.4.5 [INFO] removed 0 missing examples [INFO] finished frobbing asynchronous-0.4.5 [INFO] frobbed toml for asynchronous-0.4.5 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/asynchronous/0.4.5/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 asynchronous-0.4.5 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/asynchronous/0.4.5:/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] eb754f7bcb3cac37d4210fbd3e88ab5d980292f24d884e3baf5ef1a20f6933e4 [INFO] running `"docker" "start" "-a" "eb754f7bcb3cac37d4210fbd3e88ab5d980292f24d884e3baf5ef1a20f6933e4"` [INFO] [stderr] Checking ansi_term v0.5.2 [INFO] [stderr] Checking asynchronous v0.4.5 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:894:13 [INFO] [stderr] | [INFO] [stderr] 894 | receiver : receiver, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `receiver` [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/lib.rs:890:17 [INFO] [stderr] | [INFO] [stderr] 890 | tx : tx, [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `tx` [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/lib.rs:943:13 [INFO] [stderr] | [INFO] [stderr] 943 | 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/lib.rs:939:17 [INFO] [stderr] | [INFO] [stderr] 939 | tx : tx, [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `tx` [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/lib.rs:999:13 [INFO] [stderr] | [INFO] [stderr] 999 | 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/lib.rs:995:17 [INFO] [stderr] | [INFO] [stderr] 995 | tx : tx, [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `tx` [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/lib.rs:894:13 [INFO] [stderr] | [INFO] [stderr] 894 | receiver : receiver, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `receiver` [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/lib.rs:890:17 [INFO] [stderr] | [INFO] [stderr] 890 | tx : tx, [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `tx` [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/lib.rs:943:13 [INFO] [stderr] | [INFO] [stderr] 943 | 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/lib.rs:939:17 [INFO] [stderr] | [INFO] [stderr] 939 | tx : tx, [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `tx` [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/lib.rs:999:13 [INFO] [stderr] | [INFO] [stderr] 999 | 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/lib.rs:995:17 [INFO] [stderr] | [INFO] [stderr] 995 | tx : tx, [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `tx` [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: use of deprecated item 'std::thread::sleep_ms': replaced by `std::thread::sleep` [INFO] [stderr] --> src/lib.rs:840:13 [INFO] [stderr] | [INFO] [stderr] 840 | thread::sleep_ms(duration_ms); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: Consider using an AtomicBool instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/lib.rs:136:30 [INFO] [stderr] | [INFO] [stderr] 136 | let pair = Arc::new((Mutex::new(false), Condvar::new())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::mutex_atomic)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: Consider using an AtomicBool instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/lib.rs:193:30 [INFO] [stderr] | [INFO] [stderr] 193 | let pair = Arc::new((Mutex::new(false), Condvar::new())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: Consider using an AtomicBool instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/lib.rs:235:30 [INFO] [stderr] | [INFO] [stderr] 235 | let pair = Arc::new((Mutex::new(false), Condvar::new())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: Consider using an AtomicBool instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/lib.rs:267:30 [INFO] [stderr] | [INFO] [stderr] 267 | let pair = Arc::new((Mutex::new(false), Condvar::new())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: Consider using an AtomicBool instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/lib.rs:302:30 [INFO] [stderr] | [INFO] [stderr] 302 | let pair = Arc::new((Mutex::new(false), Condvar::new())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/lib.rs:368:23 [INFO] [stderr] | [INFO] [stderr] 368 | pub fn to_promise(self) -> Promise { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [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/lib.rs:478:33 [INFO] [stderr] | [INFO] [stderr] 478 | / match defer.receiver.recv() { [INFO] [stderr] 479 | | Ok(r) => { &txinter_cloned.send((id_process, r)); } , [INFO] [stderr] 480 | | Err(_) => (), [INFO] [stderr] 481 | | } [INFO] [stderr] | |_________________________________^ help: try this: `if let Ok(r) = defer.receiver.recv() { &txinter_cloned.send((id_process, r)); }` [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] [INFO] [stderr] warning: statement can be reduced [INFO] [stderr] --> src/lib.rs:479:48 [INFO] [stderr] | [INFO] [stderr] 479 | Ok(r) => { &txinter_cloned.send((id_process, r)); } , [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `txinter_cloned.send((id_process, r));` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_operation)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_operation [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/lib.rs:493:63 [INFO] [stderr] | [INFO] [stderr] 493 | let ok_results:Result, Vec>> = match is_error { [INFO] [stderr] | _______________________________________________________________^ [INFO] [stderr] 494 | | false => { [INFO] [stderr] 495 | | let mut v:Vec = Vec::new(); [INFO] [stderr] 496 | | for r in results { [INFO] [stderr] ... | [INFO] [stderr] 509 | | } [INFO] [stderr] 510 | | }; [INFO] [stderr] | |_____________^ [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] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 493 | let ok_results:Result, Vec>> = if is_error { [INFO] [stderr] 494 | let mut v:Vec> = Vec::new(); [INFO] [stderr] 495 | for r in results { [INFO] [stderr] 496 | if r.is_none() { continue } [INFO] [stderr] 497 | v.push(r.unwrap()) [INFO] [stderr] 498 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: called `is_some()` after searching an `Iterator` with find. This is more succinctly expressed by calling `any()`. [INFO] [stderr] --> src/lib.rs:581:28 [INFO] [stderr] | [INFO] [stderr] 581 | let is_error = results.iter().find(|r| r.is_err()).is_some(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::search_is_some)] on by default [INFO] [stderr] = note: replace `find(|r| r.is_err()).is_some()` with `any(|r| r.is_err())` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#search_is_some [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/lib.rs:582:63 [INFO] [stderr] | [INFO] [stderr] 582 | let ok_results:Result, Vec>> = match is_error { [INFO] [stderr] | _______________________________________________________________^ [INFO] [stderr] 583 | | false => { [INFO] [stderr] 584 | | let mut v:Vec = Vec::new(); [INFO] [stderr] 585 | | for r in results { v.push(match r { Ok(t) => t, Err(_) => unreachable!() })} [INFO] [stderr] ... | [INFO] [stderr] 588 | | true => Err(results) [INFO] [stderr] 589 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 582 | let ok_results:Result, Vec>> = if is_error { Err(results) } else { [INFO] [stderr] 583 | let mut v:Vec = Vec::new(); [INFO] [stderr] 584 | for r in results { v.push(match r { Ok(t) => t, Err(_) => unreachable!() })} [INFO] [stderr] 585 | Ok(v) [INFO] [stderr] 586 | }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> src/lib.rs:841:13 [INFO] [stderr] | [INFO] [stderr] 841 | let _ = handler.finish(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_unit_value)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `EventLoop` [INFO] [stderr] --> src/lib.rs:868:5 [INFO] [stderr] | [INFO] [stderr] 868 | / pub fn new() -> EventLoop { [INFO] [stderr] 869 | | let pair = Arc::new((Mutex::new(false), Condvar::new())); [INFO] [stderr] 870 | | let pair_cloned = pair.clone(); [INFO] [stderr] 871 | | let (tx,rx) = mpsc::channel(); [INFO] [stderr] ... | [INFO] [stderr] 895 | | } [INFO] [stderr] 896 | | } [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] 853 | impl Default for EventLoop { [INFO] [stderr] 854 | fn default() -> Self { [INFO] [stderr] 855 | Self::new() [INFO] [stderr] 856 | } [INFO] [stderr] 857 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: Consider using an AtomicBool instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/lib.rs:869:30 [INFO] [stderr] | [INFO] [stderr] 869 | let pair = Arc::new((Mutex::new(false), Condvar::new())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/lib.rs:874:13 [INFO] [stderr] | [INFO] [stderr] 874 | / loop { [INFO] [stderr] 875 | | match rx.recv() { [INFO] [stderr] 876 | | Ok(t) => match t { [INFO] [stderr] 877 | | Some(v) => sender.send(v).unwrap(), [INFO] [stderr] ... | [INFO] [stderr] 881 | | }; [INFO] [stderr] 882 | | } [INFO] [stderr] | |_____________^ help: try: `while let Ok(t) = rx.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: Consider using an AtomicBool instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/lib.rs:892:37 [INFO] [stderr] | [INFO] [stderr] 892 | finished : Arc::new(Mutex::new(false)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: Consider using an AtomicBool instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/lib.rs:918:30 [INFO] [stderr] | [INFO] [stderr] 918 | let pair = Arc::new((Mutex::new(false), Condvar::new())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/lib.rs:923:13 [INFO] [stderr] | [INFO] [stderr] 923 | / loop { [INFO] [stderr] 924 | | match rx.recv() { [INFO] [stderr] 925 | | Ok(t) => match t { [INFO] [stderr] 926 | | Some(v) => f(v) , [INFO] [stderr] ... | [INFO] [stderr] 930 | | }; [INFO] [stderr] 931 | | } [INFO] [stderr] | |_____________^ help: try: `while let Ok(t) = rx.recv() { .. }` [INFO] [stderr] | [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: Consider using an AtomicBool instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/lib.rs:941:37 [INFO] [stderr] | [INFO] [stderr] 941 | finished : Arc::new(Mutex::new(false)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: Consider using an AtomicBool instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/lib.rs:969:30 [INFO] [stderr] | [INFO] [stderr] 969 | let pair = Arc::new((Mutex::new(false), Condvar::new())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/lib.rs:974:13 [INFO] [stderr] | [INFO] [stderr] 974 | / loop { [INFO] [stderr] 975 | | let rec = match rx.recv() { [INFO] [stderr] 976 | | Ok(t) => match t { [INFO] [stderr] 977 | | Some(v) => v , [INFO] [stderr] ... | [INFO] [stderr] 986 | | } [INFO] [stderr] 987 | | } [INFO] [stderr] | |_____________^ help: try: `while let Ok(t) = rx.recv() { .. }` [INFO] [stderr] | [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: Consider using an AtomicBool instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/lib.rs:997:37 [INFO] [stderr] | [INFO] [stderr] 997 | finished : Arc::new(Mutex::new(false)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/lib.rs:1051:23 [INFO] [stderr] | [INFO] [stderr] 1051 | pub fn to_promise(self) -> Promise,()> { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/lib.rs:1058:13 [INFO] [stderr] | [INFO] [stderr] 1058 | / loop { [INFO] [stderr] 1059 | | match self.receiver.recv() { [INFO] [stderr] 1060 | | Ok(val) => vec.push(val), [INFO] [stderr] 1061 | | Err(_) => break, [INFO] [stderr] 1062 | | } [INFO] [stderr] 1063 | | } [INFO] [stderr] | |_____________^ help: try: `while let Ok(val) = self.receiver.recv() { .. }` [INFO] [stderr] | [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 deprecated item 'std::thread::sleep_ms': replaced by `std::thread::sleep` [INFO] [stderr] --> src/lib.rs:840:13 [INFO] [stderr] | [INFO] [stderr] 840 | thread::sleep_ms(duration_ms); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: Consider using an AtomicBool instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/lib.rs:136:30 [INFO] [stderr] | [INFO] [stderr] 136 | let pair = Arc::new((Mutex::new(false), Condvar::new())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::mutex_atomic)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: Consider using an AtomicBool instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/lib.rs:193:30 [INFO] [stderr] | [INFO] [stderr] 193 | let pair = Arc::new((Mutex::new(false), Condvar::new())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: Consider using an AtomicBool instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/lib.rs:235:30 [INFO] [stderr] | [INFO] [stderr] 235 | let pair = Arc::new((Mutex::new(false), Condvar::new())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: Consider using an AtomicBool instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/lib.rs:267:30 [INFO] [stderr] | [INFO] [stderr] 267 | let pair = Arc::new((Mutex::new(false), Condvar::new())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: Consider using an AtomicBool instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/lib.rs:302:30 [INFO] [stderr] | [INFO] [stderr] 302 | let pair = Arc::new((Mutex::new(false), Condvar::new())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/lib.rs:368:23 [INFO] [stderr] | [INFO] [stderr] 368 | pub fn to_promise(self) -> Promise { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [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/lib.rs:478:33 [INFO] [stderr] | [INFO] [stderr] 478 | / match defer.receiver.recv() { [INFO] [stderr] 479 | | Ok(r) => { &txinter_cloned.send((id_process, r)); } , [INFO] [stderr] 480 | | Err(_) => (), [INFO] [stderr] 481 | | } [INFO] [stderr] | |_________________________________^ help: try this: `if let Ok(r) = defer.receiver.recv() { &txinter_cloned.send((id_process, r)); }` [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] [INFO] [stderr] warning: statement can be reduced [INFO] [stderr] --> src/lib.rs:479:48 [INFO] [stderr] | [INFO] [stderr] 479 | Ok(r) => { &txinter_cloned.send((id_process, r)); } , [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `txinter_cloned.send((id_process, r));` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_operation)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_operation [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/lib.rs:493:63 [INFO] [stderr] | [INFO] [stderr] 493 | let ok_results:Result, Vec>> = match is_error { [INFO] [stderr] | _______________________________________________________________^ [INFO] [stderr] 494 | | false => { [INFO] [stderr] 495 | | let mut v:Vec = Vec::new(); [INFO] [stderr] 496 | | for r in results { [INFO] [stderr] ... | [INFO] [stderr] 509 | | } [INFO] [stderr] 510 | | }; [INFO] [stderr] | |_____________^ [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] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 493 | let ok_results:Result, Vec>> = if is_error { [INFO] [stderr] 494 | let mut v:Vec> = Vec::new(); [INFO] [stderr] 495 | for r in results { [INFO] [stderr] 496 | if r.is_none() { continue } [INFO] [stderr] 497 | v.push(r.unwrap()) [INFO] [stderr] 498 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: called `is_some()` after searching an `Iterator` with find. This is more succinctly expressed by calling `any()`. [INFO] [stderr] --> src/lib.rs:581:28 [INFO] [stderr] | [INFO] [stderr] 581 | let is_error = results.iter().find(|r| r.is_err()).is_some(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::search_is_some)] on by default [INFO] [stderr] = note: replace `find(|r| r.is_err()).is_some()` with `any(|r| r.is_err())` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#search_is_some [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/lib.rs:582:63 [INFO] [stderr] | [INFO] [stderr] 582 | let ok_results:Result, Vec>> = match is_error { [INFO] [stderr] | _______________________________________________________________^ [INFO] [stderr] 583 | | false => { [INFO] [stderr] 584 | | let mut v:Vec = Vec::new(); [INFO] [stderr] 585 | | for r in results { v.push(match r { Ok(t) => t, Err(_) => unreachable!() })} [INFO] [stderr] ... | [INFO] [stderr] 588 | | true => Err(results) [INFO] [stderr] 589 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 582 | let ok_results:Result, Vec>> = if is_error { Err(results) } else { [INFO] [stderr] 583 | let mut v:Vec = Vec::new(); [INFO] [stderr] 584 | for r in results { v.push(match r { Ok(t) => t, Err(_) => unreachable!() })} [INFO] [stderr] 585 | Ok(v) [INFO] [stderr] 586 | }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> src/lib.rs:841:13 [INFO] [stderr] | [INFO] [stderr] 841 | let _ = handler.finish(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_unit_value)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `EventLoop` [INFO] [stderr] --> src/lib.rs:868:5 [INFO] [stderr] | [INFO] [stderr] 868 | / pub fn new() -> EventLoop { [INFO] [stderr] 869 | | let pair = Arc::new((Mutex::new(false), Condvar::new())); [INFO] [stderr] 870 | | let pair_cloned = pair.clone(); [INFO] [stderr] 871 | | let (tx,rx) = mpsc::channel(); [INFO] [stderr] ... | [INFO] [stderr] 895 | | } [INFO] [stderr] 896 | | } [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] 853 | impl Default for EventLoop { [INFO] [stderr] 854 | fn default() -> Self { [INFO] [stderr] 855 | Self::new() [INFO] [stderr] 856 | } [INFO] [stderr] 857 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: Consider using an AtomicBool instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/lib.rs:869:30 [INFO] [stderr] | [INFO] [stderr] 869 | let pair = Arc::new((Mutex::new(false), Condvar::new())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/lib.rs:874:13 [INFO] [stderr] | [INFO] [stderr] 874 | / loop { [INFO] [stderr] 875 | | match rx.recv() { [INFO] [stderr] 876 | | Ok(t) => match t { [INFO] [stderr] 877 | | Some(v) => sender.send(v).unwrap(), [INFO] [stderr] ... | [INFO] [stderr] 881 | | }; [INFO] [stderr] 882 | | } [INFO] [stderr] | |_____________^ help: try: `while let Ok(t) = rx.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: Consider using an AtomicBool instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/lib.rs:892:37 [INFO] [stderr] | [INFO] [stderr] 892 | finished : Arc::new(Mutex::new(false)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: Consider using an AtomicBool instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/lib.rs:918:30 [INFO] [stderr] | [INFO] [stderr] 918 | let pair = Arc::new((Mutex::new(false), Condvar::new())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/lib.rs:923:13 [INFO] [stderr] | [INFO] [stderr] 923 | / loop { [INFO] [stderr] 924 | | match rx.recv() { [INFO] [stderr] 925 | | Ok(t) => match t { [INFO] [stderr] 926 | | Some(v) => f(v) , [INFO] [stderr] ... | [INFO] [stderr] 930 | | }; [INFO] [stderr] 931 | | } [INFO] [stderr] | |_____________^ help: try: `while let Ok(t) = rx.recv() { .. }` [INFO] [stderr] | [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: Consider using an AtomicBool instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/lib.rs:941:37 [INFO] [stderr] | [INFO] [stderr] 941 | finished : Arc::new(Mutex::new(false)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: Consider using an AtomicBool instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/lib.rs:969:30 [INFO] [stderr] | [INFO] [stderr] 969 | let pair = Arc::new((Mutex::new(false), Condvar::new())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/lib.rs:974:13 [INFO] [stderr] | [INFO] [stderr] 974 | / loop { [INFO] [stderr] 975 | | let rec = match rx.recv() { [INFO] [stderr] 976 | | Ok(t) => match t { [INFO] [stderr] 977 | | Some(v) => v , [INFO] [stderr] ... | [INFO] [stderr] 986 | | } [INFO] [stderr] 987 | | } [INFO] [stderr] | |_____________^ help: try: `while let Ok(t) = rx.recv() { .. }` [INFO] [stderr] | [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: Consider using an AtomicBool instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/lib.rs:997:37 [INFO] [stderr] | [INFO] [stderr] 997 | finished : Arc::new(Mutex::new(false)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/lib.rs:1051:23 [INFO] [stderr] | [INFO] [stderr] 1051 | pub fn to_promise(self) -> Promise,()> { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/lib.rs:1058:13 [INFO] [stderr] | [INFO] [stderr] 1058 | / loop { [INFO] [stderr] 1059 | | match self.receiver.recv() { [INFO] [stderr] 1060 | | Ok(val) => vec.push(val), [INFO] [stderr] 1061 | | Err(_) => break, [INFO] [stderr] 1062 | | } [INFO] [stderr] 1063 | | } [INFO] [stderr] | |_____________^ help: try: `while let Ok(val) = self.receiver.recv() { .. }` [INFO] [stderr] | [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 deprecated item 'std::thread::sleep_ms': replaced by `std::thread::sleep` [INFO] [stderr] --> tests/lib.rs:109:9 [INFO] [stderr] | [INFO] [stderr] 109 | thread::sleep_ms(200); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::thread::sleep_ms': replaced by `std::thread::sleep` [INFO] [stderr] --> tests/lib.rs:116:9 [INFO] [stderr] | [INFO] [stderr] 116 | thread::sleep_ms(100); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::thread::sleep_ms': replaced by `std::thread::sleep` [INFO] [stderr] --> tests/lib.rs:123:9 [INFO] [stderr] | [INFO] [stderr] 123 | thread::sleep_ms(200); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::thread::sleep_ms': replaced by `std::thread::sleep` [INFO] [stderr] --> tests/lib.rs:168:9 [INFO] [stderr] | [INFO] [stderr] 168 | thread::sleep_ms(200); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::thread::sleep_ms': replaced by `std::thread::sleep` [INFO] [stderr] --> tests/lib.rs:174:9 [INFO] [stderr] | [INFO] [stderr] 174 | thread::sleep_ms(300); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::thread::sleep_ms': replaced by `std::thread::sleep` [INFO] [stderr] --> tests/lib.rs:180:9 [INFO] [stderr] | [INFO] [stderr] 180 | thread::sleep_ms(50); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::thread::sleep_ms': replaced by `std::thread::sleep` [INFO] [stderr] --> tests/lib.rs:222:9 [INFO] [stderr] | [INFO] [stderr] 222 | thread::sleep_ms(150); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::thread::sleep_ms': replaced by `std::thread::sleep` [INFO] [stderr] --> tests/lib.rs:228:9 [INFO] [stderr] | [INFO] [stderr] 228 | thread::sleep_ms(300); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::thread::sleep_ms': replaced by `std::thread::sleep` [INFO] [stderr] --> tests/lib.rs:234:9 [INFO] [stderr] | [INFO] [stderr] 234 | thread::sleep_ms(50); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::thread::sleep_ms': replaced by `std::thread::sleep` [INFO] [stderr] --> tests/lib.rs:240:9 [INFO] [stderr] | [INFO] [stderr] 240 | thread::sleep_ms(200); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::thread::sleep_ms': replaced by `std::thread::sleep` [INFO] [stderr] --> tests/lib.rs:417:9 [INFO] [stderr] | [INFO] [stderr] 417 | thread::sleep_ms(50); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::thread::sleep_ms': replaced by `std::thread::sleep` [INFO] [stderr] --> tests/lib.rs:422:9 [INFO] [stderr] | [INFO] [stderr] 422 | thread::sleep_ms(50); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::thread::sleep_ms': replaced by `std::thread::sleep` [INFO] [stderr] --> tests/lib.rs:468:5 [INFO] [stderr] | [INFO] [stderr] 468 | thread::sleep_ms(100); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::thread::sleep_ms': replaced by `std::thread::sleep` [INFO] [stderr] --> tests/lib.rs:493:9 [INFO] [stderr] | [INFO] [stderr] 493 | thread::sleep_ms(100); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::thread::sleep_ms': replaced by `std::thread::sleep` [INFO] [stderr] --> tests/lib.rs:555:5 [INFO] [stderr] | [INFO] [stderr] 555 | thread::sleep_ms(75); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> examples/prime_numbers.rs:290:5 [INFO] [stderr] | [INFO] [stderr] 290 | return probe [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `probe` [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: use of deprecated item 'std::thread::sleep_ms': replaced by `std::thread::sleep` [INFO] [stderr] --> examples/prime_numbers.rs:189:9 [INFO] [stderr] | [INFO] [stderr] 189 | thread::sleep_ms(2000); // Simulate I/O wait [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::thread::sleep_ms': replaced by `std::thread::sleep` [INFO] [stderr] --> examples/prime_numbers.rs:220:9 [INFO] [stderr] | [INFO] [stderr] 220 | thread::sleep_ms(2000); // Simulate I/O wait [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::thread::sleep_ms': replaced by `std::thread::sleep` [INFO] [stderr] --> examples/prime_numbers.rs:262:9 [INFO] [stderr] | [INFO] [stderr] 262 | thread::sleep_ms(2000); // Simulate I/O wait [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::thread::sleep_ms': replaced by `std::thread::sleep` [INFO] [stderr] --> examples/prime_numbers.rs:273:9 [INFO] [stderr] | [INFO] [stderr] 273 | thread::sleep_ms(10); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: called `is_some()` after searching an `Iterator` with find. This is more succinctly expressed by calling `any()`. [INFO] [stderr] --> examples/prime_numbers.rs:86:9 [INFO] [stderr] | [INFO] [stderr] 86 | self.active.iter().find(|r| r.0 == id).is_some() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::search_is_some)] on by default [INFO] [stderr] = note: replace `find(|r| r.0 == id).is_some()` with `any(|r| r.0 == id)` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#search_is_some [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> examples/prime_numbers.rs:91:9 [INFO] [stderr] | [INFO] [stderr] 91 | if rec.is_none() { return None } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace_it_with: `rec?;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::question_mark)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> examples/prime_numbers.rs:152:13 [INFO] [stderr] | [INFO] [stderr] 152 | let ref mut command = String::new(); [INFO] [stderr] | ----^^^^^^^^^^^^^^^----------------- help: try: `let command = &mut String::new();` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> examples/prime_numbers.rs:175:5 [INFO] [stderr] | [INFO] [stderr] 175 | / let _ = el.to_promise().finally_sync(|_| { [INFO] [stderr] 176 | | println!("Goodbye!"); [INFO] [stderr] 177 | | }); [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_unit_value)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> examples/prime_numbers.rs:206:12 [INFO] [stderr] | [INFO] [stderr] 206 | Ok(res) [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unit_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 206 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> examples/prime_numbers.rs:265:29 [INFO] [stderr] | [INFO] [stderr] 265 | Some(job) => Ok(job.finish()), [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 265 | Some(job) => Ok(()), [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> tests/lib.rs:291:5 [INFO] [stderr] | [INFO] [stderr] 291 | / let _ = Deferred::first_to_promise(2, true, v, ControlFlow::Series) [INFO] [stderr] 292 | | .finally_sync(|res| { [INFO] [stderr] 293 | | assert_eq!(res.unwrap().len(), 2); [INFO] [stderr] 294 | | }); [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_unit_value)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> tests/lib.rs:300:5 [INFO] [stderr] | [INFO] [stderr] 300 | / let _ = Deferred::first_to_promise(5, true, v, ControlFlow::ParallelLimit(3)) [INFO] [stderr] 301 | | .finally_sync(|res| { [INFO] [stderr] 302 | | let r = res.unwrap(); [INFO] [stderr] 303 | | assert!(r.len()>=5 && r.len()<=7); [INFO] [stderr] 304 | | }); [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> tests/lib.rs:310:5 [INFO] [stderr] | [INFO] [stderr] 310 | / let _ = Deferred::first_to_promise(5, true, v, ControlFlow::Parallel) [INFO] [stderr] 311 | | .finally_sync(|res| { [INFO] [stderr] 312 | | assert_eq!(res.unwrap().len(), 20); [INFO] [stderr] 313 | | }); [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> tests/lib.rs:323:5 [INFO] [stderr] | [INFO] [stderr] 323 | / let _ = Deferred::first_to_promise(10, true, v, ControlFlow::Parallel) [INFO] [stderr] 324 | | .finally_sync(|res| { [INFO] [stderr] 325 | | assert_eq!(res.unwrap().len(), 19); [INFO] [stderr] 326 | | }); [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> tests/lib.rs:335:5 [INFO] [stderr] | [INFO] [stderr] 335 | / let _ = Deferred::first_to_promise(7, true, v, ControlFlow::ParallelLimit(3)) [INFO] [stderr] 336 | | .finally_sync(|res| { [INFO] [stderr] 337 | | assert_eq!(res.unwrap_err().len(), 10); [INFO] [stderr] 338 | | }); [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> tests/lib.rs:344:5 [INFO] [stderr] | [INFO] [stderr] 344 | / let _ = Deferred::first_to_promise(7, true, v, ControlFlow::ParallelLimit(3)) [INFO] [stderr] 345 | | .finally_sync(|res| { [INFO] [stderr] 346 | | assert_eq!(res.unwrap_err().len(), 5); [INFO] [stderr] 347 | | }); [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> tests/lib.rs:356:5 [INFO] [stderr] | [INFO] [stderr] 356 | / let _ = Deferred::first_to_promise(2, false, v, ControlFlow::Series) [INFO] [stderr] 357 | | .finally_sync(|res| { [INFO] [stderr] 358 | | assert_eq!(res.unwrap().len(), 2); [INFO] [stderr] 359 | | }); [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> tests/lib.rs:365:5 [INFO] [stderr] | [INFO] [stderr] 365 | / let _ = Deferred::first_to_promise(5, false, v, ControlFlow::ParallelLimit(3)) [INFO] [stderr] 366 | | .finally_sync(|res| { [INFO] [stderr] 367 | | assert_eq!(res.unwrap().len(), 5); [INFO] [stderr] 368 | | }); [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> tests/lib.rs:374:5 [INFO] [stderr] | [INFO] [stderr] 374 | / let _ = Deferred::first_to_promise(5, false, v, ControlFlow::Parallel) [INFO] [stderr] 375 | | .finally_sync(|res| { [INFO] [stderr] 376 | | assert_eq!(res.unwrap().len(), 5); [INFO] [stderr] 377 | | }); [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> tests/lib.rs:387:5 [INFO] [stderr] | [INFO] [stderr] 387 | / let _ = Deferred::first_to_promise(10, false, v, ControlFlow::ParallelLimit(3)) [INFO] [stderr] 388 | | .finally_sync(|res| { [INFO] [stderr] 389 | | assert_eq!(res.unwrap().len(), 10); [INFO] [stderr] 390 | | }); [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> tests/lib.rs:399:5 [INFO] [stderr] | [INFO] [stderr] 399 | / let _ = Deferred::first_to_promise(7, false, v, ControlFlow::ParallelLimit(3)) [INFO] [stderr] 400 | | .finally_sync(|res| { [INFO] [stderr] 401 | | assert_eq!(res.unwrap_err().len(), 10); [INFO] [stderr] 402 | | }); [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> tests/lib.rs:408:5 [INFO] [stderr] | [INFO] [stderr] 408 | / let _ = Deferred::first_to_promise(7, false, v, ControlFlow::ParallelLimit(3)) [INFO] [stderr] 409 | | .finally_sync(|res| { [INFO] [stderr] 410 | | assert_eq!(res.unwrap_err().len(), 5); [INFO] [stderr] 411 | | }); [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 2.98s [INFO] running `"docker" "inspect" "eb754f7bcb3cac37d4210fbd3e88ab5d980292f24d884e3baf5ef1a20f6933e4"` [INFO] running `"docker" "rm" "-f" "eb754f7bcb3cac37d4210fbd3e88ab5d980292f24d884e3baf5ef1a20f6933e4"` [INFO] [stdout] eb754f7bcb3cac37d4210fbd3e88ab5d980292f24d884e3baf5ef1a20f6933e4