[INFO] updating cached repository felixzhuologist/wasm-chip8 [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/felixzhuologist/wasm-chip8 [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/felixzhuologist/wasm-chip8" "work/ex/clippy-test-run/sources/stable/gh/felixzhuologist/wasm-chip8"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/felixzhuologist/wasm-chip8'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/felixzhuologist/wasm-chip8" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/felixzhuologist/wasm-chip8"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/felixzhuologist/wasm-chip8'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 142be1e5453116ede305354f7919c1a2d0b14961 [INFO] sha for GitHub repo felixzhuologist/wasm-chip8: 142be1e5453116ede305354f7919c1a2d0b14961 [INFO] validating manifest of felixzhuologist/wasm-chip8 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 felixzhuologist/wasm-chip8 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 felixzhuologist/wasm-chip8 [INFO] finished frobbing felixzhuologist/wasm-chip8 [INFO] frobbed toml for felixzhuologist/wasm-chip8 written to work/ex/clippy-test-run/sources/stable/gh/felixzhuologist/wasm-chip8/Cargo.toml [INFO] started frobbing felixzhuologist/wasm-chip8 [INFO] finished frobbing felixzhuologist/wasm-chip8 [INFO] frobbed toml for felixzhuologist/wasm-chip8 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/felixzhuologist/wasm-chip8/Cargo.toml [INFO] crate felixzhuologist/wasm-chip8 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 felixzhuologist/wasm-chip8 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-0/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/felixzhuologist/wasm-chip8:/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] 5029c532b61e32e385d44413b70fe4553865c825c1c04a545ea7d685aaa52418 [INFO] running `"docker" "start" "-a" "5029c532b61e32e385d44413b70fe4553865c825c1c04a545ea7d685aaa52418"` [INFO] [stderr] Compiling proc-macro2 v0.4.15 [INFO] [stderr] Compiling wasm-bindgen-shared v0.2.19 [INFO] [stderr] Compiling serde v1.0.75 [INFO] [stderr] Compiling quote v0.6.8 [INFO] [stderr] Compiling syn v0.14.9 [INFO] [stderr] Compiling serde_json v1.0.26 [INFO] [stderr] Compiling serde_derive v1.0.75 [INFO] [stderr] Compiling wasm-bindgen-backend v0.2.19 [INFO] [stderr] Compiling wasm-bindgen-macro-support v0.2.19 [INFO] [stderr] Compiling wasm-bindgen-macro v0.2.19 [INFO] [stderr] Checking wasm-bindgen v0.2.19 [INFO] [stderr] Checking js-sys v0.2.4 [INFO] [stderr] Checking chip8 v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/cpu.rs:116:61 [INFO] [stderr] | [INFO] [stderr] 116 | pub fn process_instruction(&mut self, instruction: u16) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/cpu.rs:344:21 [INFO] [stderr] | [INFO] [stderr] 344 | cpu.v[10] = 0b01001101; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0100_1101` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/cpu.rs:346:30 [INFO] [stderr] | [INFO] [stderr] 346 | assert_eq!(cpu.v[0], 0b00100110); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0010_0110` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/cpu.rs:355:21 [INFO] [stderr] | [INFO] [stderr] 355 | cpu.v[10] = 0b01001101; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0100_1101` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/cpu.rs:357:30 [INFO] [stderr] | [INFO] [stderr] 357 | assert_eq!(cpu.v[1], 0b10011010); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1001_1010` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/screen.rs:76:29 [INFO] [stderr] | [INFO] [stderr] 76 | assert_eq!(get_mask(0b00011000, 60), ((1 << 63) + 1)); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0001_1000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/screen.rs:89:44 [INFO] [stderr] | [INFO] [stderr] 89 | assert!(screen.draw_sprite(0, 0, &[0b11110000, 0b11110000])); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1111_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/screen.rs:89:56 [INFO] [stderr] | [INFO] [stderr] 89 | assert!(screen.draw_sprite(0, 0, &[0b11110000, 0b11110000])); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1111_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/screen.rs:109:46 [INFO] [stderr] | [INFO] [stderr] 109 | assert!(!screen.draw_sprite(60, 0, &[0b00111100])); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0011_1100` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/cpu.rs:116:61 [INFO] [stderr] | [INFO] [stderr] 116 | pub fn process_instruction(&mut self, instruction: u16) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `cpu::CPU` [INFO] [stderr] --> src/cpu.rs:53:5 [INFO] [stderr] | [INFO] [stderr] 53 | / pub fn new() -> CPU { [INFO] [stderr] 54 | | CPU { [INFO] [stderr] 55 | | memory: [0; 4096], [INFO] [stderr] 56 | | v: [0; 16], [INFO] [stderr] ... | [INFO] [stderr] 65 | | } [INFO] [stderr] 66 | | } [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] 50 | impl Default for cpu::CPU { [INFO] [stderr] 51 | fn default() -> Self { [INFO] [stderr] 52 | Self::new() [INFO] [stderr] 53 | } [INFO] [stderr] 54 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `SPRITES` [INFO] [stderr] --> src/cpu.rs:77:18 [INFO] [stderr] | [INFO] [stderr] 77 | for i in 0..80 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 77 | for (i, ) in SPRITES.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/cpu.rs:77:18 [INFO] [stderr] | [INFO] [stderr] 77 | for i in 0..80 { [INFO] [stderr] | ^^^^^ help: try replacing the loop by: `self.memory[..80].clone_from_slice(&SPRITES[..80])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_memcpy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `data` [INFO] [stderr] --> src/cpu.rs:102:18 [INFO] [stderr] | [INFO] [stderr] 102 | for i in 0..data.len() { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 102 | for (i, ) in data.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/cpu.rs:102:18 [INFO] [stderr] | [INFO] [stderr] 102 | for i in 0..data.len() { [INFO] [stderr] | ^^^^^^^^^^^^^ help: try replacing the loop by: `self.memory[512..(data.len() + 512)].clone_from_slice(&data[..])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:109:9 [INFO] [stderr] | [INFO] [stderr] 109 | (self.memory[self.pc as usize] as u16) << 8 | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.memory[self.pc as usize])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:110:9 [INFO] [stderr] | [INFO] [stderr] 110 | (self.memory[(self.pc + 1) as usize] as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.memory[(self.pc + 1) as usize])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:179:42 [INFO] [stderr] | [INFO] [stderr] 179 | (0xB, ..) => self.pc = nnn + (self.v[0] as u16), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.v[0])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:182:64 [INFO] [stderr] | [INFO] [stderr] 182 | let (start, end) = (self.i as usize, (self.i + (n as u16)) as usize); [INFO] [stderr] | ^^^^^^^^^^ help: try: `u16::from(n)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:207:43 [INFO] [stderr] | [INFO] [stderr] 207 | (0xF, _, 1, 0xE) => self.i += self.v[x] as u16, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u16::from(self.v[x])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:209:40 [INFO] [stderr] | [INFO] [stderr] 209 | (0xF, _, 2, 9) => self.i = self.v[x] as u16 * 5, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u16::from(self.v[x])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `wasm::CPUWrapper` [INFO] [stderr] --> src/wasm.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | / pub fn new() -> CPUWrapper { [INFO] [stderr] 24 | | CPUWrapper { cpu: ::cpu::CPU::new() } [INFO] [stderr] 25 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [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 wasm::CPUWrapper { [INFO] [stderr] 21 | fn default() -> Self { [INFO] [stderr] 22 | Self::new() [INFO] [stderr] 23 | } [INFO] [stderr] 24 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `keypad::Keypad` [INFO] [stderr] --> src/keypad.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | / pub fn new() -> Keypad { [INFO] [stderr] 10 | | Keypad { keys: [false; 16] } [INFO] [stderr] 11 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 1 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/screen.rs:8:22 [INFO] [stderr] | [INFO] [stderr] 8 | let sprite_row = sprite_row as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u64::from(sprite_row)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `screen::Screen` [INFO] [stderr] --> src/screen.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | / pub fn new() -> Screen { [INFO] [stderr] 20 | | Screen { pixels: [0; 32] } [INFO] [stderr] 21 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 3 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `cpu::CPU` [INFO] [stderr] --> src/cpu.rs:53:5 [INFO] [stderr] | [INFO] [stderr] 53 | / pub fn new() -> CPU { [INFO] [stderr] 54 | | CPU { [INFO] [stderr] 55 | | memory: [0; 4096], [INFO] [stderr] 56 | | v: [0; 16], [INFO] [stderr] ... | [INFO] [stderr] 65 | | } [INFO] [stderr] 66 | | } [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] 50 | impl Default for cpu::CPU { [INFO] [stderr] 51 | fn default() -> Self { [INFO] [stderr] 52 | Self::new() [INFO] [stderr] 53 | } [INFO] [stderr] 54 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `sprite` [INFO] [stderr] --> src/screen.rs:43:18 [INFO] [stderr] | [INFO] [stderr] 43 | for i in 0..sprite.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 43 | for (i, ) in sprite.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `SPRITES` [INFO] [stderr] --> src/cpu.rs:77:18 [INFO] [stderr] | [INFO] [stderr] 77 | for i in 0..80 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 77 | for (i, ) in SPRITES.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/cpu.rs:77:18 [INFO] [stderr] | [INFO] [stderr] 77 | for i in 0..80 { [INFO] [stderr] | ^^^^^ help: try replacing the loop by: `self.memory[..80].clone_from_slice(&SPRITES[..80])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_memcpy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `data` [INFO] [stderr] --> src/cpu.rs:102:18 [INFO] [stderr] | [INFO] [stderr] 102 | for i in 0..data.len() { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 102 | for (i, ) in data.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/cpu.rs:102:18 [INFO] [stderr] | [INFO] [stderr] 102 | for i in 0..data.len() { [INFO] [stderr] | ^^^^^^^^^^^^^ help: try replacing the loop by: `self.memory[512..(data.len() + 512)].clone_from_slice(&data[..])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:109:9 [INFO] [stderr] | [INFO] [stderr] 109 | (self.memory[self.pc as usize] as u16) << 8 | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.memory[self.pc as usize])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:110:9 [INFO] [stderr] | [INFO] [stderr] 110 | (self.memory[(self.pc + 1) as usize] as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.memory[(self.pc + 1) as usize])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:179:42 [INFO] [stderr] | [INFO] [stderr] 179 | (0xB, ..) => self.pc = nnn + (self.v[0] as u16), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.v[0])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:182:64 [INFO] [stderr] | [INFO] [stderr] 182 | let (start, end) = (self.i as usize, (self.i + (n as u16)) as usize); [INFO] [stderr] | ^^^^^^^^^^ help: try: `u16::from(n)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:207:43 [INFO] [stderr] | [INFO] [stderr] 207 | (0xF, _, 1, 0xE) => self.i += self.v[x] as u16, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u16::from(self.v[x])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cpu.rs:209:40 [INFO] [stderr] | [INFO] [stderr] 209 | (0xF, _, 2, 9) => self.i = self.v[x] as u16 * 5, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u16::from(self.v[x])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `wasm::CPUWrapper` [INFO] [stderr] --> src/wasm.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | / pub fn new() -> CPUWrapper { [INFO] [stderr] 24 | | CPUWrapper { cpu: ::cpu::CPU::new() } [INFO] [stderr] 25 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [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 wasm::CPUWrapper { [INFO] [stderr] 21 | fn default() -> Self { [INFO] [stderr] 22 | Self::new() [INFO] [stderr] 23 | } [INFO] [stderr] 24 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `keypad::Keypad` [INFO] [stderr] --> src/keypad.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | / pub fn new() -> Keypad { [INFO] [stderr] 10 | | Keypad { keys: [false; 16] } [INFO] [stderr] 11 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 1 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/screen.rs:8:22 [INFO] [stderr] | [INFO] [stderr] 8 | let sprite_row = sprite_row as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u64::from(sprite_row)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `screen::Screen` [INFO] [stderr] --> src/screen.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | / pub fn new() -> Screen { [INFO] [stderr] 20 | | Screen { pixels: [0; 32] } [INFO] [stderr] 21 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 3 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `sprite` [INFO] [stderr] --> src/screen.rs:43:18 [INFO] [stderr] | [INFO] [stderr] 43 | for i in 0..sprite.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 43 | for (i, ) in sprite.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 54.28s [INFO] running `"docker" "inspect" "5029c532b61e32e385d44413b70fe4553865c825c1c04a545ea7d685aaa52418"` [INFO] running `"docker" "rm" "-f" "5029c532b61e32e385d44413b70fe4553865c825c1c04a545ea7d685aaa52418"` [INFO] [stdout] 5029c532b61e32e385d44413b70fe4553865c825c1c04a545ea7d685aaa52418