[INFO] cloning repository https://github.com/TobiasNienhaus/gbrs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/TobiasNienhaus/gbrs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTobiasNienhaus%2Fgbrs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTobiasNienhaus%2Fgbrs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2d5de0ee48db6252a0cd1d7f27fab8daf89f0e67
[INFO] checking TobiasNienhaus/gbrs against 49a6044d37d694890450f52ceaceb66277a36b1e for pr-161154
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTobiasNienhaus%2Fgbrs" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/TobiasNienhaus/gbrs
[INFO] finished tweaking git repo https://github.com/TobiasNienhaus/gbrs
[INFO] tweaked toml for git repo https://github.com/TobiasNienhaus/gbrs written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/TobiasNienhaus/gbrs on toolchain 49a6044d37d694890450f52ceaceb66277a36b1e
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+49a6044d37d694890450f52ceaceb66277a36b1e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/TobiasNienhaus/gbrs 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" "+49a6044d37d694890450f52ceaceb66277a36b1e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded unidiff v0.3.3
[INFO] [stderr]   Downloaded minifb v0.28.0
[INFO] [stderr]   Downloaded tar v0.4.33
[INFO] [stderr]   Downloaded sdl2 v0.34.5
[INFO] [stderr]   Downloaded regex v1.4.6
[INFO] [stderr]   Downloaded sdl2-sys v0.34.5
[INFO] [stderr]   Downloaded orbclient v0.3.31
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] feb2cead37692b79370b7f039e0981048079715ef332a0b24d226c9ff5494eb4
[INFO] running `Command { std: "docker" "start" "feb2cead37692b79370b7f039e0981048079715ef332a0b24d226c9ff5494eb4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "feb2cead37692b79370b7f039e0981048079715ef332a0b24d226c9ff5494eb4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "feb2cead37692b79370b7f039e0981048079715ef332a0b24d226c9ff5494eb4" "/opt/rustwide/cargo-home/bin/cargo" "+49a6044d37d694890450f52ceaceb66277a36b1e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "feb2cead37692b79370b7f039e0981048079715ef332a0b24d226c9ff5494eb4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "feb2cead37692b79370b7f039e0981048079715ef332a0b24d226c9ff5494eb4" "/opt/rustwide/cargo-home/bin/cargo" "+49a6044d37d694890450f52ceaceb66277a36b1e" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.176
[INFO] [stderr]    Compiling pkg-config v0.3.27
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling find-msvc-tools v0.1.3
[INFO] [stderr]    Compiling semver v1.0.20
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]     Checking dlib v0.5.2
[INFO] [stderr]    Compiling winnow v0.7.13
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling rustix v0.38.20
[INFO] [stderr]    Compiling toml_writer v1.0.3
[INFO] [stderr]     Checking memchr v2.7.6
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking linux-raw-sys v0.4.10
[INFO] [stderr]     Checking bitflags v2.4.1
[INFO] [stderr]     Checking unicode-width v0.1.8
[INFO] [stderr]     Checking fastrand v2.0.1
[INFO] [stderr]     Checking textwrap v0.11.0
[INFO] [stderr]     Checking ansi_term v0.11.0
[INFO] [stderr]     Checking raw-window-handle v0.6.2
[INFO] [stderr]    Compiling cc v1.2.40
[INFO] [stderr]    Compiling wayland-sys v0.29.5
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]     Checking nom v6.1.2
[INFO] [stderr]    Compiling rustc_version v0.4.0
[INFO] [stderr]    Compiling quote v1.0.41
[INFO] [stderr]    Compiling wayland-scanner v0.29.5
[INFO] [stderr]     Checking chrono v0.4.42
[INFO] [stderr]     Checking xcursor v0.3.3
[INFO] [stderr]    Compiling wayland-client v0.29.5
[INFO] [stderr]    Compiling wayland-protocols v0.29.5
[INFO] [stderr]    Compiling minifb v0.28.0
[INFO] [stderr]     Checking nix v0.24.3
[INFO] [stderr]     Checking getrandom v0.3.3
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking clap v2.33.3
[INFO] [stderr]    Compiling toml_parser v1.0.3
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking tempfile v3.8.0
[INFO] [stderr]    Compiling toml_datetime v0.7.2
[INFO] [stderr]    Compiling serde_spanned v1.0.2
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]    Compiling toml v0.9.7
[INFO] [stderr]     Checking wayland-commons v0.29.5
[INFO] [stderr]    Compiling embed-resource v3.0.6
[INFO] [stderr]    Compiling gbrs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking wayland-cursor v0.29.5
[INFO] [stdout] warning: unused `CompilationResult` that must be used
[INFO] [stdout]  --> build.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     embed_resource::compile("res/icon/icon.rc", embed_resource::NONE);
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]   |
[INFO] [stdout] 3 |     let _ = embed_resource::compile("res/icon/icon.rc", embed_resource::NONE);
[INFO] [stdout]   |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `callmap::*`
[INFO] [stdout]  --> src/game_boy/cpu.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub use callmap::*;
[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: `std::str::FromStr`
[INFO] [stdout]  --> src/window.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::str::FromStr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Icon`
[INFO] [stdout]   --> src/window.rs:10:14
[INFO] [stdout]    |
[INFO] [stdout] 10 | use minifb::{Icon, Key, Window, WindowOptions};
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `KeyRepeat` and `Key`
[INFO] [stdout]  --> src/main.rs:6:14
[INFO] [stdout]   |
[INFO] [stdout] 6 | use minifb::{Key, KeyRepeat};
[INFO] [stdout]   |              ^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SecondsFormat` and `Utc`
[INFO] [stdout]  --> src/main.rs:9:14
[INFO] [stdout]   |
[INFO] [stdout] 9 | use chrono::{SecondsFormat, Utc};
[INFO] [stdout]   |              ^^^^^^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::Rng`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use rand::Rng;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ins_name`
[INFO] [stdout]   --> src/main.rs:13:35
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::game_boy::cpu::debug::{ins_name, pretty_instruction};
[INFO] [stdout]    |                                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `callmap::*`
[INFO] [stdout]  --> src/game_boy/cpu.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub use callmap::*;
[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: `std::str::FromStr`
[INFO] [stdout]  --> src/window.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::str::FromStr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Icon`
[INFO] [stdout]   --> src/window.rs:10:14
[INFO] [stdout]    |
[INFO] [stdout] 10 | use minifb::{Icon, Key, Window, WindowOptions};
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `KeyRepeat` and `Key`
[INFO] [stdout]  --> src/main.rs:6:14
[INFO] [stdout]   |
[INFO] [stdout] 6 | use minifb::{Key, KeyRepeat};
[INFO] [stdout]   |              ^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SecondsFormat` and `Utc`
[INFO] [stdout]  --> src/main.rs:9:14
[INFO] [stdout]   |
[INFO] [stdout] 9 | use chrono::{SecondsFormat, Utc};
[INFO] [stdout]   |              ^^^^^^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::Rng`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use rand::Rng;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ins_name`
[INFO] [stdout]   --> src/main.rs:13:35
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::game_boy::cpu::debug::{ins_name, pretty_instruction};
[INFO] [stdout]    |                                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `minifb::Window::limit_update_rate`: use `set_target_fps` instead, this function will be removed in the future
[INFO] [stdout]   --> src/window.rs:34:16
[INFO] [stdout]    |
[INFO] [stdout] 34 |         window.limit_update_rate(Some(std::time::Duration::from_micros(REFRESH_RATE / 2)));
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/game_boy/cpu/callmap.rs:730:13
[INFO] [stdout]     |
[INFO] [stdout] 730 |             _ => unreachable!("{:#04X} is not a valid CB instruction code", 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/game_boy/cpu/callmap.rs:730:13
[INFO] [stdout]     |
[INFO] [stdout] 474 |             0x00 => self.rlc(Register8::B),
[INFO] [stdout]     |             ---- matches some of the same values
[INFO] [stdout] 475 |             0x01 => self.rlc(Register8::C),
[INFO] [stdout]     |             ---- matches some of the same values
[INFO] [stdout] 476 |             0x02 => self.rlc(Register8::D),
[INFO] [stdout]     |             ---- matches some of the same values
[INFO] [stdout] 477 |             0x03 => self.rlc(Register8::E),
[INFO] [stdout]     |             ---- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 730 |             _ => unreachable!("{:#04X} is not a valid CB instruction code", instruction),
[INFO] [stdout]     |             ^ ...and 252 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: use of deprecated method `minifb::Window::limit_update_rate`: use `set_target_fps` instead, this function will be removed in the future
[INFO] [stdout]   --> src/window.rs:34:16
[INFO] [stdout]    |
[INFO] [stdout] 34 |         window.limit_update_rate(Some(std::time::Duration::from_micros(REFRESH_RATE / 2)));
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/game_boy/cpu/callmap.rs:730:13
[INFO] [stdout]     |
[INFO] [stdout] 730 |             _ => unreachable!("{:#04X} is not a valid CB instruction code", 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/game_boy/cpu/callmap.rs:730:13
[INFO] [stdout]     |
[INFO] [stdout] 474 |             0x00 => self.rlc(Register8::B),
[INFO] [stdout]     |             ---- matches some of the same values
[INFO] [stdout] 475 |             0x01 => self.rlc(Register8::C),
[INFO] [stdout]     |             ---- matches some of the same values
[INFO] [stdout] 476 |             0x02 => self.rlc(Register8::D),
[INFO] [stdout]     |             ---- matches some of the same values
[INFO] [stdout] 477 |             0x03 => self.rlc(Register8::E),
[INFO] [stdout]     |             ---- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 730 |             _ => unreachable!("{:#04X} is not a valid CB instruction code", instruction),
[INFO] [stdout]     |             ^ ...and 252 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: `cpu`
[INFO] [stdout]   --> src/game_boy/cpu/debug.rs:65:58
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn pretty_instruction(info: &InstructionInformation, cpu: &Cpu) -> String {
[INFO] [stdout]    |                                                          ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[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/game_boy/cpu/debug.rs:421:13
[INFO] [stdout]     |
[INFO] [stdout] 421 |             _ => "INVALID"
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/game_boy/cpu/debug.rs:421:13
[INFO] [stdout]     |
[INFO] [stdout] 389 |             0x00..=0x07 => "RLC",
[INFO] [stdout]     |             ----------- matches some of the same values
[INFO] [stdout] 390 |             0x08..=0x0F => "RRC",
[INFO] [stdout]     |             ----------- matches some of the same values
[INFO] [stdout] 391 |             0x10..=0x17 => "RL",
[INFO] [stdout]     |             ----------- matches some of the same values
[INFO] [stdout] 392 |             0x18..=0x1F => "RR",
[INFO] [stdout]     |             ----------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 421 |             _ => "INVALID"
[INFO] [stdout]     |             ^ ...and 28 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mmu`
[INFO] [stdout]   --> src/game_boy/video.rs:66:24
[INFO] [stdout]    |
[INFO] [stdout] 66 |     fn push(&mut self, mmu: &mut MMU, buffer: &mut Box<[u8]>) -> bool {
[INFO] [stdout]    |                        ^^^ help: if this is intentional, prefix it with an underscore: `_mmu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer`
[INFO] [stdout]   --> src/game_boy/video.rs:66:39
[INFO] [stdout]    |
[INFO] [stdout] 66 |     fn push(&mut self, mmu: &mut MMU, buffer: &mut Box<[u8]>) -> bool {
[INFO] [stdout]    |                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]   --> src/game_boy/cpu/debug.rs:65:58
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn pretty_instruction(info: &InstructionInformation, cpu: &Cpu) -> String {
[INFO] [stdout]    |                                                          ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:87:9
[INFO] [stdout]    |
[INFO] [stdout] 87 |     let mut run = true;
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:96:13
[INFO] [stdout]    |
[INFO] [stdout] 96 |         let mut has_vblanked = false;
[INFO] [stdout]    |             ----^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/game_boy/cpu/debug.rs:421:13
[INFO] [stdout]     |
[INFO] [stdout] 421 |             _ => "INVALID"
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/game_boy/cpu/debug.rs:421:13
[INFO] [stdout]     |
[INFO] [stdout] 389 |             0x00..=0x07 => "RLC",
[INFO] [stdout]     |             ----------- matches some of the same values
[INFO] [stdout] 390 |             0x08..=0x0F => "RRC",
[INFO] [stdout]     |             ----------- matches some of the same values
[INFO] [stdout] 391 |             0x10..=0x17 => "RL",
[INFO] [stdout]     |             ----------- matches some of the same values
[INFO] [stdout] 392 |             0x18..=0x1F => "RR",
[INFO] [stdout]     |             ----------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 421 |             _ => "INVALID"
[INFO] [stdout]     |             ^ ...and 28 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `run`
[INFO] [stdout]   --> src/main.rs:87:9
[INFO] [stdout]    |
[INFO] [stdout] 87 |     let mut run = true;
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_run`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `cou` is assigned to, but never used
[INFO] [stdout]   --> src/main.rs:89:9
[INFO] [stdout]    |
[INFO] [stdout] 89 |     let mut cou = 0;
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_cou` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `display_time`
[INFO] [stdout]    --> src/main.rs:177:13
[INFO] [stdout]     |
[INFO] [stdout] 177 |         let display_time = end - before_display;
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_display_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `cou` is never read
[INFO] [stdout]    --> src/main.rs:170:9
[INFO] [stdout]     |
[INFO] [stdout] 170 |         cou += 1;
[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: field `0` is never read
[INFO] [stdout]   --> src/game_boy.rs:16:14
[INFO] [stdout]    |
[INFO] [stdout] 16 |     MemError(MemError),
[INFO] [stdout]    |     -------- ^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GBRSError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 16 -     MemError(MemError),
[INFO] [stdout] 16 +     MemError(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `clocks_left` is never read
[INFO] [stdout]   --> src/game_boy.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct InstructionInformation {
[INFO] [stdout]    |            ---------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 31 |     clocks_left: u32
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `InstructionInformation` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `data` and `clocks_left` are never used
[INFO] [stdout]   --> src/game_boy.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl InstructionInformation {
[INFO] [stdout]    | --------------------------- methods in this implementation
[INFO] [stdout] 35 |     pub fn instruction(&self) -> u8 { self.instruction }
[INFO] [stdout] 36 |     pub fn data(&self) -> [Option<u8>; 4] { self.data }
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn clocks_left(&self) -> u32 { self.clocks_left }
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `frame` is never used
[INFO] [stdout]    --> src/game_boy.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl GameBoy {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn frame(&mut self, buffer: &mut Box<[u8]>) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/game_boy/cpu.rs:148:8
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl Cpu {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 148 |     fn b_reg(&self) -> u8 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     fn b_reg_mut(&mut self) -> &mut u8 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     fn c_reg_mut(&mut self) -> &mut u8 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     fn d_reg(&self) -> u8 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     fn d_reg_mut(&mut self) -> &mut u8 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     fn e_reg(&self) -> u8 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     fn e_reg_mut(&mut self) -> &mut u8 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     fn h_reg(&self) -> u8 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     fn h_reg_mut(&mut self) -> &mut u8 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     fn l_reg(&self) -> u8 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     fn l_reg_mut(&mut self) -> &mut u8 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn dump_flags(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_flags_from_byte` is never used
[INFO] [stdout]    --> src/game_boy/cpu.rs:274:19
[INFO] [stdout]     |
[INFO] [stdout] 220 | impl Cpu {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 274 |     pub(super) fn set_flags_from_byte(&mut self, byte: u8) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `interrupt_enabled` is never used
[INFO] [stdout]   --> src/game_boy/cpu/interrupts.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout]  4 | impl Cpu {
[INFO] [stdout]    | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 16 |     fn interrupt_enabled(&self, interrupt: Interrupt) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_pc` is never used
[INFO] [stdout]   --> src/game_boy/cpu/debug.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl Cpu {
[INFO] [stdout]    | -------- method in this implementation
[INFO] [stdout] 35 |     pub fn get_pc(&self) -> u16 {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/game_boy/memory.rs:19:14
[INFO] [stdout]    |
[INFO] [stdout] 19 |     RomError(rom::RomError),
[INFO] [stdout]    |     -------- ^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MemError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 19 -     RomError(rom::RomError),
[INFO] [stdout] 19 +     RomError(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/game_boy/memory.rs:20:26
[INFO] [stdout]    |
[INFO] [stdout] 20 |     InvalidAddressRegion(MemRegion),
[INFO] [stdout]    |     -------------------- ^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MemError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 20 -     InvalidAddressRegion(MemRegion),
[INFO] [stdout] 20 +     InvalidAddressRegion(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `BootRomOutOfBounds` is never constructed
[INFO] [stdout]   --> src/game_boy/memory.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum MemError {
[INFO] [stdout]    |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 23 |     BootRomOutOfBounds
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MemError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MEM_SIZE` is never used
[INFO] [stdout]   --> src/game_boy/memory.rs:34:7
[INFO] [stdout]    |
[INFO] [stdout] 34 | const MEM_SIZE: usize = 0x10000;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `get_region_start` and `get_offset_in_region` are never used
[INFO] [stdout]    --> src/game_boy/memory.rs:82:18
[INFO] [stdout]     |
[INFO] [stdout]  66 | impl MemRegion {
[INFO] [stdout]     | -------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  82 |     pub const fn get_region_start(region: MemRegion) -> u16 {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn get_offset_in_region(address: u16) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DBG_WRITE_ADDRESSES` is never used
[INFO] [stdout]    --> src/game_boy/memory.rs:125:7
[INFO] [stdout]     |
[INFO] [stdout] 125 | const DBG_WRITE_ADDRESSES: &[u16] = &[0xFF50u16];
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DBG_READ_ADDRESSES` is never used
[INFO] [stdout]    --> src/game_boy/memory.rs:126:7
[INFO] [stdout]     |
[INFO] [stdout] 126 | const DBG_READ_ADDRESSES: &[u16] = &[0xFF];
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `rom`, `read_16_boot`, and `write_16` are never used
[INFO] [stdout]    --> src/game_boy/memory.rs:140:12
[INFO] [stdout]     |
[INFO] [stdout] 128 | impl MMU {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn rom(&self) -> &rom::Rom {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     fn read_16_boot(&self, address: u16) -> MemResult<u16> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub fn write_16(&mut self, address: u16, val: u16) -> MemResult<()> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `P1` is never used
[INFO] [stdout]   --> src/game_boy/memory/addresses.rs:11:15
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub const P1: u16 = 0xFF00;
[INFO] [stdout]    |               ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SB` is never used
[INFO] [stdout]   --> src/game_boy/memory/addresses.rs:16:15
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub const SB: u16 = 0xFF01;
[INFO] [stdout]    |               ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SC` is never used
[INFO] [stdout]   --> src/game_boy/memory/addresses.rs:18:15
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub const SC: u16 = 0xFF02;
[INFO] [stdout]    |               ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WINDOW_Y` is never used
[INFO] [stdout]   --> src/game_boy/memory/addresses.rs:37:15
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub const WINDOW_Y: u16 = 0xFF4A;
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WINDOW_X` is never used
[INFO] [stdout]   --> src/game_boy/memory/addresses.rs:39:15
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub const WINDOW_X: u16 = 0xFF4B;
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/game_boy/memory/rom.rs:15:13
[INFO] [stdout]    |
[INFO] [stdout] 15 |     IoError(std::io::Error),
[INFO] [stdout]    |     ------- ^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RomError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 15 -     IoError(std::io::Error),
[INFO] [stdout] 15 +     IoError(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/game_boy/memory/rom.rs:18:30
[INFO] [stdout]    |
[INFO] [stdout] 18 |     UnsupportedCartridgeType(u8),
[INFO] [stdout]    |     ------------------------ ^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RomError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 18 -     UnsupportedCartridgeType(u8),
[INFO] [stdout] 18 +     UnsupportedCartridgeType(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/game_boy/memory/rom.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct Rom {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 49 |     title: String,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 50 |     /// Game Boy color or not
[INFO] [stdout] 51 |     color: bool,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 52 |     /// Rom size in bytes
[INFO] [stdout] 53 |     rom_size: usize,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 54 |     /// Ram size in bytes
[INFO] [stdout] 55 |     ram_size: usize,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 56 |     /// Are Super GameBoy functions supported?
[INFO] [stdout] 57 |     super_game_boy: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 58 |     /// The cartridge type
[INFO] [stdout] 59 |     cartridge_type: CartridgeType,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 60 |     /// Is the destination japanese?
[INFO] [stdout] 61 |     japanese: bool,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Rom` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `title`, `is_color`, `is_super_game_boy`, and `is_japanese` are never used
[INFO] [stdout]   --> src/game_boy/memory/rom.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 68 | impl Rom {
[INFO] [stdout]    | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn title(&self) -> &str {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn is_color(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn is_super_game_boy(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub fn is_japanese(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `ROM_SIZE_LOC` is never used
[INFO] [stdout]    --> src/game_boy/memory/rom.rs:132:11
[INFO] [stdout]     |
[INFO] [stdout] 131 | impl Rom {
[INFO] [stdout]     | -------- associated constant in this implementation
[INFO] [stdout] 132 |     const ROM_SIZE_LOC: usize = 0x148;
[INFO] [stdout]     |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `print_meta` is never used
[INFO] [stdout]    --> src/game_boy/memory/rom.rs:187:12
[INFO] [stdout]     |
[INFO] [stdout] 186 | impl Rom {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] 187 |     pub fn print_meta(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_two_bit` is never used
[INFO] [stdout]   --> src/game_boy/memory/video.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl VideoMode {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 17 |     fn from_two_bit(val: u8) -> VideoMode {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SpriteSize` is never used
[INFO] [stdout]   --> src/game_boy/memory/video.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub enum SpriteSize {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `address_range` is never used
[INFO] [stdout]   --> src/game_boy/memory/video.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | impl BgTileMapMode {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] 40 |     pub fn address_range(&self) -> std::ops::RangeInclusive<u16> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LcdcSettings` is never constructed
[INFO] [stdout]   --> src/game_boy/memory/video.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub struct LcdcSettings {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `LycStatInterrupt` is never constructed
[INFO] [stdout]   --> src/game_boy/memory/video.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub enum LcdStatusBit {
[INFO] [stdout]    |          ------------ variant in this enum
[INFO] [stdout] 73 |     LycStatInterrupt,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LcdControlBit` is never used
[INFO] [stdout]   --> src/game_boy/memory/video.rs:92:10
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub enum LcdControlBit {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `bit` is never used
[INFO] [stdout]    --> src/game_boy/memory/video.rs:104:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | impl LcdControlBit {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] 104 |     fn bit(&self) -> u8 {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_byte` is never used
[INFO] [stdout]    --> src/game_boy/memory/video.rs:128:8
[INFO] [stdout]     |
[INFO] [stdout] 127 | impl LcdcSettings {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] 128 |     fn from_byte(byte: u8) -> LcdcSettings {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `read_lcdc_settings`, `display_enabled`, `sprite_size`, `sprite_display_enabled`, and `set_lcdc_bit` are never used
[INFO] [stdout]    --> src/game_boy/memory/video.rs:155:12
[INFO] [stdout]     |
[INFO] [stdout] 154 | impl MMU {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] 155 |     pub fn read_lcdc_settings(&self) -> LcdcSettings {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn display_enabled(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn sprite_size(&self) -> SpriteSize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     pub fn sprite_display_enabled(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |     fn set_lcdc_bit(&mut self, bit: u8, high: bool) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/game_boy/memory/video.rs:227:12
[INFO] [stdout]     |
[INFO] [stdout] 226 | impl MMU {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] 227 |     pub fn enable_lyc_interrupt(&mut self, high: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn get_lyc_interrupt_enabled(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     pub fn enable_oam_interrupt(&mut self, high: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub fn get_oam_interrupt_enabled(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub fn enable_vblank_interrupt(&mut self, high: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     pub fn get_vblank_interrupt_enabled(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     pub fn enable_hblank_interrupt(&mut self, high: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 255 |     pub fn get_hblank_interrupt_enabled(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 288 |     pub fn get_video_mode(&self) -> VideoMode {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/game_boy/memory/video.rs:309:12
[INFO] [stdout]     |
[INFO] [stdout] 308 | impl MMU {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] 309 |     pub fn set_scy(&mut self, val: u8) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 317 |     pub fn set_scx(&mut self, val: u8) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 333 |     pub fn set_lyc(&mut self, val: u8) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 341 |     pub fn set_wy(&mut self, val: u8) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 345 |     pub fn read_wy(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 349 |     pub fn set_wx(&mut self, val: u8) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 353 |     pub fn read_wx(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `SPRITE_PALETTE_0`, `sprite_palette_0`, `SPRITE_PALETTE_1`, and `sprite_palette_1` are never used
[INFO] [stdout]    --> src/game_boy/memory/video.rs:390:11
[INFO] [stdout]     |
[INFO] [stdout] 383 | impl MMU {
[INFO] [stdout]     | -------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 390 |     const SPRITE_PALETTE_0: u16 = 0xFF48;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 391 |
[INFO] [stdout] 392 |     pub fn sprite_palette_0(&self) -> Palette {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 396 |     const SPRITE_PALETTE_1: u16 = 0xFF49;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 397 |
[INFO] [stdout] 398 |     pub fn sprite_palette_1(&self) -> Palette {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_bytes` is never used
[INFO] [stdout]    --> src/game_boy/memory/video.rs:434:8
[INFO] [stdout]     |
[INFO] [stdout] 407 | impl Sprite {
[INFO] [stdout]     | ----------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 434 |     fn from_bytes(bytes: [u8; 16]) -> Sprite {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/game_boy/video.rs:14:18
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct FifoPixel(u8);
[INFO] [stdout]    |        --------- ^^
[INFO] [stdout]    |        |
[INFO] [stdout]    |        field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout]    = note: `FifoPixel` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `color`, `palette`, and `bg_priority` are never used
[INFO] [stdout]   --> src/game_boy/video.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl FifoPixel {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] 23 |     fn color(&self) -> u8 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     fn palette(&self) -> u8 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     fn bg_priority(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `dot_delay`, `fifo_bg`, `fifo_obj`, and `counter_bg` are never read
[INFO] [stdout]   --> src/game_boy/video.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct PPU {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] 40 |     dot_delay: u8,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 41 |     fifo_bg: FIFO,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 42 |     fifo_obj: FIFO,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 43 |     counter_bg: u8,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `dot`, and `push` are never used
[INFO] [stdout]   --> src/game_boy/video.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl PPU {
[INFO] [stdout]    | -------- associated items in this implementation
[INFO] [stdout] 47 |     pub fn new() -> PPU {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn dot(&mut self, mmu: &mut MMU, buffer: &mut Box<[u8]>) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     fn push(&mut self, mmu: &mut MMU, buffer: &mut Box<[u8]>) -> bool {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `mixed_fifo` is never used
[INFO] [stdout]    --> src/game_boy/video.rs:145:8
[INFO] [stdout]     |
[INFO] [stdout]  72 | impl PPU {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 145 |     fn mixed_fifo(&self) -> FIFO {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TILE_BYTE_SIZE` is never used
[INFO] [stdout]    --> src/game_boy/video.rs:100:19
[INFO] [stdout]     |
[INFO] [stdout] 100 |             const TILE_BYTE_SIZE: u8 = 16; // For now just make it a constant (Tile not implemented yet)
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `win` is never used
[INFO] [stdout]   --> src/window.rs:87:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl GbWindow {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub fn win(&self) -> &Window {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/cpu/instructions.rs:336:9
[INFO] [stdout]     |
[INFO] [stdout] 336 |         self.mmu.write_8(hl, val);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 336 |         let _ = self.mmu.write_8(hl, val);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/cpu/instructions.rs:416:9
[INFO] [stdout]     |
[INFO] [stdout] 416 |         self.mmu.write_8(hl, val);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 416 |         let _ = self.mmu.write_8(hl, val);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/cpu/instructions.rs:540:9
[INFO] [stdout]     |
[INFO] [stdout] 540 |         self.mmu.write_8(n16, n8);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 540 |         let _ = self.mmu.write_8(n16, n8);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/cpu/instructions.rs:563:9
[INFO] [stdout]     |
[INFO] [stdout] 563 |         self.mmu.write_8(n16, self.a_reg());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 563 |         let _ = self.mmu.write_8(n16, self.a_reg());
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/game_boy/cpu/instructions.rs:574:37
[INFO] [stdout]     |
[INFO] [stdout] 574 |         assert!(n16 >= 0xFF00u16 && n16 <= 0xFFFFu16);
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/cpu/instructions.rs:614:9
[INFO] [stdout]     |
[INFO] [stdout] 614 |         self.mmu.write_8(n16, self.reg(from));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 614 |         let _ = self.mmu.write_8(n16, self.reg(from));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/game_boy/cpu/instructions.rs:624:37
[INFO] [stdout]     |
[INFO] [stdout] 624 |         assert!(n16 >= 0xFF00u16 && n16 <= 0xFFFFu16);
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/cpu/instructions.rs:691:9
[INFO] [stdout]     |
[INFO] [stdout] 691 |         self.mmu.write_8(n16, (self.sp >> 8) as u8);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 691 |         let _ = self.mmu.write_8(n16, (self.sp >> 8) as u8);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/cpu/instructions.rs:692:9
[INFO] [stdout]     |
[INFO] [stdout] 692 |         self.mmu.write_8(n16 + 1, (self.sp & 0xFF) as u8);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 692 |         let _ = self.mmu.write_8(n16 + 1, (self.sp & 0xFF) as u8);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/cpu/instructions.rs:846:9
[INFO] [stdout]     |
[INFO] [stdout] 846 |         self.mmu.write_8(self.reg16(Register16::HL), val);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 846 |         let _ = self.mmu.write_8(self.reg16(Register16::HL), val);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/cpu/instructions.rs:903:9
[INFO] [stdout]     |
[INFO] [stdout] 903 |         self.mmu.write_8(reg_val, val);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 903 |         let _ = self.mmu.write_8(reg_val, val);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/cpu/instructions.rs:958:9
[INFO] [stdout]     |
[INFO] [stdout] 958 |         self.mmu.write_8(reg_val, val);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 958 |         let _ = self.mmu.write_8(reg_val, val);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/game_boy/cpu/instructions.rs:1011:9
[INFO] [stdout]      |
[INFO] [stdout] 1011 |         self.mmu.write_8(reg_val, val);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1011 |         let _ = self.mmu.write_8(reg_val, val);
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/game_boy/cpu/instructions.rs:1065:9
[INFO] [stdout]      |
[INFO] [stdout] 1065 |         self.mmu.write_8(reg_val, val);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1065 |         let _ = self.mmu.write_8(reg_val, val);
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/game_boy/cpu/instructions.rs:1180:9
[INFO] [stdout]      |
[INFO] [stdout] 1180 |         self.mmu.write_8(self.reg16(Register16::HL), read);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1180 |         let _ = self.mmu.write_8(self.reg16(Register16::HL), read);
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/game_boy/cpu/instructions.rs:1199:9
[INFO] [stdout]      |
[INFO] [stdout] 1199 |         self.mmu.write_8(reg_val, val);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1199 |         let _ = self.mmu.write_8(reg_val, val);
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/game_boy/cpu/instructions.rs:1245:9
[INFO] [stdout]      |
[INFO] [stdout] 1245 |         self.mmu.write_8(reg_val, val);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1245 |         let _ = self.mmu.write_8(reg_val, val);
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/game_boy/cpu/instructions.rs:1290:9
[INFO] [stdout]      |
[INFO] [stdout] 1290 |         self.mmu.write_8(reg_val, val);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1290 |         let _ = self.mmu.write_8(reg_val, val);
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/game_boy/cpu/instructions.rs:1372:9
[INFO] [stdout]      |
[INFO] [stdout] 1372 |         self.mmu.write_8(reg_val, val);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1372 |         let _ = self.mmu.write_8(reg_val, val);
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/game_boy/cpu/time.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |         self.mmu.write_8(adr::timer::COUNTER, result);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let _ = self.mmu.write_8(adr::timer::COUNTER, result);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/game_boy/cpu/time.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |         self.mmu.raw_write_8(adr::timer::DIVIDER_REGISTER, result);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let _ = self.mmu.raw_write_8(adr::timer::DIVIDER_REGISTER, result);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/game_boy/memory/misc.rs:10:13
[INFO] [stdout]    |
[INFO] [stdout] 10 |             self.write_8(DEST + i, read);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 10 |             let _ = self.write_8(DEST + i, read);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/memory/video.rs:214:9
[INFO] [stdout]     |
[INFO] [stdout] 214 |         self.write_8(adr::video::LCD_CONTROL, val);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 214 |         let _ = self.write_8(adr::video::LCD_CONTROL, val);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/memory/video.rs:285:9
[INFO] [stdout]     |
[INFO] [stdout] 285 |         self.write_8(adr::video::LCD_STATUS, val);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 285 |         let _ = self.write_8(adr::video::LCD_STATUS, val);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/memory/video.rs:299:9
[INFO] [stdout]     |
[INFO] [stdout] 299 |         self.write_8(adr::video::LCD_STATUS, val);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 299 |         let _ = self.write_8(adr::video::LCD_STATUS, val);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/memory/video.rs:310:9
[INFO] [stdout]     |
[INFO] [stdout] 310 |         self.write_8(adr::video::SCREEN_Y, val);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 310 |         let _ = self.write_8(adr::video::SCREEN_Y, val);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/memory/video.rs:318:9
[INFO] [stdout]     |
[INFO] [stdout] 318 |         self.write_8(adr::video::SCREEN_X, val);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 318 |         let _ = self.write_8(adr::video::SCREEN_X, val);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/memory/video.rs:326:9
[INFO] [stdout]     |
[INFO] [stdout] 326 |         self.write_8(adr::video::CURRENT_LINE, val);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 326 |         let _ = self.write_8(adr::video::CURRENT_LINE, val);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/memory/video.rs:334:9
[INFO] [stdout]     |
[INFO] [stdout] 334 |         self.write_8(adr::video::LINE_COMPARE, val);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 334 |         let _ = self.write_8(adr::video::LINE_COMPARE, val);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/memory/video.rs:342:9
[INFO] [stdout]     |
[INFO] [stdout] 342 |         self.write_8(adr::video::WINDOW_Y, val);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 342 |         let _ = self.write_8(adr::video::WINDOW_Y, val);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/memory/video.rs:350:9
[INFO] [stdout]     |
[INFO] [stdout] 350 |         self.write_8(adr::video::WINDOW_X, val);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 350 |         let _ = self.write_8(adr::video::WINDOW_X, val);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/game_boy/memory/flags.rs:10:13
[INFO] [stdout]    |
[INFO] [stdout] 10 |             self.write_8(adr::interrupts::FLAGS, if_val);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 10 |             let _ = self.write_8(adr::interrupts::FLAGS, if_val);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/game_boy/memory/flags.rs:16:13
[INFO] [stdout]    |
[INFO] [stdout] 16 |             self.write_8(adr::interrupts::FLAGS, if_val);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 16 |             let _ = self.write_8(adr::interrupts::FLAGS, if_val);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mmu`
[INFO] [stdout]   --> src/game_boy/video.rs:66:24
[INFO] [stdout]    |
[INFO] [stdout] 66 |     fn push(&mut self, mmu: &mut MMU, buffer: &mut Box<[u8]>) -> bool {
[INFO] [stdout]    |                        ^^^ help: if this is intentional, prefix it with an underscore: `_mmu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer`
[INFO] [stdout]   --> src/game_boy/video.rs:66:39
[INFO] [stdout]    |
[INFO] [stdout] 66 |     fn push(&mut self, mmu: &mut MMU, buffer: &mut Box<[u8]>) -> bool {
[INFO] [stdout]    |                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: feature `coroutines` is declared but not used
[INFO] [stdout]  --> src/main.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(coroutines)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_features)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:87:9
[INFO] [stdout]    |
[INFO] [stdout] 87 |     let mut run = true;
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:96:13
[INFO] [stdout]    |
[INFO] [stdout] 96 |         let mut has_vblanked = false;
[INFO] [stdout]    |             ----^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `run`
[INFO] [stdout]   --> src/main.rs:87:9
[INFO] [stdout]    |
[INFO] [stdout] 87 |     let mut run = true;
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_run`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `cou` is assigned to, but never used
[INFO] [stdout]   --> src/main.rs:89:9
[INFO] [stdout]    |
[INFO] [stdout] 89 |     let mut cou = 0;
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_cou` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `display_time`
[INFO] [stdout]    --> src/main.rs:177:13
[INFO] [stdout]     |
[INFO] [stdout] 177 |         let display_time = end - before_display;
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_display_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `cou` is never read
[INFO] [stdout]    --> src/main.rs:170:9
[INFO] [stdout]     |
[INFO] [stdout] 170 |         cou += 1;
[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: field `0` is never read
[INFO] [stdout]   --> src/game_boy.rs:16:14
[INFO] [stdout]    |
[INFO] [stdout] 16 |     MemError(MemError),
[INFO] [stdout]    |     -------- ^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GBRSError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 16 -     MemError(MemError),
[INFO] [stdout] 16 +     MemError(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `clocks_left` is never read
[INFO] [stdout]   --> src/game_boy.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct InstructionInformation {
[INFO] [stdout]    |            ---------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 31 |     clocks_left: u32
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `InstructionInformation` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `data` and `clocks_left` are never used
[INFO] [stdout]   --> src/game_boy.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl InstructionInformation {
[INFO] [stdout]    | --------------------------- methods in this implementation
[INFO] [stdout] 35 |     pub fn instruction(&self) -> u8 { self.instruction }
[INFO] [stdout] 36 |     pub fn data(&self) -> [Option<u8>; 4] { self.data }
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn clocks_left(&self) -> u32 { self.clocks_left }
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `frame` is never used
[INFO] [stdout]    --> src/game_boy.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl GameBoy {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn frame(&mut self, buffer: &mut Box<[u8]>) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/game_boy/cpu.rs:148:8
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl Cpu {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 148 |     fn b_reg(&self) -> u8 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     fn b_reg_mut(&mut self) -> &mut u8 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     fn c_reg_mut(&mut self) -> &mut u8 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     fn d_reg(&self) -> u8 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     fn d_reg_mut(&mut self) -> &mut u8 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     fn e_reg(&self) -> u8 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     fn e_reg_mut(&mut self) -> &mut u8 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     fn h_reg(&self) -> u8 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     fn h_reg_mut(&mut self) -> &mut u8 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     fn l_reg(&self) -> u8 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     fn l_reg_mut(&mut self) -> &mut u8 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn dump_flags(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_flags_from_byte` is never used
[INFO] [stdout]    --> src/game_boy/cpu.rs:274:19
[INFO] [stdout]     |
[INFO] [stdout] 220 | impl Cpu {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 274 |     pub(super) fn set_flags_from_byte(&mut self, byte: u8) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `interrupt_enabled` is never used
[INFO] [stdout]   --> src/game_boy/cpu/interrupts.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout]  4 | impl Cpu {
[INFO] [stdout]    | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 16 |     fn interrupt_enabled(&self, interrupt: Interrupt) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_pc` is never used
[INFO] [stdout]   --> src/game_boy/cpu/debug.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl Cpu {
[INFO] [stdout]    | -------- method in this implementation
[INFO] [stdout] 35 |     pub fn get_pc(&self) -> u16 {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/game_boy/memory.rs:19:14
[INFO] [stdout]    |
[INFO] [stdout] 19 |     RomError(rom::RomError),
[INFO] [stdout]    |     -------- ^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MemError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 19 -     RomError(rom::RomError),
[INFO] [stdout] 19 +     RomError(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/game_boy/memory.rs:20:26
[INFO] [stdout]    |
[INFO] [stdout] 20 |     InvalidAddressRegion(MemRegion),
[INFO] [stdout]    |     -------------------- ^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MemError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 20 -     InvalidAddressRegion(MemRegion),
[INFO] [stdout] 20 +     InvalidAddressRegion(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `BootRomOutOfBounds` is never constructed
[INFO] [stdout]   --> src/game_boy/memory.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum MemError {
[INFO] [stdout]    |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 23 |     BootRomOutOfBounds
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MemError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MEM_SIZE` is never used
[INFO] [stdout]   --> src/game_boy/memory.rs:34:7
[INFO] [stdout]    |
[INFO] [stdout] 34 | const MEM_SIZE: usize = 0x10000;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `get_region_start` and `get_offset_in_region` are never used
[INFO] [stdout]    --> src/game_boy/memory.rs:82:18
[INFO] [stdout]     |
[INFO] [stdout]  66 | impl MemRegion {
[INFO] [stdout]     | -------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  82 |     pub const fn get_region_start(region: MemRegion) -> u16 {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn get_offset_in_region(address: u16) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DBG_WRITE_ADDRESSES` is never used
[INFO] [stdout]    --> src/game_boy/memory.rs:125:7
[INFO] [stdout]     |
[INFO] [stdout] 125 | const DBG_WRITE_ADDRESSES: &[u16] = &[0xFF50u16];
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DBG_READ_ADDRESSES` is never used
[INFO] [stdout]    --> src/game_boy/memory.rs:126:7
[INFO] [stdout]     |
[INFO] [stdout] 126 | const DBG_READ_ADDRESSES: &[u16] = &[0xFF];
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `rom`, `read_16_boot`, and `write_16` are never used
[INFO] [stdout]    --> src/game_boy/memory.rs:140:12
[INFO] [stdout]     |
[INFO] [stdout] 128 | impl MMU {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn rom(&self) -> &rom::Rom {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     fn read_16_boot(&self, address: u16) -> MemResult<u16> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub fn write_16(&mut self, address: u16, val: u16) -> MemResult<()> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `P1` is never used
[INFO] [stdout]   --> src/game_boy/memory/addresses.rs:11:15
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub const P1: u16 = 0xFF00;
[INFO] [stdout]    |               ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SB` is never used
[INFO] [stdout]   --> src/game_boy/memory/addresses.rs:16:15
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub const SB: u16 = 0xFF01;
[INFO] [stdout]    |               ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SC` is never used
[INFO] [stdout]   --> src/game_boy/memory/addresses.rs:18:15
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub const SC: u16 = 0xFF02;
[INFO] [stdout]    |               ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WINDOW_Y` is never used
[INFO] [stdout]   --> src/game_boy/memory/addresses.rs:37:15
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub const WINDOW_Y: u16 = 0xFF4A;
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WINDOW_X` is never used
[INFO] [stdout]   --> src/game_boy/memory/addresses.rs:39:15
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub const WINDOW_X: u16 = 0xFF4B;
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/game_boy/memory/rom.rs:15:13
[INFO] [stdout]    |
[INFO] [stdout] 15 |     IoError(std::io::Error),
[INFO] [stdout]    |     ------- ^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RomError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 15 -     IoError(std::io::Error),
[INFO] [stdout] 15 +     IoError(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/game_boy/memory/rom.rs:18:30
[INFO] [stdout]    |
[INFO] [stdout] 18 |     UnsupportedCartridgeType(u8),
[INFO] [stdout]    |     ------------------------ ^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RomError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 18 -     UnsupportedCartridgeType(u8),
[INFO] [stdout] 18 +     UnsupportedCartridgeType(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/game_boy/memory/rom.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct Rom {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 49 |     title: String,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 50 |     /// Game Boy color or not
[INFO] [stdout] 51 |     color: bool,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 52 |     /// Rom size in bytes
[INFO] [stdout] 53 |     rom_size: usize,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 54 |     /// Ram size in bytes
[INFO] [stdout] 55 |     ram_size: usize,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 56 |     /// Are Super GameBoy functions supported?
[INFO] [stdout] 57 |     super_game_boy: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 58 |     /// The cartridge type
[INFO] [stdout] 59 |     cartridge_type: CartridgeType,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 60 |     /// Is the destination japanese?
[INFO] [stdout] 61 |     japanese: bool,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Rom` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `title`, `is_color`, `is_super_game_boy`, and `is_japanese` are never used
[INFO] [stdout]   --> src/game_boy/memory/rom.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 68 | impl Rom {
[INFO] [stdout]    | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn title(&self) -> &str {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn is_color(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn is_super_game_boy(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub fn is_japanese(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `ROM_SIZE_LOC` is never used
[INFO] [stdout]    --> src/game_boy/memory/rom.rs:132:11
[INFO] [stdout]     |
[INFO] [stdout] 131 | impl Rom {
[INFO] [stdout]     | -------- associated constant in this implementation
[INFO] [stdout] 132 |     const ROM_SIZE_LOC: usize = 0x148;
[INFO] [stdout]     |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `print_meta` is never used
[INFO] [stdout]    --> src/game_boy/memory/rom.rs:187:12
[INFO] [stdout]     |
[INFO] [stdout] 186 | impl Rom {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] 187 |     pub fn print_meta(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_two_bit` is never used
[INFO] [stdout]   --> src/game_boy/memory/video.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl VideoMode {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 17 |     fn from_two_bit(val: u8) -> VideoMode {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SpriteSize` is never used
[INFO] [stdout]   --> src/game_boy/memory/video.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub enum SpriteSize {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `address_range` is never used
[INFO] [stdout]   --> src/game_boy/memory/video.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | impl BgTileMapMode {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] 40 |     pub fn address_range(&self) -> std::ops::RangeInclusive<u16> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LcdcSettings` is never constructed
[INFO] [stdout]   --> src/game_boy/memory/video.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub struct LcdcSettings {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `LycStatInterrupt` is never constructed
[INFO] [stdout]   --> src/game_boy/memory/video.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub enum LcdStatusBit {
[INFO] [stdout]    |          ------------ variant in this enum
[INFO] [stdout] 73 |     LycStatInterrupt,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LcdControlBit` is never used
[INFO] [stdout]   --> src/game_boy/memory/video.rs:92:10
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub enum LcdControlBit {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `bit` is never used
[INFO] [stdout]    --> src/game_boy/memory/video.rs:104:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | impl LcdControlBit {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] 104 |     fn bit(&self) -> u8 {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_byte` is never used
[INFO] [stdout]    --> src/game_boy/memory/video.rs:128:8
[INFO] [stdout]     |
[INFO] [stdout] 127 | impl LcdcSettings {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] 128 |     fn from_byte(byte: u8) -> LcdcSettings {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `read_lcdc_settings`, `display_enabled`, `sprite_size`, `sprite_display_enabled`, and `set_lcdc_bit` are never used
[INFO] [stdout]    --> src/game_boy/memory/video.rs:155:12
[INFO] [stdout]     |
[INFO] [stdout] 154 | impl MMU {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] 155 |     pub fn read_lcdc_settings(&self) -> LcdcSettings {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn display_enabled(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn sprite_size(&self) -> SpriteSize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     pub fn sprite_display_enabled(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |     fn set_lcdc_bit(&mut self, bit: u8, high: bool) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/game_boy/memory/video.rs:227:12
[INFO] [stdout]     |
[INFO] [stdout] 226 | impl MMU {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] 227 |     pub fn enable_lyc_interrupt(&mut self, high: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn get_lyc_interrupt_enabled(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     pub fn enable_oam_interrupt(&mut self, high: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub fn get_oam_interrupt_enabled(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub fn enable_vblank_interrupt(&mut self, high: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     pub fn get_vblank_interrupt_enabled(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     pub fn enable_hblank_interrupt(&mut self, high: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 255 |     pub fn get_hblank_interrupt_enabled(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 288 |     pub fn get_video_mode(&self) -> VideoMode {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/game_boy/memory/video.rs:309:12
[INFO] [stdout]     |
[INFO] [stdout] 308 | impl MMU {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] 309 |     pub fn set_scy(&mut self, val: u8) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 317 |     pub fn set_scx(&mut self, val: u8) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 333 |     pub fn set_lyc(&mut self, val: u8) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 341 |     pub fn set_wy(&mut self, val: u8) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 345 |     pub fn read_wy(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 349 |     pub fn set_wx(&mut self, val: u8) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 353 |     pub fn read_wx(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `SPRITE_PALETTE_0`, `sprite_palette_0`, `SPRITE_PALETTE_1`, and `sprite_palette_1` are never used
[INFO] [stdout]    --> src/game_boy/memory/video.rs:390:11
[INFO] [stdout]     |
[INFO] [stdout] 383 | impl MMU {
[INFO] [stdout]     | -------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 390 |     const SPRITE_PALETTE_0: u16 = 0xFF48;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 391 |
[INFO] [stdout] 392 |     pub fn sprite_palette_0(&self) -> Palette {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 396 |     const SPRITE_PALETTE_1: u16 = 0xFF49;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 397 |
[INFO] [stdout] 398 |     pub fn sprite_palette_1(&self) -> Palette {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_bytes` is never used
[INFO] [stdout]    --> src/game_boy/memory/video.rs:434:8
[INFO] [stdout]     |
[INFO] [stdout] 407 | impl Sprite {
[INFO] [stdout]     | ----------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 434 |     fn from_bytes(bytes: [u8; 16]) -> Sprite {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/game_boy/video.rs:14:18
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct FifoPixel(u8);
[INFO] [stdout]    |        --------- ^^
[INFO] [stdout]    |        |
[INFO] [stdout]    |        field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout]    = note: `FifoPixel` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `color`, `palette`, and `bg_priority` are never used
[INFO] [stdout]   --> src/game_boy/video.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl FifoPixel {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] 23 |     fn color(&self) -> u8 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     fn palette(&self) -> u8 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     fn bg_priority(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `dot_delay`, `fifo_bg`, `fifo_obj`, and `counter_bg` are never read
[INFO] [stdout]   --> src/game_boy/video.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct PPU {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] 40 |     dot_delay: u8,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 41 |     fifo_bg: FIFO,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 42 |     fifo_obj: FIFO,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 43 |     counter_bg: u8,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `dot`, and `push` are never used
[INFO] [stdout]   --> src/game_boy/video.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl PPU {
[INFO] [stdout]    | -------- associated items in this implementation
[INFO] [stdout] 47 |     pub fn new() -> PPU {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn dot(&mut self, mmu: &mut MMU, buffer: &mut Box<[u8]>) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     fn push(&mut self, mmu: &mut MMU, buffer: &mut Box<[u8]>) -> bool {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `mixed_fifo` is never used
[INFO] [stdout]    --> src/game_boy/video.rs:145:8
[INFO] [stdout]     |
[INFO] [stdout]  72 | impl PPU {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 145 |     fn mixed_fifo(&self) -> FIFO {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TILE_BYTE_SIZE` is never used
[INFO] [stdout]    --> src/game_boy/video.rs:100:19
[INFO] [stdout]     |
[INFO] [stdout] 100 |             const TILE_BYTE_SIZE: u8 = 16; // For now just make it a constant (Tile not implemented yet)
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `win` is never used
[INFO] [stdout]   --> src/window.rs:87:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl GbWindow {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub fn win(&self) -> &Window {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/cpu/instructions.rs:336:9
[INFO] [stdout]     |
[INFO] [stdout] 336 |         self.mmu.write_8(hl, val);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 336 |         let _ = self.mmu.write_8(hl, val);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/cpu/instructions.rs:416:9
[INFO] [stdout]     |
[INFO] [stdout] 416 |         self.mmu.write_8(hl, val);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 416 |         let _ = self.mmu.write_8(hl, val);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/cpu/instructions.rs:540:9
[INFO] [stdout]     |
[INFO] [stdout] 540 |         self.mmu.write_8(n16, n8);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 540 |         let _ = self.mmu.write_8(n16, n8);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/cpu/instructions.rs:563:9
[INFO] [stdout]     |
[INFO] [stdout] 563 |         self.mmu.write_8(n16, self.a_reg());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 563 |         let _ = self.mmu.write_8(n16, self.a_reg());
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/game_boy/cpu/instructions.rs:574:37
[INFO] [stdout]     |
[INFO] [stdout] 574 |         assert!(n16 >= 0xFF00u16 && n16 <= 0xFFFFu16);
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/cpu/instructions.rs:614:9
[INFO] [stdout]     |
[INFO] [stdout] 614 |         self.mmu.write_8(n16, self.reg(from));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 614 |         let _ = self.mmu.write_8(n16, self.reg(from));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/game_boy/cpu/instructions.rs:624:37
[INFO] [stdout]     |
[INFO] [stdout] 624 |         assert!(n16 >= 0xFF00u16 && n16 <= 0xFFFFu16);
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/cpu/instructions.rs:691:9
[INFO] [stdout]     |
[INFO] [stdout] 691 |         self.mmu.write_8(n16, (self.sp >> 8) as u8);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 691 |         let _ = self.mmu.write_8(n16, (self.sp >> 8) as u8);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/cpu/instructions.rs:692:9
[INFO] [stdout]     |
[INFO] [stdout] 692 |         self.mmu.write_8(n16 + 1, (self.sp & 0xFF) as u8);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 692 |         let _ = self.mmu.write_8(n16 + 1, (self.sp & 0xFF) as u8);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/cpu/instructions.rs:846:9
[INFO] [stdout]     |
[INFO] [stdout] 846 |         self.mmu.write_8(self.reg16(Register16::HL), val);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 846 |         let _ = self.mmu.write_8(self.reg16(Register16::HL), val);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/cpu/instructions.rs:903:9
[INFO] [stdout]     |
[INFO] [stdout] 903 |         self.mmu.write_8(reg_val, val);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 903 |         let _ = self.mmu.write_8(reg_val, val);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/cpu/instructions.rs:958:9
[INFO] [stdout]     |
[INFO] [stdout] 958 |         self.mmu.write_8(reg_val, val);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 958 |         let _ = self.mmu.write_8(reg_val, val);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/game_boy/cpu/instructions.rs:1011:9
[INFO] [stdout]      |
[INFO] [stdout] 1011 |         self.mmu.write_8(reg_val, val);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1011 |         let _ = self.mmu.write_8(reg_val, val);
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/game_boy/cpu/instructions.rs:1065:9
[INFO] [stdout]      |
[INFO] [stdout] 1065 |         self.mmu.write_8(reg_val, val);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1065 |         let _ = self.mmu.write_8(reg_val, val);
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/game_boy/cpu/instructions.rs:1180:9
[INFO] [stdout]      |
[INFO] [stdout] 1180 |         self.mmu.write_8(self.reg16(Register16::HL), read);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1180 |         let _ = self.mmu.write_8(self.reg16(Register16::HL), read);
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/game_boy/cpu/instructions.rs:1199:9
[INFO] [stdout]      |
[INFO] [stdout] 1199 |         self.mmu.write_8(reg_val, val);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1199 |         let _ = self.mmu.write_8(reg_val, val);
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/game_boy/cpu/instructions.rs:1245:9
[INFO] [stdout]      |
[INFO] [stdout] 1245 |         self.mmu.write_8(reg_val, val);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1245 |         let _ = self.mmu.write_8(reg_val, val);
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/game_boy/cpu/instructions.rs:1290:9
[INFO] [stdout]      |
[INFO] [stdout] 1290 |         self.mmu.write_8(reg_val, val);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1290 |         let _ = self.mmu.write_8(reg_val, val);
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/game_boy/cpu/instructions.rs:1372:9
[INFO] [stdout]      |
[INFO] [stdout] 1372 |         self.mmu.write_8(reg_val, val);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1372 |         let _ = self.mmu.write_8(reg_val, val);
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/game_boy/cpu/time.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |         self.mmu.write_8(adr::timer::COUNTER, result);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let _ = self.mmu.write_8(adr::timer::COUNTER, result);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/game_boy/cpu/time.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |         self.mmu.raw_write_8(adr::timer::DIVIDER_REGISTER, result);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let _ = self.mmu.raw_write_8(adr::timer::DIVIDER_REGISTER, result);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/game_boy/memory/misc.rs:10:13
[INFO] [stdout]    |
[INFO] [stdout] 10 |             self.write_8(DEST + i, read);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 10 |             let _ = self.write_8(DEST + i, read);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/memory/video.rs:214:9
[INFO] [stdout]     |
[INFO] [stdout] 214 |         self.write_8(adr::video::LCD_CONTROL, val);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 214 |         let _ = self.write_8(adr::video::LCD_CONTROL, val);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/memory/video.rs:285:9
[INFO] [stdout]     |
[INFO] [stdout] 285 |         self.write_8(adr::video::LCD_STATUS, val);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 285 |         let _ = self.write_8(adr::video::LCD_STATUS, val);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/memory/video.rs:299:9
[INFO] [stdout]     |
[INFO] [stdout] 299 |         self.write_8(adr::video::LCD_STATUS, val);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 299 |         let _ = self.write_8(adr::video::LCD_STATUS, val);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/memory/video.rs:310:9
[INFO] [stdout]     |
[INFO] [stdout] 310 |         self.write_8(adr::video::SCREEN_Y, val);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 310 |         let _ = self.write_8(adr::video::SCREEN_Y, val);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/memory/video.rs:318:9
[INFO] [stdout]     |
[INFO] [stdout] 318 |         self.write_8(adr::video::SCREEN_X, val);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 318 |         let _ = self.write_8(adr::video::SCREEN_X, val);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/memory/video.rs:326:9
[INFO] [stdout]     |
[INFO] [stdout] 326 |         self.write_8(adr::video::CURRENT_LINE, val);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 326 |         let _ = self.write_8(adr::video::CURRENT_LINE, val);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/memory/video.rs:334:9
[INFO] [stdout]     |
[INFO] [stdout] 334 |         self.write_8(adr::video::LINE_COMPARE, val);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 334 |         let _ = self.write_8(adr::video::LINE_COMPARE, val);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/memory/video.rs:342:9
[INFO] [stdout]     |
[INFO] [stdout] 342 |         self.write_8(adr::video::WINDOW_Y, val);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 342 |         let _ = self.write_8(adr::video::WINDOW_Y, val);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/game_boy/memory/video.rs:350:9
[INFO] [stdout]     |
[INFO] [stdout] 350 |         self.write_8(adr::video::WINDOW_X, val);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 350 |         let _ = self.write_8(adr::video::WINDOW_X, val);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/game_boy/memory/flags.rs:10:13
[INFO] [stdout]    |
[INFO] [stdout] 10 |             self.write_8(adr::interrupts::FLAGS, if_val);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 10 |             let _ = self.write_8(adr::interrupts::FLAGS, if_val);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/game_boy/memory/flags.rs:16:13
[INFO] [stdout]    |
[INFO] [stdout] 16 |             self.write_8(adr::interrupts::FLAGS, if_val);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 16 |             let _ = self.write_8(adr::interrupts::FLAGS, if_val);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: feature `coroutines` is declared but not used
[INFO] [stdout]  --> src/main.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(coroutines)]
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_features)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 37.54s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nom v6.1.2
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] running `Command { std: "docker" "inspect" "feb2cead37692b79370b7f039e0981048079715ef332a0b24d226c9ff5494eb4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "feb2cead37692b79370b7f039e0981048079715ef332a0b24d226c9ff5494eb4", kill_on_drop: false }`
[INFO] [stdout] feb2cead37692b79370b7f039e0981048079715ef332a0b24d226c9ff5494eb4
