[INFO] updating cached repository eribau/chip8emu [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/eribau/chip8emu [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/eribau/chip8emu" "work/ex/clippy-test-run/sources/stable/gh/eribau/chip8emu"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/eribau/chip8emu'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/eribau/chip8emu" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/eribau/chip8emu"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/eribau/chip8emu'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] c89aeefe7b313531111731a0cfc379cd0ad2c1d3 [INFO] sha for GitHub repo eribau/chip8emu: c89aeefe7b313531111731a0cfc379cd0ad2c1d3 [INFO] validating manifest of eribau/chip8emu 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 eribau/chip8emu 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 eribau/chip8emu [INFO] finished frobbing eribau/chip8emu [INFO] frobbed toml for eribau/chip8emu written to work/ex/clippy-test-run/sources/stable/gh/eribau/chip8emu/Cargo.toml [INFO] started frobbing eribau/chip8emu [INFO] finished frobbing eribau/chip8emu [INFO] frobbed toml for eribau/chip8emu written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/eribau/chip8emu/Cargo.toml [INFO] crate eribau/chip8emu 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 eribau/chip8emu 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/eribau/chip8emu:/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] be35a76b7e71f64ddfb67c132876032609e0c20858d3b2ff2c1f66166fcd6d35 [INFO] running `"docker" "start" "-a" "be35a76b7e71f64ddfb67c132876032609e0c20858d3b2ff2c1f66166fcd6d35"` [INFO] [stderr] Checking chip8emu v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/lib.rs:47:13 [INFO] [stderr] | [INFO] [stderr] 47 | let mut file = match File::open(&path) { [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: field is never used: `opcode` [INFO] [stderr] --> src/lib.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | opcode: u8, // opcode [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: field is never used: `V` [INFO] [stderr] --> src/lib.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | V: [u8; 16], // Registers V0 to VE plus carry flag [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `I` [INFO] [stderr] --> src/lib.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | I: u16, // Index register [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `pc` [INFO] [stderr] --> src/lib.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | pc: u16, // Program counter [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `gfx` [INFO] [stderr] --> src/lib.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | gfx: [u8; 2048], // Graphics, size 64x32 [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `delay_timer` [INFO] [stderr] --> src/lib.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | delay_timer: u8, // timers [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `sound_timer` [INFO] [stderr] --> src/lib.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | sound_timer: u8, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `stack` [INFO] [stderr] --> src/lib.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | stack: [u16; 16], // Stack [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `sp` [INFO] [stderr] --> src/lib.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | sp: u16, // Stack pointer [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `key` [INFO] [stderr] --> src/lib.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | key: [u8; 16], // Keyboard [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `V` should have a snake case name such as `v` [INFO] [stderr] --> src/lib.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | V: [u8; 16], // Registers V0 to VE plus carry flag [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: structure field `I` should have a snake case name such as `i` [INFO] [stderr] --> src/lib.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | I: u16, // Index register [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `Chip8` [INFO] [stderr] --> src/lib.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | / pub fn new( ) -> Chip8 { [INFO] [stderr] 22 | | let mut mem = [0; 4096]; [INFO] [stderr] 23 | | let fs = Chip8_fontset::new(); [INFO] [stderr] 24 | | let mut i = 0; [INFO] [stderr] ... | [INFO] [stderr] 41 | | } [INFO] [stderr] 42 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 20 | impl Default for Chip8 { [INFO] [stderr] 21 | fn default() -> Self { [INFO] [stderr] 22 | Self::new() [INFO] [stderr] 23 | } [INFO] [stderr] 24 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/lib.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | i = i + 1; [INFO] [stderr] | ^^^^^^^^^ help: replace it with: `i += 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: method `loadGame` should have a snake case name such as `load_game` [INFO] [stderr] --> src/lib.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | / pub fn loadGame(&mut self, filename: String) { [INFO] [stderr] 45 | | let path = Path::new(&filename); [INFO] [stderr] 46 | | let display = path.display(); [INFO] [stderr] 47 | | let mut file = match File::open(&path) { [INFO] [stderr] ... | [INFO] [stderr] 56 | | } [INFO] [stderr] 57 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/lib.rs:55:13 [INFO] [stderr] | [INFO] [stderr] 55 | i = i + 1; [INFO] [stderr] | ^^^^^^^^^ help: replace it with: `i += 1` [INFO] [stderr] | [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: method `printMemoryLoc` should have a snake case name such as `print_memory_loc` [INFO] [stderr] --> src/lib.rs:59:5 [INFO] [stderr] | [INFO] [stderr] 59 | / pub fn printMemoryLoc(&self, location: usize) { [INFO] [stderr] 60 | | println!("{:x}", self.memory[location]); [INFO] [stderr] 61 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: type `Chip8_fontset` should have a camel case name such as `Chip8Fontset` [INFO] [stderr] --> src/lib.rs:64:1 [INFO] [stderr] | [INFO] [stderr] 64 | / struct Chip8_fontset { [INFO] [stderr] 65 | | fontset: [u8; 80], // Fontset [INFO] [stderr] 66 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_camel_case_types)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/lib.rs:47:13 [INFO] [stderr] | [INFO] [stderr] 47 | let mut file = match File::open(&path) { [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: field is never used: `opcode` [INFO] [stderr] --> src/lib.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | opcode: u8, // opcode [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: field is never used: `V` [INFO] [stderr] --> src/lib.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | V: [u8; 16], // Registers V0 to VE plus carry flag [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `I` [INFO] [stderr] --> src/lib.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | I: u16, // Index register [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `pc` [INFO] [stderr] --> src/lib.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | pc: u16, // Program counter [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `gfx` [INFO] [stderr] --> src/lib.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | gfx: [u8; 2048], // Graphics, size 64x32 [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `delay_timer` [INFO] [stderr] --> src/lib.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | delay_timer: u8, // timers [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `sound_timer` [INFO] [stderr] --> src/lib.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | sound_timer: u8, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `stack` [INFO] [stderr] --> src/lib.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | stack: [u16; 16], // Stack [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `sp` [INFO] [stderr] --> src/lib.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | sp: u16, // Stack pointer [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `key` [INFO] [stderr] --> src/lib.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | key: [u8; 16], // Keyboard [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `V` should have a snake case name such as `v` [INFO] [stderr] --> src/lib.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | V: [u8; 16], // Registers V0 to VE plus carry flag [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: structure field `I` should have a snake case name such as `i` [INFO] [stderr] --> src/lib.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | I: u16, // Index register [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `Chip8` [INFO] [stderr] --> src/lib.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | / pub fn new( ) -> Chip8 { [INFO] [stderr] 22 | | let mut mem = [0; 4096]; [INFO] [stderr] 23 | | let fs = Chip8_fontset::new(); [INFO] [stderr] 24 | | let mut i = 0; [INFO] [stderr] ... | [INFO] [stderr] 41 | | } [INFO] [stderr] 42 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 20 | impl Default for Chip8 { [INFO] [stderr] 21 | fn default() -> Self { [INFO] [stderr] 22 | Self::new() [INFO] [stderr] 23 | } [INFO] [stderr] 24 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/lib.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | i = i + 1; [INFO] [stderr] | ^^^^^^^^^ help: replace it with: `i += 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: method `loadGame` should have a snake case name such as `load_game` [INFO] [stderr] --> src/lib.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | / pub fn loadGame(&mut self, filename: String) { [INFO] [stderr] 45 | | let path = Path::new(&filename); [INFO] [stderr] 46 | | let display = path.display(); [INFO] [stderr] 47 | | let mut file = match File::open(&path) { [INFO] [stderr] ... | [INFO] [stderr] 56 | | } [INFO] [stderr] 57 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/lib.rs:55:13 [INFO] [stderr] | [INFO] [stderr] 55 | i = i + 1; [INFO] [stderr] | ^^^^^^^^^ help: replace it with: `i += 1` [INFO] [stderr] | [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: method `printMemoryLoc` should have a snake case name such as `print_memory_loc` [INFO] [stderr] --> src/lib.rs:59:5 [INFO] [stderr] | [INFO] [stderr] 59 | / pub fn printMemoryLoc(&self, location: usize) { [INFO] [stderr] 60 | | println!("{:x}", self.memory[location]); [INFO] [stderr] 61 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: type `Chip8_fontset` should have a camel case name such as `Chip8Fontset` [INFO] [stderr] --> src/lib.rs:64:1 [INFO] [stderr] | [INFO] [stderr] 64 | / struct Chip8_fontset { [INFO] [stderr] 65 | | fontset: [u8; 80], // Fontset [INFO] [stderr] 66 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_camel_case_types)] on by default [INFO] [stderr] [INFO] [stderr] warning: empty `loop {}` detected. You may want to either use `panic!()` or add `std::thread::sleep(..);` to the loop body. [INFO] [stderr] --> src/main.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | / loop { [INFO] [stderr] 17 | | // Emulate one cycle [INFO] [stderr] 18 | | //emulateCycle(); [INFO] [stderr] 19 | | [INFO] [stderr] ... | [INFO] [stderr] 26 | | //setKeys(); [INFO] [stderr] 27 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::empty_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_loop [INFO] [stderr] [INFO] [stderr] warning: empty `loop {}` detected. You may want to either use `panic!()` or add `std::thread::sleep(..);` to the loop body. [INFO] [stderr] --> src/main.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | / loop { [INFO] [stderr] 17 | | // Emulate one cycle [INFO] [stderr] 18 | | //emulateCycle(); [INFO] [stderr] 19 | | [INFO] [stderr] ... | [INFO] [stderr] 26 | | //setKeys(); [INFO] [stderr] 27 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::empty_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_loop [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 2.01s [INFO] running `"docker" "inspect" "be35a76b7e71f64ddfb67c132876032609e0c20858d3b2ff2c1f66166fcd6d35"` [INFO] running `"docker" "rm" "-f" "be35a76b7e71f64ddfb67c132876032609e0c20858d3b2ff2c1f66166fcd6d35"` [INFO] [stdout] be35a76b7e71f64ddfb67c132876032609e0c20858d3b2ff2c1f66166fcd6d35