[INFO] crate ns-env-config 0.1.0 is already in cache [INFO] extracting crate ns-env-config 0.1.0 into work/ex/clippy-test-run/sources/stable/reg/ns-env-config/0.1.0 [INFO] extracting crate ns-env-config 0.1.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/ns-env-config/0.1.0 [INFO] validating manifest of ns-env-config-0.1.0 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 ns-env-config-0.1.0 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 ns-env-config-0.1.0 [INFO] finished frobbing ns-env-config-0.1.0 [INFO] frobbed toml for ns-env-config-0.1.0 written to work/ex/clippy-test-run/sources/stable/reg/ns-env-config/0.1.0/Cargo.toml [INFO] started frobbing ns-env-config-0.1.0 [INFO] finished frobbing ns-env-config-0.1.0 [INFO] frobbed toml for ns-env-config-0.1.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/ns-env-config/0.1.0/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 ns-env-config-0.1.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-3/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/ns-env-config/0.1.0:/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] c9ade5d6e93c7dfe58417ed0b3b81ab3148183b821ac5cc1e07671553362ac14 [INFO] running `"docker" "start" "-a" "c9ade5d6e93c7dfe58417ed0b3b81ab3148183b821ac5cc1e07671553362ac14"` [INFO] [stderr] Checking async-slot v0.1.0 [INFO] [stderr] Checking abstract-ns v0.4.3 [INFO] [stderr] Checking ns-router v0.1.6 [INFO] [stderr] Checking ns-std-threaded v0.3.0 [INFO] [stderr] Checking ns-env-config v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/config.rs:96:9 [INFO] [stderr] | [INFO] [stderr] 96 | return r; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `r` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/initialize.rs:28:12 [INFO] [stderr] | [INFO] [stderr] 28 | if val.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!val.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/config.rs:82:33 [INFO] [stderr] | [INFO] [stderr] 82 | for pair in input.split(":") { [INFO] [stderr] | ^^^ help: try using a char instead: `':'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/config.rs:83:46 [INFO] [stderr] | [INFO] [stderr] 83 | let mut key_val = pair.splitn(2, "="); [INFO] [stderr] | ^^^ help: try using a char instead: `'='` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_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/config.rs:85:48 [INFO] [stderr] | [INFO] [stderr] 85 | ("threads", Some(nthreads)) => match nthreads.parse() { [INFO] [stderr] | ________________________________________________^ [INFO] [stderr] 86 | | Ok(val) => r.threads = val, [INFO] [stderr] 87 | | Err(_) => {}, [INFO] [stderr] 88 | | } [INFO] [stderr] | |_________________^ help: try this: `if let Ok(val) = nthreads.parse() { r.threads = val }` [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/config.rs:89:44 [INFO] [stderr] | [INFO] [stderr] 89 | ("poll_ivl", Some(ivl)) => match ivl.parse() { [INFO] [stderr] | ____________________________________________^ [INFO] [stderr] 90 | | Ok(val) => r.poll_ivl = Duration::new(val, 0), [INFO] [stderr] 91 | | Err(_) => {}, [INFO] [stderr] 92 | | } [INFO] [stderr] | |_________________^ help: try this: `if let Ok(val) = ivl.parse() { r.poll_ivl = Duration::new(val, 0) }` [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: length comparison to zero [INFO] [stderr] --> src/config.rs:103:12 [INFO] [stderr] | [INFO] [stderr] 103 | if val.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `val.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/config.rs:109:65 [INFO] [stderr] | [INFO] [stderr] 109 | let mut rr = route_params.next().unwrap().splitn(2, "="); [INFO] [stderr] | ^^^ help: try using a char instead: `'='` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_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/config.rs:116:21 [INFO] [stderr] | [INFO] [stderr] 116 | / match resolver { [INFO] [stderr] 117 | | "std" => { [INFO] [stderr] 118 | | root = Route::Std(Std::parse_options( [INFO] [stderr] 119 | | route_params.next().unwrap_or(""))); [INFO] [stderr] ... | [INFO] [stderr] 122 | | _ => {} [INFO] [stderr] 123 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [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] 116 | if let "std" = resolver { [INFO] [stderr] 117 | root = Route::Std(Std::parse_options( [INFO] [stderr] 118 | route_params.next().unwrap_or(""))); [INFO] [stderr] 119 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/config.rs:96:9 [INFO] [stderr] | [INFO] [stderr] 96 | return r; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `r` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/initialize.rs:28:12 [INFO] [stderr] | [INFO] [stderr] 28 | if val.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!val.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/config.rs:82:33 [INFO] [stderr] | [INFO] [stderr] 82 | for pair in input.split(":") { [INFO] [stderr] | ^^^ help: try using a char instead: `':'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/config.rs:83:46 [INFO] [stderr] | [INFO] [stderr] 83 | let mut key_val = pair.splitn(2, "="); [INFO] [stderr] | ^^^ help: try using a char instead: `'='` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_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/config.rs:85:48 [INFO] [stderr] | [INFO] [stderr] 85 | ("threads", Some(nthreads)) => match nthreads.parse() { [INFO] [stderr] | ________________________________________________^ [INFO] [stderr] 86 | | Ok(val) => r.threads = val, [INFO] [stderr] 87 | | Err(_) => {}, [INFO] [stderr] 88 | | } [INFO] [stderr] | |_________________^ help: try this: `if let Ok(val) = nthreads.parse() { r.threads = val }` [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/config.rs:89:44 [INFO] [stderr] | [INFO] [stderr] 89 | ("poll_ivl", Some(ivl)) => match ivl.parse() { [INFO] [stderr] | ____________________________________________^ [INFO] [stderr] 90 | | Ok(val) => r.poll_ivl = Duration::new(val, 0), [INFO] [stderr] 91 | | Err(_) => {}, [INFO] [stderr] 92 | | } [INFO] [stderr] | |_________________^ help: try this: `if let Ok(val) = ivl.parse() { r.poll_ivl = Duration::new(val, 0) }` [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: length comparison to zero [INFO] [stderr] --> src/config.rs:103:12 [INFO] [stderr] | [INFO] [stderr] 103 | if val.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `val.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/config.rs:109:65 [INFO] [stderr] | [INFO] [stderr] 109 | let mut rr = route_params.next().unwrap().splitn(2, "="); [INFO] [stderr] | ^^^ help: try using a char instead: `'='` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_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/config.rs:116:21 [INFO] [stderr] | [INFO] [stderr] 116 | / match resolver { [INFO] [stderr] 117 | | "std" => { [INFO] [stderr] 118 | | root = Route::Std(Std::parse_options( [INFO] [stderr] 119 | | route_params.next().unwrap_or(""))); [INFO] [stderr] ... | [INFO] [stderr] 122 | | _ => {} [INFO] [stderr] 123 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [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] 116 | if let "std" = resolver { [INFO] [stderr] 117 | root = Route::Std(Std::parse_options( [INFO] [stderr] 118 | route_params.next().unwrap_or(""))); [INFO] [stderr] 119 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 17.11s [INFO] running `"docker" "inspect" "c9ade5d6e93c7dfe58417ed0b3b81ab3148183b821ac5cc1e07671553362ac14"` [INFO] running `"docker" "rm" "-f" "c9ade5d6e93c7dfe58417ed0b3b81ab3148183b821ac5cc1e07671553362ac14"` [INFO] [stdout] c9ade5d6e93c7dfe58417ed0b3b81ab3148183b821ac5cc1e07671553362ac14