[INFO] cloning repository https://github.com/tobywhughes/rustboy2
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/tobywhughes/rustboy2" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftobywhughes%2Frustboy2", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftobywhughes%2Frustboy2'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 74aa7ab82d9722937b5300271867c148078c17b9
[INFO] checking tobywhughes/rustboy2 against try#c9557a20e5ef2e0e02c29a5fafd850d1b7cf1e4f for 2025-12-16-next-solver-global
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftobywhughes%2Frustboy2" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/tobywhughes/rustboy2
[INFO] finished tweaking git repo https://github.com/tobywhughes/rustboy2
[INFO] tweaked toml for git repo https://github.com/tobywhughes/rustboy2 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/tobywhughes/rustboy2 on toolchain c9557a20e5ef2e0e02c29a5fafd850d1b7cf1e4f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c9557a20e5ef2e0e02c29a5fafd850d1b7cf1e4f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/tobywhughes/rustboy2 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" "+c9557a20e5ef2e0e02c29a5fafd850d1b7cf1e4f" "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 syn v2.0.95
[INFO] [stderr]   Downloaded miniquad v0.4.6
[INFO] [stderr]   Downloaded glam v0.27.0
[INFO] [stderr]   Downloaded macroquad v0.4.13
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+c9557a20e5ef2e0e02c29a5fafd850d1b7cf1e4f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 6d4e5d1c3e3898c8d7afcaab5df363f5c33b024daebb4d1fee079f6522b494a3
[INFO] running `Command { std: "docker" "start" "-a" "6d4e5d1c3e3898c8d7afcaab5df363f5c33b024daebb4d1fee079f6522b494a3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6d4e5d1c3e3898c8d7afcaab5df363f5c33b024daebb4d1fee079f6522b494a3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6d4e5d1c3e3898c8d7afcaab5df363f5c33b024daebb4d1fee079f6522b494a3", kill_on_drop: false }`
[INFO] [stdout] 6d4e5d1c3e3898c8d7afcaab5df363f5c33b024daebb4d1fee079f6522b494a3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+c9557a20e5ef2e0e02c29a5fafd850d1b7cf1e4f" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2c0d8ce90b9606bb744d8f3585cf0c7b528860d83fdc32bc554f1d14422b5fc8
[INFO] running `Command { std: "docker" "start" "-a" "2c0d8ce90b9606bb744d8f3585cf0c7b528860d83fdc32bc554f1d14422b5fc8", kill_on_drop: false }`
[INFO] [stderr]     Checking once_cell v1.20.2
[INFO] [stderr]    Compiling miniquad v0.4.6
[INFO] [stderr]     Checking bytemuck v1.21.0
[INFO] [stderr]     Checking ttf-parser v0.15.2
[INFO] [stderr]     Checking glam v0.27.0
[INFO] [stderr]     Checking miniz_oxide v0.8.2
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]    Compiling macroquad_macro v0.1.8
[INFO] [stderr]     Checking quad-rand v0.2.3
[INFO] [stderr]     Checking ahash v0.8.11
[INFO] [stderr]     Checking hashbrown v0.13.2
[INFO] [stderr]     Checking flate2 v1.0.35
[INFO] [stderr]     Checking png v0.17.16
[INFO] [stderr]     Checking fontdue v0.7.3
[INFO] [stderr]     Checking image v0.24.9
[INFO] [stderr]     Checking macroquad v0.4.13
[INFO] [stderr]     Checking rustboy2 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: variant `MBC1_RAM` should have an upper camel case name
[INFO] [stdout]   --> src/cartridge/cartridge_header.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 |     MBC1_RAM = 0x02,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `Mbc1Ram`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `MBC1_RAM_BATTERY` should have an upper camel case name
[INFO] [stdout]   --> src/cartridge/cartridge_header.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     MBC1_RAM_BATTERY = 0x03,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `Mbc1RamBattery`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `MBC2_BATTERY` should have an upper camel case name
[INFO] [stdout]   --> src/cartridge/cartridge_header.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     MBC2_BATTERY = 0x06,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `Mbc2Battery`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ROM_RAM` should have an upper camel case name
[INFO] [stdout]   --> src/cartridge/cartridge_header.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 43 |     ROM_RAM = 0x08,
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to upper camel case: `RomRam`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ROM_RAM_BATTERY` should have an upper camel case name
[INFO] [stdout]   --> src/cartridge/cartridge_header.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 44 |     ROM_RAM_BATTERY = 0x09,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `RomRamBattery`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `MMM01_RAM` should have an upper camel case name
[INFO] [stdout]   --> src/cartridge/cartridge_header.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 |     MMM01_RAM = 0x0C,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `Mmm01Ram`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `MMM01_RAM_BATTERY` should have an upper camel case name
[INFO] [stdout]   --> src/cartridge/cartridge_header.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 |     MMM01_RAM_BATTERY = 0x0D,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `Mmm01RamBattery`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `MBC3_TIMER_BATTERY` should have an upper camel case name
[INFO] [stdout]   --> src/cartridge/cartridge_header.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |     MBC3_TIMER_BATTERY = 0x0F,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `Mbc3TimerBattery`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `MBC3_TIMER_RAM_BATTERY` should have an upper camel case name
[INFO] [stdout]   --> src/cartridge/cartridge_header.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 |     MBC3_TIMER_RAM_BATTERY = 0x10,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `Mbc3TimerRamBattery`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `MBC3_RAM` should have an upper camel case name
[INFO] [stdout]   --> src/cartridge/cartridge_header.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 51 |     MBC3_RAM = 0x12,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `Mbc3Ram`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `MBC3_RAM_BATTERY` should have an upper camel case name
[INFO] [stdout]   --> src/cartridge/cartridge_header.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 52 |     MBC3_RAM_BATTERY = 0x13,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `Mbc3RamBattery`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ObjectAttributeArray`
[INFO] [stdout]  --> src/display.rs:3:32
[INFO] [stdout]   |
[INFO] [stdout] 3 |     io::oam::{ObjectAttribute, ObjectAttributeArray},
[INFO] [stdout]   |                                ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/io/lcd.rs:1:25
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::interrupts::{self, Interrupt};
[INFO] [stdout]   |                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::bus::Bus`
[INFO] [stdout]  --> src/io/oam.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::bus::Bus;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Read`
[INFO] [stdout]  --> src/opcode/load.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::Read;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/opcode/opcode.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::bus::{self, Bus};
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/opcode/opcode.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 |     if (ENABLE_BREAKPOINT && (bus.cpu.get_previous_pc() == BREAKPOINT)) {
[INFO] [stdout]     |        ^                                                              ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 103 -     if (ENABLE_BREAKPOINT && (bus.cpu.get_previous_pc() == BREAKPOINT)) {
[INFO] [stdout] 103 +     if ENABLE_BREAKPOINT && (bus.cpu.get_previous_pc() == BREAKPOINT)  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Bus` and `self`
[INFO] [stdout]  --> src/ppu.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 |     bus::{self, Bus},
[INFO] [stdout]   |           ^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ObjectAttributeData` and `get_scroll_data`
[INFO] [stdout]   --> src/main.rs:18:15
[INFO] [stdout]    |
[INFO] [stdout] 18 | use display::{get_scroll_data, ObjectAttributeData};
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `io::lcd::PaletteData`
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use io::lcd::PaletteData;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `MBC1_RAM` should have an upper camel case name
[INFO] [stdout]   --> src/cartridge/cartridge_header.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 |     MBC1_RAM = 0x02,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `Mbc1Ram`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `MBC1_RAM_BATTERY` should have an upper camel case name
[INFO] [stdout]   --> src/cartridge/cartridge_header.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     MBC1_RAM_BATTERY = 0x03,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `Mbc1RamBattery`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `MBC2_BATTERY` should have an upper camel case name
[INFO] [stdout]   --> src/cartridge/cartridge_header.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     MBC2_BATTERY = 0x06,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `Mbc2Battery`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ROM_RAM` should have an upper camel case name
[INFO] [stdout]   --> src/cartridge/cartridge_header.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 43 |     ROM_RAM = 0x08,
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to upper camel case: `RomRam`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ROM_RAM_BATTERY` should have an upper camel case name
[INFO] [stdout]   --> src/cartridge/cartridge_header.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 44 |     ROM_RAM_BATTERY = 0x09,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `RomRamBattery`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `MMM01_RAM` should have an upper camel case name
[INFO] [stdout]   --> src/cartridge/cartridge_header.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 |     MMM01_RAM = 0x0C,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `Mmm01Ram`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `MMM01_RAM_BATTERY` should have an upper camel case name
[INFO] [stdout]   --> src/cartridge/cartridge_header.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 |     MMM01_RAM_BATTERY = 0x0D,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `Mmm01RamBattery`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `MBC3_TIMER_BATTERY` should have an upper camel case name
[INFO] [stdout]   --> src/cartridge/cartridge_header.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |     MBC3_TIMER_BATTERY = 0x0F,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `Mbc3TimerBattery`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `MBC3_TIMER_RAM_BATTERY` should have an upper camel case name
[INFO] [stdout]   --> src/cartridge/cartridge_header.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 |     MBC3_TIMER_RAM_BATTERY = 0x10,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `Mbc3TimerRamBattery`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `MBC3_RAM` should have an upper camel case name
[INFO] [stdout]   --> src/cartridge/cartridge_header.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 51 |     MBC3_RAM = 0x12,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `Mbc3Ram`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `MBC3_RAM_BATTERY` should have an upper camel case name
[INFO] [stdout]   --> src/cartridge/cartridge_header.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 52 |     MBC3_RAM_BATTERY = 0x13,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `Mbc3RamBattery`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ObjectAttributeArray`
[INFO] [stdout]  --> src/display.rs:3:32
[INFO] [stdout]   |
[INFO] [stdout] 3 |     io::oam::{ObjectAttribute, ObjectAttributeArray},
[INFO] [stdout]   |                                ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/io/lcd.rs:1:25
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::interrupts::{self, Interrupt};
[INFO] [stdout]   |                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::bus::Bus`
[INFO] [stdout]  --> src/io/oam.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::bus::Bus;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Read`
[INFO] [stdout]  --> src/opcode/load.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::Read;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/opcode/opcode.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::bus::{self, Bus};
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/opcode/opcode.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 |     if (ENABLE_BREAKPOINT && (bus.cpu.get_previous_pc() == BREAKPOINT)) {
[INFO] [stdout]     |        ^                                                              ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 103 -     if (ENABLE_BREAKPOINT && (bus.cpu.get_previous_pc() == BREAKPOINT)) {
[INFO] [stdout] 103 +     if ENABLE_BREAKPOINT && (bus.cpu.get_previous_pc() == BREAKPOINT)  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Bus` and `self`
[INFO] [stdout]  --> src/ppu.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 |     bus::{self, Bus},
[INFO] [stdout]   |           ^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ObjectAttributeData` and `get_scroll_data`
[INFO] [stdout]   --> src/main.rs:18:15
[INFO] [stdout]    |
[INFO] [stdout] 18 | use display::{get_scroll_data, ObjectAttributeData};
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `io::lcd::PaletteData`
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use io::lcd::PaletteData;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/bus.rs:90:13
[INFO] [stdout]    |
[INFO] [stdout] 90 |             _ => panic!(
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/bus.rs:90:13
[INFO] [stdout]    |
[INFO] [stdout] 78 |               MemoryLocation::Bank0 | MemoryLocation::BankN | MemoryLocation::ExternalRam => {
[INFO] [stdout]    |               --------------------------------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 81 | /             MemoryLocation::WorkRamBank0
[INFO] [stdout] 82 | |             | MemoryLocation::WorkRamBankN
[INFO] [stdout] 83 | |             | MemoryLocation::EchoRam => self.wram.write_u8(address, value),
[INFO] [stdout]    | |_____________________________________- matches some of the same values
[INFO] [stdout] 84 | /             MemoryLocation::IO
[INFO] [stdout] 85 | |             | MemoryLocation::InterruptEnableRegister
[INFO] [stdout] 86 | |             | MemoryLocation::VRam
[INFO] [stdout] 87 | |             | MemoryLocation::Oam => self.io.write_u8(address, value),
[INFO] [stdout]    | |_________________________________- matches some of the same values
[INFO] [stdout] 88 |               MemoryLocation::HRam => self.hram.write_u8(address, value),
[INFO] [stdout]    |               -------------------- matches some of the same values
[INFO] [stdout] 89 |               MemoryLocation::NotUsed => {} //No-op
[INFO] [stdout] 90 |               _ => panic!(
[INFO] [stdout]    |               ^ ...and 1 other patterns collectively make this unreachable
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]   --> src/display.rs:66:18
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn get_frame(bus: &mut Bus) -> () {}
[INFO] [stdout]    |                  ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/bus.rs:90:13
[INFO] [stdout]    |
[INFO] [stdout] 90 |             _ => panic!(
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/bus.rs:90:13
[INFO] [stdout]    |
[INFO] [stdout] 78 |               MemoryLocation::Bank0 | MemoryLocation::BankN | MemoryLocation::ExternalRam => {
[INFO] [stdout]    |               --------------------------------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 81 | /             MemoryLocation::WorkRamBank0
[INFO] [stdout] 82 | |             | MemoryLocation::WorkRamBankN
[INFO] [stdout] 83 | |             | MemoryLocation::EchoRam => self.wram.write_u8(address, value),
[INFO] [stdout]    | |_____________________________________- matches some of the same values
[INFO] [stdout] 84 | /             MemoryLocation::IO
[INFO] [stdout] 85 | |             | MemoryLocation::InterruptEnableRegister
[INFO] [stdout] 86 | |             | MemoryLocation::VRam
[INFO] [stdout] 87 | |             | MemoryLocation::Oam => self.io.write_u8(address, value),
[INFO] [stdout]    | |_________________________________- matches some of the same values
[INFO] [stdout] 88 |               MemoryLocation::HRam => self.hram.write_u8(address, value),
[INFO] [stdout]    |               -------------------- matches some of the same values
[INFO] [stdout] 89 |               MemoryLocation::NotUsed => {} //No-op
[INFO] [stdout] 90 |               _ => panic!(
[INFO] [stdout]    |               ^ ...and 1 other patterns collectively make this unreachable
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/memory.rs:31:13
[INFO] [stdout]    |
[INFO] [stdout] 31 |             _ => panic!("Invalid Memory Location")
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/memory.rs:31:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |             0x0000..=0x3FFF => MemoryLocation::Bank0,
[INFO] [stdout]    |             --------------- matches some of the same values
[INFO] [stdout] 20 |             0x4000..=0x7FFF => MemoryLocation::BankN,
[INFO] [stdout]    |             --------------- matches some of the same values
[INFO] [stdout] 21 |             0x8000..=0x9FFF => MemoryLocation::VRam,
[INFO] [stdout]    |             --------------- matches some of the same values
[INFO] [stdout] 22 |             0xA000..=0xBFFF => MemoryLocation::ExternalRam,
[INFO] [stdout]    |             --------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 31 |             _ => panic!("Invalid Memory Location")
[INFO] [stdout]    |             ^ ...and 8 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]   --> src/display.rs:66:18
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn get_frame(bus: &mut Bus) -> () {}
[INFO] [stdout]    |                  ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `is_carry` is never read
[INFO] [stdout]    --> src/opcode/arithmatic.rs:959:28
[INFO] [stdout]     |
[INFO] [stdout] 959 |         let mut is_carry = false;
[INFO] [stdout]     |                            ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/opcode/cb.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |             _ => panic!("Invalid CB Instruction"),
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/opcode/cb.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 24 |             0x00..=0x07 => CBInstruction::RLC,
[INFO] [stdout]    |             ----------- matches some of the same values
[INFO] [stdout] 25 |             0x08..=0x0F => CBInstruction::RRC,
[INFO] [stdout]    |             ----------- matches some of the same values
[INFO] [stdout] 26 |             0x10..=0x17 => CBInstruction::RL,
[INFO] [stdout]    |             ----------- matches some of the same values
[INFO] [stdout] 27 |             0x18..=0x1F => CBInstruction::RR,
[INFO] [stdout]    |             ----------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 35 |             _ => panic!("Invalid CB Instruction"),
[INFO] [stdout]    |             ^ ...and 7 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/memory.rs:31:13
[INFO] [stdout]    |
[INFO] [stdout] 31 |             _ => panic!("Invalid Memory Location")
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/memory.rs:31:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |             0x0000..=0x3FFF => MemoryLocation::Bank0,
[INFO] [stdout]    |             --------------- matches some of the same values
[INFO] [stdout] 20 |             0x4000..=0x7FFF => MemoryLocation::BankN,
[INFO] [stdout]    |             --------------- matches some of the same values
[INFO] [stdout] 21 |             0x8000..=0x9FFF => MemoryLocation::VRam,
[INFO] [stdout]    |             --------------- matches some of the same values
[INFO] [stdout] 22 |             0xA000..=0xBFFF => MemoryLocation::ExternalRam,
[INFO] [stdout]    |             --------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 31 |             _ => panic!("Invalid Memory Location")
[INFO] [stdout]    |             ^ ...and 8 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> src/opcode/cb.rs:235:40
[INFO] [stdout]     |
[INFO] [stdout] 235 |     fn post_execute_debug_print(&self, bus: &mut Bus) -> () {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]   --> src/opcode/jump.rs:36:40
[INFO] [stdout]    |
[INFO] [stdout] 36 |     fn post_execute_debug_print(&self, bus: &mut Bus) -> () {
[INFO] [stdout]    |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/opcode/load.rs:246:13
[INFO] [stdout]     |
[INFO] [stdout] 246 |             _ => panic!("Unimplemented Read Destination {:?}", read_destination),
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/opcode/load.rs:246:13
[INFO] [stdout]     |
[INFO] [stdout] 156 |             ReadDestination::Immediate => {
[INFO] [stdout]     |             -------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 162 |             ReadDestination::Immediate8 => {
[INFO] [stdout]     |             --------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 168 |             ReadDestination::A => bus.cpu.get_a() as u16,
[INFO] [stdout]     |             ------------------ matches some of the same values
[INFO] [stdout] 169 |             ReadDestination::B => bus.cpu.get_b() as u16,
[INFO] [stdout]     |             ------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 246 |             _ => panic!("Unimplemented Read Destination {:?}", read_destination),
[INFO] [stdout]     |             ^ ...and 16 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `is_carry` is never read
[INFO] [stdout]    --> src/opcode/arithmatic.rs:959:28
[INFO] [stdout]     |
[INFO] [stdout] 959 |         let mut is_carry = false;
[INFO] [stdout]     |                            ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> src/opcode/load.rs:500:40
[INFO] [stdout]     |
[INFO] [stdout] 500 |     fn post_execute_debug_print(&self, bus: &mut Bus) -> () {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> src/opcode/load.rs:560:40
[INFO] [stdout]     |
[INFO] [stdout] 560 |     fn post_execute_debug_print(&self, bus: &mut Bus) -> () {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/opcode/cb.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |             _ => panic!("Invalid CB Instruction"),
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/opcode/cb.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 24 |             0x00..=0x07 => CBInstruction::RLC,
[INFO] [stdout]    |             ----------- matches some of the same values
[INFO] [stdout] 25 |             0x08..=0x0F => CBInstruction::RRC,
[INFO] [stdout]    |             ----------- matches some of the same values
[INFO] [stdout] 26 |             0x10..=0x17 => CBInstruction::RL,
[INFO] [stdout]    |             ----------- matches some of the same values
[INFO] [stdout] 27 |             0x18..=0x1F => CBInstruction::RR,
[INFO] [stdout]    |             ----------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 35 |             _ => panic!("Invalid CB Instruction"),
[INFO] [stdout]    |             ^ ...and 7 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `DEBUG_PRINT` is never read
[INFO] [stdout]    --> src/opcode/opcode.rs:109:27
[INFO] [stdout]     |
[INFO] [stdout] 109 |     let mut DEBUG_PRINT = false;
[INFO] [stdout]     |                           ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> src/opcode/opcode.rs:128:27
[INFO] [stdout]     |
[INFO] [stdout] 128 |     fn execute(&mut self, bus: &mut Bus) -> () {
[INFO] [stdout]     |                           ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> src/opcode/opcode.rs:135:28
[INFO] [stdout]     |
[INFO] [stdout] 135 |     fn update_flags(&self, bus: &mut Bus) -> () {
[INFO] [stdout]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> src/opcode/opcode.rs:148:40
[INFO] [stdout]     |
[INFO] [stdout] 148 |     fn post_execute_debug_print(&self, bus: &mut Bus) -> () {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> src/opcode/cb.rs:235:40
[INFO] [stdout]     |
[INFO] [stdout] 235 |     fn post_execute_debug_print(&self, bus: &mut Bus) -> () {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]   --> src/opcode/jump.rs:36:40
[INFO] [stdout]    |
[INFO] [stdout] 36 |     fn post_execute_debug_print(&self, bus: &mut Bus) -> () {
[INFO] [stdout]    |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/opcode/load.rs:246:13
[INFO] [stdout]     |
[INFO] [stdout] 246 |             _ => panic!("Unimplemented Read Destination {:?}", read_destination),
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/opcode/load.rs:246:13
[INFO] [stdout]     |
[INFO] [stdout] 156 |             ReadDestination::Immediate => {
[INFO] [stdout]     |             -------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 162 |             ReadDestination::Immediate8 => {
[INFO] [stdout]     |             --------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 168 |             ReadDestination::A => bus.cpu.get_a() as u16,
[INFO] [stdout]     |             ------------------ matches some of the same values
[INFO] [stdout] 169 |             ReadDestination::B => bus.cpu.get_b() as u16,
[INFO] [stdout]     |             ------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 246 |             _ => panic!("Unimplemented Read Destination {:?}", read_destination),
[INFO] [stdout]     |             ^ ...and 16 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ProcessedTile` is never used
[INFO] [stdout]   --> src/main.rs:33:6
[INFO] [stdout]    |
[INFO] [stdout] 33 | type ProcessedTile = [[u8; 8]; 8];
[INFO] [stdout]    |      ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> src/opcode/load.rs:500:40
[INFO] [stdout]     |
[INFO] [stdout] 500 |     fn post_execute_debug_print(&self, bus: &mut Bus) -> () {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ProcessedTiles` is never used
[INFO] [stdout]   --> src/main.rs:34:6
[INFO] [stdout]    |
[INFO] [stdout] 34 | type ProcessedTiles = [[ProcessedTile; 32]; 32];
[INFO] [stdout]    |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> src/opcode/load.rs:560:40
[INFO] [stdout]     |
[INFO] [stdout] 560 |     fn post_execute_debug_print(&self, bus: &mut Bus) -> () {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/cartridge/cartridge_header.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub enum CartridgeChipType {
[INFO] [stdout]    |          ----------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout]  9 |     MBC2,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 10 |     MBC3,
[INFO] [stdout] 11 |     MBC5,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 12 |     MBC6,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 13 |     MBC7,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 14 |     MMM01,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 15 |     HuC1,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 16 |     HuC3,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CartridgeChipType` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `entry_point`, `title`, `cgb_flag`, `sgb_flag`, and `ram_size` are never read
[INFO] [stdout]    --> src/cartridge/cartridge_header.rs:149:5
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub struct CartridgeHeader {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] 149 |     entry_point: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 150 |     title: Vec<u8>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 151 |     cgb_flag: u8,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 152 |     sgb_flag: u8,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     ram_size: RamSize,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cycles` is never read
[INFO] [stdout]   --> src/cpu.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct CPU {
[INFO] [stdout]    |            --- field in this struct
[INFO] [stdout] 24 |     registers: Registers,
[INFO] [stdout] 25 |     pub cycles: u16, // TODO: Figure out how to handle cycles
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ProcessedTile` is never used
[INFO] [stdout]  --> src/display.rs:6:6
[INFO] [stdout]   |
[INFO] [stdout] 6 | type ProcessedTile = [[u8; 8]; 8];
[INFO] [stdout]   |      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ProcessedTiles` is never used
[INFO] [stdout]  --> src/display.rs:7:6
[INFO] [stdout]   |
[INFO] [stdout] 7 | type ProcessedTiles = [[ProcessedTile; 32]; 32];
[INFO] [stdout]   |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ObjectAttributeData` is never used
[INFO] [stdout]  --> src/display.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub type ObjectAttributeData = [(ObjectAttribute, ProcessedTile, ProcessedTile); 40];
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_scroll_data` is never used
[INFO] [stdout]   --> src/display.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub fn get_scroll_data(bus: &Bus) -> (u8, u8) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_frame` is never used
[INFO] [stdout]   --> src/display.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn get_frame(bus: &mut Bus) -> () {}
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `key_1` is never read
[INFO] [stdout]  --> src/io/cgb_registers.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct CGBRegisters {
[INFO] [stdout]   |            ------------ field in this struct
[INFO] [stdout] 2 |     key_1: u8,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ObjectAttributeArray` is never used
[INFO] [stdout]   --> src/io/oam.rs:39:10
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub type ObjectAttributeArray = [ObjectAttribute; 40];
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_object_attributes` is never used
[INFO] [stdout]   --> src/io/oam.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl ObjectAttributeMemory {
[INFO] [stdout]    | -------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn get_object_attributes(&self) -> ObjectAttributeArray {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `div` is never read
[INFO] [stdout]  --> src/io/timer.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Timer {
[INFO] [stdout]   |            ----- field in this struct
[INFO] [stdout] 4 |     m_cycles: u16,
[INFO] [stdout] 5 |     div: u8,
[INFO] [stdout]   |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_tile_map` and `process_tile` are never used
[INFO] [stdout]   --> src/io/vram.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl VRam {
[INFO] [stdout]    | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn get_tile_map(&self, address: u16) -> [u8; 0x400] {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub fn process_tile(&self, tile: [u8; 16]) -> [[u8; 8]; 8] {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `DISPLAY_FPS` should have a snake case name
[INFO] [stdout]   --> src/main.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let DISPLAY_FPS = false;
[INFO] [stdout]    |         ^^^^^^^^^^^ help: convert the identifier to snake case: `display_fps`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `AF` should have a snake case name
[INFO] [stdout]  --> src/cpu.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     AF: u16,
[INFO] [stdout]   |     ^^ help: convert the identifier to snake case: `af`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `BC` should have a snake case name
[INFO] [stdout]  --> src/cpu.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     BC: u16,
[INFO] [stdout]   |     ^^ help: convert the identifier to snake case: `bc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `DE` should have a snake case name
[INFO] [stdout]  --> src/cpu.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     DE: u16,
[INFO] [stdout]   |     ^^ help: convert the identifier to snake case: `de`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `HL` should have a snake case name
[INFO] [stdout]  --> src/cpu.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     HL: u16,
[INFO] [stdout]   |     ^^ help: convert the identifier to snake case: `hl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `SP` should have a snake case name
[INFO] [stdout]  --> src/cpu.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     SP: u16,
[INFO] [stdout]   |     ^^ help: convert the identifier to snake case: `sp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `PC` should have a snake case name
[INFO] [stdout]  --> src/cpu.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     PC: u16,
[INFO] [stdout]   |     ^^ help: convert the identifier to snake case: `pc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `DEBUG_PRINT` is never read
[INFO] [stdout]    --> src/opcode/opcode.rs:109:27
[INFO] [stdout]     |
[INFO] [stdout] 109 |     let mut DEBUG_PRINT = false;
[INFO] [stdout]     |                           ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> src/opcode/opcode.rs:128:27
[INFO] [stdout]     |
[INFO] [stdout] 128 |     fn execute(&mut self, bus: &mut Bus) -> () {
[INFO] [stdout]     |                           ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> src/opcode/opcode.rs:135:28
[INFO] [stdout]     |
[INFO] [stdout] 135 |     fn update_flags(&self, bus: &mut Bus) -> () {
[INFO] [stdout]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `DEBUG_PRINT` should have a snake case name
[INFO] [stdout]    --> src/opcode/opcode.rs:109:13
[INFO] [stdout]     |
[INFO] [stdout] 109 |     let mut DEBUG_PRINT = false;
[INFO] [stdout]     |             ^^^^^^^^^^^ help: convert the identifier to snake case: `debug_print`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> src/opcode/opcode.rs:148:40
[INFO] [stdout]     |
[INFO] [stdout] 148 |     fn post_execute_debug_print(&self, bus: &mut Bus) -> () {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ProcessedTile` is never used
[INFO] [stdout]   --> src/main.rs:33:6
[INFO] [stdout]    |
[INFO] [stdout] 33 | type ProcessedTile = [[u8; 8]; 8];
[INFO] [stdout]    |      ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ProcessedTiles` is never used
[INFO] [stdout]   --> src/main.rs:34:6
[INFO] [stdout]    |
[INFO] [stdout] 34 | type ProcessedTiles = [[ProcessedTile; 32]; 32];
[INFO] [stdout]    |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/cartridge/cartridge_header.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub enum CartridgeChipType {
[INFO] [stdout]    |          ----------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout]  9 |     MBC2,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 10 |     MBC3,
[INFO] [stdout] 11 |     MBC5,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 12 |     MBC6,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 13 |     MBC7,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 14 |     MMM01,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 15 |     HuC1,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 16 |     HuC3,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CartridgeChipType` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `entry_point`, `title`, `cgb_flag`, `sgb_flag`, and `ram_size` are never read
[INFO] [stdout]    --> src/cartridge/cartridge_header.rs:149:5
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub struct CartridgeHeader {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] 149 |     entry_point: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 150 |     title: Vec<u8>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 151 |     cgb_flag: u8,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 152 |     sgb_flag: u8,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     ram_size: RamSize,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cycles` is never read
[INFO] [stdout]   --> src/cpu.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct CPU {
[INFO] [stdout]    |            --- field in this struct
[INFO] [stdout] 24 |     registers: Registers,
[INFO] [stdout] 25 |     pub cycles: u16, // TODO: Figure out how to handle cycles
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ProcessedTile` is never used
[INFO] [stdout]  --> src/display.rs:6:6
[INFO] [stdout]   |
[INFO] [stdout] 6 | type ProcessedTile = [[u8; 8]; 8];
[INFO] [stdout]   |      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ProcessedTiles` is never used
[INFO] [stdout]  --> src/display.rs:7:6
[INFO] [stdout]   |
[INFO] [stdout] 7 | type ProcessedTiles = [[ProcessedTile; 32]; 32];
[INFO] [stdout]   |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ObjectAttributeData` is never used
[INFO] [stdout]  --> src/display.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub type ObjectAttributeData = [(ObjectAttribute, ProcessedTile, ProcessedTile); 40];
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_scroll_data` is never used
[INFO] [stdout]   --> src/display.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub fn get_scroll_data(bus: &Bus) -> (u8, u8) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_frame` is never used
[INFO] [stdout]   --> src/display.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn get_frame(bus: &mut Bus) -> () {}
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `key_1` is never read
[INFO] [stdout]  --> src/io/cgb_registers.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct CGBRegisters {
[INFO] [stdout]   |            ------------ field in this struct
[INFO] [stdout] 2 |     key_1: u8,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ObjectAttributeArray` is never used
[INFO] [stdout]   --> src/io/oam.rs:39:10
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub type ObjectAttributeArray = [ObjectAttribute; 40];
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_object_attributes` is never used
[INFO] [stdout]   --> src/io/oam.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl ObjectAttributeMemory {
[INFO] [stdout]    | -------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn get_object_attributes(&self) -> ObjectAttributeArray {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `div` is never read
[INFO] [stdout]  --> src/io/timer.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Timer {
[INFO] [stdout]   |            ----- field in this struct
[INFO] [stdout] 4 |     m_cycles: u16,
[INFO] [stdout] 5 |     div: u8,
[INFO] [stdout]   |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_tile_map` and `process_tile` are never used
[INFO] [stdout]   --> src/io/vram.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl VRam {
[INFO] [stdout]    | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn get_tile_map(&self, address: u16) -> [u8; 0x400] {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub fn process_tile(&self, tile: [u8; 16]) -> [[u8; 8]; 8] {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `DISPLAY_FPS` should have a snake case name
[INFO] [stdout]   --> src/main.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let DISPLAY_FPS = false;
[INFO] [stdout]    |         ^^^^^^^^^^^ help: convert the identifier to snake case: `display_fps`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `AF` should have a snake case name
[INFO] [stdout]  --> src/cpu.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     AF: u16,
[INFO] [stdout]   |     ^^ help: convert the identifier to snake case: `af`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `BC` should have a snake case name
[INFO] [stdout]  --> src/cpu.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     BC: u16,
[INFO] [stdout]   |     ^^ help: convert the identifier to snake case: `bc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `DE` should have a snake case name
[INFO] [stdout]  --> src/cpu.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     DE: u16,
[INFO] [stdout]   |     ^^ help: convert the identifier to snake case: `de`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `HL` should have a snake case name
[INFO] [stdout]  --> src/cpu.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     HL: u16,
[INFO] [stdout]   |     ^^ help: convert the identifier to snake case: `hl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `SP` should have a snake case name
[INFO] [stdout]  --> src/cpu.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     SP: u16,
[INFO] [stdout]   |     ^^ help: convert the identifier to snake case: `sp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `PC` should have a snake case name
[INFO] [stdout]  --> src/cpu.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     PC: u16,
[INFO] [stdout]   |     ^^ help: convert the identifier to snake case: `pc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `DEBUG_PRINT` should have a snake case name
[INFO] [stdout]    --> src/opcode/opcode.rs:109:13
[INFO] [stdout]     |
[INFO] [stdout] 109 |     let mut DEBUG_PRINT = false;
[INFO] [stdout]     |             ^^^^^^^^^^^ help: convert the identifier to snake case: `debug_print`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.20s
[INFO] running `Command { std: "docker" "inspect" "2c0d8ce90b9606bb744d8f3585cf0c7b528860d83fdc32bc554f1d14422b5fc8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2c0d8ce90b9606bb744d8f3585cf0c7b528860d83fdc32bc554f1d14422b5fc8", kill_on_drop: false }`
[INFO] [stdout] 2c0d8ce90b9606bb744d8f3585cf0c7b528860d83fdc32bc554f1d14422b5fc8
