[INFO] updating cached repository ndreas/home-control-api [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/ndreas/home-control-api [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/ndreas/home-control-api" "work/ex/clippy-test-run/sources/stable/gh/ndreas/home-control-api"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/ndreas/home-control-api'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/ndreas/home-control-api" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/ndreas/home-control-api"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/ndreas/home-control-api'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 6834f6b80b25f0d2f1c0b72bf74571d220d53dbe [INFO] sha for GitHub repo ndreas/home-control-api: 6834f6b80b25f0d2f1c0b72bf74571d220d53dbe [INFO] validating manifest of ndreas/home-control-api 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 ndreas/home-control-api 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 ndreas/home-control-api [INFO] finished frobbing ndreas/home-control-api [INFO] frobbed toml for ndreas/home-control-api written to work/ex/clippy-test-run/sources/stable/gh/ndreas/home-control-api/Cargo.toml [INFO] started frobbing ndreas/home-control-api [INFO] finished frobbing ndreas/home-control-api [INFO] frobbed toml for ndreas/home-control-api written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/ndreas/home-control-api/Cargo.toml [INFO] crate ndreas/home-control-api 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 ndreas/home-control-api 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/gh/ndreas/home-control-api:/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] 1b59eb7524bff51f268cf4453c017d743b426c2521ab3a8f937d564e8a961ccd [INFO] running `"docker" "start" "-a" "1b59eb7524bff51f268cf4453c017d743b426c2521ab3a8f937d564e8a961ccd"` [INFO] [stderr] Checking httparse v1.2.0 [INFO] [stderr] Checking route-recognizer v0.1.11 [INFO] [stderr] Checking conduit-mime-types v0.7.3 [INFO] [stderr] Checking clap v2.19.1 [INFO] [stderr] Checking hyper v0.9.13 [INFO] [stderr] Checking iron v0.4.0 [INFO] [stderr] Checking router v0.4.0 [INFO] [stderr] Checking home-control-api v1.0.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/light_control.rs:20:13 [INFO] [stderr] | [INFO] [stderr] 20 | tdtool: tdtool, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `tdtool` [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/light_control.rs:21:13 [INFO] [stderr] | [INFO] [stderr] 21 | command: command, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `command` [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/light_control.rs:22:13 [INFO] [stderr] | [INFO] [stderr] 22 | workdir: workdir [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `workdir` [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/presence.rs:25:13 [INFO] [stderr] | [INFO] [stderr] 25 | workdir: workdir [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `workdir` [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/light_control.rs:20:13 [INFO] [stderr] | [INFO] [stderr] 20 | tdtool: tdtool, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `tdtool` [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/light_control.rs:21:13 [INFO] [stderr] | [INFO] [stderr] 21 | command: command, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `command` [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/light_control.rs:22:13 [INFO] [stderr] | [INFO] [stderr] 22 | workdir: workdir [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `workdir` [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/presence.rs:25:13 [INFO] [stderr] | [INFO] [stderr] 25 | workdir: workdir [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `workdir` [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/light_control.rs:32:9 [INFO] [stderr] | [INFO] [stderr] 32 | / match output { [INFO] [stderr] 33 | | Err(e) => println!("Error running tdtool: {}", e), [INFO] [stderr] 34 | | _ => {} [INFO] [stderr] 35 | | } [INFO] [stderr] | |_________^ help: try this: `if let Err(e) = output { println!("Error running tdtool: {}", e) }` [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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/light_control.rs:43:13 [INFO] [stderr] | [INFO] [stderr] 43 | let ref id = iexpect!(router.find("id")); [INFO] [stderr] | ^^^^^^ [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] help: try [INFO] [stderr] | [INFO] [stderr] 43 | let id = &(match $ option { [INFO] [stderr] 44 | :: std :: option :: Option :: Some ( x ) => x , :: std :: option :: Option :: [INFO] [stderr] 45 | None => return :: std :: result :: Result :: Ok ( [INFO] [stderr] 46 | $ crate :: response :: Response :: with ( $ modifier ) ) }); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/presence.rs:53:13 [INFO] [stderr] | [INFO] [stderr] 53 | let ref name = iexpect!(router.find("name")); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 53 | let name = &(match $ option { [INFO] [stderr] 54 | :: std :: option :: Option :: Some ( x ) => x , :: std :: option :: Option :: [INFO] [stderr] 55 | None => return :: std :: result :: Result :: Ok ( [INFO] [stderr] 56 | $ crate :: response :: Response :: with ( $ modifier ) ) }); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/presence.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | let ref state = iexpect!(router.find("state")); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 54 | let state = &(match $ option { [INFO] [stderr] 55 | :: std :: option :: Option :: Some ( x ) => x , :: std :: option :: Option :: [INFO] [stderr] 56 | None => return :: std :: result :: Result :: Ok ( [INFO] [stderr] 57 | $ crate :: response :: Response :: with ( $ modifier ) ) }); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this call to `as_ref` does nothing [INFO] [stderr] --> src/presence.rs:60:15 [INFO] [stderr] | [INFO] [stderr] 60 | match state.as_ref() { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try this: `state` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_asref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_asref [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/light_control.rs:32:9 [INFO] [stderr] | [INFO] [stderr] 32 | / match output { [INFO] [stderr] 33 | | Err(e) => println!("Error running tdtool: {}", e), [INFO] [stderr] 34 | | _ => {} [INFO] [stderr] 35 | | } [INFO] [stderr] | |_________^ help: try this: `if let Err(e) = output { println!("Error running tdtool: {}", e) }` [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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/light_control.rs:43:13 [INFO] [stderr] | [INFO] [stderr] 43 | let ref id = iexpect!(router.find("id")); [INFO] [stderr] | ^^^^^^ [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] help: try [INFO] [stderr] | [INFO] [stderr] 43 | let id = &(match $ option { [INFO] [stderr] 44 | :: std :: option :: Option :: Some ( x ) => x , :: std :: option :: Option :: [INFO] [stderr] 45 | None => return :: std :: result :: Result :: Ok ( [INFO] [stderr] 46 | $ crate :: response :: Response :: with ( $ modifier ) ) }); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/presence.rs:53:13 [INFO] [stderr] | [INFO] [stderr] 53 | let ref name = iexpect!(router.find("name")); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 53 | let name = &(match $ option { [INFO] [stderr] 54 | :: std :: option :: Option :: Some ( x ) => x , :: std :: option :: Option :: [INFO] [stderr] 55 | None => return :: std :: result :: Result :: Ok ( [INFO] [stderr] 56 | $ crate :: response :: Response :: with ( $ modifier ) ) }); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/presence.rs:54:13 [INFO] [stderr] | [INFO] [stderr] 54 | let ref state = iexpect!(router.find("state")); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 54 | let state = &(match $ option { [INFO] [stderr] 55 | :: std :: option :: Option :: Some ( x ) => x , :: std :: option :: Option :: [INFO] [stderr] 56 | None => return :: std :: result :: Result :: Ok ( [INFO] [stderr] 57 | $ crate :: response :: Response :: with ( $ modifier ) ) }); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this call to `as_ref` does nothing [INFO] [stderr] --> src/presence.rs:60:15 [INFO] [stderr] | [INFO] [stderr] 60 | match state.as_ref() { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try this: `state` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_asref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_asref [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 10.30s [INFO] running `"docker" "inspect" "1b59eb7524bff51f268cf4453c017d743b426c2521ab3a8f937d564e8a961ccd"` [INFO] running `"docker" "rm" "-f" "1b59eb7524bff51f268cf4453c017d743b426c2521ab3a8f937d564e8a961ccd"` [INFO] [stdout] 1b59eb7524bff51f268cf4453c017d743b426c2521ab3a8f937d564e8a961ccd