[INFO] cloning repository https://github.com/dimitribobkov/gameboy
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dimitribobkov/gameboy" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdimitribobkov%2Fgameboy", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdimitribobkov%2Fgameboy'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 34576647af675768b7705ac1eb697d417e2ccead
[INFO] testing dimitribobkov/gameboy against nightly-2025-01-18+rustflags=-Zrandomize-layout for randomize-layout-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdimitribobkov%2Fgameboy" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/dimitribobkov/gameboy on toolchain nightly-2025-01-18
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly-2025-01-18" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/dimitribobkov/gameboy
[INFO] finished tweaking git repo https://github.com/dimitribobkov/gameboy
[INFO] tweaked toml for git repo https://github.com/dimitribobkov/gameboy written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/dimitribobkov/gameboy 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" "+nightly-2025-01-18" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded sdl2 v0.34.1
[INFO] [stderr]   Downloaded sdl2-sys v0.34.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:819108c5571ea2e421544af4d832f968d213c87fbe3707a016657f43d2f853bc" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2025-01-18" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 35c2ca71a7c42488d381ac1642a9a8fcced455e64d517bd74863bbd803eaec5a
[INFO] running `Command { std: "docker" "start" "-a" "35c2ca71a7c42488d381ac1642a9a8fcced455e64d517bd74863bbd803eaec5a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "35c2ca71a7c42488d381ac1642a9a8fcced455e64d517bd74863bbd803eaec5a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "35c2ca71a7c42488d381ac1642a9a8fcced455e64d517bd74863bbd803eaec5a", kill_on_drop: false }`
[INFO] [stdout] 35c2ca71a7c42488d381ac1642a9a8fcced455e64d517bd74863bbd803eaec5a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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 -Zrandomize-layout" "-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:819108c5571ea2e421544af4d832f968d213c87fbe3707a016657f43d2f853bc" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2025-01-18" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5e961005a70654e55e77cc035a942e5654949bff0ceeeb510dbbc7d75a530419
[INFO] running `Command { std: "docker" "start" "-a" "5e961005a70654e55e77cc035a942e5654949bff0ceeeb510dbbc7d75a530419", kill_on_drop: false }`
[INFO] [stderr]    Compiling cfg-if v0.1.10
[INFO] [stderr]    Compiling libc v0.2.71
[INFO] [stderr]    Compiling bitflags v1.2.1
[INFO] [stderr]    Compiling sdl2 v0.34.1
[INFO] [stderr]    Compiling lazy_static v1.4.0
[INFO] [stderr]    Compiling sdl2-sys v0.34.0
[INFO] [stderr]    Compiling gameboy v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/_cpu/memory.rs:359:26
[INFO] [stdout]     |
[INFO] [stdout] 359 |                 self.rom[(self.rom_offs + ((address as usize) & 0x3FFF))]
[INFO] [stdout]     |                          ^                                             ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 359 -                 self.rom[(self.rom_offs + ((address as usize) & 0x3FFF))]
[INFO] [stdout] 359 +                 self.rom[self.rom_offs + ((address as usize) & 0x3FFF)]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/_cpu/memory.rs:368:35
[INFO] [stdout]     |
[INFO] [stdout] 368 |                         self.eram[(self.ram_offs + ((address as usize) & 0x1FFF))]
[INFO] [stdout]     |                                   ^                                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 368 -                         self.eram[(self.ram_offs + ((address as usize) & 0x1FFF))]
[INFO] [stdout] 368 +                         self.eram[self.ram_offs + ((address as usize) & 0x1FFF)]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/_cpu/memory.rs:373:39
[INFO] [stdout]     |
[INFO] [stdout] 373 | ...                   self.eram[(self.ram_offs + ((address as usize) & 0x1FFF))]
[INFO] [stdout]     |                                 ^                                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 373 -                             self.eram[(self.ram_offs + ((address as usize) & 0x1FFF))]
[INFO] [stdout] 373 +                             self.eram[self.ram_offs + ((address as usize) & 0x1FFF)]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/_cpu/memory.rs:381:35
[INFO] [stdout]     |
[INFO] [stdout] 381 |                         self.eram[(self.ram_offs + ((address as usize) & 0x1FFF))]
[INFO] [stdout]     |                                   ^                                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 381 -                         self.eram[(self.ram_offs + ((address as usize) & 0x1FFF))]
[INFO] [stdout] 381 +                         self.eram[self.ram_offs + ((address as usize) & 0x1FFF)]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/_cpu/memory.rs:609:35
[INFO] [stdout]     |
[INFO] [stdout] 609 |                         self.eram[(self.ram_offs + ((address as usize) & 0x1FFF))] = value;
[INFO] [stdout]     |                                   ^                                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 609 -                         self.eram[(self.ram_offs + ((address as usize) & 0x1FFF))] = value;
[INFO] [stdout] 609 +                         self.eram[self.ram_offs + ((address as usize) & 0x1FFF)] = value;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/_cpu/memory.rs:614:39
[INFO] [stdout]     |
[INFO] [stdout] 614 | ...                   self.eram[(self.ram_offs + ((address as usize) & 0x1FFF))] = value;
[INFO] [stdout]     |                                 ^                                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 614 -                             self.eram[(self.ram_offs + ((address as usize) & 0x1FFF))] = value;
[INFO] [stdout] 614 +                             self.eram[self.ram_offs + ((address as usize) & 0x1FFF)] = value;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/_cpu/memory.rs:632:35
[INFO] [stdout]     |
[INFO] [stdout] 632 |                         self.eram[(self.ram_offs + ((address as usize) & 0x1FFF))] = value;
[INFO] [stdout]     |                                   ^                                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 632 -                         self.eram[(self.ram_offs + ((address as usize) & 0x1FFF))] = value;
[INFO] [stdout] 632 +                         self.eram[self.ram_offs + ((address as usize) & 0x1FFF)] = value;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `stdin`
[INFO] [stdout]  --> src/_cpu/read_rom.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::{Read, stdin};
[INFO] [stdout]   |                     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `delay` is never read
[INFO] [stdout]    --> src/cpu.rs:670:21
[INFO] [stdout]     |
[INFO] [stdout] 670 |             let mut delay = 0x0;
[INFO] [stdout]     |                     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `trace` is assigned to, but never used
[INFO] [stdout]    --> src/cpu.rs:698:25
[INFO] [stdout]     |
[INFO] [stdout] 698 |                 let mut trace = String::new();
[INFO] [stdout]     |                         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_trace` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `trace` is never read
[INFO] [stdout]    --> src/cpu.rs:701:21
[INFO] [stdout]     |
[INFO] [stdout] 701 | ...   trace = format!("A: {:x?} F: {:x?} B: {:x?} C: {:x?} D: {:x?} E: {:x?} H: {:x?} L: {:x?} SP: {:x?} PC: 00:{:x?} | Opcode: {:x?} : {...
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `trace` is never read
[INFO] [stdout]    --> src/cpu.rs:703:21
[INFO] [stdout]     |
[INFO] [stdout] 703 | ...   trace = format!("A: {:x?} F: {:x?} B: {:x?} C: {:x?} D: {:x?} E: {:x?} H: {:x?} L: {:x?} SP: {:x?} PC: 00:{:x?} | Opcode: {:x?} -- ...
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> src/cpu.rs:3344:13
[INFO] [stdout]      |
[INFO] [stdout] 3344 |             _ => { panic!("Opcode: CB -> {:#x?}", opcode)}
[INFO] [stdout]      |             ^ no value can reach this
[INFO] [stdout]      |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]     --> src/cpu.rs:3344:13
[INFO] [stdout]      |
[INFO] [stdout] 2318 |             0x0 => {
[INFO] [stdout]      |             --- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 2322 |             0x1 => {
[INFO] [stdout]      |             --- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 2326 |             0x2 => {
[INFO] [stdout]      |             --- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 2330 |             0x3 => {
[INFO] [stdout]      |             --- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 3344 |             _ => { panic!("Opcode: CB -> {:#x?}", opcode)}
[INFO] [stdout]      |             ^ ...and 252 other patterns collectively make this unreachable
[INFO] [stdout]      = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]     --> src/cpu.rs:2316:46
[INFO] [stdout]      |
[INFO] [stdout] 2316 |     pub fn execute_cb(&mut self, opcode: u8, v: usize) -> u8{
[INFO] [stdout]      |                                              ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3420:33
[INFO] [stdout]      |
[INFO] [stdout] 3420 |                 let (new_value, did_overflow) = self.registers.sp.overflowing_add(value as u16);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3624:33
[INFO] [stdout]      |
[INFO] [stdout] 3624 |                 let (new_value, did_overflow) = self.registers.a.overflowing_add(value as u8);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3633:33
[INFO] [stdout]      |
[INFO] [stdout] 3633 |                 let (new_value, did_overflow) = self.registers.b.overflowing_add(value as u8);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3642:33
[INFO] [stdout]      |
[INFO] [stdout] 3642 |                 let (new_value, did_overflow) = self.registers.c.overflowing_add(value as u8);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3651:33
[INFO] [stdout]      |
[INFO] [stdout] 3651 |                 let (new_value, did_overflow) = self.registers.d.overflowing_add(value as u8);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3660:33
[INFO] [stdout]      |
[INFO] [stdout] 3660 |                 let (new_value, did_overflow) = self.registers.e.overflowing_add(value as u8);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3669:33
[INFO] [stdout]      |
[INFO] [stdout] 3669 |                 let (new_value, did_overflow) = self.registers.h.overflowing_add(value as u8);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3677:33
[INFO] [stdout]      |
[INFO] [stdout] 3677 |                 let (new_value, did_overflow) = self.registers.l.overflowing_add(value as u8);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3685:33
[INFO] [stdout]      |
[INFO] [stdout] 3685 |                 let (new_value, did_overflow) = self.registers.sp.overflowing_add(value as u16);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3690:33
[INFO] [stdout]      |
[INFO] [stdout] 3690 |                 let (new_value, did_overflow) = self.registers.get_hl().overflowing_add(value as u16);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3696:33
[INFO] [stdout]      |
[INFO] [stdout] 3696 |                 let (new_value, did_overflow) = self.registers.get_de().overflowing_add(value as u16);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3703:33
[INFO] [stdout]      |
[INFO] [stdout] 3703 |                 let (new_value, did_overflow) = self.registers.get_bc().overflowing_add(value as u16);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3716:33
[INFO] [stdout]      |
[INFO] [stdout] 3716 |                 let (new_value, did_overflow) = self.registers.a.overflowing_sub(value as u8);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3725:33
[INFO] [stdout]      |
[INFO] [stdout] 3725 |                 let (new_value, did_overflow) = self.registers.b.overflowing_sub(value as u8);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3734:33
[INFO] [stdout]      |
[INFO] [stdout] 3734 |                 let (new_value, did_overflow) = self.registers.c.overflowing_sub(value as u8);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3743:33
[INFO] [stdout]      |
[INFO] [stdout] 3743 |                 let (new_value, did_overflow) = self.registers.d.overflowing_sub(value as u8);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3752:33
[INFO] [stdout]      |
[INFO] [stdout] 3752 |                 let (new_value, did_overflow) = self.registers.e.overflowing_sub(value as u8);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3761:33
[INFO] [stdout]      |
[INFO] [stdout] 3761 |                 let (new_value, did_overflow) = self.registers.h.overflowing_sub(value as u8);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3770:33
[INFO] [stdout]      |
[INFO] [stdout] 3770 |                 let (new_value, did_overflow) = self.registers.l.overflowing_sub(value as u8);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3779:33
[INFO] [stdout]      |
[INFO] [stdout] 3779 |                 let (new_value, did_overflow) = self.registers.sp.overflowing_sub(value as u16);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3786:33
[INFO] [stdout]      |
[INFO] [stdout] 3786 |                 let (new_value, did_overflow) = self.registers.get_hl().overflowing_sub(value as u16);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3793:33
[INFO] [stdout]      |
[INFO] [stdout] 3793 |                 let (new_value, did_overflow) = self.registers.get_de().overflowing_sub(value as u16);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3800:33
[INFO] [stdout]      |
[INFO] [stdout] 3800 |                 let (new_value, did_overflow) = self.registers.get_bc().overflowing_sub(value as u16);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `mode` is never read
[INFO] [stdout]   --> src/main.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let mut mode = false;
[INFO] [stdout]    |             ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trace_buffer`
[INFO] [stdout]   --> src/main.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let mut trace_buffer = Vec::<String>::new();
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_trace_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `cpu` is never read
[INFO] [stdout]   --> src/main.rs:64:13
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let mut cpu = CPU::new();
[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/main.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let mut trace_buffer = Vec::<String>::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: function `save` is never used
[INFO] [stdout]    --> src/main.rs:194:4
[INFO] [stdout]     |
[INFO] [stdout] 194 | fn save(trace_buffer: Vec::<String>){
[INFO] [stdout]     |    ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `debug` is never read
[INFO] [stdout]    --> src/cpu.rs:561:9
[INFO] [stdout]     |
[INFO] [stdout] 554 | pub struct CPU{
[INFO] [stdout]     |            --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 561 |     pub debug: bool,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `load_rom_cgb` is never used
[INFO] [stdout]    --> src/cpu.rs:632:12
[INFO] [stdout]     |
[INFO] [stdout] 568 | impl CPU {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 632 |     pub fn load_rom_cgb(&mut self, file: String){
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `F` and `AF` are never constructed
[INFO] [stdout]     --> src/cpu.rs:4604:5
[INFO] [stdout]      |
[INFO] [stdout] 4601 | pub enum Target{
[INFO] [stdout]      |          ------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 4604 |     F,
[INFO] [stdout]      |     ^
[INFO] [stdout] ...
[INFO] [stdout] 4613 |     AF,
[INFO] [stdout]      |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_af` is never used
[INFO] [stdout]   --> src/_cpu/registers.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl Registers{
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn get_af(&mut self) -> u16{
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VRAM_BEGIN` is never used
[INFO] [stdout]  --> src/_cpu/memory.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const VRAM_BEGIN: usize = 0x8000;
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VRAM_END` is never used
[INFO] [stdout]  --> src/_cpu/memory.rs:5:7
[INFO] [stdout]   |
[INFO] [stdout] 5 | const VRAM_END: usize = 0x9FFF;
[INFO] [stdout]   |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VRAM_SIZE` is never used
[INFO] [stdout]  --> src/_cpu/memory.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const VRAM_SIZE: usize = VRAM_END - VRAM_BEGIN + 1;
[INFO] [stdout]   |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/main.rs:161:12
[INFO] [stdout]     |
[INFO] [stdout] 161 |         if cpu.registers.pc > 0xFFFF{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `IF` should have a snake case name
[INFO] [stdout]    --> src/cpu.rs:744:13
[INFO] [stdout]     |
[INFO] [stdout] 744 |         let IF = self.memory.rb(0xFF0F);
[INFO] [stdout]     |             ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] help: rename the identifier or convert it to a snake case raw identifier
[INFO] [stdout]     |
[INFO] [stdout] 744 |         let r#if = self.memory.rb(0xFF0F);
[INFO] [stdout]     |             ~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `IE` should have a snake case name
[INFO] [stdout]    --> src/cpu.rs:745:13
[INFO] [stdout]     |
[INFO] [stdout] 745 |         let IE = self.memory.rb(0xFFFF);
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case: `ie`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.12s
[INFO] running `Command { std: "docker" "inspect" "5e961005a70654e55e77cc035a942e5654949bff0ceeeb510dbbc7d75a530419", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5e961005a70654e55e77cc035a942e5654949bff0ceeeb510dbbc7d75a530419", kill_on_drop: false }`
[INFO] [stdout] 5e961005a70654e55e77cc035a942e5654949bff0ceeeb510dbbc7d75a530419
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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 -Zrandomize-layout" "-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:819108c5571ea2e421544af4d832f968d213c87fbe3707a016657f43d2f853bc" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2025-01-18" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 62da4327b6e668e3b5896eaacdbc81af147988219a13e6211c5bb518db77793c
[INFO] running `Command { std: "docker" "start" "-a" "62da4327b6e668e3b5896eaacdbc81af147988219a13e6211c5bb518db77793c", kill_on_drop: false }`
[INFO] [stderr]    Compiling gameboy v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/_cpu/memory.rs:359:26
[INFO] [stdout]     |
[INFO] [stdout] 359 |                 self.rom[(self.rom_offs + ((address as usize) & 0x3FFF))]
[INFO] [stdout]     |                          ^                                             ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 359 -                 self.rom[(self.rom_offs + ((address as usize) & 0x3FFF))]
[INFO] [stdout] 359 +                 self.rom[self.rom_offs + ((address as usize) & 0x3FFF)]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/_cpu/memory.rs:368:35
[INFO] [stdout]     |
[INFO] [stdout] 368 |                         self.eram[(self.ram_offs + ((address as usize) & 0x1FFF))]
[INFO] [stdout]     |                                   ^                                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 368 -                         self.eram[(self.ram_offs + ((address as usize) & 0x1FFF))]
[INFO] [stdout] 368 +                         self.eram[self.ram_offs + ((address as usize) & 0x1FFF)]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/_cpu/memory.rs:373:39
[INFO] [stdout]     |
[INFO] [stdout] 373 | ...                   self.eram[(self.ram_offs + ((address as usize) & 0x1FFF))]
[INFO] [stdout]     |                                 ^                                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 373 -                             self.eram[(self.ram_offs + ((address as usize) & 0x1FFF))]
[INFO] [stdout] 373 +                             self.eram[self.ram_offs + ((address as usize) & 0x1FFF)]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/_cpu/memory.rs:381:35
[INFO] [stdout]     |
[INFO] [stdout] 381 |                         self.eram[(self.ram_offs + ((address as usize) & 0x1FFF))]
[INFO] [stdout]     |                                   ^                                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 381 -                         self.eram[(self.ram_offs + ((address as usize) & 0x1FFF))]
[INFO] [stdout] 381 +                         self.eram[self.ram_offs + ((address as usize) & 0x1FFF)]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/_cpu/memory.rs:609:35
[INFO] [stdout]     |
[INFO] [stdout] 609 |                         self.eram[(self.ram_offs + ((address as usize) & 0x1FFF))] = value;
[INFO] [stdout]     |                                   ^                                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 609 -                         self.eram[(self.ram_offs + ((address as usize) & 0x1FFF))] = value;
[INFO] [stdout] 609 +                         self.eram[self.ram_offs + ((address as usize) & 0x1FFF)] = value;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/_cpu/memory.rs:614:39
[INFO] [stdout]     |
[INFO] [stdout] 614 | ...                   self.eram[(self.ram_offs + ((address as usize) & 0x1FFF))] = value;
[INFO] [stdout]     |                                 ^                                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 614 -                             self.eram[(self.ram_offs + ((address as usize) & 0x1FFF))] = value;
[INFO] [stdout] 614 +                             self.eram[self.ram_offs + ((address as usize) & 0x1FFF)] = value;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/_cpu/memory.rs:632:35
[INFO] [stdout]     |
[INFO] [stdout] 632 |                         self.eram[(self.ram_offs + ((address as usize) & 0x1FFF))] = value;
[INFO] [stdout]     |                                   ^                                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 632 -                         self.eram[(self.ram_offs + ((address as usize) & 0x1FFF))] = value;
[INFO] [stdout] 632 +                         self.eram[self.ram_offs + ((address as usize) & 0x1FFF)] = value;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `stdin`
[INFO] [stdout]  --> src/_cpu/read_rom.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::{Read, stdin};
[INFO] [stdout]   |                     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `delay` is never read
[INFO] [stdout]    --> src/cpu.rs:670:21
[INFO] [stdout]     |
[INFO] [stdout] 670 |             let mut delay = 0x0;
[INFO] [stdout]     |                     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `trace` is assigned to, but never used
[INFO] [stdout]    --> src/cpu.rs:698:25
[INFO] [stdout]     |
[INFO] [stdout] 698 |                 let mut trace = String::new();
[INFO] [stdout]     |                         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_trace` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `trace` is never read
[INFO] [stdout]    --> src/cpu.rs:701:21
[INFO] [stdout]     |
[INFO] [stdout] 701 | ...   trace = format!("A: {:x?} F: {:x?} B: {:x?} C: {:x?} D: {:x?} E: {:x?} H: {:x?} L: {:x?} SP: {:x?} PC: 00:{:x?} | Opcode: {:x?} : {...
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `trace` is never read
[INFO] [stdout]    --> src/cpu.rs:703:21
[INFO] [stdout]     |
[INFO] [stdout] 703 | ...   trace = format!("A: {:x?} F: {:x?} B: {:x?} C: {:x?} D: {:x?} E: {:x?} H: {:x?} L: {:x?} SP: {:x?} PC: 00:{:x?} | Opcode: {:x?} -- ...
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> src/cpu.rs:3344:13
[INFO] [stdout]      |
[INFO] [stdout] 3344 |             _ => { panic!("Opcode: CB -> {:#x?}", opcode)}
[INFO] [stdout]      |             ^ no value can reach this
[INFO] [stdout]      |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]     --> src/cpu.rs:3344:13
[INFO] [stdout]      |
[INFO] [stdout] 2318 |             0x0 => {
[INFO] [stdout]      |             --- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 2322 |             0x1 => {
[INFO] [stdout]      |             --- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 2326 |             0x2 => {
[INFO] [stdout]      |             --- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 2330 |             0x3 => {
[INFO] [stdout]      |             --- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 3344 |             _ => { panic!("Opcode: CB -> {:#x?}", opcode)}
[INFO] [stdout]      |             ^ ...and 252 other patterns collectively make this unreachable
[INFO] [stdout]      = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]     --> src/cpu.rs:2316:46
[INFO] [stdout]      |
[INFO] [stdout] 2316 |     pub fn execute_cb(&mut self, opcode: u8, v: usize) -> u8{
[INFO] [stdout]      |                                              ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3420:33
[INFO] [stdout]      |
[INFO] [stdout] 3420 |                 let (new_value, did_overflow) = self.registers.sp.overflowing_add(value as u16);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3624:33
[INFO] [stdout]      |
[INFO] [stdout] 3624 |                 let (new_value, did_overflow) = self.registers.a.overflowing_add(value as u8);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3633:33
[INFO] [stdout]      |
[INFO] [stdout] 3633 |                 let (new_value, did_overflow) = self.registers.b.overflowing_add(value as u8);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3642:33
[INFO] [stdout]      |
[INFO] [stdout] 3642 |                 let (new_value, did_overflow) = self.registers.c.overflowing_add(value as u8);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3651:33
[INFO] [stdout]      |
[INFO] [stdout] 3651 |                 let (new_value, did_overflow) = self.registers.d.overflowing_add(value as u8);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3660:33
[INFO] [stdout]      |
[INFO] [stdout] 3660 |                 let (new_value, did_overflow) = self.registers.e.overflowing_add(value as u8);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3669:33
[INFO] [stdout]      |
[INFO] [stdout] 3669 |                 let (new_value, did_overflow) = self.registers.h.overflowing_add(value as u8);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3677:33
[INFO] [stdout]      |
[INFO] [stdout] 3677 |                 let (new_value, did_overflow) = self.registers.l.overflowing_add(value as u8);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3685:33
[INFO] [stdout]      |
[INFO] [stdout] 3685 |                 let (new_value, did_overflow) = self.registers.sp.overflowing_add(value as u16);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3690:33
[INFO] [stdout]      |
[INFO] [stdout] 3690 |                 let (new_value, did_overflow) = self.registers.get_hl().overflowing_add(value as u16);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3696:33
[INFO] [stdout]      |
[INFO] [stdout] 3696 |                 let (new_value, did_overflow) = self.registers.get_de().overflowing_add(value as u16);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3703:33
[INFO] [stdout]      |
[INFO] [stdout] 3703 |                 let (new_value, did_overflow) = self.registers.get_bc().overflowing_add(value as u16);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3716:33
[INFO] [stdout]      |
[INFO] [stdout] 3716 |                 let (new_value, did_overflow) = self.registers.a.overflowing_sub(value as u8);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3725:33
[INFO] [stdout]      |
[INFO] [stdout] 3725 |                 let (new_value, did_overflow) = self.registers.b.overflowing_sub(value as u8);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3734:33
[INFO] [stdout]      |
[INFO] [stdout] 3734 |                 let (new_value, did_overflow) = self.registers.c.overflowing_sub(value as u8);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3743:33
[INFO] [stdout]      |
[INFO] [stdout] 3743 |                 let (new_value, did_overflow) = self.registers.d.overflowing_sub(value as u8);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3752:33
[INFO] [stdout]      |
[INFO] [stdout] 3752 |                 let (new_value, did_overflow) = self.registers.e.overflowing_sub(value as u8);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3761:33
[INFO] [stdout]      |
[INFO] [stdout] 3761 |                 let (new_value, did_overflow) = self.registers.h.overflowing_sub(value as u8);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3770:33
[INFO] [stdout]      |
[INFO] [stdout] 3770 |                 let (new_value, did_overflow) = self.registers.l.overflowing_sub(value as u8);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3779:33
[INFO] [stdout]      |
[INFO] [stdout] 3779 |                 let (new_value, did_overflow) = self.registers.sp.overflowing_sub(value as u16);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3786:33
[INFO] [stdout]      |
[INFO] [stdout] 3786 |                 let (new_value, did_overflow) = self.registers.get_hl().overflowing_sub(value as u16);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3793:33
[INFO] [stdout]      |
[INFO] [stdout] 3793 |                 let (new_value, did_overflow) = self.registers.get_de().overflowing_sub(value as u16);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]     --> src/cpu.rs:3800:33
[INFO] [stdout]      |
[INFO] [stdout] 3800 |                 let (new_value, did_overflow) = self.registers.get_bc().overflowing_sub(value as u16);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `mode` is never read
[INFO] [stdout]   --> src/main.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let mut mode = false;
[INFO] [stdout]    |             ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trace_buffer`
[INFO] [stdout]   --> src/main.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let mut trace_buffer = Vec::<String>::new();
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_trace_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `cpu` is never read
[INFO] [stdout]   --> src/main.rs:64:13
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let mut cpu = CPU::new();
[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/main.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let mut trace_buffer = Vec::<String>::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: function `save` is never used
[INFO] [stdout]    --> src/main.rs:194:4
[INFO] [stdout]     |
[INFO] [stdout] 194 | fn save(trace_buffer: Vec::<String>){
[INFO] [stdout]     |    ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `debug` is never read
[INFO] [stdout]    --> src/cpu.rs:561:9
[INFO] [stdout]     |
[INFO] [stdout] 554 | pub struct CPU{
[INFO] [stdout]     |            --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 561 |     pub debug: bool,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `load_rom_cgb` is never used
[INFO] [stdout]    --> src/cpu.rs:632:12
[INFO] [stdout]     |
[INFO] [stdout] 568 | impl CPU {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 632 |     pub fn load_rom_cgb(&mut self, file: String){
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `F` and `AF` are never constructed
[INFO] [stdout]     --> src/cpu.rs:4604:5
[INFO] [stdout]      |
[INFO] [stdout] 4601 | pub enum Target{
[INFO] [stdout]      |          ------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 4604 |     F,
[INFO] [stdout]      |     ^
[INFO] [stdout] ...
[INFO] [stdout] 4613 |     AF,
[INFO] [stdout]      |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_af` is never used
[INFO] [stdout]   --> src/_cpu/registers.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl Registers{
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn get_af(&mut self) -> u16{
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VRAM_BEGIN` is never used
[INFO] [stdout]  --> src/_cpu/memory.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const VRAM_BEGIN: usize = 0x8000;
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VRAM_END` is never used
[INFO] [stdout]  --> src/_cpu/memory.rs:5:7
[INFO] [stdout]   |
[INFO] [stdout] 5 | const VRAM_END: usize = 0x9FFF;
[INFO] [stdout]   |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VRAM_SIZE` is never used
[INFO] [stdout]  --> src/_cpu/memory.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const VRAM_SIZE: usize = VRAM_END - VRAM_BEGIN + 1;
[INFO] [stdout]   |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/main.rs:161:12
[INFO] [stdout]     |
[INFO] [stdout] 161 |         if cpu.registers.pc > 0xFFFF{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `IF` should have a snake case name
[INFO] [stdout]    --> src/cpu.rs:744:13
[INFO] [stdout]     |
[INFO] [stdout] 744 |         let IF = self.memory.rb(0xFF0F);
[INFO] [stdout]     |             ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] help: rename the identifier or convert it to a snake case raw identifier
[INFO] [stdout]     |
[INFO] [stdout] 744 |         let r#if = self.memory.rb(0xFF0F);
[INFO] [stdout]     |             ~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `IE` should have a snake case name
[INFO] [stdout]    --> src/cpu.rs:745:13
[INFO] [stdout]     |
[INFO] [stdout] 745 |         let IE = self.memory.rb(0xFFFF);
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case: `ie`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.28s
[INFO] running `Command { std: "docker" "inspect" "62da4327b6e668e3b5896eaacdbc81af147988219a13e6211c5bb518db77793c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "62da4327b6e668e3b5896eaacdbc81af147988219a13e6211c5bb518db77793c", kill_on_drop: false }`
[INFO] [stdout] 62da4327b6e668e3b5896eaacdbc81af147988219a13e6211c5bb518db77793c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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 -Zrandomize-layout" "-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:819108c5571ea2e421544af4d832f968d213c87fbe3707a016657f43d2f853bc" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2025-01-18" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 9e8c24e820552a3ff8325ddf2ef38cdc5955c55f23de2258a8fc02aab5a692ee
[INFO] running `Command { std: "docker" "start" "-a" "9e8c24e820552a3ff8325ddf2ef38cdc5955c55f23de2258a8fc02aab5a692ee", kill_on_drop: false }`
[INFO] [stderr] warning: unnecessary parentheses around index expression
[INFO] [stderr]    --> src/_cpu/memory.rs:359:26
[INFO] [stderr]     |
[INFO] [stderr] 359 |                 self.rom[(self.rom_offs + ((address as usize) & 0x3FFF))]
[INFO] [stderr]     |                          ^                                             ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 359 -                 self.rom[(self.rom_offs + ((address as usize) & 0x3FFF))]
[INFO] [stderr] 359 +                 self.rom[self.rom_offs + ((address as usize) & 0x3FFF)]
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around index expression
[INFO] [stderr]    --> src/_cpu/memory.rs:368:35
[INFO] [stderr]     |
[INFO] [stderr] 368 |                         self.eram[(self.ram_offs + ((address as usize) & 0x1FFF))]
[INFO] [stderr]     |                                   ^                                             ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 368 -                         self.eram[(self.ram_offs + ((address as usize) & 0x1FFF))]
[INFO] [stderr] 368 +                         self.eram[self.ram_offs + ((address as usize) & 0x1FFF)]
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around index expression
[INFO] [stderr]    --> src/_cpu/memory.rs:373:39
[INFO] [stderr]     |
[INFO] [stderr] 373 | ...                   self.eram[(self.ram_offs + ((address as usize) & 0x1FFF))]
[INFO] [stderr]     |                                 ^                                             ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 373 -                             self.eram[(self.ram_offs + ((address as usize) & 0x1FFF))]
[INFO] [stderr] 373 +                             self.eram[self.ram_offs + ((address as usize) & 0x1FFF)]
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around index expression
[INFO] [stderr]    --> src/_cpu/memory.rs:381:35
[INFO] [stderr]     |
[INFO] [stderr] 381 |                         self.eram[(self.ram_offs + ((address as usize) & 0x1FFF))]
[INFO] [stderr]     |                                   ^                                             ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 381 -                         self.eram[(self.ram_offs + ((address as usize) & 0x1FFF))]
[INFO] [stderr] 381 +                         self.eram[self.ram_offs + ((address as usize) & 0x1FFF)]
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around index expression
[INFO] [stderr]    --> src/_cpu/memory.rs:609:35
[INFO] [stderr]     |
[INFO] [stderr] 609 |                         self.eram[(self.ram_offs + ((address as usize) & 0x1FFF))] = value;
[INFO] [stderr]     |                                   ^                                             ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 609 -                         self.eram[(self.ram_offs + ((address as usize) & 0x1FFF))] = value;
[INFO] [stderr] 609 +                         self.eram[self.ram_offs + ((address as usize) & 0x1FFF)] = value;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around index expression
[INFO] [stderr]    --> src/_cpu/memory.rs:614:39
[INFO] [stderr]     |
[INFO] [stderr] 614 | ...                   self.eram[(self.ram_offs + ((address as usize) & 0x1FFF))] = value;
[INFO] [stderr]     |                                 ^                                             ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 614 -                             self.eram[(self.ram_offs + ((address as usize) & 0x1FFF))] = value;
[INFO] [stderr] 614 +                             self.eram[self.ram_offs + ((address as usize) & 0x1FFF)] = value;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around index expression
[INFO] [stderr]    --> src/_cpu/memory.rs:632:35
[INFO] [stderr]     |
[INFO] [stderr] 632 |                         self.eram[(self.ram_offs + ((address as usize) & 0x1FFF))] = value;
[INFO] [stderr]     |                                   ^                                             ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 632 -                         self.eram[(self.ram_offs + ((address as usize) & 0x1FFF))] = value;
[INFO] [stderr] 632 +                         self.eram[self.ram_offs + ((address as usize) & 0x1FFF)] = value;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `stdin`
[INFO] [stderr]  --> src/_cpu/read_rom.rs:3:21
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::io::{Read, stdin};
[INFO] [stderr]   |                     ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `delay` is never read
[INFO] [stderr]    --> src/cpu.rs:670:21
[INFO] [stderr]     |
[INFO] [stderr] 670 |             let mut delay = 0x0;
[INFO] [stderr]     |                     ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `trace` is assigned to, but never used
[INFO] [stderr]    --> src/cpu.rs:698:25
[INFO] [stderr]     |
[INFO] [stderr] 698 |                 let mut trace = String::new();
[INFO] [stderr]     |                         ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: consider using `_trace` instead
[INFO] [stderr]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `trace` is never read
[INFO] [stderr]    --> src/cpu.rs:701:21
[INFO] [stderr]     |
[INFO] [stderr] 701 | ...   trace = format!("A: {:x?} F: {:x?} B: {:x?} C: {:x?} D: {:x?} E: {:x?} H: {:x?} L: {:x?} SP: {:x?} PC: 00:{:x?} | Opcode: {:x?} : {...
[INFO] [stderr]     |       ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `trace` is never read
[INFO] [stderr]    --> src/cpu.rs:703:21
[INFO] [stderr]     |
[INFO] [stderr] 703 | ...   trace = format!("A: {:x?} F: {:x?} B: {:x?} C: {:x?} D: {:x?} E: {:x?} H: {:x?} L: {:x?} SP: {:x?} PC: 00:{:x?} | Opcode: {:x?} -- ...
[INFO] [stderr]     |       ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]     --> src/cpu.rs:3344:13
[INFO] [stderr]      |
[INFO] [stderr] 3344 |             _ => { panic!("Opcode: CB -> {:#x?}", opcode)}
[INFO] [stderr]      |             ^ no value can reach this
[INFO] [stderr]      |
[INFO] [stderr] note: multiple earlier patterns match some of the same values
[INFO] [stderr]     --> src/cpu.rs:3344:13
[INFO] [stderr]      |
[INFO] [stderr] 2318 |             0x0 => {
[INFO] [stderr]      |             --- matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr] 2322 |             0x1 => {
[INFO] [stderr]      |             --- matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr] 2326 |             0x2 => {
[INFO] [stderr]      |             --- matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr] 2330 |             0x3 => {
[INFO] [stderr]      |             --- matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr] 3344 |             _ => { panic!("Opcode: CB -> {:#x?}", opcode)}
[INFO] [stderr]      |             ^ ...and 252 other patterns collectively make this unreachable
[INFO] [stderr]      = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `v`
[INFO] [stderr]     --> src/cpu.rs:2316:46
[INFO] [stderr]      |
[INFO] [stderr] 2316 |     pub fn execute_cb(&mut self, opcode: u8, v: usize) -> u8{
[INFO] [stderr]      |                                              ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `did_overflow`
[INFO] [stderr]     --> src/cpu.rs:3420:33
[INFO] [stderr]      |
[INFO] [stderr] 3420 |                 let (new_value, did_overflow) = self.registers.sp.overflowing_add(value as u16);
[INFO] [stderr]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `did_overflow`
[INFO] [stderr]     --> src/cpu.rs:3624:33
[INFO] [stderr]      |
[INFO] [stderr] 3624 |                 let (new_value, did_overflow) = self.registers.a.overflowing_add(value as u8);
[INFO] [stderr]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `did_overflow`
[INFO] [stderr]     --> src/cpu.rs:3633:33
[INFO] [stderr]      |
[INFO] [stderr] 3633 |                 let (new_value, did_overflow) = self.registers.b.overflowing_add(value as u8);
[INFO] [stderr]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `did_overflow`
[INFO] [stderr]     --> src/cpu.rs:3642:33
[INFO] [stderr]      |
[INFO] [stderr] 3642 |                 let (new_value, did_overflow) = self.registers.c.overflowing_add(value as u8);
[INFO] [stderr]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `did_overflow`
[INFO] [stderr]     --> src/cpu.rs:3651:33
[INFO] [stderr]      |
[INFO] [stderr] 3651 |                 let (new_value, did_overflow) = self.registers.d.overflowing_add(value as u8);
[INFO] [stderr]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `did_overflow`
[INFO] [stderr]     --> src/cpu.rs:3660:33
[INFO] [stderr]      |
[INFO] [stderr] 3660 |                 let (new_value, did_overflow) = self.registers.e.overflowing_add(value as u8);
[INFO] [stderr]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `did_overflow`
[INFO] [stderr]     --> src/cpu.rs:3669:33
[INFO] [stderr]      |
[INFO] [stderr] 3669 |                 let (new_value, did_overflow) = self.registers.h.overflowing_add(value as u8);
[INFO] [stderr]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `did_overflow`
[INFO] [stderr]     --> src/cpu.rs:3677:33
[INFO] [stderr]      |
[INFO] [stderr] 3677 |                 let (new_value, did_overflow) = self.registers.l.overflowing_add(value as u8);
[INFO] [stderr]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `did_overflow`
[INFO] [stderr]     --> src/cpu.rs:3685:33
[INFO] [stderr]      |
[INFO] [stderr] 3685 |                 let (new_value, did_overflow) = self.registers.sp.overflowing_add(value as u16);
[INFO] [stderr]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `did_overflow`
[INFO] [stderr]     --> src/cpu.rs:3690:33
[INFO] [stderr]      |
[INFO] [stderr] 3690 |                 let (new_value, did_overflow) = self.registers.get_hl().overflowing_add(value as u16);
[INFO] [stderr]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `did_overflow`
[INFO] [stderr]     --> src/cpu.rs:3696:33
[INFO] [stderr]      |
[INFO] [stderr] 3696 |                 let (new_value, did_overflow) = self.registers.get_de().overflowing_add(value as u16);
[INFO] [stderr]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `did_overflow`
[INFO] [stderr]     --> src/cpu.rs:3703:33
[INFO] [stderr]      |
[INFO] [stderr] 3703 |                 let (new_value, did_overflow) = self.registers.get_bc().overflowing_add(value as u16);
[INFO] [stderr]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `did_overflow`
[INFO] [stderr]     --> src/cpu.rs:3716:33
[INFO] [stderr]      |
[INFO] [stderr] 3716 |                 let (new_value, did_overflow) = self.registers.a.overflowing_sub(value as u8);
[INFO] [stderr]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `did_overflow`
[INFO] [stderr]     --> src/cpu.rs:3725:33
[INFO] [stderr]      |
[INFO] [stderr] 3725 |                 let (new_value, did_overflow) = self.registers.b.overflowing_sub(value as u8);
[INFO] [stderr]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `did_overflow`
[INFO] [stderr]     --> src/cpu.rs:3734:33
[INFO] [stderr]      |
[INFO] [stderr] 3734 |                 let (new_value, did_overflow) = self.registers.c.overflowing_sub(value as u8);
[INFO] [stderr]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `did_overflow`
[INFO] [stderr]     --> src/cpu.rs:3743:33
[INFO] [stderr]      |
[INFO] [stderr] 3743 |                 let (new_value, did_overflow) = self.registers.d.overflowing_sub(value as u8);
[INFO] [stderr]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `did_overflow`
[INFO] [stderr]     --> src/cpu.rs:3752:33
[INFO] [stderr]      |
[INFO] [stderr] 3752 |                 let (new_value, did_overflow) = self.registers.e.overflowing_sub(value as u8);
[INFO] [stderr]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `did_overflow`
[INFO] [stderr]     --> src/cpu.rs:3761:33
[INFO] [stderr]      |
[INFO] [stderr] 3761 |                 let (new_value, did_overflow) = self.registers.h.overflowing_sub(value as u8);
[INFO] [stderr]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `did_overflow`
[INFO] [stderr]     --> src/cpu.rs:3770:33
[INFO] [stderr]      |
[INFO] [stderr] 3770 |                 let (new_value, did_overflow) = self.registers.l.overflowing_sub(value as u8);
[INFO] [stderr]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `did_overflow`
[INFO] [stderr]     --> src/cpu.rs:3779:33
[INFO] [stderr]      |
[INFO] [stderr] 3779 |                 let (new_value, did_overflow) = self.registers.sp.overflowing_sub(value as u16);
[INFO] [stderr]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `did_overflow`
[INFO] [stderr]     --> src/cpu.rs:3786:33
[INFO] [stderr]      |
[INFO] [stderr] 3786 |                 let (new_value, did_overflow) = self.registers.get_hl().overflowing_sub(value as u16);
[INFO] [stderr]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `did_overflow`
[INFO] [stderr]     --> src/cpu.rs:3793:33
[INFO] [stderr]      |
[INFO] [stderr] 3793 |                 let (new_value, did_overflow) = self.registers.get_de().overflowing_sub(value as u16);
[INFO] [stderr]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `did_overflow`
[INFO] [stderr]     --> src/cpu.rs:3800:33
[INFO] [stderr]      |
[INFO] [stderr] 3800 |                 let (new_value, did_overflow) = self.registers.get_bc().overflowing_sub(value as u16);
[INFO] [stderr]      |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `mode` is never read
[INFO] [stderr]   --> src/main.rs:30:13
[INFO] [stderr]    |
[INFO] [stderr] 30 |     let mut mode = false;
[INFO] [stderr]    |             ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `trace_buffer`
[INFO] [stderr]   --> src/main.rs:41:13
[INFO] [stderr]    |
[INFO] [stderr] 41 |     let mut trace_buffer = Vec::<String>::new();
[INFO] [stderr]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_trace_buffer`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `cpu` is never read
[INFO] [stderr]   --> src/main.rs:64:13
[INFO] [stderr]    |
[INFO] [stderr] 64 |     let mut cpu = CPU::new();
[INFO] [stderr]    |             ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/main.rs:41:9
[INFO] [stderr]    |
[INFO] [stderr] 41 |     let mut trace_buffer = Vec::<String>::new();
[INFO] [stderr]    |         ----^^^^^^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `save` is never used
[INFO] [stderr]    --> src/main.rs:194:4
[INFO] [stderr]     |
[INFO] [stderr] 194 | fn save(trace_buffer: Vec::<String>){
[INFO] [stderr]     |    ^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `debug` is never read
[INFO] [stderr]    --> src/cpu.rs:561:9
[INFO] [stderr]     |
[INFO] [stderr] 554 | pub struct CPU{
[INFO] [stderr]     |            --- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 561 |     pub debug: bool,
[INFO] [stderr]     |         ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `load_rom_cgb` is never used
[INFO] [stderr]    --> src/cpu.rs:632:12
[INFO] [stderr]     |
[INFO] [stderr] 568 | impl CPU {
[INFO] [stderr]     | -------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 632 |     pub fn load_rom_cgb(&mut self, file: String){
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `F` and `AF` are never constructed
[INFO] [stderr]     --> src/cpu.rs:4604:5
[INFO] [stderr]      |
[INFO] [stderr] 4601 | pub enum Target{
[INFO] [stderr]      |          ------ variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 4604 |     F,
[INFO] [stderr]      |     ^
[INFO] [stderr] ...
[INFO] [stderr] 4613 |     AF,
[INFO] [stderr]      |     ^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `get_af` is never used
[INFO] [stderr]   --> src/_cpu/registers.rs:46:12
[INFO] [stderr]    |
[INFO] [stderr] 26 | impl Registers{
[INFO] [stderr]    | -------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 46 |     pub fn get_af(&mut self) -> u16{
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `VRAM_BEGIN` is never used
[INFO] [stderr]  --> src/_cpu/memory.rs:4:7
[INFO] [stderr]   |
[INFO] [stderr] 4 | const VRAM_BEGIN: usize = 0x8000;
[INFO] [stderr]   |       ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `VRAM_END` is never used
[INFO] [stderr]  --> src/_cpu/memory.rs:5:7
[INFO] [stderr]   |
[INFO] [stderr] 5 | const VRAM_END: usize = 0x9FFF;
[INFO] [stderr]   |       ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `VRAM_SIZE` is never used
[INFO] [stderr]  --> src/_cpu/memory.rs:6:7
[INFO] [stderr]   |
[INFO] [stderr] 6 | const VRAM_SIZE: usize = VRAM_END - VRAM_BEGIN + 1;
[INFO] [stderr]   |       ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: comparison is useless due to type limits
[INFO] [stderr]    --> src/main.rs:161:12
[INFO] [stderr]     |
[INFO] [stderr] 161 |         if cpu.registers.pc > 0xFFFF{
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `IF` should have a snake case name
[INFO] [stderr]    --> src/cpu.rs:744:13
[INFO] [stderr]     |
[INFO] [stderr] 744 |         let IF = self.memory.rb(0xFF0F);
[INFO] [stderr]     |             ^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stderr] help: rename the identifier or convert it to a snake case raw identifier
[INFO] [stderr]     |
[INFO] [stderr] 744 |         let r#if = self.memory.rb(0xFF0F);
[INFO] [stderr]     |             ~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: variable `IE` should have a snake case name
[INFO] [stderr]    --> src/cpu.rs:745:13
[INFO] [stderr]     |
[INFO] [stderr] 745 |         let IE = self.memory.rb(0xFFFF);
[INFO] [stderr]     |             ^^ help: convert the identifier to snake case: `ie`
[INFO] [stderr] 
[INFO] [stderr] warning: `gameboy` (bin "gameboy" test) generated 52 warnings (run `cargo fix --bin "gameboy" --tests` to apply 9 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.01s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/gameboy-53bc18ebda1559ce)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "9e8c24e820552a3ff8325ddf2ef38cdc5955c55f23de2258a8fc02aab5a692ee", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9e8c24e820552a3ff8325ddf2ef38cdc5955c55f23de2258a8fc02aab5a692ee", kill_on_drop: false }`
[INFO] [stdout] 9e8c24e820552a3ff8325ddf2ef38cdc5955c55f23de2258a8fc02aab5a692ee
