[INFO] crate grabbag 0.1.2 is already in cache [INFO] extracting crate grabbag 0.1.2 into work/ex/clippy-test-run/sources/stable/reg/grabbag/0.1.2 [INFO] extracting crate grabbag 0.1.2 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/grabbag/0.1.2 [INFO] validating manifest of grabbag-0.1.2 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of grabbag-0.1.2 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing grabbag-0.1.2 [INFO] removed path dependency grabbag_macros from grabbag-0.1.2 [INFO] finished frobbing grabbag-0.1.2 [INFO] frobbed toml for grabbag-0.1.2 written to work/ex/clippy-test-run/sources/stable/reg/grabbag/0.1.2/Cargo.toml [INFO] started frobbing grabbag-0.1.2 [INFO] removed path dependency grabbag_macros from grabbag-0.1.2 [INFO] finished frobbing grabbag-0.1.2 [INFO] frobbed toml for grabbag-0.1.2 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/grabbag/0.1.2/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting grabbag-0.1.2 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-5/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/grabbag/0.1.2:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] a035fc29bd76a25b71363655659b4d1fe91a4ccef9b8473da51b9e5489bdd223 [INFO] running `"docker" "start" "-a" "a035fc29bd76a25b71363655659b4d1fe91a4ccef9b8473da51b9e5489bdd223"` [INFO] [stderr] Compiling grabbag_macros v0.1.2 [INFO] [stderr] Checking grabbag v0.1.2 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/iter/accumulate.rs:50:13 [INFO] [stderr] | [INFO] [stderr] 50 | f: f, [INFO] [stderr] | ^^^^ help: replace it with: `f` [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/iter/group_by.rs:43:17 [INFO] [stderr] | [INFO] [stderr] 43 | group: group, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `group` [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/iter/intersperse.rs:30:13 [INFO] [stderr] | [INFO] [stderr] 30 | look_ahead: look_ahead, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `look_ahead` [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/iter/intersperse.rs:31:13 [INFO] [stderr] | [INFO] [stderr] 31 | inject: inject, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `inject` [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/iter/pad_tail_to.rs:22:13 [INFO] [stderr] | [INFO] [stderr] 22 | filler: filler, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `filler` [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/iter/zip_longest.rs:32:13 [INFO] [stderr] | [INFO] [stderr] 32 | right: right, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `right` [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/iter/accumulate.rs:50:13 [INFO] [stderr] | [INFO] [stderr] 50 | f: f, [INFO] [stderr] | ^^^^ help: replace it with: `f` [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/iter/group_by.rs:43:17 [INFO] [stderr] | [INFO] [stderr] 43 | group: group, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `group` [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/iter/intersperse.rs:30:13 [INFO] [stderr] | [INFO] [stderr] 30 | look_ahead: look_ahead, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `look_ahead` [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/iter/intersperse.rs:31:13 [INFO] [stderr] | [INFO] [stderr] 31 | inject: inject, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `inject` [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/iter/pad_tail_to.rs:22:13 [INFO] [stderr] | [INFO] [stderr] 22 | filler: filler, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `filler` [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/iter/zip_longest.rs:32:13 [INFO] [stderr] | [INFO] [stderr] 32 | right: right, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `right` [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 `e @ _` pattern can be written as just `e` [INFO] [stderr] --> src/iter/accumulate.rs:82:17 [INFO] [stderr] | [INFO] [stderr] 82 | e @ _ => { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/iter/cartesian_product.rs:88:9 [INFO] [stderr] | [INFO] [stderr] 88 | / let combine_bounds: fn(usize, usize, usize) -> usize; [INFO] [stderr] 89 | | [INFO] [stderr] 90 | | if self.left_value.is_some() { [INFO] [stderr] 91 | | combine_bounds = combine_bounds_with_partial; [INFO] [stderr] 92 | | } else { [INFO] [stderr] 93 | | combine_bounds = combine_bounds_without_partial; [INFO] [stderr] 94 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let combine_bounds = if self.left_value.is_some() { combine_bounds_with_partial } else { combine_bounds_without_partial };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [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: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/iter/clone_each.rs:69:9 [INFO] [stderr] | [INFO] [stderr] 69 | self.iter.next_back().map(|e| e.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.iter.next_back().cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/iter/group_by.rs:162:9 [INFO] [stderr] | [INFO] [stderr] 162 | / match g == self.group_value { [INFO] [stderr] 163 | | true => { [INFO] [stderr] 164 | | // Still in the same group. [INFO] [stderr] 165 | | Some(e) [INFO] [stderr] ... | [INFO] [stderr] 171 | | } [INFO] [stderr] 172 | | } [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] 162 | if g == self.group_value { [INFO] [stderr] 163 | // Still in the same group. [INFO] [stderr] 164 | Some(e) [INFO] [stderr] 165 | } else { [INFO] [stderr] 166 | // Different group! We need to push (g, e) back into the master iterator. [INFO] [stderr] 167 | state.push_back = Some((g, e)); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/iter/intersperse.rs:49:9 [INFO] [stderr] | [INFO] [stderr] 49 | / match self.next_is_inject { [INFO] [stderr] 50 | | false => match replace(&mut self.look_ahead, None) { [INFO] [stderr] 51 | | None => None, [INFO] [stderr] 52 | | Some(e) => { [INFO] [stderr] ... | [INFO] [stderr] 66 | | } [INFO] [stderr] 67 | | } [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] 49 | if self.next_is_inject { match self.look_ahead.is_some() { [INFO] [stderr] 50 | true => { [INFO] [stderr] 51 | self.next_is_inject = false; [INFO] [stderr] 52 | Some(self.inject.clone()) [INFO] [stderr] 53 | }, [INFO] [stderr] 54 | false => { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/iter/intersperse.rs:58:21 [INFO] [stderr] | [INFO] [stderr] 58 | true => match self.look_ahead.is_some() { [INFO] [stderr] | _____________________^ [INFO] [stderr] 59 | | true => { [INFO] [stderr] 60 | | self.next_is_inject = false; [INFO] [stderr] 61 | | Some(self.inject.clone()) [INFO] [stderr] ... | [INFO] [stderr] 65 | | } [INFO] [stderr] 66 | | } [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] 58 | true => if self.look_ahead.is_some() { [INFO] [stderr] 59 | self.next_is_inject = false; [INFO] [stderr] 60 | Some(self.inject.clone()) [INFO] [stderr] 61 | } else { [INFO] [stderr] 62 | None [INFO] [stderr] 63 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the `e @ _` pattern can be written as just `e` [INFO] [stderr] --> src/iter/pad_tail_to.rs:60:13 [INFO] [stderr] | [INFO] [stderr] 60 | e @ _ => { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] warning: the `e @ _` pattern can be written as just `e` [INFO] [stderr] --> src/iter/round_robin.rs:70:17 [INFO] [stderr] | [INFO] [stderr] 70 | e @ _ => { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] warning: the `e @ _` pattern can be written as just `e` [INFO] [stderr] --> src/iter/round_robin.rs:77:17 [INFO] [stderr] | [INFO] [stderr] 77 | e @ _ => { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] warning: the `e @ _` pattern can be written as just `e` [INFO] [stderr] --> src/iter/round_robin.rs:118:17 [INFO] [stderr] | [INFO] [stderr] 118 | e @ _ => e, [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] warning: the `e @ _` pattern can be written as just `e` [INFO] [stderr] --> src/iter/round_robin.rs:122:17 [INFO] [stderr] | [INFO] [stderr] 122 | e @ _ => e, [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] warning: the `e @ _` pattern can be written as just `e` [INFO] [stderr] --> src/iter/round_robin.rs:130:17 [INFO] [stderr] | [INFO] [stderr] 130 | e @ _ => { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] warning: the `e @ _` pattern can be written as just `e` [INFO] [stderr] --> src/iter/round_robin.rs:141:17 [INFO] [stderr] | [INFO] [stderr] 141 | e @ _ => { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [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/iter/skip_exactly.rs:37:13 [INFO] [stderr] | [INFO] [stderr] 37 | / match self.next() { [INFO] [stderr] 38 | | None => panic!("skip_exactly asked to skip {} elements, but only got {}", n, i), [INFO] [stderr] 39 | | _ => () [INFO] [stderr] 40 | | } [INFO] [stderr] | |_____________^ help: try this: `if let None = self.next() { panic!("skip_exactly asked to skip {} elements, but only got {}", n, i) }` [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 seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/iter/stride.rs:55:13 [INFO] [stderr] | [INFO] [stderr] 55 | / match self.iter.next() { [INFO] [stderr] 56 | | None => break, [INFO] [stderr] 57 | | _ => () [INFO] [stderr] 58 | | } [INFO] [stderr] | |_____________^ help: try this: `if let None = self.iter.next() { break }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: the `e @ _` pattern can be written as just `e` [INFO] [stderr] --> src/iter/take_exactly.rs:68:17 [INFO] [stderr] | [INFO] [stderr] 68 | e @ _ => { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] warning: the `e @ _` pattern can be written as just `e` [INFO] [stderr] --> src/iter/zip_longest.rs:61:13 [INFO] [stderr] | [INFO] [stderr] 61 | e @ _ => Some(e) [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] warning: the `e @ _` pattern can be written as just `e` [INFO] [stderr] --> src/iter/accumulate.rs:82:17 [INFO] [stderr] | [INFO] [stderr] 82 | e @ _ => { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/iter/cartesian_product.rs:88:9 [INFO] [stderr] | [INFO] [stderr] 88 | / let combine_bounds: fn(usize, usize, usize) -> usize; [INFO] [stderr] 89 | | [INFO] [stderr] 90 | | if self.left_value.is_some() { [INFO] [stderr] 91 | | combine_bounds = combine_bounds_with_partial; [INFO] [stderr] 92 | | } else { [INFO] [stderr] 93 | | combine_bounds = combine_bounds_without_partial; [INFO] [stderr] 94 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let combine_bounds = if self.left_value.is_some() { combine_bounds_with_partial } else { combine_bounds_without_partial };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [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: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/iter/clone_each.rs:69:9 [INFO] [stderr] | [INFO] [stderr] 69 | self.iter.next_back().map(|e| e.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.iter.next_back().cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/iter/group_by.rs:162:9 [INFO] [stderr] | [INFO] [stderr] 162 | / match g == self.group_value { [INFO] [stderr] 163 | | true => { [INFO] [stderr] 164 | | // Still in the same group. [INFO] [stderr] 165 | | Some(e) [INFO] [stderr] ... | [INFO] [stderr] 171 | | } [INFO] [stderr] 172 | | } [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] 162 | if g == self.group_value { [INFO] [stderr] 163 | // Still in the same group. [INFO] [stderr] 164 | Some(e) [INFO] [stderr] 165 | } else { [INFO] [stderr] 166 | // Different group! We need to push (g, e) back into the master iterator. [INFO] [stderr] 167 | state.push_back = Some((g, e)); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 32 [INFO] [stderr] --> src/iter/group_by.rs:185:1 [INFO] [stderr] | [INFO] [stderr] 185 | / fn test_group_by() { [INFO] [stderr] 186 | | { [INFO] [stderr] 187 | | let v = vec![0usize, 1, 2, 3, 5, 4, 6, 8, 7]; [INFO] [stderr] 188 | | let mut oi = v.into_iter().group_by(|&e| e & 1); [INFO] [stderr] ... | [INFO] [stderr] 250 | | } [INFO] [stderr] 251 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/iter/intersperse.rs:49:9 [INFO] [stderr] | [INFO] [stderr] 49 | / match self.next_is_inject { [INFO] [stderr] 50 | | false => match replace(&mut self.look_ahead, None) { [INFO] [stderr] 51 | | None => None, [INFO] [stderr] 52 | | Some(e) => { [INFO] [stderr] ... | [INFO] [stderr] 66 | | } [INFO] [stderr] 67 | | } [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] 49 | if self.next_is_inject { match self.look_ahead.is_some() { [INFO] [stderr] 50 | true => { [INFO] [stderr] 51 | self.next_is_inject = false; [INFO] [stderr] 52 | Some(self.inject.clone()) [INFO] [stderr] 53 | }, [INFO] [stderr] 54 | false => { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/iter/intersperse.rs:58:21 [INFO] [stderr] | [INFO] [stderr] 58 | true => match self.look_ahead.is_some() { [INFO] [stderr] | _____________________^ [INFO] [stderr] 59 | | true => { [INFO] [stderr] 60 | | self.next_is_inject = false; [INFO] [stderr] 61 | | Some(self.inject.clone()) [INFO] [stderr] ... | [INFO] [stderr] 65 | | } [INFO] [stderr] 66 | | } [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] 58 | true => if self.look_ahead.is_some() { [INFO] [stderr] 59 | self.next_is_inject = false; [INFO] [stderr] 60 | Some(self.inject.clone()) [INFO] [stderr] 61 | } else { [INFO] [stderr] 62 | None [INFO] [stderr] 63 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the `e @ _` pattern can be written as just `e` [INFO] [stderr] --> src/iter/pad_tail_to.rs:60:13 [INFO] [stderr] | [INFO] [stderr] 60 | e @ _ => { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] warning: the `e @ _` pattern can be written as just `e` [INFO] [stderr] --> src/iter/round_robin.rs:70:17 [INFO] [stderr] | [INFO] [stderr] 70 | e @ _ => { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] warning: the `e @ _` pattern can be written as just `e` [INFO] [stderr] --> src/iter/round_robin.rs:77:17 [INFO] [stderr] | [INFO] [stderr] 77 | e @ _ => { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] warning: the `e @ _` pattern can be written as just `e` [INFO] [stderr] --> src/iter/round_robin.rs:118:17 [INFO] [stderr] | [INFO] [stderr] 118 | e @ _ => e, [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] warning: the `e @ _` pattern can be written as just `e` [INFO] [stderr] --> src/iter/round_robin.rs:122:17 [INFO] [stderr] | [INFO] [stderr] 122 | e @ _ => e, [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] warning: the `e @ _` pattern can be written as just `e` [INFO] [stderr] --> src/iter/round_robin.rs:130:17 [INFO] [stderr] | [INFO] [stderr] 130 | e @ _ => { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] warning: the `e @ _` pattern can be written as just `e` [INFO] [stderr] --> src/iter/round_robin.rs:141:17 [INFO] [stderr] | [INFO] [stderr] 141 | e @ _ => { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [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/iter/skip_exactly.rs:37:13 [INFO] [stderr] | [INFO] [stderr] 37 | / match self.next() { [INFO] [stderr] 38 | | None => panic!("skip_exactly asked to skip {} elements, but only got {}", n, i), [INFO] [stderr] 39 | | _ => () [INFO] [stderr] 40 | | } [INFO] [stderr] | |_____________^ help: try this: `if let None = self.next() { panic!("skip_exactly asked to skip {} elements, but only got {}", n, i) }` [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: unused return value of `std::iter::Iterator::collect` that must be used [INFO] [stderr] --> src/iter/skip_exactly.rs:57:37 [INFO] [stderr] | [INFO] [stderr] 57 | let r = thread::spawn(move || { v.into_iter().skip_exactly(3).collect::>(); }).join(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: if you really need to exhaust the iterator, consider `.for_each(drop)` instead [INFO] [stderr] [INFO] [stderr] warning: you are collect()ing an iterator and throwing away the result. Consider using an explicit for loop to exhaust the iterator [INFO] [stderr] --> src/iter/skip_exactly.rs:57:37 [INFO] [stderr] | [INFO] [stderr] 57 | let r = thread::spawn(move || { v.into_iter().skip_exactly(3).collect::>(); }).join(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_collect)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_collect [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/iter/stride.rs:55:13 [INFO] [stderr] | [INFO] [stderr] 55 | / match self.iter.next() { [INFO] [stderr] 56 | | None => break, [INFO] [stderr] 57 | | _ => () [INFO] [stderr] 58 | | } [INFO] [stderr] | |_____________^ help: try this: `if let None = self.iter.next() { break }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: the `e @ _` pattern can be written as just `e` [INFO] [stderr] --> src/iter/take_exactly.rs:68:17 [INFO] [stderr] | [INFO] [stderr] 68 | e @ _ => { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] warning: unused return value of `std::iter::Iterator::collect` that must be used [INFO] [stderr] --> src/iter/take_exactly.rs:90:37 [INFO] [stderr] | [INFO] [stderr] 90 | let r = thread::spawn(move || { v.into_iter().take_exactly(3).collect::>(); }).join(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: if you really need to exhaust the iterator, consider `.for_each(drop)` instead [INFO] [stderr] [INFO] [stderr] warning: you are collect()ing an iterator and throwing away the result. Consider using an explicit for loop to exhaust the iterator [INFO] [stderr] --> src/iter/take_exactly.rs:90:37 [INFO] [stderr] | [INFO] [stderr] 90 | let r = thread::spawn(move || { v.into_iter().take_exactly(3).collect::>(); }).join(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_collect [INFO] [stderr] [INFO] [stderr] warning: the `e @ _` pattern can be written as just `e` [INFO] [stderr] --> src/iter/zip_longest.rs:61:13 [INFO] [stderr] | [INFO] [stderr] 61 | e @ _ => Some(e) [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 3.36s [INFO] running `"docker" "inspect" "a035fc29bd76a25b71363655659b4d1fe91a4ccef9b8473da51b9e5489bdd223"` [INFO] running `"docker" "rm" "-f" "a035fc29bd76a25b71363655659b4d1fe91a4ccef9b8473da51b9e5489bdd223"` [INFO] [stdout] a035fc29bd76a25b71363655659b4d1fe91a4ccef9b8473da51b9e5489bdd223