[INFO] updating cached repository annaholmes/webserver2 [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/annaholmes/webserver2 [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/annaholmes/webserver2" "work/ex/clippy-test-run/sources/stable/gh/annaholmes/webserver2"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/annaholmes/webserver2'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/annaholmes/webserver2" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/annaholmes/webserver2"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/annaholmes/webserver2'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 3f43bd0558adeeb8ca64f5ea37a202a8ac5a4ccf [INFO] sha for GitHub repo annaholmes/webserver2: 3f43bd0558adeeb8ca64f5ea37a202a8ac5a4ccf [INFO] validating manifest of annaholmes/webserver2 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 annaholmes/webserver2 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 annaholmes/webserver2 [INFO] finished frobbing annaholmes/webserver2 [INFO] frobbed toml for annaholmes/webserver2 written to work/ex/clippy-test-run/sources/stable/gh/annaholmes/webserver2/Cargo.toml [INFO] started frobbing annaholmes/webserver2 [INFO] finished frobbing annaholmes/webserver2 [INFO] frobbed toml for annaholmes/webserver2 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/annaholmes/webserver2/Cargo.toml [INFO] crate annaholmes/webserver2 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 annaholmes/webserver2 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/gh/annaholmes/webserver2:/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] d2af1a854eee227c00850769e7692f7393663e8985782d79c7376540b94397ba [INFO] running `"docker" "start" "-a" "d2af1a854eee227c00850769e7692f7393663e8985782d79c7376540b94397ba"` [INFO] [stderr] Checking webserver2 v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unused variable: `total_reqs` [INFO] [stderr] --> src/main.rs:33:17 [INFO] [stderr] | [INFO] [stderr] 33 | let total_reqs = total_reqs.lock().unwrap(); [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_total_reqs` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `valid_reqs` [INFO] [stderr] --> src/main.rs:37:17 [INFO] [stderr] | [INFO] [stderr] 37 | let valid_reqs = valid_reqs.lock().unwrap(); [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_valid_reqs` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `valid_reqs` [INFO] [stderr] --> src/main.rs:43:70 [INFO] [stderr] | [INFO] [stderr] 43 | fn handle_client(mut stream: TcpStream, total_reqs: Arc>, valid_reqs: Arc>) { [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_valid_reqs` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:101:16 [INFO] [stderr] | [INFO] [stderr] 101 | fn handle_file(mut thisStream: Arc>, file: &str, address : &std::net::SocketAddr) { [INFO] [stderr] | ----^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: The function/method `from_utf8` doesn't need a mutable reference [INFO] [stderr] --> src/main.rs:56:31 [INFO] [stderr] | [INFO] [stderr] 56 | let s = from_utf8(&mut buf).unwrap(); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:57:33 [INFO] [stderr] | [INFO] [stderr] 57 | let split = s.split("\n"); [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [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: length comparison to one [INFO] [stderr] --> src/main.rs:67:16 [INFO] [stderr] | [INFO] [stderr] 67 | if words.len() < 1 {return;} [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `words.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/main.rs:72:48 [INFO] [stderr] | [INFO] [stderr] 72 | let mut multFiles = words[1].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: variable `multFiles` should have a snake case name such as `mult_files` [INFO] [stderr] --> src/main.rs:72:17 [INFO] [stderr] | [INFO] [stderr] 72 | let mut multFiles = words[1].split("/").collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable `thisStream` should have a snake case name such as `this_stream` [INFO] [stderr] --> src/main.rs:79:17 [INFO] [stderr] | [INFO] [stderr] 79 | let thisStream = Arc::new(Mutex::new(stream)); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `thisStream` should have a snake case name such as `this_stream` [INFO] [stderr] --> src/main.rs:82:21 [INFO] [stderr] | [INFO] [stderr] 82 | let thisStream = thisStream.clone(); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `thisStream` should have a snake case name such as `this_stream` [INFO] [stderr] --> src/main.rs:101:16 [INFO] [stderr] | [INFO] [stderr] 101 | fn handle_file(mut thisStream: Arc>, file: &str, address : &std::net::SocketAddr) { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `thisStream` should have a snake case name such as `this_stream` [INFO] [stderr] --> src/main.rs:106:13 [INFO] [stderr] | [INFO] [stderr] 106 | let mut thisStream = thisStream.lock().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/main.rs:111:12 [INFO] [stderr] | [INFO] [stderr] 111 | if file.len() < 1 {return;} [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `file.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: variable `thisStream` should have a snake case name such as `this_stream` [INFO] [stderr] --> src/main.rs:127:21 [INFO] [stderr] | [INFO] [stderr] 127 | let mut thisStream = thisStream.lock().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `thisStream` should have a snake case name such as `this_stream` [INFO] [stderr] --> src/main.rs:138:21 [INFO] [stderr] | [INFO] [stderr] 138 | let mut thisStream = thisStream.lock().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `total_reqs` [INFO] [stderr] --> src/main.rs:33:17 [INFO] [stderr] | [INFO] [stderr] 33 | let total_reqs = total_reqs.lock().unwrap(); [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_total_reqs` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `valid_reqs` [INFO] [stderr] --> src/main.rs:37:17 [INFO] [stderr] | [INFO] [stderr] 37 | let valid_reqs = valid_reqs.lock().unwrap(); [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_valid_reqs` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `valid_reqs` [INFO] [stderr] --> src/main.rs:43:70 [INFO] [stderr] | [INFO] [stderr] 43 | fn handle_client(mut stream: TcpStream, total_reqs: Arc>, valid_reqs: Arc>) { [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_valid_reqs` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:101:16 [INFO] [stderr] | [INFO] [stderr] 101 | fn handle_file(mut thisStream: Arc>, file: &str, address : &std::net::SocketAddr) { [INFO] [stderr] | ----^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: The function/method `from_utf8` doesn't need a mutable reference [INFO] [stderr] --> src/main.rs:56:31 [INFO] [stderr] | [INFO] [stderr] 56 | let s = from_utf8(&mut buf).unwrap(); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/main.rs:57:33 [INFO] [stderr] | [INFO] [stderr] 57 | let split = s.split("\n"); [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [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: length comparison to one [INFO] [stderr] --> src/main.rs:67:16 [INFO] [stderr] | [INFO] [stderr] 67 | if words.len() < 1 {return;} [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `words.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/main.rs:72:48 [INFO] [stderr] | [INFO] [stderr] 72 | let mut multFiles = words[1].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: variable `multFiles` should have a snake case name such as `mult_files` [INFO] [stderr] --> src/main.rs:72:17 [INFO] [stderr] | [INFO] [stderr] 72 | let mut multFiles = words[1].split("/").collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable `thisStream` should have a snake case name such as `this_stream` [INFO] [stderr] --> src/main.rs:79:17 [INFO] [stderr] | [INFO] [stderr] 79 | let thisStream = Arc::new(Mutex::new(stream)); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `thisStream` should have a snake case name such as `this_stream` [INFO] [stderr] --> src/main.rs:82:21 [INFO] [stderr] | [INFO] [stderr] 82 | let thisStream = thisStream.clone(); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `thisStream` should have a snake case name such as `this_stream` [INFO] [stderr] --> src/main.rs:101:16 [INFO] [stderr] | [INFO] [stderr] 101 | fn handle_file(mut thisStream: Arc>, file: &str, address : &std::net::SocketAddr) { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `thisStream` should have a snake case name such as `this_stream` [INFO] [stderr] --> src/main.rs:106:13 [INFO] [stderr] | [INFO] [stderr] 106 | let mut thisStream = thisStream.lock().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/main.rs:111:12 [INFO] [stderr] | [INFO] [stderr] 111 | if file.len() < 1 {return;} [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `file.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: variable `thisStream` should have a snake case name such as `this_stream` [INFO] [stderr] --> src/main.rs:127:21 [INFO] [stderr] | [INFO] [stderr] 127 | let mut thisStream = thisStream.lock().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `thisStream` should have a snake case name such as `this_stream` [INFO] [stderr] --> src/main.rs:138:21 [INFO] [stderr] | [INFO] [stderr] 138 | let mut thisStream = thisStream.lock().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 0.57s [INFO] running `"docker" "inspect" "d2af1a854eee227c00850769e7692f7393663e8985782d79c7376540b94397ba"` [INFO] running `"docker" "rm" "-f" "d2af1a854eee227c00850769e7692f7393663e8985782d79c7376540b94397ba"` [INFO] [stdout] d2af1a854eee227c00850769e7692f7393663e8985782d79c7376540b94397ba