[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; 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 { [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 { [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; 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 { [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 { [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