[INFO] cloning repository https://github.com/Gabriel-Axe/Chip8 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Gabriel-Axe/Chip8" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGabriel-Axe%2FChip8", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGabriel-Axe%2FChip8'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] d764e6d615c2e8989e2a88425d0699da5ef4403d [INFO] checking Gabriel-Axe/Chip8 against 012c0bd4d516934012c9a1ecb26e9eb283d2ed75 for pr-133502-29 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGabriel-Axe%2FChip8" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Gabriel-Axe/Chip8 [INFO] finished tweaking git repo https://github.com/Gabriel-Axe/Chip8 [INFO] tweaked toml for git repo https://github.com/Gabriel-Axe/Chip8 written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Gabriel-Axe/Chip8 on toolchain 012c0bd4d516934012c9a1ecb26e9eb283d2ed75 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+012c0bd4d516934012c9a1ecb26e9eb283d2ed75" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/Gabriel-Axe/Chip8 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+012c0bd4d516934012c9a1ecb26e9eb283d2ed75" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded pixels v0.17.2 [INFO] [stderr] Downloaded wgpu-core-deps-emscripten v29.0.4 [INFO] [stderr] Downloaded ultraviolet v0.10.0 [INFO] [stderr] Downloaded minifb v0.28.0 [INFO] [stderr] Downloaded sdl2 v0.38.0 [INFO] [stderr] Downloaded sdl2-sys v0.38.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] 58c4bee5331835656082aabc78d9441141db9fdfc3722fdb9305a81e2bf66331 [INFO] running `Command { std: "docker" "start" "58c4bee5331835656082aabc78d9441141db9fdfc3722fdb9305a81e2bf66331", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "58c4bee5331835656082aabc78d9441141db9fdfc3722fdb9305a81e2bf66331", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "58c4bee5331835656082aabc78d9441141db9fdfc3722fdb9305a81e2bf66331" "/opt/rustwide/cargo-home/bin/cargo" "+012c0bd4d516934012c9a1ecb26e9eb283d2ed75" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "58c4bee5331835656082aabc78d9441141db9fdfc3722fdb9305a81e2bf66331", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "58c4bee5331835656082aabc78d9441141db9fdfc3722fdb9305a81e2bf66331" "/opt/rustwide/cargo-home/bin/cargo" "+012c0bd4d516934012c9a1ecb26e9eb283d2ed75" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.189 [INFO] [stderr] Compiling pkg-config v0.3.33 [INFO] [stderr] Compiling cfg_aliases v0.2.2 [INFO] [stderr] Checking bitflags v2.13.1 [INFO] [stderr] Checking log v0.4.33 [INFO] [stderr] Checking smallvec v1.15.2 [INFO] [stderr] Compiling thiserror v2.0.19 [INFO] [stderr] Compiling zerocopy v0.8.55 [INFO] [stderr] Compiling proc-macro2 v1.0.107 [INFO] [stderr] Checking libloading v0.8.9 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling xml-rs v0.8.28 [INFO] [stderr] Checking foldhash v0.2.0 [INFO] [stderr] Compiling memoffset v0.6.5 [INFO] [stderr] Compiling ash v0.38.0+1.3.281 [INFO] [stderr] Checking bit-vec v0.9.1 [INFO] [stderr] Compiling naga v29.0.4 [INFO] [stderr] Checking raw-window-handle v0.6.2 [INFO] [stderr] Checking unicode-width v0.2.2 [INFO] [stderr] Checking indexmap v2.14.0 [INFO] [stderr] Checking bit-set v0.9.1 [INFO] [stderr] Checking spirv v0.4.0+sdk-1.4.341.0 [INFO] [stderr] Checking hashbrown v0.16.1 [INFO] [stderr] Checking dlib v0.5.3 [INFO] [stderr] Checking codespan-reporting v0.13.1 [INFO] [stderr] Checking unicode-ident v1.0.24 [INFO] [stderr] Checking hexf-parse v0.2.1 [INFO] [stderr] Checking rustc-hash v1.1.0 [INFO] [stderr] Checking arrayvec v0.7.8 [INFO] [stderr] Compiling khronos-egl v6.0.0 [INFO] [stderr] Checking hashbrown v0.15.5 [INFO] [stderr] Checking gpu-descriptor-types v0.2.0 [INFO] [stderr] Compiling wgpu-hal v29.0.4 [INFO] [stderr] Checking presser v0.3.1 [INFO] [stderr] Checking renderdoc-sys v1.1.0 [INFO] [stderr] Checking rand_core v0.10.1 [INFO] [stderr] Checking profiling v1.0.18 [INFO] [stderr] Checking memchr v2.8.3 [INFO] [stderr] Checking glow v0.17.0 [INFO] [stderr] Compiling getrandom v0.4.3 [INFO] [stderr] Compiling wgpu-core v29.0.4 [INFO] [stderr] Compiling litrs v1.0.0 [INFO] [stderr] Compiling find-msvc-tools v0.1.10 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Checking aho-corasick v1.1.5 [INFO] [stderr] Checking regex-syntax v0.8.11 [INFO] [stderr] Compiling quote v1.0.47 [INFO] [stderr] Checking downcast-rs v1.2.1 [INFO] [stderr] Compiling wayland-sys v0.29.5 [INFO] [stderr] Compiling wayland-sys v0.31.11 [INFO] [stderr] Compiling x11-dl v2.21.0 [INFO] [stderr] Compiling cc v1.4.2 [INFO] [stderr] Compiling syn v2.0.119 [INFO] [stderr] Compiling syn v3.0.3 [INFO] [stderr] Compiling wayland-scanner v0.29.5 [INFO] [stderr] Checking gpu-descriptor v0.3.2 [INFO] [stderr] Compiling document-features v0.2.12 [INFO] [stderr] Compiling wgpu v29.0.4 [INFO] [stderr] Checking ordered-float v5.3.0 [INFO] [stderr] Checking linux-raw-sys v0.12.1 [INFO] [stderr] Checking cpufeatures v0.3.0 [INFO] [stderr] Checking jiff-core v0.1.0 [INFO] [stderr] Checking xcursor v0.3.11 [INFO] [stderr] Checking fastrand v2.5.0 [INFO] [stderr] Checking chacha20 v0.10.1 [INFO] [stderr] Checking pollster v0.4.0 [INFO] [stderr] Compiling wayland-client v0.29.5 [INFO] [stderr] Compiling wayland-protocols v0.29.5 [INFO] [stderr] Checking regex-automata v0.4.18 [INFO] [stderr] Checking parking_lot_core v0.9.12 [INFO] [stderr] Checking nix v0.24.3 [INFO] [stderr] Checking rand v0.10.2 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Compiling minifb v0.28.0 [INFO] [stderr] Checking jiff v0.2.35 [INFO] [stderr] Compiling thiserror-impl v2.0.19 [INFO] [stderr] Checking wayland-commons v0.29.5 [INFO] [stderr] Checking tempfile v3.27.0 [INFO] [stderr] Checking regex v1.13.1 [INFO] [stderr] Checking env_filter v2.0.0 [INFO] [stderr] Checking env_logger v0.11.11 [INFO] [stderr] Compiling bytemuck_derive v1.11.0 [INFO] [stderr] Compiling zerocopy-derive v0.8.55 [INFO] [stderr] Checking wayland-cursor v0.29.5 [INFO] [stderr] Checking bytemuck v1.25.2 [INFO] [stderr] Checking wgpu-types v29.0.4 [INFO] [stderr] Checking safe_arch v0.7.4 [INFO] [stderr] Checking wide v0.7.33 [INFO] [stderr] Checking ultraviolet v0.10.0 [INFO] [stderr] Checking half v2.7.1 [INFO] [stderr] Checking gpu-allocator v0.28.0 [INFO] [stderr] Checking wgpu-naga-bridge v29.0.4 [INFO] [stderr] Checking wgpu-core-deps-windows-linux-android v29.0.4 [INFO] [stderr] Checking pixels v0.17.2 [INFO] [stderr] Checking Chip8 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `disassembler::Disassembler` [INFO] [stdout] --> src/main.rs:3:27 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::{chip8::Chip8, disassembler::Disassembler}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `any::Any`, `fmt::format`, `fs`, `io::Empty`, `num::ParseFloatError`, `path::PathBuf`, `thread::sleep`, and `time::Duration` [INFO] [stdout] --> src/chip8.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{any::Any, fmt::format, fs, io::Empty, num::ParseFloatError, path::PathBuf, thread::sleep, time::Duration}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `PROGRAM_START_OFFSET`, `join_2_nibbles_into_u8`, `join_3_nibbles_into_u8`, and `self` [INFO] [stdout] --> src/chip8.rs:3:39 [INFO] [stdout] | [INFO] [stdout] 3 | ...::{self, DebugPrinter}, display::Display, file_handler::RomHandler, memory::{Memory, PROGRAM_START_OFFSET}, opcode_handler::Instruction::{self, ADD_VALUE_TO_REGISTER_7, CLEAR_SCREEN_0, DRAW_D, JUMP_1, LOAD_INDEX_REGISTER_WITH_VALUE_A, LOAD_REGISTER_VX_WITH_VALUE_6, UNKNOWN}, util::{join_2_nibbles_into_u8, join_3_nibbles_into_u8}}; [INFO] [stdout] | ^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Key0`, `WindowOptions`, and `Window` [INFO] [stdout] --> src/chip8.rs:5:26 [INFO] [stdout] | [INFO] [stdout] 5 | use minifb::{Key::{self, Key0}, Window, WindowOptions}; [INFO] [stdout] | ^^^^ ^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Rng` and `rng` [INFO] [stdout] --> src/chip8.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | use rand::{Rng, rng}; [INFO] [stdout] | ^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/chip8.rs:75:35 [INFO] [stdout] | [INFO] [stdout] 75 | let stored: u16 = (temp | *instruction as u16); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 75 - let stored: u16 = (temp | *instruction as u16); [INFO] [stdout] 75 + let stored: u16 = temp | *instruction as u16; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `chip8::Chip8` [INFO] [stdout] --> src/cpu.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::{chip8::Chip8, debug_printer::DebugPrinter, memory::Memory, register::{Register, RegisterI}}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `fmt::format` and `str::FromStr` [INFO] [stdout] --> src/display.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{fmt::format, str::FromStr}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `PROGRAM_START_OFFSET`, `Register`, and `from_u8_to_bin_color` [INFO] [stdout] --> src/display.rs:5:69 [INFO] [stdout] | [INFO] [stdout] 5 | ...memory::{Memory, PROGRAM_START_OFFSET}, register::{Register, RegisterI}, util::{from_u8_rgb, from_u8_to_bin_color}}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/display.rs:29:28 [INFO] [stdout] | [INFO] [stdout] 29 | const BUFFER_SIZE: usize = (BUFFER_WIDTH as usize * BUFFER_HEIGHT as usize); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 29 - const BUFFER_SIZE: usize = (BUFFER_WIDTH as usize * BUFFER_HEIGHT as usize); [INFO] [stdout] 29 + const BUFFER_SIZE: usize = BUFFER_WIDTH as usize * BUFFER_HEIGHT as usize; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/display.rs:214:33 [INFO] [stdout] | [INFO] [stdout] 214 | let mut temp_y: usize = (BUFFER_WIDTH as usize * (y as usize)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 214 - let mut temp_y: usize = (BUFFER_WIDTH as usize * (y as usize)); [INFO] [stdout] 214 + let mut temp_y: usize = BUFFER_WIDTH as usize * (y as usize); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/display.rs:274:58 [INFO] [stdout] | [INFO] [stdout] 274 | let colided = self.draw_line_from_u8(x_data, (y_data + i as u8), mem_val); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 274 - let colided = self.draw_line_from_u8(x_data, (y_data + i as u8), mem_val); [INFO] [stdout] 274 + let colided = self.draw_line_from_u8(x_data, y_data + i as u8, mem_val); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `CLEAR_SCREEN_0` should have an upper camel case name [INFO] [stdout] --> src/opcode_handler.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | CLEAR_SCREEN_0, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ClearScreen0` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `JUMP_1` should have an upper camel case name [INFO] [stdout] --> src/opcode_handler.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | JUMP_1 { nnn: u16 }, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `Jump1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `LOAD_REGISTER_VX_WITH_VALUE_6` should have an upper camel case name [INFO] [stdout] --> src/opcode_handler.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | LOAD_REGISTER_VX_WITH_VALUE_6 { x: u8, value: u8 }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `LoadRegisterVxWithValue6` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `LOAD_INDEX_REGISTER_WITH_VALUE_A` should have an upper camel case name [INFO] [stdout] --> src/opcode_handler.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | LOAD_INDEX_REGISTER_WITH_VALUE_A { value: u16 }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `LoadIndexRegisterWithValueA` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `ADD_VALUE_TO_REGISTER_7` should have an upper camel case name [INFO] [stdout] --> src/opcode_handler.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | ADD_VALUE_TO_REGISTER_7 { x: u8, value: u8 }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `AddValueToRegister7` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `DRAW_D` should have an upper camel case name [INFO] [stdout] --> src/opcode_handler.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | DRAW_D { x: u8, y: u8, n: u8 }, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `DrawD` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `load_rom`, `self`, and `util::mirror_bits` [INFO] [stdout] --> src/file_handler.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::{load_rom, memory::{self, Memory, PROGRAM_START_OFFSET}, util::mirror_bits}; [INFO] [stdout] | ^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `disassembler::Disassembler` [INFO] [stdout] --> src/main.rs:3:27 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::{chip8::Chip8, disassembler::Disassembler}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `any::Any`, `fmt::format`, `fs`, `io::Empty`, `num::ParseFloatError`, `path::PathBuf`, `thread::sleep`, and `time::Duration` [INFO] [stdout] --> src/chip8.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{any::Any, fmt::format, fs, io::Empty, num::ParseFloatError, path::PathBuf, thread::sleep, time::Duration}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `PROGRAM_START_OFFSET`, `join_2_nibbles_into_u8`, `join_3_nibbles_into_u8`, and `self` [INFO] [stdout] --> src/chip8.rs:3:39 [INFO] [stdout] | [INFO] [stdout] 3 | ...::{self, DebugPrinter}, display::Display, file_handler::RomHandler, memory::{Memory, PROGRAM_START_OFFSET}, opcode_handler::Instruction::{self, ADD_VALUE_TO_REGISTER_7, CLEAR_SCREEN_0, DRAW_D, JUMP_1, LOAD_INDEX_REGISTER_WITH_VALUE_A, LOAD_REGISTER_VX_WITH_VALUE_6, UNKNOWN}, util::{join_2_nibbles_into_u8, join_3_nibbles_into_u8}}; [INFO] [stdout] | ^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Key0`, `WindowOptions`, and `Window` [INFO] [stdout] --> src/chip8.rs:5:26 [INFO] [stdout] | [INFO] [stdout] 5 | use minifb::{Key::{self, Key0}, Window, WindowOptions}; [INFO] [stdout] | ^^^^ ^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Rng` and `rng` [INFO] [stdout] --> src/chip8.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | use rand::{Rng, rng}; [INFO] [stdout] | ^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/chip8.rs:75:35 [INFO] [stdout] | [INFO] [stdout] 75 | let stored: u16 = (temp | *instruction as u16); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 75 - let stored: u16 = (temp | *instruction as u16); [INFO] [stdout] 75 + let stored: u16 = temp | *instruction as u16; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `chip8::Chip8` [INFO] [stdout] --> src/cpu.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::{chip8::Chip8, debug_printer::DebugPrinter, memory::Memory, register::{Register, RegisterI}}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `fmt::format` and `str::FromStr` [INFO] [stdout] --> src/display.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{fmt::format, str::FromStr}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `PROGRAM_START_OFFSET`, `Register`, and `from_u8_to_bin_color` [INFO] [stdout] --> src/display.rs:5:69 [INFO] [stdout] | [INFO] [stdout] 5 | ...memory::{Memory, PROGRAM_START_OFFSET}, register::{Register, RegisterI}, util::{from_u8_rgb, from_u8_to_bin_color}}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/display.rs:29:28 [INFO] [stdout] | [INFO] [stdout] 29 | const BUFFER_SIZE: usize = (BUFFER_WIDTH as usize * BUFFER_HEIGHT as usize); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 29 - const BUFFER_SIZE: usize = (BUFFER_WIDTH as usize * BUFFER_HEIGHT as usize); [INFO] [stdout] 29 + const BUFFER_SIZE: usize = BUFFER_WIDTH as usize * BUFFER_HEIGHT as usize; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/display.rs:214:33 [INFO] [stdout] | [INFO] [stdout] 214 | let mut temp_y: usize = (BUFFER_WIDTH as usize * (y as usize)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 214 - let mut temp_y: usize = (BUFFER_WIDTH as usize * (y as usize)); [INFO] [stdout] 214 + let mut temp_y: usize = BUFFER_WIDTH as usize * (y as usize); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/display.rs:274:58 [INFO] [stdout] | [INFO] [stdout] 274 | let colided = self.draw_line_from_u8(x_data, (y_data + i as u8), mem_val); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 274 - let colided = self.draw_line_from_u8(x_data, (y_data + i as u8), mem_val); [INFO] [stdout] 274 + let colided = self.draw_line_from_u8(x_data, y_data + i as u8, mem_val); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `CLEAR_SCREEN_0` should have an upper camel case name [INFO] [stdout] --> src/opcode_handler.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | CLEAR_SCREEN_0, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ClearScreen0` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `JUMP_1` should have an upper camel case name [INFO] [stdout] --> src/opcode_handler.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | JUMP_1 { nnn: u16 }, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `Jump1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `LOAD_REGISTER_VX_WITH_VALUE_6` should have an upper camel case name [INFO] [stdout] --> src/opcode_handler.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | LOAD_REGISTER_VX_WITH_VALUE_6 { x: u8, value: u8 }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `LoadRegisterVxWithValue6` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `LOAD_INDEX_REGISTER_WITH_VALUE_A` should have an upper camel case name [INFO] [stdout] --> src/opcode_handler.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | LOAD_INDEX_REGISTER_WITH_VALUE_A { value: u16 }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `LoadIndexRegisterWithValueA` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `ADD_VALUE_TO_REGISTER_7` should have an upper camel case name [INFO] [stdout] --> src/opcode_handler.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | ADD_VALUE_TO_REGISTER_7 { x: u8, value: u8 }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `AddValueToRegister7` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `DRAW_D` should have an upper camel case name [INFO] [stdout] --> src/opcode_handler.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | DRAW_D { x: u8, y: u8, n: u8 }, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `DrawD` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `load_rom`, `self`, and `util::mirror_bits` [INFO] [stdout] --> src/file_handler.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::{load_rom, memory::{self, Memory, PROGRAM_START_OFFSET}, util::mirror_bits}; [INFO] [stdout] | ^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `temp` [INFO] [stdout] --> src/chip8.rs:77:21 [INFO] [stdout] | [INFO] [stdout] 77 | let temp: u8 = 0; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_temp` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/chip8.rs:122:35 [INFO] [stdout] | [INFO] [stdout] 122 | fn match_instruction_8(&self, instruction: u8) -> Option<()> { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/chip8.rs:151:36 [INFO] [stdout] | [INFO] [stdout] 151 | fn read_instruction(&mut self, mut instruction: &u16) { [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `conflict` [INFO] [stdout] --> src/chip8.rs:179:21 [INFO] [stdout] | [INFO] [stdout] 179 | let conflict = self.display.draw_sprite(&self.memory, &self.cpu, &mut self.cpu.get_regI_copy(), x, y, n); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_conflict` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cpu.rs:74:13 [INFO] [stdout] | [INFO] [stdout] 74 | let mut cur_addr = self.get_pc_address(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `register_data` is never read [INFO] [stdout] --> src/cpu.rs:166:9 [INFO] [stdout] | [INFO] [stdout] 166 | register_data = data + value; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `register_data` is assigned to, but never used [INFO] [stdout] --> src/cpu.rs:172:13 [INFO] [stdout] | [INFO] [stdout] 172 | let mut register_data = self.get_register_data(reg_id); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_register_data` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `register_data` is never read [INFO] [stdout] --> src/cpu.rs:175:9 [INFO] [stdout] | [INFO] [stdout] 175 | register_data = result_val; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `new_data` is never read [INFO] [stdout] --> src/cpu.rs:186:32 [INFO] [stdout] | [INFO] [stdout] 186 | let mut new_data: u8 = 0; [INFO] [stdout] | ^ this value is reassigned later and never used [INFO] [stdout] ... [INFO] [stdout] 196 | new_data = temp; [INFO] [stdout] | --------------- `new_data` is overwritten here before the previous value is read [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `val` [INFO] [stdout] --> src/cpu.rs:212:13 [INFO] [stdout] | [INFO] [stdout] 212 | let val = self.dt_reg.data; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `register` [INFO] [stdout] --> src/cpu.rs:213:13 [INFO] [stdout] | [INFO] [stdout] 213 | let register = self.set_register_data(reg_id, self.dt_reg.data); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_register` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hundreds` [INFO] [stdout] --> src/cpu.rs:244:13 [INFO] [stdout] | [INFO] [stdout] 244 | let hundreds = (val / 100) % 10; [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hundreds` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tens` [INFO] [stdout] --> src/cpu.rs:245:13 [INFO] [stdout] | [INFO] [stdout] 245 | let tens = (val / 10) % 10; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_tens` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `units` [INFO] [stdout] --> src/cpu.rs:246:13 [INFO] [stdout] | [INFO] [stdout] 246 | let units = val % 10; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_units` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `vf` is assigned to, but never used [INFO] [stdout] --> src/cpu.rs:397:13 [INFO] [stdout] | [INFO] [stdout] 397 | let mut vf = self.VF; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_vf` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `vx` is never read [INFO] [stdout] --> src/cpu.rs:404:9 [INFO] [stdout] | [INFO] [stdout] 404 | vx = val; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `vf` is never read [INFO] [stdout] --> src/cpu.rs:400:13 [INFO] [stdout] | [INFO] [stdout] 400 | vf.data = 1; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/display.rs:55:37 [INFO] [stdout] | [INFO] [stdout] 55 | fn convert_bool_to_color(&self, mut vec: &Vec) -> Vec { [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/display.rs:91:13 [INFO] [stdout] | [INFO] [stdout] 91 | let mut buffer: Vec = vec![0; BUFFER_SIZE]; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `true_val` [INFO] [stdout] --> src/display.rs:140:13 [INFO] [stdout] | [INFO] [stdout] 140 | let true_val = sprite_val; [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_true_val` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `pot_colide` is never read [INFO] [stdout] --> src/display.rs:147:34 [INFO] [stdout] | [INFO] [stdout] 147 | let mut pot_colide = false; [INFO] [stdout] | ^^^^^ this value is reassigned later and never used [INFO] [stdout] ... [INFO] [stdout] 155 | pot_colide = self.draw_pixel(x + i, y); [INFO] [stdout] | -------------------------------------- `pot_colide` is overwritten here before the previous value is read [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> src/display.rs:206:17 [INFO] [stdout] | [INFO] [stdout] 206 | let x = BUFFER_WIDTH - x; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y` [INFO] [stdout] --> src/display.rs:209:17 [INFO] [stdout] | [INFO] [stdout] 209 | let y = BUFFER_WIDTH - y; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `old` [INFO] [stdout] --> src/display.rs:228:13 [INFO] [stdout] | [INFO] [stdout] 228 | let old = self.buffer[loc as usize]; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_old` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/display.rs:260:13 [INFO] [stdout] | [INFO] [stdout] 260 | let mut buffer = self.buffer.clone(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buffer` [INFO] [stdout] --> src/display.rs:260:13 [INFO] [stdout] | [INFO] [stdout] 260 | let mut buffer = self.buffer.clone(); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/file_handler.rs:21:13 [INFO] [stdout] | [INFO] [stdout] 21 | let mut path_buf = PathBuf::from(existent_path.clone()); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/file_handler.rs:51:14 [INFO] [stdout] | [INFO] [stdout] 51 | for (mut addr, instruction) in [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Disassembler` is never constructed [INFO] [stdout] --> src/disassembler.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Disassembler { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `read_instructions` and `output_to_file` are never used [INFO] [stdout] --> src/disassembler.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl Disassembler { [INFO] [stdout] | ----------------- associated functions in this implementation [INFO] [stdout] 7 | [INFO] [stdout] 8 | pub fn read_instructions(rom: Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 15 | pub fn output_to_file(binary_contents: Vec) -> std::io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_intructions_from_file`, `match_instruction_8`, and `get_nibble` are never used [INFO] [stdout] --> src/chip8.rs:67:8 [INFO] [stdout] | [INFO] [stdout] 58 | impl Chip8 { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 67 | fn get_intructions_from_file(&self, rom: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 122 | fn match_instruction_8(&self, instruction: u8) -> Option<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 215 | pub fn get_nibble(&self, instruction: &u16, position: u8) -> u16 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `sp`, `VF`, `dt_reg`, and `st_reg` are never read [INFO] [stdout] --> src/cpu.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct CPU { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 16 | sp: u8, [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 19 | VF: Register, [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 25 | dt_reg: Register, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | st_reg: Register, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/cpu.rs:52:12 [INFO] [stdout] | [INFO] [stdout] 31 | impl CPU { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 52 | pub fn set_vf_value(&mut self, active: bool) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn get_vf_value(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | fn jump_to_address(&mut self, address: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | fn jump_offset_by_v0(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | fn skip_instruction_if_equal(&mut self, reg_id: u8, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 109 | fn skip_instruction_if_nequal(&mut self, reg_id: u8, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 116 | fn set_value_of_pc(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | fn get_pc_address(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 124 | fn value_equals_register_value(&mut self, compared_val: u8, reg_id: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 133 | pub fn compare_registers_values(&mut self, reg_id_1: u8, reg_id_2: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 143 | fn value_not_equals_register_value(&mut self, compared_val: u8, reg_id: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 151 | fn byte_skip_instruction(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 162 | fn add_byte_operation(&mut self, reg_id: u8, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 169 | fn and_number_to_random_value(&mut self, reg_id: u8, and_val: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 178 | fn store_from_register_x_into_y(&mut self, reg_x_id: u8, reg_y_id: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 211 | fn set_delay_timer_value_at_vx(&mut self, reg_id: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 216 | fn set_delay_timer_value(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 221 | fn set_sound_timer_value(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 225 | fn call_address(&self) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 228 | fn increment_vx_to_i(&mut self, reg_id: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 242 | fn store_bcd_of_vx(&mut self, reg_id: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 256 | fn jump_to_machine_code(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 339 | pub fn set_program_counter_to_value(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 343 | pub fn reset_pc(&mut self) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 347 | pub fn increment_sp(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 351 | pub fn decrement_sp(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 355 | pub fn get_sp(&mut self) -> u8 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 359 | pub fn get_pc(&mut self) -> u8 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 368 | pub fn or_values(self, x: u8, y: u8) -> u8 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 372 | pub fn and_values(self, x: u8, y: u8) -> u8 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 376 | pub fn xor_values(self, x: u8, y: u8) -> u8 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 382 | pub fn add_values(&mut self, x: u8, y: u8) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 394 | pub fn sub_values(&mut self, x: u8, y: u8) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 412 | pub fn store_vx_in_delay_timer(&mut self, reg_id: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 439 | pub fn store_vx_in_sound_timer(&mut self, reg_id: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 473 | pub fn return_from_subroutine(&mut self, memory: Memory) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 493 | fn nand(&self, x: u8, y: u8) -> u8 { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `keys` is never read [INFO] [stdout] --> src/display.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 31 | pub struct Display { [INFO] [stdout] | ------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 34 | keys: Vec, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `convert_bool_to_color`, `draw_h_line`, `draw_v_line`, `draw_square`, and `get_keys_pressed` are never used [INFO] [stdout] --> src/display.rs:55:8 [INFO] [stdout] | [INFO] [stdout] 44 | impl Display { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 55 | fn convert_bool_to_color(&self, mut vec: &Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 168 | pub fn draw_h_line(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 177 | pub fn draw_v_line(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 186 | pub fn draw_square(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 198 | pub fn get_keys_pressed(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `stack` is never read [INFO] [stdout] --> src/memory.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Memory { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 4 | data: [u8; 4096], [INFO] [stdout] 5 | pub stack: [u8; 16], [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `log_contents` and `size` are never used [INFO] [stdout] --> src/memory.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 11 | impl Memory { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 20 | pub fn log_contents(&self) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub fn size(&self) -> usize { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DelayTimerRegister` is never constructed [INFO] [stdout] --> src/register.rs:30:8 [INFO] [stdout] | [INFO] [stdout] 30 | struct DelayTimerRegister { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SoundTimerRegister` is never constructed [INFO] [stdout] --> src/register.rs:34:8 [INFO] [stdout] | [INFO] [stdout] 34 | struct SoundTimerRegister { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_bytes_in_16_binary` is never used [INFO] [stdout] --> src/util.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn print_bytes_in_16_binary(bytes: &Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mirror_bits` is never used [INFO] [stdout] --> src/util.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn mirror_bits(mut val: u8) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_bytes_in_binary` is never used [INFO] [stdout] --> src/util.rs:13:8 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn print_bytes_in_binary(bytes: &Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_bytes_in_hex` is never used [INFO] [stdout] --> src/util.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn print_bytes_in_hex(rom: &Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_bytes_in_deciaml` is never used [INFO] [stdout] --> src/util.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn print_bytes_in_deciaml(bytes: &Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `convert_bytes_u8_to_u16` is never used [INFO] [stdout] --> src/util.rs:34:8 [INFO] [stdout] | [INFO] [stdout] 34 | pub fn convert_bytes_u8_to_u16(bytes: &[u8]) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `join_2_nibbles_into_u8` is never used [INFO] [stdout] --> src/util.rs:43:8 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn join_2_nibbles_into_u8(nibble_1: u8, nibble_2: u8) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `temp` [INFO] [stdout] --> src/chip8.rs:77:21 [INFO] [stdout] | [INFO] [stdout] 77 | let temp: u8 = 0; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_temp` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `join_3_nibbles_into_u8` is never used [INFO] [stdout] --> src/util.rs:47:8 [INFO] [stdout] | [INFO] [stdout] 47 | pub fn join_3_nibbles_into_u8(nibble_1: u8, nibble_2: u8, nibble_3: u8) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_u32_vec_from_bool` is never used [INFO] [stdout] --> src/util.rs:51:8 [INFO] [stdout] | [INFO] [stdout] 51 | pub fn create_u32_vec_from_bool(bool_vec: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `from_u8_to_bin_color` is never used [INFO] [stdout] --> src/util.rs:68:8 [INFO] [stdout] | [INFO] [stdout] 68 | pub fn from_u8_to_bin_color(val: u8) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/chip8.rs:122:35 [INFO] [stdout] | [INFO] [stdout] 122 | fn match_instruction_8(&self, instruction: u8) -> Option<()> { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `VF` should have a snake case name [INFO] [stdout] --> src/cpu.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | VF: Register, [INFO] [stdout] | ^^ help: convert the identifier to snake case (notice the capitalization): `vf` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `regI` should have a snake case name [INFO] [stdout] --> src/cpu.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | regI: RegisterI, [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `reg_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu.rs:311:32 [INFO] [stdout] | [INFO] [stdout] 311 | if reg_id > len || 0 > reg_id { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu.rs:328:45 [INFO] [stdout] | [INFO] [stdout] 328 | if reg_id > self.registers.len() || 0 > reg_id { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu.rs:386:12 [INFO] [stdout] | [INFO] [stdout] 386 | if (vx_data + vy_data) > 255 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_regI_copy` should have a snake case name [INFO] [stdout] --> src/cpu.rs:469:12 [INFO] [stdout] | [INFO] [stdout] 469 | pub fn get_regI_copy(&self) -> RegisterI { [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `get_reg_i_copy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/display.rs:205:12 [INFO] [stdout] | [INFO] [stdout] 205 | if x < 0 || x > BUFFER_WIDTH as u8{ [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/display.rs:208:12 [INFO] [stdout] | [INFO] [stdout] 208 | if y < 0 || x > BUFFER_WIDTH as u8{ [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/chip8.rs:151:36 [INFO] [stdout] | [INFO] [stdout] 151 | fn read_instruction(&mut self, mut instruction: &u16) { [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `conflict` [INFO] [stdout] --> src/chip8.rs:179:21 [INFO] [stdout] | [INFO] [stdout] 179 | let conflict = self.display.draw_sprite(&self.memory, &self.cpu, &mut self.cpu.get_regI_copy(), x, y, n); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_conflict` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cpu.rs:74:13 [INFO] [stdout] | [INFO] [stdout] 74 | let mut cur_addr = self.get_pc_address(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `register_data` is never read [INFO] [stdout] --> src/cpu.rs:166:9 [INFO] [stdout] | [INFO] [stdout] 166 | register_data = data + value; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `register_data` is assigned to, but never used [INFO] [stdout] --> src/cpu.rs:172:13 [INFO] [stdout] | [INFO] [stdout] 172 | let mut register_data = self.get_register_data(reg_id); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_register_data` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `register_data` is never read [INFO] [stdout] --> src/cpu.rs:175:9 [INFO] [stdout] | [INFO] [stdout] 175 | register_data = result_val; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `new_data` is never read [INFO] [stdout] --> src/cpu.rs:186:32 [INFO] [stdout] | [INFO] [stdout] 186 | let mut new_data: u8 = 0; [INFO] [stdout] | ^ this value is reassigned later and never used [INFO] [stdout] ... [INFO] [stdout] 196 | new_data = temp; [INFO] [stdout] | --------------- `new_data` is overwritten here before the previous value is read [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `val` [INFO] [stdout] --> src/cpu.rs:212:13 [INFO] [stdout] | [INFO] [stdout] 212 | let val = self.dt_reg.data; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `register` [INFO] [stdout] --> src/cpu.rs:213:13 [INFO] [stdout] | [INFO] [stdout] 213 | let register = self.set_register_data(reg_id, self.dt_reg.data); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_register` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hundreds` [INFO] [stdout] --> src/cpu.rs:244:13 [INFO] [stdout] | [INFO] [stdout] 244 | let hundreds = (val / 100) % 10; [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hundreds` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tens` [INFO] [stdout] --> src/cpu.rs:245:13 [INFO] [stdout] | [INFO] [stdout] 245 | let tens = (val / 10) % 10; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_tens` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `units` [INFO] [stdout] --> src/cpu.rs:246:13 [INFO] [stdout] | [INFO] [stdout] 246 | let units = val % 10; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_units` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/display.rs:222:9 [INFO] [stdout] | [INFO] [stdout] 222 | self.window.update_with_buffer(&self.buffer, BUFFER_WIDTH as usize, BUFFER_HEIGHT as usize); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 222 | let _ = self.window.update_with_buffer(&self.buffer, BUFFER_WIDTH as usize, BUFFER_HEIGHT as usize); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `regI` should have a snake case name [INFO] [stdout] --> src/display.rs:245:63 [INFO] [stdout] | [INFO] [stdout] 245 | pub fn draw_sprite(&mut self, memory: &Memory, cpu: &CPU, regI: &mut RegisterI, x: u8, y: u8, n_bytes: u8) { [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `reg_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `vf` is assigned to, but never used [INFO] [stdout] --> src/cpu.rs:397:13 [INFO] [stdout] | [INFO] [stdout] 397 | let mut vf = self.VF; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_vf` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `vx` is never read [INFO] [stdout] --> src/cpu.rs:404:9 [INFO] [stdout] | [INFO] [stdout] 404 | vx = val; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `vf` is never read [INFO] [stdout] --> src/cpu.rs:400:13 [INFO] [stdout] | [INFO] [stdout] 400 | vf.data = 1; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/display.rs:55:37 [INFO] [stdout] | [INFO] [stdout] 55 | fn convert_bool_to_color(&self, mut vec: &Vec) -> Vec { [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/display.rs:91:13 [INFO] [stdout] | [INFO] [stdout] 91 | let mut buffer: Vec = vec![0; BUFFER_SIZE]; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `true_val` [INFO] [stdout] --> src/display.rs:140:13 [INFO] [stdout] | [INFO] [stdout] 140 | let true_val = sprite_val; [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_true_val` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `pot_colide` is never read [INFO] [stdout] --> src/display.rs:147:34 [INFO] [stdout] | [INFO] [stdout] 147 | let mut pot_colide = false; [INFO] [stdout] | ^^^^^ this value is reassigned later and never used [INFO] [stdout] ... [INFO] [stdout] 155 | pot_colide = self.draw_pixel(x + i, y); [INFO] [stdout] | -------------------------------------- `pot_colide` is overwritten here before the previous value is read [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> src/display.rs:206:17 [INFO] [stdout] | [INFO] [stdout] 206 | let x = BUFFER_WIDTH - x; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y` [INFO] [stdout] --> src/display.rs:209:17 [INFO] [stdout] | [INFO] [stdout] 209 | let y = BUFFER_WIDTH - y; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `old` [INFO] [stdout] --> src/display.rs:228:13 [INFO] [stdout] | [INFO] [stdout] 228 | let old = self.buffer[loc as usize]; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_old` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/display.rs:260:13 [INFO] [stdout] | [INFO] [stdout] 260 | let mut buffer = self.buffer.clone(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buffer` [INFO] [stdout] --> src/display.rs:260:13 [INFO] [stdout] | [INFO] [stdout] 260 | let mut buffer = self.buffer.clone(); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/file_handler.rs:21:13 [INFO] [stdout] | [INFO] [stdout] 21 | let mut path_buf = PathBuf::from(existent_path.clone()); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/file_handler.rs:51:14 [INFO] [stdout] | [INFO] [stdout] 51 | for (mut addr, instruction) in [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Disassembler` is never constructed [INFO] [stdout] --> src/disassembler.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Disassembler { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `read_instructions` and `output_to_file` are never used [INFO] [stdout] --> src/disassembler.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl Disassembler { [INFO] [stdout] | ----------------- associated functions in this implementation [INFO] [stdout] 7 | [INFO] [stdout] 8 | pub fn read_instructions(rom: Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 15 | pub fn output_to_file(binary_contents: Vec) -> std::io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_intructions_from_file`, `match_instruction_8`, and `get_nibble` are never used [INFO] [stdout] --> src/chip8.rs:67:8 [INFO] [stdout] | [INFO] [stdout] 58 | impl Chip8 { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 67 | fn get_intructions_from_file(&self, rom: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 122 | fn match_instruction_8(&self, instruction: u8) -> Option<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 215 | pub fn get_nibble(&self, instruction: &u16, position: u8) -> u16 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `sp`, `VF`, `dt_reg`, and `st_reg` are never read [INFO] [stdout] --> src/cpu.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct CPU { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 16 | sp: u8, [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 19 | VF: Register, [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 25 | dt_reg: Register, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | st_reg: Register, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/cpu.rs:52:12 [INFO] [stdout] | [INFO] [stdout] 31 | impl CPU { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 52 | pub fn set_vf_value(&mut self, active: bool) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn get_vf_value(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | fn jump_to_address(&mut self, address: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | fn jump_offset_by_v0(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | fn skip_instruction_if_equal(&mut self, reg_id: u8, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 109 | fn skip_instruction_if_nequal(&mut self, reg_id: u8, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 116 | fn set_value_of_pc(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | fn get_pc_address(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 124 | fn value_equals_register_value(&mut self, compared_val: u8, reg_id: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 133 | pub fn compare_registers_values(&mut self, reg_id_1: u8, reg_id_2: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 143 | fn value_not_equals_register_value(&mut self, compared_val: u8, reg_id: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 151 | fn byte_skip_instruction(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 162 | fn add_byte_operation(&mut self, reg_id: u8, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 169 | fn and_number_to_random_value(&mut self, reg_id: u8, and_val: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 178 | fn store_from_register_x_into_y(&mut self, reg_x_id: u8, reg_y_id: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 211 | fn set_delay_timer_value_at_vx(&mut self, reg_id: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 216 | fn set_delay_timer_value(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 221 | fn set_sound_timer_value(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 225 | fn call_address(&self) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 228 | fn increment_vx_to_i(&mut self, reg_id: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 242 | fn store_bcd_of_vx(&mut self, reg_id: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 256 | fn jump_to_machine_code(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 339 | pub fn set_program_counter_to_value(&mut self, value: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 343 | pub fn reset_pc(&mut self) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 347 | pub fn increment_sp(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 351 | pub fn decrement_sp(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 355 | pub fn get_sp(&mut self) -> u8 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 359 | pub fn get_pc(&mut self) -> u8 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 368 | pub fn or_values(self, x: u8, y: u8) -> u8 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 372 | pub fn and_values(self, x: u8, y: u8) -> u8 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 376 | pub fn xor_values(self, x: u8, y: u8) -> u8 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 382 | pub fn add_values(&mut self, x: u8, y: u8) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 394 | pub fn sub_values(&mut self, x: u8, y: u8) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 412 | pub fn store_vx_in_delay_timer(&mut self, reg_id: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 439 | pub fn store_vx_in_sound_timer(&mut self, reg_id: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 473 | pub fn return_from_subroutine(&mut self, memory: Memory) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 493 | fn nand(&self, x: u8, y: u8) -> u8 { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `keys` is never read [INFO] [stdout] --> src/display.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 31 | pub struct Display { [INFO] [stdout] | ------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 34 | keys: Vec, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `convert_bool_to_color`, `draw_h_line`, `draw_v_line`, `draw_square`, and `get_keys_pressed` are never used [INFO] [stdout] --> src/display.rs:55:8 [INFO] [stdout] | [INFO] [stdout] 44 | impl Display { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 55 | fn convert_bool_to_color(&self, mut vec: &Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 168 | pub fn draw_h_line(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 177 | pub fn draw_v_line(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 186 | pub fn draw_square(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 198 | pub fn get_keys_pressed(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `stack` is never read [INFO] [stdout] --> src/memory.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Memory { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 4 | data: [u8; 4096], [INFO] [stdout] 5 | pub stack: [u8; 16], [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `log_contents` and `size` are never used [INFO] [stdout] --> src/memory.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 11 | impl Memory { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 20 | pub fn log_contents(&self) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub fn size(&self) -> usize { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DelayTimerRegister` is never constructed [INFO] [stdout] --> src/register.rs:30:8 [INFO] [stdout] | [INFO] [stdout] 30 | struct DelayTimerRegister { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SoundTimerRegister` is never constructed [INFO] [stdout] --> src/register.rs:34:8 [INFO] [stdout] | [INFO] [stdout] 34 | struct SoundTimerRegister { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_bytes_in_16_binary` is never used [INFO] [stdout] --> src/util.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn print_bytes_in_16_binary(bytes: &Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mirror_bits` is never used [INFO] [stdout] --> src/util.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn mirror_bits(mut val: u8) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_bytes_in_binary` is never used [INFO] [stdout] --> src/util.rs:13:8 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn print_bytes_in_binary(bytes: &Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_bytes_in_hex` is never used [INFO] [stdout] --> src/util.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn print_bytes_in_hex(rom: &Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_bytes_in_deciaml` is never used [INFO] [stdout] --> src/util.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn print_bytes_in_deciaml(bytes: &Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `convert_bytes_u8_to_u16` is never used [INFO] [stdout] --> src/util.rs:34:8 [INFO] [stdout] | [INFO] [stdout] 34 | pub fn convert_bytes_u8_to_u16(bytes: &[u8]) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `join_2_nibbles_into_u8` is never used [INFO] [stdout] --> src/util.rs:43:8 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn join_2_nibbles_into_u8(nibble_1: u8, nibble_2: u8) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `join_3_nibbles_into_u8` is never used [INFO] [stdout] --> src/util.rs:47:8 [INFO] [stdout] | [INFO] [stdout] 47 | pub fn join_3_nibbles_into_u8(nibble_1: u8, nibble_2: u8, nibble_3: u8) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_u32_vec_from_bool` is never used [INFO] [stdout] --> src/util.rs:51:8 [INFO] [stdout] | [INFO] [stdout] 51 | pub fn create_u32_vec_from_bool(bool_vec: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `from_u8_to_bin_color` is never used [INFO] [stdout] --> src/util.rs:68:8 [INFO] [stdout] | [INFO] [stdout] 68 | pub fn from_u8_to_bin_color(val: u8) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `VF` should have a snake case name [INFO] [stdout] --> src/cpu.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | VF: Register, [INFO] [stdout] | ^^ help: convert the identifier to snake case (notice the capitalization): `vf` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `regI` should have a snake case name [INFO] [stdout] --> src/cpu.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | regI: RegisterI, [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `reg_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu.rs:311:32 [INFO] [stdout] | [INFO] [stdout] 311 | if reg_id > len || 0 > reg_id { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu.rs:328:45 [INFO] [stdout] | [INFO] [stdout] 328 | if reg_id > self.registers.len() || 0 > reg_id { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu.rs:386:12 [INFO] [stdout] | [INFO] [stdout] 386 | if (vx_data + vy_data) > 255 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_regI_copy` should have a snake case name [INFO] [stdout] --> src/cpu.rs:469:12 [INFO] [stdout] | [INFO] [stdout] 469 | pub fn get_regI_copy(&self) -> RegisterI { [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `get_reg_i_copy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/display.rs:205:12 [INFO] [stdout] | [INFO] [stdout] 205 | if x < 0 || x > BUFFER_WIDTH as u8{ [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/display.rs:208:12 [INFO] [stdout] | [INFO] [stdout] 208 | if y < 0 || x > BUFFER_WIDTH as u8{ [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/display.rs:222:9 [INFO] [stdout] | [INFO] [stdout] 222 | self.window.update_with_buffer(&self.buffer, BUFFER_WIDTH as usize, BUFFER_HEIGHT as usize); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 222 | let _ = self.window.update_with_buffer(&self.buffer, BUFFER_WIDTH as usize, BUFFER_HEIGHT as usize); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `regI` should have a snake case name [INFO] [stdout] --> src/display.rs:245:63 [INFO] [stdout] | [INFO] [stdout] 245 | pub fn draw_sprite(&mut self, memory: &Memory, cpu: &CPU, regI: &mut RegisterI, x: u8, y: u8, n_bytes: u8) { [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `reg_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] warning: unused dependency `pixels` [INFO] [stderr] --> Cargo.toml:5:1 [INFO] [stderr] | [INFO] [stderr] 5 | pixels = "0.17.2" [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `cargo::unused_dependencies` is set to `warn` by default [INFO] [stderr] help: consider removing the dependency on `pixels` [INFO] [stderr] warning: `Chip8` (manifest) generated 1 warning [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 57.08s [INFO] running `Command { std: "docker" "inspect" "58c4bee5331835656082aabc78d9441141db9fdfc3722fdb9305a81e2bf66331", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "58c4bee5331835656082aabc78d9441141db9fdfc3722fdb9305a81e2bf66331", kill_on_drop: false }` [INFO] [stdout] 58c4bee5331835656082aabc78d9441141db9fdfc3722fdb9305a81e2bf66331