[INFO] crate ddcset 0.0.3 is already in cache [INFO] extracting crate ddcset 0.0.3 into work/ex/clippy-test-run/sources/stable/reg/ddcset/0.0.3 [INFO] extracting crate ddcset 0.0.3 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/ddcset/0.0.3 [INFO] validating manifest of ddcset-0.0.3 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 ddcset-0.0.3 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 ddcset-0.0.3 [INFO] finished frobbing ddcset-0.0.3 [INFO] frobbed toml for ddcset-0.0.3 written to work/ex/clippy-test-run/sources/stable/reg/ddcset/0.0.3/Cargo.toml [INFO] started frobbing ddcset-0.0.3 [INFO] finished frobbing ddcset-0.0.3 [INFO] frobbed toml for ddcset-0.0.3 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/ddcset/0.0.3/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 ddcset-0.0.3 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/ddcset/0.0.3:/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] cff72692f4b8d9558fb6a2eb1fd040bb3fe4d1857705674bd9e20b8e89abd5a5 [INFO] running `"docker" "start" "-a" "cff72692f4b8d9558fb6a2eb1fd040bb3fe4d1857705674bd9e20b8e89abd5a5"` [INFO] [stderr] warning: `panic` setting is ignored for `test` profile [INFO] [stderr] warning: `panic` setting is ignored for `bench` profile [INFO] [stderr] Checking linked-hash-map v0.5.1 [INFO] [stderr] Checking void v1.0.2 [INFO] [stderr] Checking ucd-util v0.1.3 [INFO] [stderr] Checking dtoa v0.4.3 [INFO] [stderr] Checking rustc-demangle v0.1.13 [INFO] [stderr] Checking quick-error v1.2.2 [INFO] [stderr] Checking unicode-width v0.1.5 [INFO] [stderr] Checking utf8-ranges v1.0.2 [INFO] [stderr] Checking termcolor v1.0.4 [INFO] [stderr] Checking result v1.0.0 [INFO] [stderr] Checking log v0.4.6 [INFO] [stderr] Checking i2c v0.1.0 [INFO] [stderr] Checking thread_local v0.3.6 [INFO] [stderr] Checking textwrap v0.10.0 [INFO] [stderr] Checking humantime v1.2.0 [INFO] [stderr] Checking mccs v0.1.0 [INFO] [stderr] Checking libc v0.2.48 [INFO] [stderr] Checking uninitialized v0.0.2 [INFO] [stderr] Checking byteorder v1.3.1 [INFO] [stderr] Checking serde v1.0.85 [INFO] [stderr] Checking regex-syntax v0.6.5 [INFO] [stderr] Checking yaml-rust v0.4.2 [INFO] [stderr] Checking i2c-linux-sys v0.2.0 [INFO] [stderr] Checking clap v2.32.0 [INFO] [stderr] Checking resize-slice v0.1.3 [INFO] [stderr] Checking ddc v0.2.1 [INFO] [stderr] Checking edid v0.2.0 [INFO] [stderr] Checking mccs-caps v0.1.0 [INFO] [stderr] Checking i2c-linux v0.1.2 [INFO] [stderr] Checking mccs-db v0.1.2 [INFO] [stderr] Checking libudev-sys v0.1.4 [INFO] [stderr] Checking backtrace-sys v0.1.28 [INFO] [stderr] Checking memchr v2.1.3 [INFO] [stderr] Checking memchr v1.0.2 [INFO] [stderr] Checking atty v0.2.11 [INFO] [stderr] Checking ddc-i2c v0.2.1 [INFO] [stderr] Checking udev v0.2.0 [INFO] [stderr] Checking backtrace v0.3.13 [INFO] [stderr] Checking nom v3.2.1 [INFO] [stderr] Checking aho-corasick v0.6.9 [INFO] [stderr] Checking ddc-hi v0.1.3 [INFO] [stderr] Checking failure v0.1.5 [INFO] [stderr] Checking regex v1.1.0 [INFO] [stderr] Checking ddcset v0.0.3 (/opt/crater/workdir) [INFO] [stderr] Checking env_logger v0.5.13 [INFO] [stderr] Checking serde_yaml v0.7.5 [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/main.rs:307:28 [INFO] [stderr] | [INFO] [stderr] 307 | } else { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 308 | | if !opt_scan { [INFO] [stderr] 309 | | display.update_capabilities()?; [INFO] [stderr] 310 | | (0..0x100).map(|v| v as FeatureCode).filter(|&c| display.info.mccs_database.get(c).is_some()).collect() [INFO] [stderr] ... | [INFO] [stderr] 313 | | } [INFO] [stderr] 314 | | }; [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 307 | } else if !opt_scan { [INFO] [stderr] 308 | display.update_capabilities()?; [INFO] [stderr] 309 | (0..0x100).map(|v| v as FeatureCode).filter(|&c| display.info.mccs_database.get(c).is_some()).collect() [INFO] [stderr] 310 | } else { [INFO] [stderr] 311 | (0..0x100).map(|v| v as FeatureCode).collect() [INFO] [stderr] 312 | }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/main.rs:359:36 [INFO] [stderr] | [INFO] [stderr] 359 | } else { [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 360 | | if opt_table { [INFO] [stderr] 361 | | let value = handle.table_read(code)?; [INFO] [stderr] 362 | | println!("\tFeature 0x{:02x} = {}", code, TableInterpretation::Generic.format(&value).unwrap()); [INFO] [stderr] ... | [INFO] [stderr] 366 | | }; [INFO] [stderr] 367 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 359 | } else if opt_table { [INFO] [stderr] 360 | let value = handle.table_read(code)?; [INFO] [stderr] 361 | println!("\tFeature 0x{:02x} = {}", code, TableInterpretation::Generic.format(&value).unwrap()); [INFO] [stderr] 362 | } else { [INFO] [stderr] 363 | let value = handle.get_vcp_feature(code)?; [INFO] [stderr] 364 | println!("\tFeature 0x{:02x} = {}", code, ValueInterpretation::Continuous.format(&value)); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:57:23 [INFO] [stderr] | [INFO] [stderr] 57 | }).filter(|d| if let &Ok(ref d) = d { [INFO] [stderr] | _______________________^ [INFO] [stderr] 58 | | query.matches(&d.info) [INFO] [stderr] 59 | | } else { [INFO] [stderr] 60 | | true [INFO] [stderr] 61 | | }).collect() [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] 57 | }).filter(|d| if let Ok(ref d) = *d { [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/main.rs:263:25 [INFO] [stderr] | [INFO] [stderr] 263 | / match feature.ty { [INFO] [stderr] 264 | | ValueType::NonContinuous { ref values, .. } => { [INFO] [stderr] 265 | | for (value, name) in values { [INFO] [stderr] 266 | | println!("\t\t\t0x{:02x}: {}", value, name.as_ref().map(|v| &v[..]).unwrap_or("Unknown")); [INFO] [stderr] ... | [INFO] [stderr] 269 | | _ => (), [INFO] [stderr] 270 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 263 | if let ValueType::NonContinuous { ref values, .. } = feature.ty { [INFO] [stderr] 264 | for (value, name) in values { [INFO] [stderr] 265 | println!("\t\t\t0x{:02x}: {}", value, name.as_ref().map(|v| &v[..]).unwrap_or("Unknown")); [INFO] [stderr] 266 | } [INFO] [stderr] 267 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/main.rs:307:28 [INFO] [stderr] | [INFO] [stderr] 307 | } else { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 308 | | if !opt_scan { [INFO] [stderr] 309 | | display.update_capabilities()?; [INFO] [stderr] 310 | | (0..0x100).map(|v| v as FeatureCode).filter(|&c| display.info.mccs_database.get(c).is_some()).collect() [INFO] [stderr] ... | [INFO] [stderr] 313 | | } [INFO] [stderr] 314 | | }; [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 307 | } else if !opt_scan { [INFO] [stderr] 308 | display.update_capabilities()?; [INFO] [stderr] 309 | (0..0x100).map(|v| v as FeatureCode).filter(|&c| display.info.mccs_database.get(c).is_some()).collect() [INFO] [stderr] 310 | } else { [INFO] [stderr] 311 | (0..0x100).map(|v| v as FeatureCode).collect() [INFO] [stderr] 312 | }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/main.rs:359:36 [INFO] [stderr] | [INFO] [stderr] 359 | } else { [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 360 | | if opt_table { [INFO] [stderr] 361 | | let value = handle.table_read(code)?; [INFO] [stderr] 362 | | println!("\tFeature 0x{:02x} = {}", code, TableInterpretation::Generic.format(&value).unwrap()); [INFO] [stderr] ... | [INFO] [stderr] 366 | | }; [INFO] [stderr] 367 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 359 | } else if opt_table { [INFO] [stderr] 360 | let value = handle.table_read(code)?; [INFO] [stderr] 361 | println!("\tFeature 0x{:02x} = {}", code, TableInterpretation::Generic.format(&value).unwrap()); [INFO] [stderr] 362 | } else { [INFO] [stderr] 363 | let value = handle.get_vcp_feature(code)?; [INFO] [stderr] 364 | println!("\tFeature 0x{:02x} = {}", code, ValueInterpretation::Continuous.format(&value)); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:57:23 [INFO] [stderr] | [INFO] [stderr] 57 | }).filter(|d| if let &Ok(ref d) = d { [INFO] [stderr] | _______________________^ [INFO] [stderr] 58 | | query.matches(&d.info) [INFO] [stderr] 59 | | } else { [INFO] [stderr] 60 | | true [INFO] [stderr] 61 | | }).collect() [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] 57 | }).filter(|d| if let Ok(ref d) = *d { [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/main.rs:263:25 [INFO] [stderr] | [INFO] [stderr] 263 | / match feature.ty { [INFO] [stderr] 264 | | ValueType::NonContinuous { ref values, .. } => { [INFO] [stderr] 265 | | for (value, name) in values { [INFO] [stderr] 266 | | println!("\t\t\t0x{:02x}: {}", value, name.as_ref().map(|v| &v[..]).unwrap_or("Unknown")); [INFO] [stderr] ... | [INFO] [stderr] 269 | | _ => (), [INFO] [stderr] 270 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 263 | if let ValueType::NonContinuous { ref values, .. } = feature.ty { [INFO] [stderr] 264 | for (value, name) in values { [INFO] [stderr] 265 | println!("\t\t\t0x{:02x}: {}", value, name.as_ref().map(|v| &v[..]).unwrap_or("Unknown")); [INFO] [stderr] 266 | } [INFO] [stderr] 267 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 43.74s [INFO] running `"docker" "inspect" "cff72692f4b8d9558fb6a2eb1fd040bb3fe4d1857705674bd9e20b8e89abd5a5"` [INFO] running `"docker" "rm" "-f" "cff72692f4b8d9558fb6a2eb1fd040bb3fe4d1857705674bd9e20b8e89abd5a5"` [INFO] [stdout] cff72692f4b8d9558fb6a2eb1fd040bb3fe4d1857705674bd9e20b8e89abd5a5