[INFO] updating cached repository nathanjent/legendsof1f600 [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/nathanjent/legendsof1f600 [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/nathanjent/legendsof1f600" "work/ex/clippy-test-run/sources/stable/gh/nathanjent/legendsof1f600"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/nathanjent/legendsof1f600'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/nathanjent/legendsof1f600" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/nathanjent/legendsof1f600"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/nathanjent/legendsof1f600'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 9fb174b5cfd7c60f3ec78d956dee7c346c57de0d [INFO] sha for GitHub repo nathanjent/legendsof1f600: 9fb174b5cfd7c60f3ec78d956dee7c346c57de0d [INFO] validating manifest of nathanjent/legendsof1f600 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 nathanjent/legendsof1f600 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 nathanjent/legendsof1f600 [INFO] finished frobbing nathanjent/legendsof1f600 [INFO] frobbed toml for nathanjent/legendsof1f600 written to work/ex/clippy-test-run/sources/stable/gh/nathanjent/legendsof1f600/Cargo.toml [INFO] started frobbing nathanjent/legendsof1f600 [INFO] finished frobbing nathanjent/legendsof1f600 [INFO] frobbed toml for nathanjent/legendsof1f600 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/nathanjent/legendsof1f600/Cargo.toml [INFO] crate nathanjent/legendsof1f600 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 nathanjent/legendsof1f600 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/nathanjent/legendsof1f600:/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] 87d582031605b3ce630faac98412199cafe45a800085cc629f4c0431cd0e4378 [INFO] running `"docker" "start" "-a" "87d582031605b3ce630faac98412199cafe45a800085cc629f4c0431cd0e4378"` [INFO] [stderr] Checking atom v0.3.4 [INFO] [stderr] Checking rustc-serialize v0.3.21 [INFO] [stderr] Checking yaml-rust v0.3.4 [INFO] [stderr] Checking pulse v0.5.3 [INFO] [stderr] Checking specs v0.7.0 [INFO] [stderr] Checking legendsof1f600 v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unused import: `std::io::BufReader` [INFO] [stderr] --> src/main.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::io::BufReader; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs::File` [INFO] [stderr] --> src/main.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::fs::File; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::BufReader` [INFO] [stderr] --> src/main.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::io::BufReader; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs::File` [INFO] [stderr] --> src/main.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::fs::File; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::prelude` [INFO] [stderr] --> src/main.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::io::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::prelude` [INFO] [stderr] --> src/main.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::io::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `playable` [INFO] [stderr] --> src/main.rs:107:9 [INFO] [stderr] | [INFO] [stderr] 107 | let playable: Vec = map_cfg["playable"] [INFO] [stderr] | ^^^^^^^^ help: consider using `_playable` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `nonblocking` [INFO] [stderr] --> src/main.rs:123:9 [INFO] [stderr] | [INFO] [stderr] 123 | let nonblocking: Vec = map_cfg["nonblocking"] [INFO] [stderr] | ^^^^^^^^^^^ help: consider using `_nonblocking` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `playable` [INFO] [stderr] --> src/main.rs:107:9 [INFO] [stderr] | [INFO] [stderr] 107 | let playable: Vec = map_cfg["playable"] [INFO] [stderr] | ^^^^^^^^ help: consider using `_playable` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `nonblocking` [INFO] [stderr] --> src/main.rs:123:9 [INFO] [stderr] | [INFO] [stderr] 123 | let nonblocking: Vec = map_cfg["nonblocking"] [INFO] [stderr] | ^^^^^^^^^^^ help: consider using `_nonblocking` instead [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/main.rs:90:9 [INFO] [stderr] | [INFO] [stderr] 90 | let ref map_cfg = YamlLoader::load_from_str(MAP).unwrap()[0]; [INFO] [stderr] | ----^^^^^^^^^^^---------------------------------------------- help: try: `let map_cfg = &YamlLoader::load_from_str(MAP).unwrap()[0];` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/main.rs:183:46 [INFO] [stderr] | [INFO] [stderr] 183 | .with(Tile { c: tile.clone() }) [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*tile` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/main.rs:90:9 [INFO] [stderr] | [INFO] [stderr] 90 | let ref map_cfg = YamlLoader::load_from_str(MAP).unwrap()[0]; [INFO] [stderr] | ----^^^^^^^^^^^---------------------------------------------- help: try: `let map_cfg = &YamlLoader::load_from_str(MAP).unwrap()[0];` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/main.rs:183:46 [INFO] [stderr] | [INFO] [stderr] 183 | .with(Tile { c: tile.clone() }) [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*tile` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/main.rs:223:13 [INFO] [stderr] | [INFO] [stderr] 223 | / for (_, position) in (&players, &positions).iter() { [INFO] [stderr] 224 | | player_pos.0 = Some(position.x); [INFO] [stderr] 225 | | player_pos.1 = Some(position.y); [INFO] [stderr] 226 | | break; [INFO] [stderr] 227 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::never_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#never_loop [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/main.rs:230:13 [INFO] [stderr] | [INFO] [stderr] 230 | / for (_, size) in (&maps, &sizes).iter() { [INFO] [stderr] 231 | | map_size.0 = Some(size.w); [INFO] [stderr] 232 | | map_size.1 = Some(size.h); [INFO] [stderr] 233 | | break; [INFO] [stderr] 234 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#never_loop [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/main.rs:223:13 [INFO] [stderr] | [INFO] [stderr] 223 | / for (_, position) in (&players, &positions).iter() { [INFO] [stderr] 224 | | player_pos.0 = Some(position.x); [INFO] [stderr] 225 | | player_pos.1 = Some(position.y); [INFO] [stderr] 226 | | break; [INFO] [stderr] 227 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::never_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#never_loop [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/main.rs:230:13 [INFO] [stderr] | [INFO] [stderr] 230 | / for (_, size) in (&maps, &sizes).iter() { [INFO] [stderr] 231 | | map_size.0 = Some(size.w); [INFO] [stderr] 232 | | map_size.1 = Some(size.h); [INFO] [stderr] 233 | | break; [INFO] [stderr] 234 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#never_loop [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/main.rs:281:13 [INFO] [stderr] | [INFO] [stderr] 281 | / for (_, position, size) in (&views, &positions, &sizes).iter() { [INFO] [stderr] 282 | | view_state.0 = Some(position.x); [INFO] [stderr] 283 | | view_state.1 = Some(position.y); [INFO] [stderr] 284 | | view_state.2 = Some(size.w); [INFO] [stderr] 285 | | view_state.3 = Some(size.h); [INFO] [stderr] 286 | | break; [INFO] [stderr] 287 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#never_loop [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stderr] --> src/main.rs:323:20 [INFO] [stderr] | [INFO] [stderr] 323 | if let Ok(_) = io::stdin().read_line(&mut input) { [INFO] [stderr] | _____________- ^^^^^ [INFO] [stderr] 324 | | cmd.0 = input; [INFO] [stderr] 325 | | } [INFO] [stderr] | |_____________- help: try this: `if io::stdin().read_line(&mut input).is_ok()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/main.rs:281:13 [INFO] [stderr] | [INFO] [stderr] 281 | / for (_, position, size) in (&views, &positions, &sizes).iter() { [INFO] [stderr] 282 | | view_state.0 = Some(position.x); [INFO] [stderr] 283 | | view_state.1 = Some(position.y); [INFO] [stderr] 284 | | view_state.2 = Some(size.w); [INFO] [stderr] 285 | | view_state.3 = Some(size.h); [INFO] [stderr] 286 | | break; [INFO] [stderr] 287 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#never_loop [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stderr] --> src/main.rs:323:20 [INFO] [stderr] | [INFO] [stderr] 323 | if let Ok(_) = io::stdin().read_line(&mut input) { [INFO] [stderr] | _____________- ^^^^^ [INFO] [stderr] 324 | | cmd.0 = input; [INFO] [stderr] 325 | | } [INFO] [stderr] | |_____________- help: try this: `if io::stdin().read_line(&mut input).is_ok()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `legendsof1f600`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `legendsof1f600`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "87d582031605b3ce630faac98412199cafe45a800085cc629f4c0431cd0e4378"` [INFO] running `"docker" "rm" "-f" "87d582031605b3ce630faac98412199cafe45a800085cc629f4c0431cd0e4378"` [INFO] [stdout] 87d582031605b3ce630faac98412199cafe45a800085cc629f4c0431cd0e4378