[INFO] crate roadrunner 0.1.1 is already in cache [INFO] extracting crate roadrunner 0.1.1 into work/ex/clippy-test-run/sources/stable/reg/roadrunner/0.1.1 [INFO] extracting crate roadrunner 0.1.1 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/roadrunner/0.1.1 [INFO] validating manifest of roadrunner-0.1.1 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 roadrunner-0.1.1 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 roadrunner-0.1.1 [INFO] finished frobbing roadrunner-0.1.1 [INFO] frobbed toml for roadrunner-0.1.1 written to work/ex/clippy-test-run/sources/stable/reg/roadrunner/0.1.1/Cargo.toml [INFO] started frobbing roadrunner-0.1.1 [INFO] finished frobbing roadrunner-0.1.1 [INFO] frobbed toml for roadrunner-0.1.1 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/roadrunner/0.1.1/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 roadrunner-0.1.1 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/roadrunner/0.1.1:/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] df1dcd1418ddfd7304f056eca2f6a70416955aa314f87c87ab82dc75217cbd6e [INFO] running `"docker" "start" "-a" "df1dcd1418ddfd7304f056eca2f6a70416955aa314f87c87ab82dc75217cbd6e"` [INFO] [stderr] Checking roadrunner v0.1.1 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:209:19 [INFO] [stderr] | [INFO] [stderr] 209 | username: username, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `username` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:222:21 [INFO] [stderr] | [INFO] [stderr] 222 | token: token, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `token` [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:697:37 [INFO] [stderr] | [INFO] [stderr] 697 | status: status, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `status` [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:698:37 [INFO] [stderr] | [INFO] [stderr] 698 | headers: headers, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `headers` [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:699:37 [INFO] [stderr] | [INFO] [stderr] 699 | version: version, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `version` [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:209:19 [INFO] [stderr] | [INFO] [stderr] 209 | username: username, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `username` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:222:21 [INFO] [stderr] | [INFO] [stderr] 222 | token: token, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `token` [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:697:37 [INFO] [stderr] | [INFO] [stderr] 697 | status: status, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `status` [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:698:37 [INFO] [stderr] | [INFO] [stderr] 698 | headers: headers, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `headers` [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:699:37 [INFO] [stderr] | [INFO] [stderr] 699 | version: version, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `version` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:318:9 [INFO] [stderr] | [INFO] [stderr] 318 | / match self.form_fields { [INFO] [stderr] 319 | | Some(ref mut ffs) => { [INFO] [stderr] 320 | | let encoded = ffs.finish(); [INFO] [stderr] 321 | | [INFO] [stderr] ... | [INFO] [stderr] 327 | | None => {} [INFO] [stderr] 328 | | }; [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] 318 | if let Some(ref mut ffs) = self.form_fields { [INFO] [stderr] 319 | let encoded = ffs.finish(); [INFO] [stderr] 320 | [INFO] [stderr] 321 | self.request.set_body(encoded); [INFO] [stderr] 322 | self.request.headers_mut().set(ContentType::form_url_encoded()); [INFO] [stderr] 323 | [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/lib.rs:330:9 [INFO] [stderr] | [INFO] [stderr] 330 | / match self.json_body_str { [INFO] [stderr] 331 | | Some(body_str) => { [INFO] [stderr] 332 | | self.request.set_body(body_str); [INFO] [stderr] 333 | | self.request.headers_mut().set(ContentType::json()); [INFO] [stderr] ... | [INFO] [stderr] 337 | | None => {}, [INFO] [stderr] 338 | | } [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] 330 | if let Some(body_str) = self.json_body_str { [INFO] [stderr] 331 | self.request.set_body(body_str); [INFO] [stderr] 332 | self.request.headers_mut().set(ContentType::json()); [INFO] [stderr] 333 | [INFO] [stderr] 334 | debug!("Content-Type is set to application/json"); [INFO] [stderr] 335 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:678:36 [INFO] [stderr] | [INFO] [stderr] 678 | let content_encoding = headers.get::().map(|enc| enc.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `headers.get::().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 are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:680:32 [INFO] [stderr] | [INFO] [stderr] 680 | let content_type = headers.get::().map(|c| c.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `headers.get::().cloned()` [INFO] [stderr] | [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 use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:716:5 [INFO] [stderr] | [INFO] [stderr] 716 | / match content_encoding { [INFO] [stderr] 717 | | Some(encodings) => { [INFO] [stderr] 718 | | for encoding in encodings.iter().rev() { [INFO] [stderr] 719 | | match *encoding { [INFO] [stderr] ... | [INFO] [stderr] 732 | | None => {} [INFO] [stderr] 733 | | }; [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] 716 | if let Some(encodings) = content_encoding { [INFO] [stderr] 717 | for encoding in encodings.iter().rev() { [INFO] [stderr] 718 | match *encoding { [INFO] [stderr] 719 | HyperEncoding::Gzip => { [INFO] [stderr] 720 | input = try!(decompress_gzip(input.as_slice())); [INFO] [stderr] 721 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/lib.rs:803:17 [INFO] [stderr] | [INFO] [stderr] 803 | assert!("caf\u{e9}".to_string() != [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `"caf\u{e9}"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_owned)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/lib.rs:812:17 [INFO] [stderr] | [INFO] [stderr] 812 | assert!("caf\u{e9}".to_string() != decode_to_string(vec![99, 97, 102, 233], None).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `"caf\u{e9}"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:318:9 [INFO] [stderr] | [INFO] [stderr] 318 | / match self.form_fields { [INFO] [stderr] 319 | | Some(ref mut ffs) => { [INFO] [stderr] 320 | | let encoded = ffs.finish(); [INFO] [stderr] 321 | | [INFO] [stderr] ... | [INFO] [stderr] 327 | | None => {} [INFO] [stderr] 328 | | }; [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] 318 | if let Some(ref mut ffs) = self.form_fields { [INFO] [stderr] 319 | let encoded = ffs.finish(); [INFO] [stderr] 320 | [INFO] [stderr] 321 | self.request.set_body(encoded); [INFO] [stderr] 322 | self.request.headers_mut().set(ContentType::form_url_encoded()); [INFO] [stderr] 323 | [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/lib.rs:330:9 [INFO] [stderr] | [INFO] [stderr] 330 | / match self.json_body_str { [INFO] [stderr] 331 | | Some(body_str) => { [INFO] [stderr] 332 | | self.request.set_body(body_str); [INFO] [stderr] 333 | | self.request.headers_mut().set(ContentType::json()); [INFO] [stderr] ... | [INFO] [stderr] 337 | | None => {}, [INFO] [stderr] 338 | | } [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] 330 | if let Some(body_str) = self.json_body_str { [INFO] [stderr] 331 | self.request.set_body(body_str); [INFO] [stderr] 332 | self.request.headers_mut().set(ContentType::json()); [INFO] [stderr] 333 | [INFO] [stderr] 334 | debug!("Content-Type is set to application/json"); [INFO] [stderr] 335 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:678:36 [INFO] [stderr] | [INFO] [stderr] 678 | let content_encoding = headers.get::().map(|enc| enc.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `headers.get::().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 are using an explicit closure for cloning elements [INFO] [stderr] --> src/lib.rs:680:32 [INFO] [stderr] | [INFO] [stderr] 680 | let content_type = headers.get::().map(|c| c.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `headers.get::().cloned()` [INFO] [stderr] | [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 use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:716:5 [INFO] [stderr] | [INFO] [stderr] 716 | / match content_encoding { [INFO] [stderr] 717 | | Some(encodings) => { [INFO] [stderr] 718 | | for encoding in encodings.iter().rev() { [INFO] [stderr] 719 | | match *encoding { [INFO] [stderr] ... | [INFO] [stderr] 732 | | None => {} [INFO] [stderr] 733 | | }; [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] 716 | if let Some(encodings) = content_encoding { [INFO] [stderr] 717 | for encoding in encodings.iter().rev() { [INFO] [stderr] 718 | match *encoding { [INFO] [stderr] 719 | HyperEncoding::Gzip => { [INFO] [stderr] 720 | input = try!(decompress_gzip(input.as_slice())); [INFO] [stderr] 721 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `HTTPS_BIN_URL_BASE` [INFO] [stderr] --> tests/httpbin.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | const HTTPS_BIN_URL_BASE: &str = "https://localhost:8001"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `to_full_https_url` [INFO] [stderr] --> tests/httpbin.rs:15:1 [INFO] [stderr] | [INFO] [stderr] 15 | pub fn to_full_https_url(path: &str) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 12.36s [INFO] running `"docker" "inspect" "df1dcd1418ddfd7304f056eca2f6a70416955aa314f87c87ab82dc75217cbd6e"` [INFO] running `"docker" "rm" "-f" "df1dcd1418ddfd7304f056eca2f6a70416955aa314f87c87ab82dc75217cbd6e"` [INFO] [stdout] df1dcd1418ddfd7304f056eca2f6a70416955aa314f87c87ab82dc75217cbd6e