[INFO] updating cached repository strangelovephd/rusty_chip [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/strangelovephd/rusty_chip [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/strangelovephd/rusty_chip" "work/ex/clippy-test-run/sources/stable/gh/strangelovephd/rusty_chip"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/strangelovephd/rusty_chip'... [INFO] [stderr] done. [INFO] [stderr] Checking out files: 32% (1226/3829) Checking out files: 33% (1264/3829) Checking out files: 34% (1302/3829) Checking out files: 35% (1341/3829) Checking out files: 36% (1379/3829) Checking out files: 36% (1390/3829) Checking out files: 37% (1417/3829) Checking out files: 38% (1456/3829) Checking out files: 38% (1465/3829) Checking out files: 39% (1494/3829) Checking out files: 39% (1498/3829) Checking out files: 39% (1512/3829) Checking out files: 40% (1532/3829) Checking out files: 41% (1570/3829) Checking out files: 41% (1591/3829) Checking out files: 42% (1609/3829) Checking out files: 43% (1647/3829) Checking out files: 44% (1685/3829) Checking out files: 45% (1724/3829) Checking out files: 46% (1762/3829) Checking out files: 47% (1800/3829) Checking out files: 48% (1838/3829) Checking out files: 48% (1852/3829) Checking out files: 49% (1877/3829) Checking out files: 50% (1915/3829) Checking out files: 51% (1953/3829) Checking out files: 52% (1992/3829) Checking out files: 53% (2030/3829) Checking out files: 54% (2068/3829) Checking out files: 55% (2106/3829) Checking out files: 56% (2145/3829) Checking out files: 57% (2183/3829) Checking out files: 58% (2221/3829) Checking out files: 59% (2260/3829) Checking out files: 60% (2298/3829) Checking out files: 61% (2336/3829) Checking out files: 62% (2374/3829) Checking out files: 63% (2413/3829) Checking out files: 64% (2451/3829) Checking out files: 65% (2489/3829) Checking out files: 66% (2528/3829) Checking out files: 67% (2566/3829) Checking out files: 68% (2604/3829) Checking out files: 69% (2643/3829) Checking out files: 70% (2681/3829) Checking out files: 71% (2719/3829) Checking out files: 72% (2757/3829) Checking out files: 73% (2796/3829) Checking out files: 74% (2834/3829) Checking out files: 75% (2872/3829) Checking out files: 76% (2911/3829) Checking out files: 77% (2949/3829) Checking out files: 78% (2987/3829) Checking out files: 79% (3025/3829) Checking out files: 80% (3064/3829) Checking out files: 81% (3102/3829) Checking out files: 82% (3140/3829) Checking out files: 83% (3179/3829) Checking out files: 84% (3217/3829) Checking out files: 85% (3255/3829) Checking out files: 85% (3272/3829) Checking out files: 86% (3293/3829) Checking out files: 87% (3332/3829) Checking out files: 88% (3370/3829) Checking out files: 89% (3408/3829) Checking out files: 90% (3447/3829) Checking out files: 91% (3485/3829) Checking out files: 92% (3523/3829) Checking out files: 92% (3544/3829) Checking out files: 93% (3561/3829) Checking out files: 93% (3571/3829) Checking out files: 94% (3600/3829) Checking out files: 95% (3638/3829) Checking out files: 96% (3676/3829) Checking out files: 97% (3715/3829) Checking out files: 98% (3753/3829) Checking out files: 99% (3791/3829) Checking out files: 99% (3805/3829) Checking out files: 100% (3829/3829) Checking out files: 100% (3829/3829), done. [INFO] running `"git" "clone" "work/cache/sources/gh/strangelovephd/rusty_chip" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/strangelovephd/rusty_chip"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/strangelovephd/rusty_chip'... [INFO] [stderr] done. [INFO] [stderr] Checking out files: 32% (1234/3829) Checking out files: 33% (1264/3829) Checking out files: 34% (1302/3829) Checking out files: 35% (1341/3829) Checking out files: 36% (1379/3829) Checking out files: 36% (1392/3829) Checking out files: 37% (1417/3829) Checking out files: 38% (1456/3829) Checking out files: 39% (1494/3829) Checking out files: 39% (1497/3829) Checking out files: 40% (1532/3829) Checking out files: 41% (1570/3829) Checking out files: 41% (1584/3829) Checking out files: 42% (1609/3829) Checking out files: 43% (1647/3829) Checking out files: 44% (1685/3829) Checking out files: 45% (1724/3829) Checking out files: 46% (1762/3829) Checking out files: 47% (1800/3829) Checking out files: 48% (1838/3829) Checking out files: 49% (1877/3829) Checking out files: 50% (1915/3829) Checking out files: 51% (1953/3829) Checking out files: 52% (1992/3829) Checking out files: 53% (2030/3829) Checking out files: 54% (2068/3829) Checking out files: 55% (2106/3829) Checking out files: 56% (2145/3829) Checking out files: 57% (2183/3829) Checking out files: 58% (2221/3829) Checking out files: 59% (2260/3829) Checking out files: 60% (2298/3829) Checking out files: 61% (2336/3829) Checking out files: 62% (2374/3829) Checking out files: 63% (2413/3829) Checking out files: 64% (2451/3829) Checking out files: 65% (2489/3829) Checking out files: 66% (2528/3829) Checking out files: 67% (2566/3829) Checking out files: 68% (2604/3829) Checking out files: 69% (2643/3829) Checking out files: 70% (2681/3829) Checking out files: 71% (2719/3829) Checking out files: 72% (2757/3829) Checking out files: 73% (2796/3829) Checking out files: 74% (2834/3829) Checking out files: 75% (2872/3829) Checking out files: 76% (2911/3829) Checking out files: 76% (2922/3829) Checking out files: 77% (2949/3829) Checking out files: 78% (2987/3829) Checking out files: 79% (3025/3829) Checking out files: 80% (3064/3829) Checking out files: 81% (3102/3829) Checking out files: 82% (3140/3829) Checking out files: 83% (3179/3829) Checking out files: 84% (3217/3829) Checking out files: 85% (3255/3829) Checking out files: 86% (3293/3829) Checking out files: 87% (3332/3829) Checking out files: 88% (3370/3829) Checking out files: 89% (3408/3829) Checking out files: 89% (3428/3829) Checking out files: 90% (3447/3829) Checking out files: 91% (3485/3829) Checking out files: 92% (3523/3829) Checking out files: 93% (3561/3829) Checking out files: 93% (3571/3829) Checking out files: 94% (3600/3829) Checking out files: 95% (3638/3829) Checking out files: 96% (3676/3829) Checking out files: 97% (3715/3829) Checking out files: 98% (3753/3829) Checking out files: 99% (3791/3829) Checking out files: 100% (3829/3829) Checking out files: 100% (3829/3829), done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] e7e75a9fd2fd93b6fab22e8932b4d8e3c0ece105 [INFO] sha for GitHub repo strangelovephd/rusty_chip: e7e75a9fd2fd93b6fab22e8932b4d8e3c0ece105 [INFO] validating manifest of strangelovephd/rusty_chip 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 strangelovephd/rusty_chip 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 strangelovephd/rusty_chip [INFO] finished frobbing strangelovephd/rusty_chip [INFO] frobbed toml for strangelovephd/rusty_chip written to work/ex/clippy-test-run/sources/stable/gh/strangelovephd/rusty_chip/Cargo.toml [INFO] started frobbing strangelovephd/rusty_chip [INFO] finished frobbing strangelovephd/rusty_chip [INFO] frobbed toml for strangelovephd/rusty_chip written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/strangelovephd/rusty_chip/Cargo.toml [INFO] crate strangelovephd/rusty_chip 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 strangelovephd/rusty_chip 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/strangelovephd/rusty_chip:/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] b450d0a63d8740351b22bb060109a11cf21ba97c4dfe1af46ed11d1fe06cbbf2 [INFO] running `"docker" "start" "-a" "b450d0a63d8740351b22bb060109a11cf21ba97c4dfe1af46ed11d1fe06cbbf2"` [INFO] [stderr] Compiling phf_shared v0.7.23 [INFO] [stderr] Checking draw_state v0.7.1 [INFO] [stderr] Checking inflate v0.3.4 [INFO] [stderr] Checking gif v0.9.2 [INFO] [stderr] Checking crossbeam-epoch v0.3.1 [INFO] [stderr] Checking rusttype v0.2.3 [INFO] [stderr] Checking num_cpus v1.8.0 [INFO] [stderr] Checking shared_library v0.1.9 [INFO] [stderr] Compiling num-traits v0.1.43 [INFO] [stderr] Compiling wayland-protocols v0.9.10 [INFO] [stderr] Compiling gl_generator v0.6.1 [INFO] [stderr] Compiling gl_generator v0.7.0 [INFO] [stderr] Checking x11-dl v2.18.3 [INFO] [stderr] Checking osmesa-sys v0.1.2 [INFO] [stderr] Checking num-rational v0.1.42 [INFO] [stderr] Checking enum_primitive v0.1.1 [INFO] [stderr] Compiling phf_generator v0.7.23 [INFO] [stderr] Compiling phf v0.7.23 [INFO] [stderr] Checking fs2 v0.2.5 [INFO] [stderr] Compiling serde_json v0.9.10 [INFO] [stderr] Checking crossbeam-deque v0.2.0 [INFO] [stderr] Checking tempfile v2.2.0 [INFO] [stderr] Checking png v0.11.0 [INFO] [stderr] Checking piston2d-graphics v0.24.0 [INFO] [stderr] Compiling phf_codegen v0.7.23 [INFO] [stderr] Checking memmap v0.4.0 [INFO] [stderr] Compiling gfx_gl v0.4.0 [INFO] [stderr] Compiling gl v0.7.0 [INFO] [stderr] Checking rayon-core v1.4.1 [INFO] [stderr] Checking pistoncore-input v0.20.0 [INFO] [stderr] Checking gfx_core v0.7.2 [INFO] [stderr] Compiling glutin v0.10.1 [INFO] [stderr] Checking rand v0.6.1 [INFO] [stderr] Compiling target_build_utils v0.3.1 [INFO] [stderr] Checking rayon v1.0.3 [INFO] [stderr] Checking pistoncore-window v0.30.0 [INFO] [stderr] Checking pistoncore-event_loop v0.35.0 [INFO] [stderr] Checking piston v0.35.0 [INFO] [stderr] Checking jpeg-decoder v0.1.15 [INFO] [stderr] Checking image v0.18.0 [INFO] [stderr] Compiling libloading v0.3.4 [INFO] [stderr] Checking dlib v0.3.1 [INFO] [stderr] Checking wayland-sys v0.9.10 [INFO] [stderr] Checking wayland-client v0.9.10 [INFO] [stderr] Checking wayland-kbd v0.9.1 [INFO] [stderr] Checking wayland-window v0.8.0 [INFO] [stderr] Checking winit v0.8.3 [INFO] [stderr] Checking gfx v0.16.3 [INFO] [stderr] Checking gfx_device_gl v0.14.6 [INFO] [stderr] Checking pistoncore-glutin_window v0.43.0 [INFO] [stderr] Checking piston-gfx_texture v0.30.0 [INFO] [stderr] Checking piston2d-gfx_graphics v0.47.0 [INFO] [stderr] Checking piston_window v0.74.0 [INFO] [stderr] Checking rusty_chip8 v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unused imports: `BLACK`, `HEIGHT`, `WHITE`, `WIDTH`, `draw_block` [INFO] [stderr] --> src/chip8.rs:9:23 [INFO] [stderr] | [INFO] [stderr] 9 | use super::graphics::{draw_block, Display, HEIGHT, WIDTH, BLACK, WHITE}; [INFO] [stderr] | ^^^^^^^^^^ ^^^^^^ ^^^^^ ^^^^^ ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `piston_window::types::Color` [INFO] [stderr] --> src/chip8.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use piston_window::types::Color; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around pattern [INFO] [stderr] --> src/chip8.rs:137:21 [INFO] [stderr] | [INFO] [stderr] 137 | (_) => {}, [INFO] [stderr] | ^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `BLACK`, `HEIGHT`, `WHITE`, `WIDTH`, `draw_block` [INFO] [stderr] --> src/chip8.rs:9:23 [INFO] [stderr] | [INFO] [stderr] 9 | use super::graphics::{draw_block, Display, HEIGHT, WIDTH, BLACK, WHITE}; [INFO] [stderr] | ^^^^^^^^^^ ^^^^^^ ^^^^^ ^^^^^ ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `piston_window::types::Color` [INFO] [stderr] --> src/chip8.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use piston_window::types::Color; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around pattern [INFO] [stderr] --> src/chip8.rs:137:21 [INFO] [stderr] | [INFO] [stderr] 137 | (_) => {}, [INFO] [stderr] | ^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `super::*` [INFO] [stderr] --> src/chip8.rs:287:9 [INFO] [stderr] | [INFO] [stderr] 287 | use super::*; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/chip8.rs:138:21 [INFO] [stderr] | [INFO] [stderr] 138 | Err(s) => panic!("Error with stack: {}", s), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unreachable_patterns)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `y` [INFO] [stderr] --> src/chip8.rs:117:13 [INFO] [stderr] | [INFO] [stderr] 117 | let y = ((operation & 0x00F0) >> 4) as u8; [INFO] [stderr] | ^ help: consider using `_y` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `r` [INFO] [stderr] --> src/chip8.rs:213:21 [INFO] [stderr] | [INFO] [stderr] 213 | let r: u8 = random(); [INFO] [stderr] | ^ help: consider using `_r` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `con` [INFO] [stderr] --> src/chip8.rs:280:23 [INFO] [stderr] | [INFO] [stderr] 280 | pub fn run(&self, con: &Context, g: &mut G2d) {} [INFO] [stderr] | ^^^ help: consider using `_con` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `g` [INFO] [stderr] --> src/chip8.rs:280:38 [INFO] [stderr] | [INFO] [stderr] 280 | pub fn run(&self, con: &Context, g: &mut G2d) {} [INFO] [stderr] | ^ help: consider using `_g` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `key` [INFO] [stderr] --> src/chip8.rs:282:35 [INFO] [stderr] | [INFO] [stderr] 282 | pub fn key_pressed(&mut self, key: Key) {} [INFO] [stderr] | ^^^ help: consider using `_key` instead [INFO] [stderr] [INFO] [stderr] warning: method is never used: `size` [INFO] [stderr] --> src/stack.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | pub fn size(&self) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `picture_test` [INFO] [stderr] --> src/chip8.rs:269:5 [INFO] [stderr] | [INFO] [stderr] 269 | pub fn picture_test(&mut self, x: usize, y: usize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `run` [INFO] [stderr] --> src/chip8.rs:280:5 [INFO] [stderr] | [INFO] [stderr] 280 | pub fn run(&self, con: &Context, g: &mut G2d) {} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `to_coord_u32` [INFO] [stderr] --> src/graphics.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | pub fn to_coord_u32(c: i32) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `draw_rectangle` [INFO] [stderr] --> src/graphics.rs:24:1 [INFO] [stderr] | [INFO] [stderr] 24 | pub fn draw_rectangle(color: Color, x: i32, y: i32, width: i32, height: i32, con: &Context, g: &mut G2d) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type `opcode` should have a camel case name such as `Opcode` [INFO] [stderr] --> src/chip8.rs:20:1 [INFO] [stderr] | [INFO] [stderr] 20 | type opcode = u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_camel_case_types)] on by default [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `FONTSET` [INFO] [stderr] --> src/chip8.rs:73:18 [INFO] [stderr] | [INFO] [stderr] 73 | 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] 73 | for (i, ) in FONTSET.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/chip8.rs:73:18 [INFO] [stderr] | [INFO] [stderr] 73 | for i in 0..80 { [INFO] [stderr] | ^^^^^ help: try replacing the loop by: `chip.mem[..80].clone_from_slice(&FONTSET[..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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/chip8.rs:104:33 [INFO] [stderr] | [INFO] [stderr] 104 | let operation: opcode = (self.mem[self.program_counter] as u16) << 8 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.mem[self.program_counter])` [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/chip8.rs:105:15 [INFO] [stderr] | [INFO] [stderr] 105 | | (self.mem[self.program_counter + 1] as u16); // Have to cast bytes as u16 to satisfy Rust's type requirements [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.mem[self.program_counter + 1])` [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: variable `Vx` should have a snake case name such as `vx` [INFO] [stderr] --> src/chip8.rs:118:13 [INFO] [stderr] | [INFO] [stderr] 118 | let Vx = ((operation & 0x0F00) >> 8) as usize; [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable `Vy` should have a snake case name such as `vy` [INFO] [stderr] --> src/chip8.rs:119:13 [INFO] [stderr] | [INFO] [stderr] 119 | let Vy = ((operation & 0x00F0) >> 4) as usize; [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/chip8.rs:164:38 [INFO] [stderr] | [INFO] [stderr] 164 | let mut total: u32 = self.registers[Vx] as u32 + self.registers[Vy] as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.registers[Vx])` [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/chip8.rs:164:66 [INFO] [stderr] | [INFO] [stderr] 164 | let mut total: u32 = self.registers[Vx] as u32 + self.registers[Vy] as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.registers[Vy])` [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/chip8.rs:219:102 [INFO] [stderr] | [INFO] [stderr] 219 | if self.display.update_screen(Vx, Vy, &self.mem[self.index as usize .. (self.index + 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/chip8.rs:246:49 [INFO] [stderr] | [INFO] [stderr] 246 | (0xF, _, 0x1, 0xE) => self.index += self.registers[Vx] as u16, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.registers[Vx])` [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: manual implementation of an assign operation [INFO] [stderr] --> src/chip8.rs:247:35 [INFO] [stderr] | [INFO] [stderr] 247 | (0xF, _, 0x2, 0x9) => self.index = self.index + self.registers[Vx] as u16, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.index += self.registers[Vx] as u16` [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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/chip8.rs:247:61 [INFO] [stderr] | [INFO] [stderr] 247 | (0xF, _, 0x2, 0x9) => self.index = self.index + self.registers[Vx] as u16, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.registers[Vx])` [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: an inclusive range would be more readable [INFO] [stderr] --> src/chip8.rs:253:44 [INFO] [stderr] | [INFO] [stderr] 253 | (0xF, _, 0x5, 0x5) => self.mem[self.index as usize .. self.index as usize + Vx + 1].copy_from_slice(&self.registers[0..Vx + 1]), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `self.index as usize..=self.index as usize + Vx` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/chip8.rs:253:129 [INFO] [stderr] | [INFO] [stderr] 253 | (0xF, _, 0x5, 0x5) => self.mem[self.index as usize .. self.index as usize + Vx + 1].copy_from_slice(&self.registers[0..Vx + 1]), [INFO] [stderr] | ^^^^^^^^^ help: use: `0..=Vx` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/chip8.rs:254:50 [INFO] [stderr] | [INFO] [stderr] 254 | (0xF, _, 0x6, 0x5) => self.registers[0..Vx + 1].copy_from_slice(&self.mem[self.index as usize..self.index as usize + Vx + 1]), [INFO] [stderr] | ^^^^^^^^^ help: use: `0..=Vx` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/chip8.rs:254:87 [INFO] [stderr] | [INFO] [stderr] 254 | (0xF, _, 0x6, 0x5) => self.registers[0..Vx + 1].copy_from_slice(&self.mem[self.index as usize..self.index as usize + Vx + 1]), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `self.index as usize..=self.index as usize + Vx` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/graphics.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | (c as f64) * BLOCK_SIZE [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/graphics.rs:28:42 [INFO] [stderr] | [INFO] [stderr] 28 | rectangle(color, [x, y, BLOCK_SIZE * (width as f64), BLOCK_SIZE * (height as f64)], con.transform, g); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(width)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/graphics.rs:28:71 [INFO] [stderr] | [INFO] [stderr] 28 | rectangle(color, [x, y, BLOCK_SIZE * (width as f64), BLOCK_SIZE * (height as f64)], con.transform, g); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(height)` [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: the loop variable `j` is used to index `sprite` [INFO] [stderr] --> src/graphics.rs:80:18 [INFO] [stderr] | [INFO] [stderr] 80 | for j in 0..rows { [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] 80 | for (j, ) in sprite.iter().enumerate().take(rows) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/chip8.rs:138:21 [INFO] [stderr] | [INFO] [stderr] 138 | Err(s) => panic!("Error with stack: {}", s), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unreachable_patterns)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `y` [INFO] [stderr] --> src/chip8.rs:117:13 [INFO] [stderr] | [INFO] [stderr] 117 | let y = ((operation & 0x00F0) >> 4) as u8; [INFO] [stderr] | ^ help: consider using `_y` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `r` [INFO] [stderr] --> src/chip8.rs:213:21 [INFO] [stderr] | [INFO] [stderr] 213 | let r: u8 = random(); [INFO] [stderr] | ^ help: consider using `_r` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `con` [INFO] [stderr] --> src/chip8.rs:280:23 [INFO] [stderr] | [INFO] [stderr] 280 | pub fn run(&self, con: &Context, g: &mut G2d) {} [INFO] [stderr] | ^^^ help: consider using `_con` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `g` [INFO] [stderr] --> src/chip8.rs:280:38 [INFO] [stderr] | [INFO] [stderr] 280 | pub fn run(&self, con: &Context, g: &mut G2d) {} [INFO] [stderr] | ^ help: consider using `_g` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `key` [INFO] [stderr] --> src/chip8.rs:282:35 [INFO] [stderr] | [INFO] [stderr] 282 | pub fn key_pressed(&mut self, key: Key) {} [INFO] [stderr] | ^^^ help: consider using `_key` instead [INFO] [stderr] [INFO] [stderr] warning: method is never used: `picture_test` [INFO] [stderr] --> src/chip8.rs:269:5 [INFO] [stderr] | [INFO] [stderr] 269 | pub fn picture_test(&mut self, x: usize, y: usize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `run` [INFO] [stderr] --> src/chip8.rs:280:5 [INFO] [stderr] | [INFO] [stderr] 280 | pub fn run(&self, con: &Context, g: &mut G2d) {} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `to_coord_u32` [INFO] [stderr] --> src/graphics.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | pub fn to_coord_u32(c: i32) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `draw_rectangle` [INFO] [stderr] --> src/graphics.rs:24:1 [INFO] [stderr] | [INFO] [stderr] 24 | pub fn draw_rectangle(color: Color, x: i32, y: i32, width: i32, height: i32, con: &Context, g: &mut G2d) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/stack.rs:55:9 [INFO] [stderr] | [INFO] [stderr] 55 | dickwad.push(0x84); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/stack.rs:63:9 [INFO] [stderr] | [INFO] [stderr] 63 | dickwad.push(0x84); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/stack.rs:65:9 [INFO] [stderr] | [INFO] [stderr] 65 | dickwad.push(0x84); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/stack.rs:73:13 [INFO] [stderr] | [INFO] [stderr] 73 | dickwad.push(i); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/stack.rs:81:9 [INFO] [stderr] | [INFO] [stderr] 81 | dickwad.push(0x1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/stack.rs:82:9 [INFO] [stderr] | [INFO] [stderr] 82 | dickwad.push(0x2); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/stack.rs:83:9 [INFO] [stderr] | [INFO] [stderr] 83 | dickwad.push(0x3); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: type `opcode` should have a camel case name such as `Opcode` [INFO] [stderr] --> src/chip8.rs:20:1 [INFO] [stderr] | [INFO] [stderr] 20 | type opcode = u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_camel_case_types)] on by default [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `FONTSET` [INFO] [stderr] --> src/chip8.rs:73:18 [INFO] [stderr] | [INFO] [stderr] 73 | 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] 73 | for (i, ) in FONTSET.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/chip8.rs:73:18 [INFO] [stderr] | [INFO] [stderr] 73 | for i in 0..80 { [INFO] [stderr] | ^^^^^ help: try replacing the loop by: `chip.mem[..80].clone_from_slice(&FONTSET[..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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/chip8.rs:104:33 [INFO] [stderr] | [INFO] [stderr] 104 | let operation: opcode = (self.mem[self.program_counter] as u16) << 8 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.mem[self.program_counter])` [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/chip8.rs:105:15 [INFO] [stderr] | [INFO] [stderr] 105 | | (self.mem[self.program_counter + 1] as u16); // Have to cast bytes as u16 to satisfy Rust's type requirements [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.mem[self.program_counter + 1])` [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: variable `Vx` should have a snake case name such as `vx` [INFO] [stderr] --> src/chip8.rs:118:13 [INFO] [stderr] | [INFO] [stderr] 118 | let Vx = ((operation & 0x0F00) >> 8) as usize; [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable `Vy` should have a snake case name such as `vy` [INFO] [stderr] --> src/chip8.rs:119:13 [INFO] [stderr] | [INFO] [stderr] 119 | let Vy = ((operation & 0x00F0) >> 4) as usize; [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/chip8.rs:164:38 [INFO] [stderr] | [INFO] [stderr] 164 | let mut total: u32 = self.registers[Vx] as u32 + self.registers[Vy] as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.registers[Vx])` [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 u32 may become silently lossy if types change [INFO] [stderr] --> src/chip8.rs:164:66 [INFO] [stderr] | [INFO] [stderr] 164 | let mut total: u32 = self.registers[Vx] as u32 + self.registers[Vy] as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.registers[Vy])` [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/chip8.rs:219:102 [INFO] [stderr] | [INFO] [stderr] 219 | if self.display.update_screen(Vx, Vy, &self.mem[self.index as usize .. (self.index + 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/chip8.rs:246:49 [INFO] [stderr] | [INFO] [stderr] 246 | (0xF, _, 0x1, 0xE) => self.index += self.registers[Vx] as u16, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.registers[Vx])` [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: manual implementation of an assign operation [INFO] [stderr] --> src/chip8.rs:247:35 [INFO] [stderr] | [INFO] [stderr] 247 | (0xF, _, 0x2, 0x9) => self.index = self.index + self.registers[Vx] as u16, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.index += self.registers[Vx] as u16` [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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/chip8.rs:247:61 [INFO] [stderr] | [INFO] [stderr] 247 | (0xF, _, 0x2, 0x9) => self.index = self.index + self.registers[Vx] as u16, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.registers[Vx])` [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: an inclusive range would be more readable [INFO] [stderr] --> src/chip8.rs:253:44 [INFO] [stderr] | [INFO] [stderr] 253 | (0xF, _, 0x5, 0x5) => self.mem[self.index as usize .. self.index as usize + Vx + 1].copy_from_slice(&self.registers[0..Vx + 1]), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `self.index as usize..=self.index as usize + Vx` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/chip8.rs:253:129 [INFO] [stderr] | [INFO] [stderr] 253 | (0xF, _, 0x5, 0x5) => self.mem[self.index as usize .. self.index as usize + Vx + 1].copy_from_slice(&self.registers[0..Vx + 1]), [INFO] [stderr] | ^^^^^^^^^ help: use: `0..=Vx` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/chip8.rs:254:50 [INFO] [stderr] | [INFO] [stderr] 254 | (0xF, _, 0x6, 0x5) => self.registers[0..Vx + 1].copy_from_slice(&self.mem[self.index as usize..self.index as usize + Vx + 1]), [INFO] [stderr] | ^^^^^^^^^ help: use: `0..=Vx` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/chip8.rs:254:87 [INFO] [stderr] | [INFO] [stderr] 254 | (0xF, _, 0x6, 0x5) => self.registers[0..Vx + 1].copy_from_slice(&self.mem[self.index as usize..self.index as usize + Vx + 1]), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `self.index as usize..=self.index as usize + Vx` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/graphics.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | (c as f64) * BLOCK_SIZE [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(c)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/graphics.rs:28:42 [INFO] [stderr] | [INFO] [stderr] 28 | rectangle(color, [x, y, BLOCK_SIZE * (width as f64), BLOCK_SIZE * (height as f64)], con.transform, g); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `f64::from(width)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/graphics.rs:28:71 [INFO] [stderr] | [INFO] [stderr] 28 | rectangle(color, [x, y, BLOCK_SIZE * (width as f64), BLOCK_SIZE * (height as f64)], con.transform, g); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(height)` [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: the loop variable `j` is used to index `sprite` [INFO] [stderr] --> src/graphics.rs:80:18 [INFO] [stderr] | [INFO] [stderr] 80 | for j in 0..rows { [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] 80 | for (j, ) in sprite.iter().enumerate().take(rows) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1m 17s [INFO] running `"docker" "inspect" "b450d0a63d8740351b22bb060109a11cf21ba97c4dfe1af46ed11d1fe06cbbf2"` [INFO] running `"docker" "rm" "-f" "b450d0a63d8740351b22bb060109a11cf21ba97c4dfe1af46ed11d1fe06cbbf2"` [INFO] [stdout] b450d0a63d8740351b22bb060109a11cf21ba97c4dfe1af46ed11d1fe06cbbf2