[INFO] updating cached repository Sam-Jeston/oxidize [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/Sam-Jeston/oxidize [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/Sam-Jeston/oxidize" "work/ex/clippy-test-run/sources/stable/gh/Sam-Jeston/oxidize"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/Sam-Jeston/oxidize'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/Sam-Jeston/oxidize" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Sam-Jeston/oxidize"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Sam-Jeston/oxidize'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 7144ca36cdb1bec94df8ae91fb77d21c94542a5b [INFO] sha for GitHub repo Sam-Jeston/oxidize: 7144ca36cdb1bec94df8ae91fb77d21c94542a5b [INFO] validating manifest of Sam-Jeston/oxidize 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 Sam-Jeston/oxidize 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 Sam-Jeston/oxidize [INFO] finished frobbing Sam-Jeston/oxidize [INFO] frobbed toml for Sam-Jeston/oxidize written to work/ex/clippy-test-run/sources/stable/gh/Sam-Jeston/oxidize/Cargo.toml [INFO] started frobbing Sam-Jeston/oxidize [INFO] finished frobbing Sam-Jeston/oxidize [INFO] frobbed toml for Sam-Jeston/oxidize written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Sam-Jeston/oxidize/Cargo.toml [INFO] crate Sam-Jeston/oxidize has a lockfile. skipping [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 Sam-Jeston/oxidize against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-1/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/Sam-Jeston/oxidize:/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] ca8625e981a2db530b0a16b8b210db969cf3b52e5d869c9b8297d1889994ff14 [INFO] running `"docker" "start" "-a" "ca8625e981a2db530b0a16b8b210db969cf3b52e5d869c9b8297d1889994ff14"` [INFO] [stderr] Checking iovec v0.1.0 [INFO] [stderr] Checking net2 v0.2.29 [INFO] [stderr] Checking base64 v0.6.0 [INFO] [stderr] Checking futures-cpupool v0.1.5 [INFO] [stderr] Checking bytes v0.4.4 [INFO] [stderr] Checking mio v0.6.9 [INFO] [stderr] Checking tokio-io v0.1.2 [INFO] [stderr] Checking tokio-core v0.1.8 [INFO] [stderr] Checking tokio-proto v0.1.1 [INFO] [stderr] Checking hyper v0.11.0 [INFO] [stderr] Checking oxidize v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unused imports: `Request`, `Response`, `Service` [INFO] [stderr] --> src/main.rs:11:27 [INFO] [stderr] | [INFO] [stderr] 11 | use hyper::server::{Http, Request, Response, Service}; [INFO] [stderr] | ^^^^^^^ ^^^^^^^^ ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Request`, `Response`, `Service` [INFO] [stderr] --> src/main.rs:11:27 [INFO] [stderr] | [INFO] [stderr] 11 | use hyper::server::{Http, Request, Response, Service}; [INFO] [stderr] | ^^^^^^^ ^^^^^^^^ ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `hyper_client` [INFO] [stderr] --> src/request_handler/mod.rs:165:5 [INFO] [stderr] | [INFO] [stderr] 165 | hyper_client: &Client, [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using `_hyper_client` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `el_handle` [INFO] [stderr] --> src/request_handler/mod.rs:166:5 [INFO] [stderr] | [INFO] [stderr] 166 | el_handle: &reactor::Handle, [INFO] [stderr] | ^^^^^^^^^ help: consider using `_el_handle` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `hyper_client` [INFO] [stderr] --> src/request_handler/mod.rs:165:5 [INFO] [stderr] | [INFO] [stderr] 165 | hyper_client: &Client, [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using `_hyper_client` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `el_handle` [INFO] [stderr] --> src/request_handler/mod.rs:166:5 [INFO] [stderr] | [INFO] [stderr] 166 | el_handle: &reactor::Handle, [INFO] [stderr] | ^^^^^^^^^ help: consider using `_el_handle` instead [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/request_handler/mod.rs:41:13 [INFO] [stderr] | [INFO] [stderr] 41 | let ref block_match = iter.find(|&b| &b.host == &hostname.to_string()).unwrap(); [INFO] [stderr] | ----^^^^^^^^^^^^^^^------------------------------------------------------------- help: try: `let block_match = &iter.find(|&b| &b.host == &hostname.to_string()).unwrap();` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: needlessly taken reference of both operands [INFO] [stderr] --> src/request_handler/mod.rs:41:46 [INFO] [stderr] | [INFO] [stderr] 41 | let ref block_match = iter.find(|&b| &b.host == &hostname.to_string()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] help: use the values directly [INFO] [stderr] | [INFO] [stderr] 41 | let ref block_match = iter.find(|&b| b.host == hostname.to_string()).unwrap(); [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/request_handler/mod.rs:49:24 [INFO] [stderr] | [INFO] [stderr] 49 | let path_ref = path.clone(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::clone_double_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 49 | let path_ref = &(*path).clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 49 | let path_ref = &str::clone(path); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/request_handler/mod.rs:74:29 [INFO] [stderr] | [INFO] [stderr] 74 | matches = matches + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `matches += 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/request_handler/mod.rs:85:101 [INFO] [stderr] | [INFO] [stderr] 85 | let upsteam_path_split: Vec<&str> = best_upstream.upstream_option.source_path.split("/").collect(); [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/request_handler/mod.rs:86:68 [INFO] [stderr] | [INFO] [stderr] 86 | let current_path_split: Vec<&str> = path_ref.split("/").collect(); [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 match on a boolean expression [INFO] [stderr] --> src/request_handler/mod.rs:138:13 [INFO] [stderr] | [INFO] [stderr] 138 | / match is_file { [INFO] [stderr] 139 | | true => { [INFO] [stderr] 140 | | let mut out = Vec::new(); [INFO] [stderr] 141 | | if file.read_to_end(&mut out).is_ok() { [INFO] [stderr] ... | [INFO] [stderr] 153 | | } [INFO] [stderr] 154 | | } [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] 138 | if is_file { [INFO] [stderr] 139 | let mut out = Vec::new(); [INFO] [stderr] 140 | if file.read_to_end(&mut out).is_ok() { [INFO] [stderr] 141 | response.set_body(out); [INFO] [stderr] 142 | } [INFO] [stderr] 143 | [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/request_handler/mod.rs:190:12 [INFO] [stderr] | [INFO] [stderr] 190 | Ok(response.set_body(res.body())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unit_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 190 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `oxidize`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/request_handler/mod.rs:41:13 [INFO] [stderr] | [INFO] [stderr] 41 | let ref block_match = iter.find(|&b| &b.host == &hostname.to_string()).unwrap(); [INFO] [stderr] | ----^^^^^^^^^^^^^^^------------------------------------------------------------- help: try: `let block_match = &iter.find(|&b| &b.host == &hostname.to_string()).unwrap();` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: needlessly taken reference of both operands [INFO] [stderr] --> src/request_handler/mod.rs:41:46 [INFO] [stderr] | [INFO] [stderr] 41 | let ref block_match = iter.find(|&b| &b.host == &hostname.to_string()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] help: use the values directly [INFO] [stderr] | [INFO] [stderr] 41 | let ref block_match = iter.find(|&b| b.host == hostname.to_string()).unwrap(); [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/request_handler/mod.rs:49:24 [INFO] [stderr] | [INFO] [stderr] 49 | let path_ref = path.clone(); [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::clone_double_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 49 | let path_ref = &(*path).clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 49 | let path_ref = &str::clone(path); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/request_handler/mod.rs:74:29 [INFO] [stderr] | [INFO] [stderr] 74 | matches = matches + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `matches += 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/request_handler/mod.rs:85:101 [INFO] [stderr] | [INFO] [stderr] 85 | let upsteam_path_split: Vec<&str> = best_upstream.upstream_option.source_path.split("/").collect(); [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/request_handler/mod.rs:86:68 [INFO] [stderr] | [INFO] [stderr] 86 | let current_path_split: Vec<&str> = path_ref.split("/").collect(); [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 match on a boolean expression [INFO] [stderr] --> src/request_handler/mod.rs:138:13 [INFO] [stderr] | [INFO] [stderr] 138 | / match is_file { [INFO] [stderr] 139 | | true => { [INFO] [stderr] 140 | | let mut out = Vec::new(); [INFO] [stderr] 141 | | if file.read_to_end(&mut out).is_ok() { [INFO] [stderr] ... | [INFO] [stderr] 153 | | } [INFO] [stderr] 154 | | } [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] 138 | if is_file { [INFO] [stderr] 139 | let mut out = Vec::new(); [INFO] [stderr] 140 | if file.read_to_end(&mut out).is_ok() { [INFO] [stderr] 141 | response.set_body(out); [INFO] [stderr] 142 | } [INFO] [stderr] 143 | [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/request_handler/mod.rs:190:12 [INFO] [stderr] | [INFO] [stderr] 190 | Ok(response.set_body(res.body())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unit_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 190 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `oxidize`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "ca8625e981a2db530b0a16b8b210db969cf3b52e5d869c9b8297d1889994ff14"` [INFO] running `"docker" "rm" "-f" "ca8625e981a2db530b0a16b8b210db969cf3b52e5d869c9b8297d1889994ff14"` [INFO] [stdout] ca8625e981a2db530b0a16b8b210db969cf3b52e5d869c9b8297d1889994ff14