[INFO] cloning repository https://github.com/iqo/rust-chip8 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/iqo/rust-chip8" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fiqo%2Frust-chip8", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fiqo%2Frust-chip8'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 0a1151ba1bcd73f3a7ac4632dce2e4f8aba54388 [INFO] checking iqo/rust-chip8 against master#af4a5a13a15fa0c60e06321077ef452f769b42fd for pr-122960-3 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fiqo%2Frust-chip8" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/iqo/rust-chip8 on toolchain af4a5a13a15fa0c60e06321077ef452f769b42fd [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+af4a5a13a15fa0c60e06321077ef452f769b42fd" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/iqo/rust-chip8 [INFO] finished tweaking git repo https://github.com/iqo/rust-chip8 [INFO] tweaked toml for git repo https://github.com/iqo/rust-chip8 written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/iqo/rust-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" "+af4a5a13a15fa0c60e06321077ef452f769b42fd" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+af4a5a13a15fa0c60e06321077ef452f769b42fd" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 4423d17b40ad85ce0e37cdf53ce51a8680005f5c998f109c602ec33efe2d102f [INFO] running `Command { std: "docker" "start" "-a" "4423d17b40ad85ce0e37cdf53ce51a8680005f5c998f109c602ec33efe2d102f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "4423d17b40ad85ce0e37cdf53ce51a8680005f5c998f109c602ec33efe2d102f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4423d17b40ad85ce0e37cdf53ce51a8680005f5c998f109c602ec33efe2d102f", kill_on_drop: false }` [INFO] [stdout] 4423d17b40ad85ce0e37cdf53ce51a8680005f5c998f109c602ec33efe2d102f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-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" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+af4a5a13a15fa0c60e06321077ef452f769b42fd" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 1ceae6625ffc777a2ab69871dbe7944cfa898296adfcedd688707d9fe6bc4da1 [INFO] running `Command { std: "docker" "start" "-a" "1ceae6625ffc777a2ab69871dbe7944cfa898296adfcedd688707d9fe6bc4da1", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.139 [INFO] [stderr] Checking getrandom v0.2.8 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking rust-chip8 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: the item `rand` is imported redundantly [INFO] [stdout] --> src/cpu.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | use rand::{self, Rng}; [INFO] [stdout] | ^^^^ the item `rand` is already defined by prelude [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `CHIP8_PIXEL_WIDTH` [INFO] [stdout] --> src/cpu.rs:5:55 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::{ram::Ram, vram::Vram, CHIP8_PIXEL_HEIGHT, CHIP8_PIXEL_WIDTH}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `rand` is imported redundantly [INFO] [stdout] --> src/cpu.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | use rand::{self, Rng}; [INFO] [stdout] | ^^^^ the item `rand` is already defined by prelude [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/cpu.rs:395:9 [INFO] [stdout] | [INFO] [stdout] 394 | todo!(); [INFO] [stdout] | ------- any code following this expression is unreachable [INFO] [stdout] 395 | self.write_reg(0x0f, 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `opcode` [INFO] [stdout] --> src/cpu.rs:75:13 [INFO] [stdout] | [INFO] [stdout] 75 | let opcode = self.get_opcode(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_opcode` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y` [INFO] [stdout] --> src/cpu.rs:397:17 [INFO] [stdout] | [INFO] [stdout] 397 | let y = (self.read_reg(y) as usize + byte) % CHIP8_PIXEL_HEIGHT; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> src/cpu.rs:393:32 [INFO] [stdout] | [INFO] [stdout] 393 | fn op_code_dxyn(&mut self, x: usize, y: usize, n: usize) -> ProgramCounter { [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/cpu.rs:393:42 [INFO] [stdout] | [INFO] [stdout] 393 | fn op_code_dxyn(&mut self, x: usize, y: usize, n: usize) -> ProgramCounter { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> src/cpu.rs:393:52 [INFO] [stdout] | [INFO] [stdout] 393 | fn op_code_dxyn(&mut self, x: usize, y: usize, n: usize) -> ProgramCounter { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/vram.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | let mut vram = Self { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CHIP8_PIXEL_WIDTH` is never used [INFO] [stdout] --> src/main.rs:5:7 [INFO] [stdout] | [INFO] [stdout] 5 | const CHIP8_PIXEL_WIDTH: usize = 64; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CHIP8_PIXEL_HEIGHT` is never used [INFO] [stdout] --> src/main.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | const CHIP8_PIXEL_HEIGHT: usize = 32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Ram` is never constructed [INFO] [stdout] --> src/ram.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct Ram { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Ram` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `read_byte`, and `write_byte` are never used [INFO] [stdout] --> src/ram.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl Ram { [INFO] [stdout] | -------- associated items in this implementation [INFO] [stdout] 7 | pub fn new() -> Ram { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | pub fn read_byte(&self, adress: u16) -> u8 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 49 | pub fn write_byte(&mut self, address: u16, value: u8) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OPCODE_SIZE` is never used [INFO] [stdout] --> src/cpu.rs:7:7 [INFO] [stdout] | [INFO] [stdout] 7 | const OPCODE_SIZE: u16 = 2; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PROGRAM_START` is never used [INFO] [stdout] --> src/cpu.rs:8:11 [INFO] [stdout] | [INFO] [stdout] 8 | pub const PROGRAM_START: u16 = 0x200; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ProgramCounter` is never used [INFO] [stdout] --> src/cpu.rs:10:6 [INFO] [stdout] | [INFO] [stdout] 10 | enum ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `skip_if` is never used [INFO] [stdout] --> src/cpu.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 16 | impl ProgramCounter { [INFO] [stdout] | ------------------- associated function in this implementation [INFO] [stdout] 17 | fn skip_if(skip_condition: bool) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Cpu` is never constructed [INFO] [stdout] --> src/cpu.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 27 | pub struct Cpu { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/cpu.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 40 | impl Cpu { [INFO] [stdout] | -------- associated items in this implementation [INFO] [stdout] 41 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 56 | pub fn get_opcode(&mut self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | pub fn load(&mut self, rom: &[u8]) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn tick(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 78 | pub fn read_reg(&mut self, index: usize) -> u8 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 82 | pub fn write_reg(&mut self, index: usize, value: u8) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 86 | fn run_opcode(&mut self, opcode: u16) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 147 | fn op_code_00E0(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 157 | fn op_code_00EE(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | fn op_code_1nnn(&mut self, nnn: u16) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 174 | fn op_code_2nnn(&mut self, nnn: u16) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 183 | fn op_code_3xkk(&mut self, x: usize, kk: u8) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 191 | fn op_code_4xkk(&mut self, x: usize, kk: u8) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 200 | fn op_code_5xy0(&mut self, x: usize, y: usize) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 208 | fn op_code_6xkk(&mut self, x: usize, kk: u8) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 216 | fn op_code_7xkk(&mut self, x: usize, kk: u8) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 227 | fn op_code_8xy0(&mut self, x: usize, y: usize) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 239 | fn op_code_8xy1(&mut self, x: usize, y: usize) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 252 | fn op_code_8xy2(&mut self, x: usize, y: usize) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 265 | fn op_code_8xy3(&mut self, x: usize, y: usize) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 277 | fn op_code_8xy4(&mut self, x: usize, y: usize) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 294 | fn op_code_8xy5(&mut self, x: usize, y: usize) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 311 | fn op_code_8xy6(&mut self, x: usize) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 322 | fn op_code_8xy7(&mut self, x: usize, y: usize) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 339 | fn op_code_8xye(&mut self, x: usize) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 350 | fn op_code_9xy0(&mut self, x: usize, y: usize) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 360 | fn op_code_annn(&mut self, nnn: u16) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 369 | fn op_code_bnnn(&mut self, nnn: u16) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 379 | fn op_code_cxkk(&mut self, x: usize, kk: u8) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 393 | fn op_code_dxyn(&mut self, x: usize, y: usize, n: usize) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 406 | fn op_code_ex9e(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 414 | fn op_code_exa1(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 422 | fn op_code_fx07(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 430 | fn op_code_fx0a(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 438 | fn op_code_fx15(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 446 | fn op_code_fx18(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 454 | fn op_code_fx1e(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 463 | fn op_code_fx29(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 472 | fn op_code_fx33(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 480 | fn op_code_fx55(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 488 | fn op_code_fx65(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Vram` is never constructed [INFO] [stdout] --> src/vram.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Vram { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/vram.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 8 | impl Vram { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 9 | pub fn new () -> Vram { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | pub fn clear_vram(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn write_vram(&mut self, mem: [[u8; CHIP8_PIXEL_WIDTH]; CHIP8_PIXEL_HEIGHT]) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | pub fn write_vram_adress (&mut self,x: usize, y: usize, mem: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | pub fn read_vram(&mut self, x: usize, y:usize) -> u8{ [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn read_vram_flag (&mut self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | pub fn write_vram_flag (&mut self ,vram_flag: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `op_code_00E0` should have a snake case name [INFO] [stdout] --> src/cpu.rs:147:8 [INFO] [stdout] | [INFO] [stdout] 147 | fn op_code_00E0(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `op_code_00_e0` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `op_code_00EE` should have a snake case name [INFO] [stdout] --> src/cpu.rs:157:8 [INFO] [stdout] | [INFO] [stdout] 157 | fn op_code_00EE(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `op_code_00_ee` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 23 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/cpu.rs:395:9 [INFO] [stdout] | [INFO] [stdout] 394 | todo!(); [INFO] [stdout] | ------- any code following this expression is unreachable [INFO] [stdout] 395 | self.write_reg(0x0f, 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/./ram_test.rs:4:9 [INFO] [stdout] | [INFO] [stdout] 4 | let mut ram = Ram::new(); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `opcode` [INFO] [stdout] --> src/cpu.rs:75:13 [INFO] [stdout] | [INFO] [stdout] 75 | let opcode = self.get_opcode(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_opcode` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y` [INFO] [stdout] --> src/cpu.rs:397:17 [INFO] [stdout] | [INFO] [stdout] 397 | let y = (self.read_reg(y) as usize + byte) % CHIP8_PIXEL_HEIGHT; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> src/cpu.rs:393:32 [INFO] [stdout] | [INFO] [stdout] 393 | fn op_code_dxyn(&mut self, x: usize, y: usize, n: usize) -> ProgramCounter { [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/cpu.rs:393:42 [INFO] [stdout] | [INFO] [stdout] 393 | fn op_code_dxyn(&mut self, x: usize, y: usize, n: usize) -> ProgramCounter { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> src/cpu.rs:393:52 [INFO] [stdout] | [INFO] [stdout] 393 | fn op_code_dxyn(&mut self, x: usize, y: usize, n: usize) -> ProgramCounter { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y` [INFO] [stdout] --> src/./cpu_test.rs:270:9 [INFO] [stdout] | [INFO] [stdout] 270 | let y = CHIP8_PIXEL_HEIGHT - 1; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/vram.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | let mut vram = Self { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `build_ram` is never used [INFO] [stdout] --> src/./ram_test.rs:3:4 [INFO] [stdout] | [INFO] [stdout] 3 | fn build_ram() -> Ram { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_opcode` and `tick` are never used [INFO] [stdout] --> src/cpu.rs:56:12 [INFO] [stdout] | [INFO] [stdout] 40 | impl Cpu { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 56 | pub fn get_opcode(&mut self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn tick(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `op_code_00E0` should have a snake case name [INFO] [stdout] --> src/cpu.rs:147:8 [INFO] [stdout] | [INFO] [stdout] 147 | fn op_code_00E0(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `op_code_00_e0` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `op_code_00EE` should have a snake case name [INFO] [stdout] --> src/cpu.rs:157:8 [INFO] [stdout] | [INFO] [stdout] 157 | fn op_code_00EE(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `op_code_00_ee` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 14 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.41s [INFO] running `Command { std: "docker" "inspect" "1ceae6625ffc777a2ab69871dbe7944cfa898296adfcedd688707d9fe6bc4da1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1ceae6625ffc777a2ab69871dbe7944cfa898296adfcedd688707d9fe6bc4da1", kill_on_drop: false }` [INFO] [stdout] 1ceae6625ffc777a2ab69871dbe7944cfa898296adfcedd688707d9fe6bc4da1 [INFO] checking iqo/rust-chip8 against try#36dbcaee1a55543dfc181be52a69d99ff46ff62f for pr-122960-3 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fiqo%2Frust-chip8" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/iqo/rust-chip8 on toolchain 36dbcaee1a55543dfc181be52a69d99ff46ff62f [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+36dbcaee1a55543dfc181be52a69d99ff46ff62f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/iqo/rust-chip8 [INFO] finished tweaking git repo https://github.com/iqo/rust-chip8 [INFO] tweaked toml for git repo https://github.com/iqo/rust-chip8 written to /workspace/builds/worker-4-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/iqo/rust-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" "+36dbcaee1a55543dfc181be52a69d99ff46ff62f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+36dbcaee1a55543dfc181be52a69d99ff46ff62f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 4ba9182f211af94880bddc67aab22ccea34ae0a33da39f90e37dde8639d99312 [INFO] running `Command { std: "docker" "start" "-a" "4ba9182f211af94880bddc67aab22ccea34ae0a33da39f90e37dde8639d99312", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "4ba9182f211af94880bddc67aab22ccea34ae0a33da39f90e37dde8639d99312", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4ba9182f211af94880bddc67aab22ccea34ae0a33da39f90e37dde8639d99312", kill_on_drop: false }` [INFO] [stdout] 4ba9182f211af94880bddc67aab22ccea34ae0a33da39f90e37dde8639d99312 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-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" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+36dbcaee1a55543dfc181be52a69d99ff46ff62f" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 9430026ddbac8b52dcc0ee17f27afca8b179ee4484bf44b6d88a2a1fa6e79609 [INFO] running `Command { std: "docker" "start" "-a" "9430026ddbac8b52dcc0ee17f27afca8b179ee4484bf44b6d88a2a1fa6e79609", kill_on_drop: false }` [INFO] [stderr] Copying to /tmp/fixit [INFO] [stderr] Running `cargo fix --edition` [INFO] [stderr] Compiling libc v0.2.139 [INFO] [stderr] Checking getrandom v0.2.8 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking rust-chip8 v0.1.0 (/tmp/fixit) [INFO] [stderr] Migrating src/main.rs from 2021 edition to 2024 [INFO] [stderr] Fixed src/./ram_test.rs (1 fix) [INFO] [stderr] Fixed src/vram.rs (1 fix) [INFO] [stdout] warning: the item `rand` is imported redundantly [INFO] [stdout] --> src/cpu.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | use rand::{self, Rng}; [INFO] [stdout] | ^^^^ the item `rand` is already defined by prelude [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/cpu.rs:395:9 [INFO] [stdout] | [INFO] [stdout] 394 | todo!(); [INFO] [stdout] | ------- any code following this expression is unreachable [INFO] [stdout] 395 | self.write_reg(0x0f, 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `opcode` [INFO] [stdout] --> src/cpu.rs:75:13 [INFO] [stdout] | [INFO] [stdout] 75 | let opcode = self.get_opcode(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_opcode` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y` [INFO] [stdout] --> src/cpu.rs:397:17 [INFO] [stdout] | [INFO] [stdout] 397 | let y = (self.read_reg(y) as usize + byte) % CHIP8_PIXEL_HEIGHT; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> src/cpu.rs:393:32 [INFO] [stdout] | [INFO] [stdout] 393 | fn op_code_dxyn(&mut self, x: usize, y: usize, n: usize) -> ProgramCounter { [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/cpu.rs:393:42 [INFO] [stdout] | [INFO] [stdout] 393 | fn op_code_dxyn(&mut self, x: usize, y: usize, n: usize) -> ProgramCounter { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> src/cpu.rs:393:52 [INFO] [stdout] | [INFO] [stdout] 393 | fn op_code_dxyn(&mut self, x: usize, y: usize, n: usize) -> ProgramCounter { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y` [INFO] [stdout] --> src/./cpu_test.rs:270:9 [INFO] [stdout] | [INFO] [stdout] 270 | let y = CHIP8_PIXEL_HEIGHT - 1; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `build_ram` is never used [INFO] [stdout] --> src/./ram_test.rs:3:4 [INFO] [stdout] | [INFO] [stdout] 3 | fn build_ram() -> Ram { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_opcode` and `tick` are never used [INFO] [stdout] --> src/cpu.rs:56:12 [INFO] [stdout] | [INFO] [stdout] 40 | impl Cpu { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 56 | pub fn get_opcode(&mut self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn tick(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `op_code_00E0` should have a snake case name [INFO] [stdout] --> src/cpu.rs:147:8 [INFO] [stdout] | [INFO] [stdout] 147 | fn op_code_00E0(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `op_code_00_e0` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `op_code_00EE` should have a snake case name [INFO] [stdout] --> src/cpu.rs:157:8 [INFO] [stdout] | [INFO] [stdout] 157 | fn op_code_00EE(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `op_code_00_ee` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 12 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Fixed src/cpu.rs (1 fix) [INFO] [stdout] warning: the item `rand` is imported redundantly [INFO] [stdout] --> src/cpu.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | use rand::{self, Rng}; [INFO] [stdout] | ^^^^ the item `rand` is already defined by prelude [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/cpu.rs:395:9 [INFO] [stdout] | [INFO] [stdout] 394 | todo!(); [INFO] [stdout] | ------- any code following this expression is unreachable [INFO] [stdout] 395 | self.write_reg(0x0f, 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `opcode` [INFO] [stdout] --> src/cpu.rs:75:13 [INFO] [stdout] | [INFO] [stdout] 75 | let opcode = self.get_opcode(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_opcode` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y` [INFO] [stdout] --> src/cpu.rs:397:17 [INFO] [stdout] | [INFO] [stdout] 397 | let y = (self.read_reg(y) as usize + byte) % CHIP8_PIXEL_HEIGHT; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> src/cpu.rs:393:32 [INFO] [stdout] | [INFO] [stdout] 393 | fn op_code_dxyn(&mut self, x: usize, y: usize, n: usize) -> ProgramCounter { [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/cpu.rs:393:42 [INFO] [stdout] | [INFO] [stdout] 393 | fn op_code_dxyn(&mut self, x: usize, y: usize, n: usize) -> ProgramCounter { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> src/cpu.rs:393:52 [INFO] [stdout] | [INFO] [stdout] 393 | fn op_code_dxyn(&mut self, x: usize, y: usize, n: usize) -> ProgramCounter { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CHIP8_PIXEL_WIDTH` is never used [INFO] [stdout] --> src/main.rs:5:7 [INFO] [stdout] | [INFO] [stdout] 5 | const CHIP8_PIXEL_WIDTH: usize = 64; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CHIP8_PIXEL_HEIGHT` is never used [INFO] [stdout] --> src/main.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | const CHIP8_PIXEL_HEIGHT: usize = 32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Ram` is never constructed [INFO] [stdout] --> src/ram.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct Ram { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Ram` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `read_byte`, and `write_byte` are never used [INFO] [stdout] --> src/ram.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl Ram { [INFO] [stdout] | -------- associated items in this implementation [INFO] [stdout] 7 | pub fn new() -> Ram { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | pub fn read_byte(&self, adress: u16) -> u8 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 49 | pub fn write_byte(&mut self, address: u16, value: u8) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OPCODE_SIZE` is never used [INFO] [stdout] --> src/cpu.rs:7:7 [INFO] [stdout] | [INFO] [stdout] 7 | const OPCODE_SIZE: u16 = 2; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PROGRAM_START` is never used [INFO] [stdout] --> src/cpu.rs:8:11 [INFO] [stdout] | [INFO] [stdout] 8 | pub const PROGRAM_START: u16 = 0x200; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ProgramCounter` is never used [INFO] [stdout] --> src/cpu.rs:10:6 [INFO] [stdout] | [INFO] [stdout] 10 | enum ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `skip_if` is never used [INFO] [stdout] --> src/cpu.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 16 | impl ProgramCounter { [INFO] [stdout] | ------------------- associated function in this implementation [INFO] [stdout] 17 | fn skip_if(skip_condition: bool) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Cpu` is never constructed [INFO] [stdout] --> src/cpu.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 27 | pub struct Cpu { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/cpu.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 40 | impl Cpu { [INFO] [stdout] | -------- associated items in this implementation [INFO] [stdout] 41 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 56 | pub fn get_opcode(&mut self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | pub fn load(&mut self, rom: &[u8]) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn tick(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 78 | pub fn read_reg(&mut self, index: usize) -> u8 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 82 | pub fn write_reg(&mut self, index: usize, value: u8) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 86 | fn run_opcode(&mut self, opcode: u16) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 147 | fn op_code_00E0(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 157 | fn op_code_00EE(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | fn op_code_1nnn(&mut self, nnn: u16) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 174 | fn op_code_2nnn(&mut self, nnn: u16) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 183 | fn op_code_3xkk(&mut self, x: usize, kk: u8) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 191 | fn op_code_4xkk(&mut self, x: usize, kk: u8) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 200 | fn op_code_5xy0(&mut self, x: usize, y: usize) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 208 | fn op_code_6xkk(&mut self, x: usize, kk: u8) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 216 | fn op_code_7xkk(&mut self, x: usize, kk: u8) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 227 | fn op_code_8xy0(&mut self, x: usize, y: usize) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 239 | fn op_code_8xy1(&mut self, x: usize, y: usize) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 252 | fn op_code_8xy2(&mut self, x: usize, y: usize) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 265 | fn op_code_8xy3(&mut self, x: usize, y: usize) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 277 | fn op_code_8xy4(&mut self, x: usize, y: usize) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 294 | fn op_code_8xy5(&mut self, x: usize, y: usize) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 311 | fn op_code_8xy6(&mut self, x: usize) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 322 | fn op_code_8xy7(&mut self, x: usize, y: usize) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 339 | fn op_code_8xye(&mut self, x: usize) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 350 | fn op_code_9xy0(&mut self, x: usize, y: usize) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 360 | fn op_code_annn(&mut self, nnn: u16) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 369 | fn op_code_bnnn(&mut self, nnn: u16) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 379 | fn op_code_cxkk(&mut self, x: usize, kk: u8) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 393 | fn op_code_dxyn(&mut self, x: usize, y: usize, n: usize) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 406 | fn op_code_ex9e(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 414 | fn op_code_exa1(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 422 | fn op_code_fx07(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 430 | fn op_code_fx0a(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 438 | fn op_code_fx15(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 446 | fn op_code_fx18(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 454 | fn op_code_fx1e(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 463 | fn op_code_fx29(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 472 | fn op_code_fx33(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 480 | fn op_code_fx55(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 488 | fn op_code_fx65(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Vram` is never constructed [INFO] [stdout] --> src/vram.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Vram { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.64s [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/vram.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 8 | impl Vram { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 9 | pub fn new () -> Vram { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | pub fn clear_vram(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn write_vram(&mut self, mem: [[u8; CHIP8_PIXEL_WIDTH]; CHIP8_PIXEL_HEIGHT]) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | pub fn write_vram_adress (&mut self,x: usize, y: usize, mem: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | pub fn read_vram(&mut self, x: usize, y:usize) -> u8{ [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn read_vram_flag (&mut self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | pub fn write_vram_flag (&mut self ,vram_flag: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `op_code_00E0` should have a snake case name [INFO] [stdout] --> src/cpu.rs:147:8 [INFO] [stdout] | [INFO] [stdout] 147 | fn op_code_00E0(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `op_code_00_e0` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `op_code_00EE` should have a snake case name [INFO] [stdout] --> src/cpu.rs:157:8 [INFO] [stdout] | [INFO] [stdout] 157 | fn op_code_00EE(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `op_code_00_ee` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 21 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Running `cargo check` to verify 2024 [INFO] [stderr] Checking rust-chip8 v0.1.0 (/tmp/fixit) [INFO] [stdout] warning: the item `rand` is imported redundantly [INFO] [stdout] --> src/cpu.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | use rand::{self, Rng}; [INFO] [stdout] | ^^^^ the item `rand` is already defined by prelude [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `CHIP8_PIXEL_WIDTH` in this scope [INFO] [stdout] --> src/./cpu_test.rs:49:28 [INFO] [stdout] | [INFO] [stdout] 49 | .write_vram([[128; CHIP8_PIXEL_WIDTH]; CHIP8_PIXEL_HEIGHT]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/main.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | const CHIP8_PIXEL_HEIGHT: usize = 32; [INFO] [stdout] | ------------------------------------- similarly named constant `CHIP8_PIXEL_HEIGHT` defined here [INFO] [stdout] | [INFO] [stdout] help: a constant with a similar name exists [INFO] [stdout] | [INFO] [stdout] 49 | .write_vram([[128; CHIP8_PIXEL_HEIGHT]; CHIP8_PIXEL_HEIGHT]); [INFO] [stdout] | ~~~~~~~~~~~~~~~~~~ [INFO] [stdout] help: consider importing this constant [INFO] [stdout] | [INFO] [stdout] 1 + use crate::CHIP8_PIXEL_WIDTH; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `CHIP8_PIXEL_WIDTH` in this scope [INFO] [stdout] --> src/./cpu_test.rs:53:21 [INFO] [stdout] | [INFO] [stdout] 53 | for y in 0..CHIP8_PIXEL_WIDTH { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/main.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | const CHIP8_PIXEL_HEIGHT: usize = 32; [INFO] [stdout] | ------------------------------------- similarly named constant `CHIP8_PIXEL_HEIGHT` defined here [INFO] [stdout] | [INFO] [stdout] help: a constant with a similar name exists [INFO] [stdout] | [INFO] [stdout] 53 | for y in 0..CHIP8_PIXEL_HEIGHT { [INFO] [stdout] | ~~~~~~~~~~~~~~~~~~ [INFO] [stdout] help: consider importing this constant [INFO] [stdout] | [INFO] [stdout] 1 + use crate::CHIP8_PIXEL_WIDTH; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `CHIP8_PIXEL_WIDTH` in this scope [INFO] [stdout] --> src/./cpu_test.rs:246:13 [INFO] [stdout] | [INFO] [stdout] 246 | let x = CHIP8_PIXEL_WIDTH - 4; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/main.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | const CHIP8_PIXEL_HEIGHT: usize = 32; [INFO] [stdout] | ------------------------------------- similarly named constant `CHIP8_PIXEL_HEIGHT` defined here [INFO] [stdout] | [INFO] [stdout] help: a constant with a similar name exists [INFO] [stdout] | [INFO] [stdout] 246 | let x = CHIP8_PIXEL_HEIGHT - 4; [INFO] [stdout] | ~~~~~~~~~~~~~~~~~~ [INFO] [stdout] help: consider importing this constant [INFO] [stdout] | [INFO] [stdout] 1 + use crate::CHIP8_PIXEL_WIDTH; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `rand` is imported redundantly [INFO] [stdout] --> src/cpu.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | use rand::{self, Rng}; [INFO] [stdout] | ^^^^ the item `rand` is already defined by prelude [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/cpu.rs:395:9 [INFO] [stdout] | [INFO] [stdout] 394 | todo!(); [INFO] [stdout] | ------- any code following this expression is unreachable [INFO] [stdout] 395 | self.write_reg(0x0f, 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `opcode` [INFO] [stdout] --> src/cpu.rs:75:13 [INFO] [stdout] | [INFO] [stdout] 75 | let opcode = self.get_opcode(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_opcode` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y` [INFO] [stdout] --> src/cpu.rs:397:17 [INFO] [stdout] | [INFO] [stdout] 397 | let y = (self.read_reg(y) as usize + byte) % CHIP8_PIXEL_HEIGHT; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> src/cpu.rs:393:32 [INFO] [stdout] | [INFO] [stdout] 393 | fn op_code_dxyn(&mut self, x: usize, y: usize, n: usize) -> ProgramCounter { [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/cpu.rs:393:42 [INFO] [stdout] | [INFO] [stdout] 393 | fn op_code_dxyn(&mut self, x: usize, y: usize, n: usize) -> ProgramCounter { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> src/cpu.rs:393:52 [INFO] [stdout] | [INFO] [stdout] 393 | fn op_code_dxyn(&mut self, x: usize, y: usize, n: usize) -> ProgramCounter { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CHIP8_PIXEL_WIDTH` is never used [INFO] [stdout] --> src/main.rs:5:7 [INFO] [stdout] | [INFO] [stdout] 5 | const CHIP8_PIXEL_WIDTH: usize = 64; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CHIP8_PIXEL_HEIGHT` is never used [INFO] [stdout] --> src/main.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | const CHIP8_PIXEL_HEIGHT: usize = 32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Ram` is never constructed [INFO] [stdout] --> src/ram.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct Ram { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Ram` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `read_byte`, and `write_byte` are never used [INFO] [stdout] --> src/ram.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl Ram { [INFO] [stdout] | -------- associated items in this implementation [INFO] [stdout] 7 | pub fn new() -> Ram { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | pub fn read_byte(&self, adress: u16) -> u8 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 49 | pub fn write_byte(&mut self, address: u16, value: u8) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OPCODE_SIZE` is never used [INFO] [stdout] --> src/cpu.rs:7:7 [INFO] [stdout] | [INFO] [stdout] 7 | const OPCODE_SIZE: u16 = 2; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PROGRAM_START` is never used [INFO] [stdout] --> src/cpu.rs:8:11 [INFO] [stdout] | [INFO] [stdout] 8 | pub const PROGRAM_START: u16 = 0x200; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ProgramCounter` is never used [INFO] [stdout] --> src/cpu.rs:10:6 [INFO] [stdout] | [INFO] [stdout] 10 | enum ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `skip_if` is never used [INFO] [stdout] --> src/cpu.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 16 | impl ProgramCounter { [INFO] [stdout] | ------------------- associated function in this implementation [INFO] [stdout] 17 | fn skip_if(skip_condition: bool) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Cpu` is never constructed [INFO] [stdout] --> src/cpu.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 27 | pub struct Cpu { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/cpu.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 40 | impl Cpu { [INFO] [stdout] | -------- associated items in this implementation [INFO] [stdout] 41 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 56 | pub fn get_opcode(&mut self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | pub fn load(&mut self, rom: &[u8]) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn tick(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 78 | pub fn read_reg(&mut self, index: usize) -> u8 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 82 | pub fn write_reg(&mut self, index: usize, value: u8) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 86 | fn run_opcode(&mut self, opcode: u16) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 147 | fn op_code_00E0(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 157 | fn op_code_00EE(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | fn op_code_1nnn(&mut self, nnn: u16) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 174 | fn op_code_2nnn(&mut self, nnn: u16) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 183 | fn op_code_3xkk(&mut self, x: usize, kk: u8) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 191 | fn op_code_4xkk(&mut self, x: usize, kk: u8) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 200 | fn op_code_5xy0(&mut self, x: usize, y: usize) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 208 | fn op_code_6xkk(&mut self, x: usize, kk: u8) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 216 | fn op_code_7xkk(&mut self, x: usize, kk: u8) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 227 | fn op_code_8xy0(&mut self, x: usize, y: usize) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 239 | fn op_code_8xy1(&mut self, x: usize, y: usize) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 252 | fn op_code_8xy2(&mut self, x: usize, y: usize) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 265 | fn op_code_8xy3(&mut self, x: usize, y: usize) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 277 | fn op_code_8xy4(&mut self, x: usize, y: usize) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 294 | fn op_code_8xy5(&mut self, x: usize, y: usize) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 311 | fn op_code_8xy6(&mut self, x: usize) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 322 | fn op_code_8xy7(&mut self, x: usize, y: usize) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 339 | fn op_code_8xye(&mut self, x: usize) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 350 | fn op_code_9xy0(&mut self, x: usize, y: usize) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 360 | fn op_code_annn(&mut self, nnn: u16) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 369 | fn op_code_bnnn(&mut self, nnn: u16) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 379 | fn op_code_cxkk(&mut self, x: usize, kk: u8) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 393 | fn op_code_dxyn(&mut self, x: usize, y: usize, n: usize) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 406 | fn op_code_ex9e(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 414 | fn op_code_exa1(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 422 | fn op_code_fx07(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 430 | fn op_code_fx0a(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 438 | fn op_code_fx15(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 446 | fn op_code_fx18(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 454 | fn op_code_fx1e(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 463 | fn op_code_fx29(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 472 | fn op_code_fx33(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 480 | fn op_code_fx55(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 488 | fn op_code_fx65(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Vram` is never constructed [INFO] [stdout] --> src/vram.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Vram { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/vram.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 8 | impl Vram { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 9 | pub fn new () -> Vram { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | pub fn clear_vram(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn write_vram(&mut self, mem: [[u8; CHIP8_PIXEL_WIDTH]; CHIP8_PIXEL_HEIGHT]) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | pub fn write_vram_adress (&mut self,x: usize, y: usize, mem: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | pub fn read_vram(&mut self, x: usize, y:usize) -> u8{ [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn read_vram_flag (&mut self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | pub fn write_vram_flag (&mut self ,vram_flag: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `op_code_00E0` should have a snake case name [INFO] [stdout] --> src/cpu.rs:147:8 [INFO] [stdout] | [INFO] [stdout] 147 | fn op_code_00E0(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `op_code_00_e0` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `op_code_00EE` should have a snake case name [INFO] [stdout] --> src/cpu.rs:157:8 [INFO] [stdout] | [INFO] [stdout] 157 | fn op_code_00EE(&mut self) -> ProgramCounter { [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `op_code_00_ee` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 21 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/cpu.rs:395:9 [INFO] [stdout] | [INFO] [stdout] 394 | todo!(); [INFO] [stdout] | ------- any code following this expression is unreachable [INFO] [stdout] 395 | self.write_reg(0x0f, 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `opcode` [INFO] [stdout] --> src/cpu.rs:75:13 [INFO] [stdout] | [INFO] [stdout] 75 | let opcode = self.get_opcode(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_opcode` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y` [INFO] [stdout] --> src/cpu.rs:397:17 [INFO] [stdout] | [INFO] [stdout] 397 | let y = (self.read_reg(y) as usize + byte) % CHIP8_PIXEL_HEIGHT; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> src/cpu.rs:393:32 [INFO] [stdout] | [INFO] [stdout] 393 | fn op_code_dxyn(&mut self, x: usize, y: usize, n: usize) -> ProgramCounter { [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/cpu.rs:393:42 [INFO] [stdout] | [INFO] [stdout] 393 | fn op_code_dxyn(&mut self, x: usize, y: usize, n: usize) -> ProgramCounter { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> src/cpu.rs:393:52 [INFO] [stdout] | [INFO] [stdout] 393 | fn op_code_dxyn(&mut self, x: usize, y: usize, n: usize) -> ProgramCounter { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y` [INFO] [stdout] --> src/./cpu_test.rs:270:9 [INFO] [stdout] | [INFO] [stdout] 270 | let y = CHIP8_PIXEL_HEIGHT - 1; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 3 previous errors; 8 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0425`. [INFO] [stdout] [INFO] [stderr] error: could not compile `rust-chip8` (bin "rust-chip8" test) due to 4 previous errors; 8 warnings emitted [INFO] [stderr] error: failed to check after updating to 2024 [INFO] [stderr] [INFO] [stderr] Caused by: [INFO] [stderr] process didn't exit successfully: `cargo check --frozen --all --all-targets --message-format=json` (exit status: 101) [INFO] running `Command { std: "docker" "inspect" "9430026ddbac8b52dcc0ee17f27afca8b179ee4484bf44b6d88a2a1fa6e79609", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9430026ddbac8b52dcc0ee17f27afca8b179ee4484bf44b6d88a2a1fa6e79609", kill_on_drop: false }` [INFO] [stdout] 9430026ddbac8b52dcc0ee17f27afca8b179ee4484bf44b6d88a2a1fa6e79609