[INFO] crate minions 0.2.9 is already in cache [INFO] extracting crate minions 0.2.9 into work/ex/clippy-test-run/sources/stable/reg/minions/0.2.9 [INFO] extracting crate minions 0.2.9 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/minions/0.2.9 [INFO] validating manifest of minions-0.2.9 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 minions-0.2.9 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 minions-0.2.9 [INFO] finished frobbing minions-0.2.9 [INFO] frobbed toml for minions-0.2.9 written to work/ex/clippy-test-run/sources/stable/reg/minions/0.2.9/Cargo.toml [INFO] started frobbing minions-0.2.9 [INFO] finished frobbing minions-0.2.9 [INFO] frobbed toml for minions-0.2.9 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/minions/0.2.9/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 minions-0.2.9 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/minions/0.2.9:/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] ac84729bcdd67b0533a5701e70d7a83865c9dbac446d536bce0cb65ca63691fe [INFO] running `"docker" "start" "-a" "ac84729bcdd67b0533a5701e70d7a83865c9dbac446d536bce0cb65ca63691fe"` [INFO] [stderr] Checking lossyq v0.1.19 [INFO] [stderr] Checking parking_lot v0.2.8 [INFO] [stderr] Checking minions v0.2.9 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/scheduler/wrap.rs:103:5 [INFO] [stderr] | [INFO] [stderr] 103 | task: task, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `task` [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/scheduler/wrap.rs:106:5 [INFO] [stderr] | [INFO] [stderr] 106 | id: id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `id` [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/scheduler/task_id.rs:14:11 [INFO] [stderr] | [INFO] [stderr] 14 | TaskId{ id: id } [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/elem/source.rs:58:9 [INFO] [stderr] | [INFO] [stderr] 58 | output_tx : output_tx, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `output_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/elem/filter.rs:85:9 [INFO] [stderr] | [INFO] [stderr] 85 | output_tx : output_tx, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `output_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/elem/ysplit.rs:95:9 [INFO] [stderr] | [INFO] [stderr] 95 | output_a_tx : output_a_tx, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `output_a_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/elem/ysplit.rs:96:9 [INFO] [stderr] | [INFO] [stderr] 96 | output_b_tx : output_b_tx, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `output_b_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/elem/ymerge.rs:101:9 [INFO] [stderr] | [INFO] [stderr] 101 | output_tx : output_tx, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `output_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/elem/gather.rs:90:9 [INFO] [stderr] | [INFO] [stderr] 90 | output_tx : output_tx, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `output_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:75:7 [INFO] [stderr] | [INFO] [stderr] 75 | task_id: task_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `task_id` [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:76:7 [INFO] [stderr] | [INFO] [stderr] 76 | name: name, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `name` [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:78:7 [INFO] [stderr] | [INFO] [stderr] 78 | eval_id: eval_id [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `eval_id` [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:83:7 [INFO] [stderr] | [INFO] [stderr] 83 | task_id: task_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `task_id` [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:84:7 [INFO] [stderr] | [INFO] [stderr] 84 | name: name, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `name` [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:85:7 [INFO] [stderr] | [INFO] [stderr] 85 | at_usec: at_usec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `at_usec` [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:86:7 [INFO] [stderr] | [INFO] [stderr] 86 | eval_id: eval_id [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `eval_id` [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:136:5 [INFO] [stderr] | [INFO] [stderr] 136 | id : id, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `id` [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/scheduler/wrap.rs:103:5 [INFO] [stderr] | [INFO] [stderr] 103 | task: task, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `task` [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/scheduler/wrap.rs:106:5 [INFO] [stderr] | [INFO] [stderr] 106 | id: id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `id` [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/scheduler/task_id.rs:14:11 [INFO] [stderr] | [INFO] [stderr] 14 | TaskId{ id: id } [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/elem/source.rs:58:9 [INFO] [stderr] | [INFO] [stderr] 58 | output_tx : output_tx, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `output_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/elem/filter.rs:85:9 [INFO] [stderr] | [INFO] [stderr] 85 | output_tx : output_tx, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `output_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/elem/ysplit.rs:95:9 [INFO] [stderr] | [INFO] [stderr] 95 | output_a_tx : output_a_tx, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `output_a_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/elem/ysplit.rs:96:9 [INFO] [stderr] | [INFO] [stderr] 96 | output_b_tx : output_b_tx, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `output_b_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/elem/ymerge.rs:101:9 [INFO] [stderr] | [INFO] [stderr] 101 | output_tx : output_tx, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `output_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/elem/gather.rs:90:9 [INFO] [stderr] | [INFO] [stderr] 90 | output_tx : output_tx, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `output_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:75:7 [INFO] [stderr] | [INFO] [stderr] 75 | task_id: task_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `task_id` [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:76:7 [INFO] [stderr] | [INFO] [stderr] 76 | name: name, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `name` [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:78:7 [INFO] [stderr] | [INFO] [stderr] 78 | eval_id: eval_id [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `eval_id` [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:83:7 [INFO] [stderr] | [INFO] [stderr] 83 | task_id: task_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `task_id` [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:84:7 [INFO] [stderr] | [INFO] [stderr] 84 | name: name, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `name` [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:85:7 [INFO] [stderr] | [INFO] [stderr] 85 | at_usec: at_usec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `at_usec` [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:86:7 [INFO] [stderr] | [INFO] [stderr] 86 | eval_id: eval_id [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `eval_id` [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:136:5 [INFO] [stderr] | [INFO] [stderr] 136 | id : id, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `id` [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: the loop variable `i` is used to index `otx_slice` [INFO] [stderr] --> src/scheduler/wrap.rs:22:14 [INFO] [stderr] | [INFO] [stderr] 22 | for i in 0..ln { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 22 | for (i, ) in otx_slice.iter_mut().enumerate().take(ln) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/scheduler/array.rs:16:8 [INFO] [stderr] | [INFO] [stderr] 16 | if old.is_null() == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!old.is_null()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/scheduler/array.rs:36:10 [INFO] [stderr] | [INFO] [stderr] 36 | if wrk.is_null() == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!wrk.is_null()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/scheduler/array.rs:52:8 [INFO] [stderr] | [INFO] [stderr] 52 | if wrk.is_null() == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!wrk.is_null()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `l2_slice`. [INFO] [stderr] --> src/scheduler/array.rs:82:14 [INFO] [stderr] | [INFO] [stderr] 82 | for i in 0..(1+max_idx()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 82 | for in l2_slice.iter_mut().take((1+max_idx())) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/scheduler/array.rs:82:14 [INFO] [stderr] | [INFO] [stderr] 82 | for i in 0..(1+max_idx()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use: `0..=max_idx()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/scheduler/array.rs:85:10 [INFO] [stderr] | [INFO] [stderr] 85 | if ptr.is_null() == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!ptr.is_null()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/scheduler/task_id.rs:8:13 [INFO] [stderr] | [INFO] [stderr] 8 | pub fn id(&self) -> usize { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/scheduler/data.rs:66:10 [INFO] [stderr] | [INFO] [stderr] 66 | if l1_ptr.is_null() == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!l1_ptr.is_null()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: the loop variable `l1_idx` is used to index `l1_slice` [INFO] [stderr] --> src/scheduler/data.rs:93:21 [INFO] [stderr] | [INFO] [stderr] 93 | for l1_idx in 0..(l1+1) { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 93 | for (l1_idx, ) in l1_slice.iter().enumerate().take((l1+1)) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/scheduler/data.rs:93:21 [INFO] [stderr] | [INFO] [stderr] 93 | for l1_idx in 0..(l1+1) { [INFO] [stderr] | ^^^^^^^^^ help: use: `0..=l1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/scheduler/data.rs:95:9 [INFO] [stderr] | [INFO] [stderr] 95 | / let mut l2_max_idx = array::max_idx(); [INFO] [stderr] 96 | | if l1_idx == l1 { [INFO] [stderr] 97 | | l2_max_idx = l2; [INFO] [stderr] 98 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let l2_max_idx = if l1_idx == l1 { l2 } else { array::max_idx() };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/scheduler/data.rs:110:32 [INFO] [stderr] | [INFO] [stderr] 110 | pub fn notify(&mut self, id: &task_id::TaskId) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider passing by value instead: `task_id::TaskId` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `l1_slice`. [INFO] [stderr] --> src/scheduler/data.rs:144:14 [INFO] [stderr] | [INFO] [stderr] 144 | for i in 0..len { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 144 | for in l1_slice.iter_mut().take(len) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/scheduler/data.rs:147:10 [INFO] [stderr] | [INFO] [stderr] 147 | if ptr.is_null() == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!ptr.is_null()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/scheduler/observer.rs:52:5 [INFO] [stderr] | [INFO] [stderr] 52 | / match to { [INFO] [stderr] 53 | | &TaskState::ExtEventWait(..) => { self.ext_wait += 1; } [INFO] [stderr] 54 | | &TaskState::MessageWait(..) => { self.msg_wait += 1; } [INFO] [stderr] 55 | | &TaskState::TimeWait(..) => { self.time_wait += 1; } [INFO] [stderr] 56 | | &TaskState::Stop => { self.stopped += 1; } [INFO] [stderr] 57 | | _ => {} [INFO] [stderr] 58 | | }; [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] 52 | match *to { [INFO] [stderr] 53 | TaskState::ExtEventWait(..) => { self.ext_wait += 1; } [INFO] [stderr] 54 | TaskState::MessageWait(..) => { self.msg_wait += 1; } [INFO] [stderr] 55 | TaskState::TimeWait(..) => { self.time_wait += 1; } [INFO] [stderr] 56 | TaskState::Stop => { self.stopped += 1; } [INFO] [stderr] | [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/scheduler/observer.rs:59:5 [INFO] [stderr] | [INFO] [stderr] 59 | / match event { [INFO] [stderr] 60 | | &Event::Delay => { self.delayed += 1; } [INFO] [stderr] 61 | | _ => {} [INFO] [stderr] 62 | | } [INFO] [stderr] | |_____^ help: try this: `if let &Event::Delay = event { self.delayed += 1; }` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/scheduler/observer.rs:59:5 [INFO] [stderr] | [INFO] [stderr] 59 | / match event { [INFO] [stderr] 60 | | &Event::Delay => { self.delayed += 1; } [INFO] [stderr] 61 | | _ => {} [INFO] [stderr] 62 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [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] 59 | match *event { [INFO] [stderr] 60 | Event::Delay => { self.delayed += 1; } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/scheduler/mod.rs:30:32 [INFO] [stderr] | [INFO] [stderr] 30 | pub fn notify(&mut self, id: &task_id::TaskId) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider passing by value instead: `task_id::TaskId` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/scheduler/mod.rs:54:5 [INFO] [stderr] | [INFO] [stderr] 54 | / loop { [INFO] [stderr] 55 | | match self.threads.pop() { [INFO] [stderr] 56 | | Some(t) => { [INFO] [stderr] 57 | | t.join().unwrap(); [INFO] [stderr] ... | [INFO] [stderr] 62 | | } [INFO] [stderr] 63 | | } [INFO] [stderr] | |_____^ help: try: `while let Some(t) = self.threads.pop() { .. }` [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: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/elem/filter.rs:27:7 [INFO] [stderr] | [INFO] [stderr] 27 | / match &self.input_rx { [INFO] [stderr] 28 | | &Some(ref ch) => Some(ch.id.clone()), [INFO] [stderr] 29 | | _ => None, [INFO] [stderr] 30 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 27 | match self.input_rx { [INFO] [stderr] 28 | Some(ref ch) => Some(ch.id.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/elem/filter.rs:75:10 [INFO] [stderr] | [INFO] [stderr] 75 | -> (Box>, Box>>) [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 don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/elem/ysplit.rs:32:7 [INFO] [stderr] | [INFO] [stderr] 32 | / match &self.input_rx { [INFO] [stderr] 33 | | &Some(ref ch) => Some(ch.id.clone()), [INFO] [stderr] 34 | | _ => None, [INFO] [stderr] 35 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 32 | match self.input_rx { [INFO] [stderr] 33 | Some(ref ch) => Some(ch.id.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/elem/ysplit.rs:82:10 [INFO] [stderr] | [INFO] [stderr] 82 | -> (Box>, [INFO] [stderr] | __________^ [INFO] [stderr] 83 | | Box>>, [INFO] [stderr] 84 | | Box>>) [INFO] [stderr] | |___________________________________________________^ [INFO] [stderr] | [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 don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/elem/ymerge.rs:32:7 [INFO] [stderr] | [INFO] [stderr] 32 | / match &self.input_a_rx { [INFO] [stderr] 33 | | &Some(ref ch) => Some(ch.id.clone()), [INFO] [stderr] 34 | | _ => None [INFO] [stderr] 35 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 32 | match self.input_a_rx { [INFO] [stderr] 33 | Some(ref ch) => Some(ch.id.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/elem/ymerge.rs:37:7 [INFO] [stderr] | [INFO] [stderr] 37 | / match &self.input_b_rx { [INFO] [stderr] 38 | | &Some(ref ch) => Some(ch.id.clone()), [INFO] [stderr] 39 | | _ => None [INFO] [stderr] 40 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 37 | match self.input_b_rx { [INFO] [stderr] 38 | Some(ref ch) => Some(ch.id.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/elem/ymerge.rs:90:10 [INFO] [stderr] | [INFO] [stderr] 90 | -> (Box>, Box>>) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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 don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/elem/sink.rs:24:7 [INFO] [stderr] | [INFO] [stderr] 24 | / match &self.input_rx { [INFO] [stderr] 25 | | &Some(ref ch) => Some(ch.id.clone()), [INFO] [stderr] 26 | | _ => None, [INFO] [stderr] 27 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 24 | match self.input_rx { [INFO] [stderr] 25 | Some(ref ch) => Some(ch.id.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/elem/scatter.rs:29:7 [INFO] [stderr] | [INFO] [stderr] 29 | / match &self.input_rx { [INFO] [stderr] 30 | | &Some(ref ch) => Some(ch.id.clone()), [INFO] [stderr] 31 | | _ => None, [INFO] [stderr] 32 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 29 | match self.input_rx { [INFO] [stderr] 30 | Some(ref ch) => Some(ch.id.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/elem/scatter.rs:78:10 [INFO] [stderr] | [INFO] [stderr] 78 | -> (Box>, Vec>>>) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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 don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/elem/gather.rs:28:7 [INFO] [stderr] | [INFO] [stderr] 28 | / match &slice[ch_id] { [INFO] [stderr] 29 | | &Some(ref ch) => Some(ch.id.clone()), [INFO] [stderr] 30 | | _ => None, [INFO] [stderr] 31 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 28 | match slice[ch_id] { [INFO] [stderr] 29 | Some(ref ch) => Some(ch.id.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/elem/gather.rs:78:10 [INFO] [stderr] | [INFO] [stderr] 78 | -> (Box>, Box>>) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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 don't need to add `&` to all patterns [INFO] [stderr] --> src/elem/connectable.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | / match ch { [INFO] [stderr] 11 | | &Some(ref v) => { [INFO] [stderr] 12 | | Err(format!("already connected to {}",v.id)) [INFO] [stderr] 13 | | }, [INFO] [stderr] ... | [INFO] [stderr] 16 | | } [INFO] [stderr] 17 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [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] 10 | match *ch { [INFO] [stderr] 11 | Some(ref v) => { [INFO] [stderr] 12 | Err(format!("already connected to {}",v.id)) [INFO] [stderr] 13 | }, [INFO] [stderr] 14 | None => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/elem/connectable.rs:20:9 [INFO] [stderr] | [INFO] [stderr] 20 | Err(format!("already connected")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"already connected".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/elem/connectable.rs:34:9 [INFO] [stderr] | [INFO] [stderr] 34 | Err(format!("not connected")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"not connected".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/elem/connectable.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | / match from { [INFO] [stderr] 38 | | &mut Some(ref v) => { [INFO] [stderr] 39 | | Err(format!("not yet connected. has channel: {}", v.id) [INFO] [stderr] 40 | | ) [INFO] [stderr] ... | [INFO] [stderr] 44 | | } [INFO] [stderr] 45 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [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] 37 | match *from { [INFO] [stderr] 38 | Some(ref v) => { [INFO] [stderr] 39 | Err(format!("not yet connected. has channel: {}", v.id) [INFO] [stderr] 40 | ) [INFO] [stderr] 41 | }, [INFO] [stderr] 42 | None => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/lib.rs:73:36 [INFO] [stderr] | [INFO] [stderr] 73 | pub fn new(task_id: usize, name: &'a String, at_usec: &'a AtomicUsize, eval_id: usize) -> EvalInfo<'a> { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/lib.rs:81:46 [INFO] [stderr] | [INFO] [stderr] 81 | pub fn new_with_usec(task_id: usize, name: &'a String, at_usec: usize, eval_id: usize) -> EvalInfo<'a> { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `otx_slice` [INFO] [stderr] --> src/scheduler/wrap.rs:22:14 [INFO] [stderr] | [INFO] [stderr] 22 | for i in 0..ln { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 22 | for (i, ) in otx_slice.iter_mut().enumerate().take(ln) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/scheduler/array.rs:16:8 [INFO] [stderr] | [INFO] [stderr] 16 | if old.is_null() == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!old.is_null()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/scheduler/array.rs:36:10 [INFO] [stderr] | [INFO] [stderr] 36 | if wrk.is_null() == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!wrk.is_null()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/scheduler/array.rs:52:8 [INFO] [stderr] | [INFO] [stderr] 52 | if wrk.is_null() == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!wrk.is_null()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `l2_slice`. [INFO] [stderr] --> src/scheduler/array.rs:82:14 [INFO] [stderr] | [INFO] [stderr] 82 | for i in 0..(1+max_idx()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 82 | for in l2_slice.iter_mut().take((1+max_idx())) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/scheduler/array.rs:82:14 [INFO] [stderr] | [INFO] [stderr] 82 | for i in 0..(1+max_idx()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use: `0..=max_idx()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/scheduler/array.rs:85:10 [INFO] [stderr] | [INFO] [stderr] 85 | if ptr.is_null() == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!ptr.is_null()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/scheduler/task_id.rs:8:13 [INFO] [stderr] | [INFO] [stderr] 8 | pub fn id(&self) -> usize { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/scheduler/data.rs:66:10 [INFO] [stderr] | [INFO] [stderr] 66 | if l1_ptr.is_null() == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!l1_ptr.is_null()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: the loop variable `l1_idx` is used to index `l1_slice` [INFO] [stderr] --> src/scheduler/data.rs:93:21 [INFO] [stderr] | [INFO] [stderr] 93 | for l1_idx in 0..(l1+1) { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 93 | for (l1_idx, ) in l1_slice.iter().enumerate().take((l1+1)) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/scheduler/data.rs:93:21 [INFO] [stderr] | [INFO] [stderr] 93 | for l1_idx in 0..(l1+1) { [INFO] [stderr] | ^^^^^^^^^ help: use: `0..=l1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/scheduler/data.rs:95:9 [INFO] [stderr] | [INFO] [stderr] 95 | / let mut l2_max_idx = array::max_idx(); [INFO] [stderr] 96 | | if l1_idx == l1 { [INFO] [stderr] 97 | | l2_max_idx = l2; [INFO] [stderr] 98 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let l2_max_idx = if l1_idx == l1 { l2 } else { array::max_idx() };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/scheduler/data.rs:110:32 [INFO] [stderr] | [INFO] [stderr] 110 | pub fn notify(&mut self, id: &task_id::TaskId) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider passing by value instead: `task_id::TaskId` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `l1_slice`. [INFO] [stderr] --> src/scheduler/data.rs:144:14 [INFO] [stderr] | [INFO] [stderr] 144 | for i in 0..len { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 144 | for in l1_slice.iter_mut().take(len) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/scheduler/data.rs:147:10 [INFO] [stderr] | [INFO] [stderr] 147 | if ptr.is_null() == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!ptr.is_null()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/scheduler/observer.rs:52:5 [INFO] [stderr] | [INFO] [stderr] 52 | / match to { [INFO] [stderr] 53 | | &TaskState::ExtEventWait(..) => { self.ext_wait += 1; } [INFO] [stderr] 54 | | &TaskState::MessageWait(..) => { self.msg_wait += 1; } [INFO] [stderr] 55 | | &TaskState::TimeWait(..) => { self.time_wait += 1; } [INFO] [stderr] 56 | | &TaskState::Stop => { self.stopped += 1; } [INFO] [stderr] 57 | | _ => {} [INFO] [stderr] 58 | | }; [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] 52 | match *to { [INFO] [stderr] 53 | TaskState::ExtEventWait(..) => { self.ext_wait += 1; } [INFO] [stderr] 54 | TaskState::MessageWait(..) => { self.msg_wait += 1; } [INFO] [stderr] 55 | TaskState::TimeWait(..) => { self.time_wait += 1; } [INFO] [stderr] 56 | TaskState::Stop => { self.stopped += 1; } [INFO] [stderr] | [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/scheduler/observer.rs:59:5 [INFO] [stderr] | [INFO] [stderr] 59 | / match event { [INFO] [stderr] 60 | | &Event::Delay => { self.delayed += 1; } [INFO] [stderr] 61 | | _ => {} [INFO] [stderr] 62 | | } [INFO] [stderr] | |_____^ help: try this: `if let &Event::Delay = event { self.delayed += 1; }` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/scheduler/observer.rs:59:5 [INFO] [stderr] | [INFO] [stderr] 59 | / match event { [INFO] [stderr] 60 | | &Event::Delay => { self.delayed += 1; } [INFO] [stderr] 61 | | _ => {} [INFO] [stderr] 62 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [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] 59 | match *event { [INFO] [stderr] 60 | Event::Delay => { self.delayed += 1; } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/scheduler/mod.rs:30:32 [INFO] [stderr] | [INFO] [stderr] 30 | pub fn notify(&mut self, id: &task_id::TaskId) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider passing by value instead: `task_id::TaskId` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/scheduler/mod.rs:54:5 [INFO] [stderr] | [INFO] [stderr] 54 | / loop { [INFO] [stderr] 55 | | match self.threads.pop() { [INFO] [stderr] 56 | | Some(t) => { [INFO] [stderr] 57 | | t.join().unwrap(); [INFO] [stderr] ... | [INFO] [stderr] 62 | | } [INFO] [stderr] 63 | | } [INFO] [stderr] | |_____^ help: try: `while let Some(t) = self.threads.pop() { .. }` [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: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/elem/filter.rs:27:7 [INFO] [stderr] | [INFO] [stderr] 27 | / match &self.input_rx { [INFO] [stderr] 28 | | &Some(ref ch) => Some(ch.id.clone()), [INFO] [stderr] 29 | | _ => None, [INFO] [stderr] 30 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 27 | match self.input_rx { [INFO] [stderr] 28 | Some(ref ch) => Some(ch.id.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/elem/filter.rs:75:10 [INFO] [stderr] | [INFO] [stderr] 75 | -> (Box>, Box>>) [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 don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/elem/ysplit.rs:32:7 [INFO] [stderr] | [INFO] [stderr] 32 | / match &self.input_rx { [INFO] [stderr] 33 | | &Some(ref ch) => Some(ch.id.clone()), [INFO] [stderr] 34 | | _ => None, [INFO] [stderr] 35 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 32 | match self.input_rx { [INFO] [stderr] 33 | Some(ref ch) => Some(ch.id.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/elem/ysplit.rs:82:10 [INFO] [stderr] | [INFO] [stderr] 82 | -> (Box>, [INFO] [stderr] | __________^ [INFO] [stderr] 83 | | Box>>, [INFO] [stderr] 84 | | Box>>) [INFO] [stderr] | |___________________________________________________^ [INFO] [stderr] | [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 don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/elem/ymerge.rs:32:7 [INFO] [stderr] | [INFO] [stderr] 32 | / match &self.input_a_rx { [INFO] [stderr] 33 | | &Some(ref ch) => Some(ch.id.clone()), [INFO] [stderr] 34 | | _ => None [INFO] [stderr] 35 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 32 | match self.input_a_rx { [INFO] [stderr] 33 | Some(ref ch) => Some(ch.id.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/elem/ymerge.rs:37:7 [INFO] [stderr] | [INFO] [stderr] 37 | / match &self.input_b_rx { [INFO] [stderr] 38 | | &Some(ref ch) => Some(ch.id.clone()), [INFO] [stderr] 39 | | _ => None [INFO] [stderr] 40 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 37 | match self.input_b_rx { [INFO] [stderr] 38 | Some(ref ch) => Some(ch.id.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/elem/ymerge.rs:90:10 [INFO] [stderr] | [INFO] [stderr] 90 | -> (Box>, Box>>) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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 don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/elem/sink.rs:24:7 [INFO] [stderr] | [INFO] [stderr] 24 | / match &self.input_rx { [INFO] [stderr] 25 | | &Some(ref ch) => Some(ch.id.clone()), [INFO] [stderr] 26 | | _ => None, [INFO] [stderr] 27 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 24 | match self.input_rx { [INFO] [stderr] 25 | Some(ref ch) => Some(ch.id.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/elem/scatter.rs:29:7 [INFO] [stderr] | [INFO] [stderr] 29 | / match &self.input_rx { [INFO] [stderr] 30 | | &Some(ref ch) => Some(ch.id.clone()), [INFO] [stderr] 31 | | _ => None, [INFO] [stderr] 32 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 29 | match self.input_rx { [INFO] [stderr] 30 | Some(ref ch) => Some(ch.id.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/elem/scatter.rs:78:10 [INFO] [stderr] | [INFO] [stderr] 78 | -> (Box>, Vec>>>) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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 don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/elem/gather.rs:28:7 [INFO] [stderr] | [INFO] [stderr] 28 | / match &slice[ch_id] { [INFO] [stderr] 29 | | &Some(ref ch) => Some(ch.id.clone()), [INFO] [stderr] 30 | | _ => None, [INFO] [stderr] 31 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 28 | match slice[ch_id] { [INFO] [stderr] 29 | Some(ref ch) => Some(ch.id.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/elem/gather.rs:78:10 [INFO] [stderr] | [INFO] [stderr] 78 | -> (Box>, Box>>) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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 don't need to add `&` to all patterns [INFO] [stderr] --> src/elem/connectable.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | / match ch { [INFO] [stderr] 11 | | &Some(ref v) => { [INFO] [stderr] 12 | | Err(format!("already connected to {}",v.id)) [INFO] [stderr] 13 | | }, [INFO] [stderr] ... | [INFO] [stderr] 16 | | } [INFO] [stderr] 17 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [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] 10 | match *ch { [INFO] [stderr] 11 | Some(ref v) => { [INFO] [stderr] 12 | Err(format!("already connected to {}",v.id)) [INFO] [stderr] 13 | }, [INFO] [stderr] 14 | None => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/elem/connectable.rs:20:9 [INFO] [stderr] | [INFO] [stderr] 20 | Err(format!("already connected")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"already connected".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/elem/connectable.rs:34:9 [INFO] [stderr] | [INFO] [stderr] 34 | Err(format!("not connected")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"not connected".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/elem/connectable.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | / match from { [INFO] [stderr] 38 | | &mut Some(ref v) => { [INFO] [stderr] 39 | | Err(format!("not yet connected. has channel: {}", v.id) [INFO] [stderr] 40 | | ) [INFO] [stderr] ... | [INFO] [stderr] 44 | | } [INFO] [stderr] 45 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [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] 37 | match *from { [INFO] [stderr] 38 | Some(ref v) => { [INFO] [stderr] 39 | Err(format!("not yet connected. has channel: {}", v.id) [INFO] [stderr] 40 | ) [INFO] [stderr] 41 | }, [INFO] [stderr] 42 | None => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/lib.rs:73:36 [INFO] [stderr] | [INFO] [stderr] 73 | pub fn new(task_id: usize, name: &'a String, at_usec: &'a AtomicUsize, eval_id: usize) -> EvalInfo<'a> { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/lib.rs:81:46 [INFO] [stderr] | [INFO] [stderr] 81 | pub fn new_with_usec(task_id: usize, name: &'a String, at_usec: usize, eval_id: usize) -> EvalInfo<'a> { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 4.62s [INFO] running `"docker" "inspect" "ac84729bcdd67b0533a5701e70d7a83865c9dbac446d536bce0cb65ca63691fe"` [INFO] running `"docker" "rm" "-f" "ac84729bcdd67b0533a5701e70d7a83865c9dbac446d536bce0cb65ca63691fe"` [INFO] [stdout] ac84729bcdd67b0533a5701e70d7a83865c9dbac446d536bce0cb65ca63691fe