[INFO] updating cached repository jakewilkins/phone-pinger-thing [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/jakewilkins/phone-pinger-thing [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/jakewilkins/phone-pinger-thing" "work/ex/clippy-test-run/sources/stable/gh/jakewilkins/phone-pinger-thing"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/jakewilkins/phone-pinger-thing'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/jakewilkins/phone-pinger-thing" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/jakewilkins/phone-pinger-thing"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/jakewilkins/phone-pinger-thing'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] ae76c6f54632e59e9cf44490690fcf19c80d571e [INFO] sha for GitHub repo jakewilkins/phone-pinger-thing: ae76c6f54632e59e9cf44490690fcf19c80d571e [INFO] validating manifest of jakewilkins/phone-pinger-thing 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 jakewilkins/phone-pinger-thing 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 jakewilkins/phone-pinger-thing [INFO] finished frobbing jakewilkins/phone-pinger-thing [INFO] frobbed toml for jakewilkins/phone-pinger-thing written to work/ex/clippy-test-run/sources/stable/gh/jakewilkins/phone-pinger-thing/Cargo.toml [INFO] started frobbing jakewilkins/phone-pinger-thing [INFO] finished frobbing jakewilkins/phone-pinger-thing [INFO] frobbed toml for jakewilkins/phone-pinger-thing written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/jakewilkins/phone-pinger-thing/Cargo.toml [INFO] crate jakewilkins/phone-pinger-thing 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 jakewilkins/phone-pinger-thing against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/jakewilkins/phone-pinger-thing:/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] 7bb9beacfefd02888e443945043a17c8e9976dd39f018052bc20f9e1c6aaed2b [INFO] running `"docker" "start" "-a" "7bb9beacfefd02888e443945043a17c8e9976dd39f018052bc20f9e1c6aaed2b"` [INFO] [stderr] Checking serde v0.9.13 [INFO] [stderr] Compiling syn v0.11.10 [INFO] [stderr] Checking num v0.1.37 [INFO] [stderr] Checking chrono v0.3.0 [INFO] [stderr] Compiling serde_codegen_internals v0.14.2 [INFO] [stderr] Compiling serde_derive v0.9.13 [INFO] [stderr] Checking toml v0.3.2 [INFO] [stderr] Checking watch-for-jake-being-home v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/main.rs:56:5 [INFO] [stderr] | [INFO] [stderr] 56 | / if out.status.success() { [INFO] [stderr] 57 | | true [INFO] [stderr] 58 | | } else { [INFO] [stderr] 59 | | //println!("{:?}", out); [INFO] [stderr] 60 | | false [INFO] [stderr] 61 | | } [INFO] [stderr] | |_____^ help: you can reduce it to: `out.status.success()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main.rs:64:32 [INFO] [stderr] | [INFO] [stderr] 64 | fn process_missed_request(key: &String, conn: &redis::Connection, conf: &Config) { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> src/main.rs:71:9 [INFO] [stderr] | [INFO] [stderr] 71 | let _ : () = conn.del(&missed_key).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_unit_value)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> src/main.rs:72:9 [INFO] [stderr] | [INFO] [stderr] 72 | let _ : () = conn.del(key).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> src/main.rs:75:9 [INFO] [stderr] | [INFO] [stderr] 75 | let _ : () = conn.incr(&missed_key, 1usize).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> src/main.rs:77:9 [INFO] [stderr] | [INFO] [stderr] 77 | let _ : () = conn.expire(&missed_key, expire as usize).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/main.rs:84:9 [INFO] [stderr] | [INFO] [stderr] 84 | Err(_) => panic!("Must supply a CONF") [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_wild_err_arm)] on by default [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main.rs:95:26 [INFO] [stderr] | [INFO] [stderr] 95 | fn do_check_for_key(key: &String, con: &redis::Connection, config: &Config) { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [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:99:5 [INFO] [stderr] | [INFO] [stderr] 99 | / match ip { [INFO] [stderr] 100 | | Some(ip) => { [INFO] [stderr] 101 | | if !phone_ip_is_up(ip, config) { [INFO] [stderr] 102 | | process_missed_request(key, con, config) [INFO] [stderr] ... | [INFO] [stderr] 107 | | None => () [INFO] [stderr] 108 | | } [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] 99 | if let Some(ip) = ip { [INFO] [stderr] 100 | if !phone_ip_is_up(ip, config) { [INFO] [stderr] 101 | process_missed_request(key, con, config) [INFO] [stderr] 102 | } else { [INFO] [stderr] 103 | let _ : () = con.expire(key, 3600).unwrap(); [INFO] [stderr] 104 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> src/main.rs:104:17 [INFO] [stderr] | [INFO] [stderr] 104 | let _ : () = con.expire(key, 3600).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/main.rs:56:5 [INFO] [stderr] | [INFO] [stderr] 56 | / if out.status.success() { [INFO] [stderr] 57 | | true [INFO] [stderr] 58 | | } else { [INFO] [stderr] 59 | | //println!("{:?}", out); [INFO] [stderr] 60 | | false [INFO] [stderr] 61 | | } [INFO] [stderr] | |_____^ help: you can reduce it to: `out.status.success()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main.rs:64:32 [INFO] [stderr] | [INFO] [stderr] 64 | fn process_missed_request(key: &String, conn: &redis::Connection, conf: &Config) { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> src/main.rs:71:9 [INFO] [stderr] | [INFO] [stderr] 71 | let _ : () = conn.del(&missed_key).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_unit_value)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> src/main.rs:72:9 [INFO] [stderr] | [INFO] [stderr] 72 | let _ : () = conn.del(key).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> src/main.rs:75:9 [INFO] [stderr] | [INFO] [stderr] 75 | let _ : () = conn.incr(&missed_key, 1usize).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> src/main.rs:77:9 [INFO] [stderr] | [INFO] [stderr] 77 | let _ : () = conn.expire(&missed_key, expire as usize).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/main.rs:84:9 [INFO] [stderr] | [INFO] [stderr] 84 | Err(_) => panic!("Must supply a CONF") [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_wild_err_arm)] on by default [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main.rs:95:26 [INFO] [stderr] | [INFO] [stderr] 95 | fn do_check_for_key(key: &String, con: &redis::Connection, config: &Config) { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [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:99:5 [INFO] [stderr] | [INFO] [stderr] 99 | / match ip { [INFO] [stderr] 100 | | Some(ip) => { [INFO] [stderr] 101 | | if !phone_ip_is_up(ip, config) { [INFO] [stderr] 102 | | process_missed_request(key, con, config) [INFO] [stderr] ... | [INFO] [stderr] 107 | | None => () [INFO] [stderr] 108 | | } [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] 99 | if let Some(ip) = ip { [INFO] [stderr] 100 | if !phone_ip_is_up(ip, config) { [INFO] [stderr] 101 | process_missed_request(key, con, config) [INFO] [stderr] 102 | } else { [INFO] [stderr] 103 | let _ : () = con.expire(key, 3600).unwrap(); [INFO] [stderr] 104 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> src/main.rs:104:17 [INFO] [stderr] | [INFO] [stderr] 104 | let _ : () = con.expire(key, 3600).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 20.20s [INFO] running `"docker" "inspect" "7bb9beacfefd02888e443945043a17c8e9976dd39f018052bc20f9e1c6aaed2b"` [INFO] running `"docker" "rm" "-f" "7bb9beacfefd02888e443945043a17c8e9976dd39f018052bc20f9e1c6aaed2b"` [INFO] [stdout] 7bb9beacfefd02888e443945043a17c8e9976dd39f018052bc20f9e1c6aaed2b