[INFO] cloning repository https://github.com/iximeow/yaxgbc
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/iximeow/yaxgbc" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fiximeow%2Fyaxgbc", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fiximeow%2Fyaxgbc'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 1d3d4b15d1ea8082d140cf8e11a547f1c7f67222
[INFO] checking iximeow/yaxgbc against nightly-2024-02-05 for check-cfg
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fiximeow%2Fyaxgbc" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/iximeow/yaxgbc on toolchain nightly-2024-02-05
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly-2024-02-05" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/iximeow/yaxgbc
[INFO] finished tweaking git repo https://github.com/iximeow/yaxgbc
[INFO] tweaked toml for git repo https://github.com/iximeow/yaxgbc written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/iximeow/yaxgbc already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly-2024-02-05" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: unused manifest key: dependencies.rodio.default-feature
[INFO] [stderr]     Updating git repository `https://www.github.com/iximeow/yaxpeax-sm83.git`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2024-02-05" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 3c560480851044fe87a36004ad2b1e594ec28af1199d18e77992e2d3b77e329c
[INFO] running `Command { std: "docker" "start" "-a" "3c560480851044fe87a36004ad2b1e594ec28af1199d18e77992e2d3b77e329c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3c560480851044fe87a36004ad2b1e594ec28af1199d18e77992e2d3b77e329c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3c560480851044fe87a36004ad2b1e594ec28af1199d18e77992e2d3b77e329c", kill_on_drop: false }`
[INFO] [stdout] 3c560480851044fe87a36004ad2b1e594ec28af1199d18e77992e2d3b77e329c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2024-02-05" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 365f48b3af4f4024fb45384e3cae2474ef96400112f22c9535188e8c59a6fc71
[INFO] running `Command { std: "docker" "start" "-a" "365f48b3af4f4024fb45384e3cae2474ef96400112f22c9535188e8c59a6fc71", kill_on_drop: false }`
[INFO] [stderr] warning: unused manifest key: dependencies.rodio.default-feature
[INFO] [stderr]    Compiling libc v0.2.139
[INFO] [stderr]    Compiling proc-macro2 v1.0.66
[INFO] [stderr]    Compiling unicode-ident v1.0.6
[INFO] [stderr]    Compiling parking_lot_core v0.9.8
[INFO] [stderr]     Checking smallvec v1.11.0
[INFO] [stderr]    Compiling proc-macro2 v0.4.30
[INFO] [stderr]     Checking arrayvec v0.7.4
[INFO] [stderr]    Compiling unicode-xid v0.1.0
[INFO] [stderr]     Checking ttf-parser v0.19.1
[INFO] [stderr]    Compiling lock_api v0.4.10
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]    Compiling ahash v0.8.3
[INFO] [stderr]     Checking once_cell v1.17.0
[INFO] [stderr]    Compiling syn v1.0.107
[INFO] [stderr]     Checking log v0.4.19
[INFO] [stderr]    Compiling num-traits v0.2.15
[INFO] [stderr]    Compiling syn v0.15.44
[INFO] [stderr]    Compiling indexmap v1.9.2
[INFO] [stderr]    Compiling cpal v0.15.2
[INFO] [stderr]     Checking nohash-hasher v0.2.0
[INFO] [stderr]    Compiling miniquad v0.3.16
[INFO] [stderr]     Checking ogg v0.8.0
[INFO] [stderr]    Compiling tokio v1.28.2
[INFO] [stderr]    Compiling heck v0.4.0
[INFO] [stderr]     Checking dasp_sample v0.11.0
[INFO] [stderr]     Checking webbrowser v0.5.5
[INFO] [stderr]     Checking hashbrown v0.12.3
[INFO] [stderr]     Checking os_str_bytes v6.4.1
[INFO] [stderr]     Checking lewton v0.10.2
[INFO] [stderr]     Checking termcolor v1.1.3
[INFO] [stderr]     Checking quad-url v0.1.1
[INFO] [stderr]     Checking claxon v0.4.3
[INFO] [stderr]     Checking windows-targets v0.42.2
[INFO] [stderr]     Checking hound v3.5.1
[INFO] [stderr]     Checking textwrap v0.16.0
[INFO] [stderr]     Checking either v1.8.0
[INFO] [stderr]     Checking windows v0.46.0
[INFO] [stderr]     Checking clap_lex v0.2.4
[INFO] [stderr]     Checking hex v0.4.3
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]    Compiling quote v0.6.13
[INFO] [stderr]    Compiling quote v1.0.32
[INFO] [stderr]    Compiling syn v2.0.28
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]     Checking yaxpeax-arch v0.2.7
[INFO] [stderr]     Checking nix v0.24.3
[INFO] [stderr]     Checking getrandom v0.2.8
[INFO] [stderr]     Checking mio v0.8.8
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking socket2 v0.4.9
[INFO] [stderr]     Checking signal-hook-registry v1.4.1
[INFO] [stderr]     Checking num_cpus v1.16.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking parking_lot v0.12.1
[INFO] [stderr]     Checking owned_ttf_parser v0.19.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking ab_glyph v0.2.21
[INFO] [stderr]     Checking alsa v0.7.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling num_enum v0.2.3
[INFO] [stderr]     Checking yaxpeax-sm83 v0.2.0 (https://www.github.com/iximeow/yaxpeax-sm83.git?rev=8332b3750cd3f42ca83d02347afc560b37992a69#8332b375)
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling bytemuck_derive v1.4.1
[INFO] [stderr]    Compiling tokio-macros v2.1.0
[INFO] [stderr]    Compiling clap_derive v3.2.18
[INFO] [stderr]     Checking bytemuck v1.13.1
[INFO] [stderr]     Checking symphonia-core v0.5.3
[INFO] [stderr]     Checking emath v0.21.0
[INFO] [stderr]     Checking ecolor v0.21.0
[INFO] [stderr]     Checking epaint v0.21.0
[INFO] [stderr]     Checking clap v3.2.23
[INFO] [stderr]     Checking egui v0.21.0
[INFO] [stderr]     Checking symphonia-metadata v0.5.3
[INFO] [stderr]     Checking symphonia-bundle-mp3 v0.5.3
[INFO] [stderr]     Checking symphonia v0.5.3
[INFO] [stderr]     Checking rodio v0.17.3
[INFO] [stderr]     Checking egui-miniquad v0.14.0
[INFO] [stderr]     Checking yaxpeax-gbc v0.2.10 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/apu.rs:89:35
[INFO] [stdout]    |
[INFO] [stdout] 89 |                 let period_step = (value & 0x07);
[INFO] [stdout]    |                                   ^            ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 89 -                 let period_step = (value & 0x07);
[INFO] [stdout] 89 +                 let period_step = value & 0x07;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/apu.rs:223:46
[INFO] [stdout]     |
[INFO] [stdout] 223 |                 self.channel_4_clock_shift = (value >> 4);
[INFO] [stdout]     |                                              ^          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 223 -                 self.channel_4_clock_shift = (value >> 4);
[INFO] [stdout] 223 +                 self.channel_4_clock_shift = value >> 4;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Cpu`
[INFO] [stdout]     --> src/cpu.rs:1347:13
[INFO] [stdout]      |
[INFO] [stdout] 1347 |         use crate::Cpu;
[INFO] [stdout]      |             ^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::FlatMapper`
[INFO] [stdout]     --> src/cpu.rs:1348:13
[INFO] [stdout]      |
[INFO] [stdout] 1348 |         use crate::FlatMapper;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::MemoryMapping`
[INFO] [stdout]     --> src/cpu.rs:1349:13
[INFO] [stdout]      |
[INFO] [stdout] 1349 |         use crate::MemoryMapping;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Write`
[INFO] [stdout]  --> src/frontend/gui.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicBool`, `Ordering`
[INFO] [stdout]  --> src/frontend/gui.rs:3:25
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::atomic::{AtomicBool, Ordering};
[INFO] [stdout]   |                         ^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LCDC`, `STAT`
[INFO] [stdout]  --> src/frontend/gui.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{STAT, SCX, SCY, IF, IE, GBC, LCDC, LY, LYC};
[INFO] [stdout]   |             ^^^^                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `egui::Vec2`
[INFO] [stdout]   --> src/frontend/gui.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use egui::Vec2;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/main.rs:406:12
[INFO] [stdout]     |
[INFO] [stdout] 406 |         if (self.lcdc & 0b0000_1000 == 0) {
[INFO] [stdout]     |            ^                            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 406 -         if (self.lcdc & 0b0000_1000 == 0) {
[INFO] [stdout] 406 +         if self.lcdc & 0b0000_1000 == 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/main.rs:818:46
[INFO] [stdout]     |
[INFO] [stdout] 818 | ...                   let tile_xoffs = (window_x % 8);
[INFO] [stdout]     |                                        ^            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 818 -                             let tile_xoffs = (window_x % 8);
[INFO] [stdout] 818 +                             let tile_xoffs = window_x % 8;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1201:46
[INFO] [stdout]      |
[INFO] [stdout] 1201 |                 self.management_bits[reg] |= (value & 0b0011_0000);
[INFO] [stdout]      |                                              ^                   ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1201 -                 self.management_bits[reg] |= (value & 0b0011_0000);
[INFO] [stdout] 1201 +                 self.management_bits[reg] |= value & 0b0011_0000;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/apu.rs:89:35
[INFO] [stdout]    |
[INFO] [stdout] 89 |                 let period_step = (value & 0x07);
[INFO] [stdout]    |                                   ^            ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 89 -                 let period_step = (value & 0x07);
[INFO] [stdout] 89 +                 let period_step = value & 0x07;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/apu.rs:223:46
[INFO] [stdout]     |
[INFO] [stdout] 223 |                 self.channel_4_clock_shift = (value >> 4);
[INFO] [stdout]     |                                              ^          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 223 -                 self.channel_4_clock_shift = (value >> 4);
[INFO] [stdout] 223 +                 self.channel_4_clock_shift = value >> 4;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::FlatMapper`
[INFO] [stdout]     --> src/cpu.rs:1348:13
[INFO] [stdout]      |
[INFO] [stdout] 1348 |         use crate::FlatMapper;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::MemoryMapping`
[INFO] [stdout]     --> src/cpu.rs:1349:13
[INFO] [stdout]      |
[INFO] [stdout] 1349 |         use crate::MemoryMapping;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Write`
[INFO] [stdout]  --> src/frontend/gui.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicBool`, `Ordering`
[INFO] [stdout]  --> src/frontend/gui.rs:3:25
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::atomic::{AtomicBool, Ordering};
[INFO] [stdout]   |                         ^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LCDC`, `STAT`
[INFO] [stdout]  --> src/frontend/gui.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{STAT, SCX, SCY, IF, IE, GBC, LCDC, LY, LYC};
[INFO] [stdout]   |             ^^^^                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `egui::Vec2`
[INFO] [stdout]   --> src/frontend/gui.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use egui::Vec2;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/main.rs:406:12
[INFO] [stdout]     |
[INFO] [stdout] 406 |         if (self.lcdc & 0b0000_1000 == 0) {
[INFO] [stdout]     |            ^                            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 406 -         if (self.lcdc & 0b0000_1000 == 0) {
[INFO] [stdout] 406 +         if self.lcdc & 0b0000_1000 == 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/main.rs:818:46
[INFO] [stdout]     |
[INFO] [stdout] 818 | ...                   let tile_xoffs = (window_x % 8);
[INFO] [stdout]     |                                        ^            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 818 -                             let tile_xoffs = (window_x % 8);
[INFO] [stdout] 818 +                             let tile_xoffs = window_x % 8;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1201:46
[INFO] [stdout]      |
[INFO] [stdout] 1201 |                 self.management_bits[reg] |= (value & 0b0011_0000);
[INFO] [stdout]      |                                              ^                   ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1201 -                 self.management_bits[reg] |= (value & 0b0011_0000);
[INFO] [stdout] 1201 +                 self.management_bits[reg] |= value & 0b0011_0000;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]     --> src/cpu.rs:1045:9
[INFO] [stdout]      |
[INFO] [stdout] 1043 |         return;
[INFO] [stdout]      |         ------ any code following this expression is unreachable
[INFO] [stdout] 1044 |
[INFO] [stdout] 1045 |         let from_linear = storage.recursive_translate(from);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]     --> src/cpu.rs:1064:9
[INFO] [stdout]      |
[INFO] [stdout] 1062 |           return;
[INFO] [stdout]      |           ------ any code following this expression is unreachable
[INFO] [stdout] 1063 |
[INFO] [stdout] 1064 | /         if self.branch_trace.len() > TRACE_DEPTH {
[INFO] [stdout] 1065 | |             self.branch_trace.pop_back();
[INFO] [stdout] 1066 | |         }
[INFO] [stdout]      | |_________^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]     --> src/cpu.rs:1112:9
[INFO] [stdout]      |
[INFO] [stdout] 1110 |           return;
[INFO] [stdout]      |           ------ any code following this expression is unreachable
[INFO] [stdout] 1111 |
[INFO] [stdout] 1112 | /         if self.branch_trace.len() > TRACE_DEPTH {
[INFO] [stdout] 1113 | |             self.branch_trace.pop_back();
[INFO] [stdout] 1114 | |         }
[INFO] [stdout]      | |_________^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]     --> src/cpu.rs:1149:9
[INFO] [stdout]      |
[INFO] [stdout] 1147 |         return;
[INFO] [stdout]      |         ------ any code following this expression is unreachable
[INFO] [stdout] 1148 |
[INFO] [stdout] 1149 |         let from_linear = storage.recursive_translate(from);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]     --> src/cpu.rs:1171:9
[INFO] [stdout]      |
[INFO] [stdout] 1169 |         return;
[INFO] [stdout]      |         ------ any code following this expression is unreachable
[INFO] [stdout] 1170 |
[INFO] [stdout] 1171 |         let from_linear = storage.recursive_translate(from);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]     --> src/cpu.rs:1045:9
[INFO] [stdout]      |
[INFO] [stdout] 1043 |         return;
[INFO] [stdout]      |         ------ any code following this expression is unreachable
[INFO] [stdout] 1044 |
[INFO] [stdout] 1045 |         let from_linear = storage.recursive_translate(from);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]     --> src/cpu.rs:1064:9
[INFO] [stdout]      |
[INFO] [stdout] 1062 |           return;
[INFO] [stdout]      |           ------ any code following this expression is unreachable
[INFO] [stdout] 1063 |
[INFO] [stdout] 1064 | /         if self.branch_trace.len() > TRACE_DEPTH {
[INFO] [stdout] 1065 | |             self.branch_trace.pop_back();
[INFO] [stdout] 1066 | |         }
[INFO] [stdout]      | |_________^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]     --> src/cpu.rs:1112:9
[INFO] [stdout]      |
[INFO] [stdout] 1110 |           return;
[INFO] [stdout]      |           ------ any code following this expression is unreachable
[INFO] [stdout] 1111 |
[INFO] [stdout] 1112 | /         if self.branch_trace.len() > TRACE_DEPTH {
[INFO] [stdout] 1113 | |             self.branch_trace.pop_back();
[INFO] [stdout] 1114 | |         }
[INFO] [stdout]      | |_________^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]     --> src/cpu.rs:1149:9
[INFO] [stdout]      |
[INFO] [stdout] 1147 |         return;
[INFO] [stdout]      |         ------ any code following this expression is unreachable
[INFO] [stdout] 1148 |
[INFO] [stdout] 1149 |         let from_linear = storage.recursive_translate(from);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]     --> src/cpu.rs:1171:9
[INFO] [stdout]      |
[INFO] [stdout] 1169 |         return;
[INFO] [stdout]      |         ------ any code following this expression is unreachable
[INFO] [stdout] 1170 |
[INFO] [stdout] 1171 |         let from_linear = storage.recursive_translate(from);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]     --> src/main.rs:1318:17
[INFO] [stdout]      |
[INFO] [stdout] 1317 |                         panic!("unhandled write {:04x}", reg);
[INFO] [stdout]      |                         ------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 1318 |                 self.management_bits[reg] = value;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]     --> src/main.rs:1318:17
[INFO] [stdout]      |
[INFO] [stdout] 1317 |                         panic!("unhandled write {:04x}", reg);
[INFO] [stdout]      |                         ------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 1318 |                 self.management_bits[reg] = value;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Write`
[INFO] [stdout]  --> src/main.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::fmt::{Write as FmtWrite};
[INFO] [stdout]   |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Write`
[INFO] [stdout]  --> src/main.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::fmt::{Write as FmtWrite};
[INFO] [stdout]   |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `word`
[INFO] [stdout]    --> src/cpu.rs:100:32
[INFO] [stdout]     |
[INFO] [stdout] 100 |     fn on_word_read(&mut self, word: u8) {
[INFO] [stdout]     |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_word`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `word`
[INFO] [stdout]    --> src/cpu.rs:100:32
[INFO] [stdout]     |
[INFO] [stdout] 100 |     fn on_word_read(&mut self, word: u8) {
[INFO] [stdout]     |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_word`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `storage`
[INFO] [stdout]     --> src/cpu.rs:1041:51
[INFO] [stdout]      |
[INFO] [stdout] 1041 |     fn trace_int<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16, int_bit: u8) {
[INFO] [stdout]      |                                                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_storage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]     --> src/cpu.rs:1041:91
[INFO] [stdout]      |
[INFO] [stdout] 1041 |     fn trace_int<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16, int_bit: u8) {
[INFO] [stdout]      |                                                                                           ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]     --> src/cpu.rs:1041:102
[INFO] [stdout]      |
[INFO] [stdout] 1041 |     fn trace_int<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16, int_bit: u8) {
[INFO] [stdout]      |                                                                                                      ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `int_bit`
[INFO] [stdout]     --> src/cpu.rs:1041:111
[INFO] [stdout]      |
[INFO] [stdout] 1041 |     fn trace_int<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16, int_bit: u8) {
[INFO] [stdout]      |                                                                                                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_int_bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `call_kind`
[INFO] [stdout]     --> src/cpu.rs:1084:38
[INFO] [stdout]      |
[INFO] [stdout] 1084 |             Some(CallRecord { addrs, call_kind }) => {
[INFO] [stdout]      |                                      ^^^^^^^^^ help: try ignoring the field: `call_kind: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `storage`
[INFO] [stdout]     --> src/cpu.rs:1060:52
[INFO] [stdout]      |
[INFO] [stdout] 1060 |     fn trace_reti<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_storage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]     --> src/cpu.rs:1060:92
[INFO] [stdout]      |
[INFO] [stdout] 1060 |     fn trace_reti<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                                                            ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]     --> src/cpu.rs:1060:103
[INFO] [stdout]      |
[INFO] [stdout] 1060 |     fn trace_reti<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                                                                       ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `storage`
[INFO] [stdout]     --> src/cpu.rs:1108:51
[INFO] [stdout]      |
[INFO] [stdout] 1108 |     fn trace_ret<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_storage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]     --> src/cpu.rs:1108:91
[INFO] [stdout]      |
[INFO] [stdout] 1108 |     fn trace_ret<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                                                           ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]     --> src/cpu.rs:1108:102
[INFO] [stdout]      |
[INFO] [stdout] 1108 |     fn trace_ret<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                                                                      ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `storage`
[INFO] [stdout]     --> src/cpu.rs:1145:52
[INFO] [stdout]      |
[INFO] [stdout] 1145 |     fn trace_call<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_storage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]     --> src/cpu.rs:1145:92
[INFO] [stdout]      |
[INFO] [stdout] 1145 |     fn trace_call<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                                                            ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]     --> src/cpu.rs:1145:103
[INFO] [stdout]      |
[INFO] [stdout] 1145 |     fn trace_call<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                                                                       ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `storage`
[INFO] [stdout]     --> src/cpu.rs:1167:54
[INFO] [stdout]      |
[INFO] [stdout] 1167 |     fn trace_branch<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_storage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]     --> src/cpu.rs:1167:94
[INFO] [stdout]      |
[INFO] [stdout] 1167 |     fn trace_branch<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                                                              ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]     --> src/cpu.rs:1167:105
[INFO] [stdout]      |
[INFO] [stdout] 1167 |     fn trace_branch<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                                                                         ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/cpu.rs:1303:13
[INFO] [stdout]      |
[INFO] [stdout] 1303 |         let mut buf = [
[INFO] [stdout]      |             ----^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> src/cpu.rs:1670:9
[INFO] [stdout]      |
[INFO] [stdout] 1670 |         0xff0f => Some("IE"),
[INFO] [stdout]      |         ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `storage`
[INFO] [stdout]     --> src/cpu.rs:1041:51
[INFO] [stdout]      |
[INFO] [stdout] 1041 |     fn trace_int<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16, int_bit: u8) {
[INFO] [stdout]      |                                                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_storage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]     --> src/cpu.rs:1041:91
[INFO] [stdout]      |
[INFO] [stdout] 1041 |     fn trace_int<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16, int_bit: u8) {
[INFO] [stdout]      |                                                                                           ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]     --> src/cpu.rs:1041:102
[INFO] [stdout]      |
[INFO] [stdout] 1041 |     fn trace_int<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16, int_bit: u8) {
[INFO] [stdout]      |                                                                                                      ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `int_bit`
[INFO] [stdout]     --> src/cpu.rs:1041:111
[INFO] [stdout]      |
[INFO] [stdout] 1041 |     fn trace_int<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16, int_bit: u8) {
[INFO] [stdout]      |                                                                                                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_int_bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `call_kind`
[INFO] [stdout]     --> src/cpu.rs:1084:38
[INFO] [stdout]      |
[INFO] [stdout] 1084 |             Some(CallRecord { addrs, call_kind }) => {
[INFO] [stdout]      |                                      ^^^^^^^^^ help: try ignoring the field: `call_kind: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `storage`
[INFO] [stdout]     --> src/cpu.rs:1060:52
[INFO] [stdout]      |
[INFO] [stdout] 1060 |     fn trace_reti<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_storage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]     --> src/cpu.rs:1060:92
[INFO] [stdout]      |
[INFO] [stdout] 1060 |     fn trace_reti<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                                                            ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]     --> src/cpu.rs:1060:103
[INFO] [stdout]      |
[INFO] [stdout] 1060 |     fn trace_reti<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                                                                       ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `storage`
[INFO] [stdout]     --> src/cpu.rs:1108:51
[INFO] [stdout]      |
[INFO] [stdout] 1108 |     fn trace_ret<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_storage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]     --> src/cpu.rs:1108:91
[INFO] [stdout]      |
[INFO] [stdout] 1108 |     fn trace_ret<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                                                           ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]     --> src/cpu.rs:1108:102
[INFO] [stdout]      |
[INFO] [stdout] 1108 |     fn trace_ret<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                                                                      ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `storage`
[INFO] [stdout]     --> src/cpu.rs:1145:52
[INFO] [stdout]      |
[INFO] [stdout] 1145 |     fn trace_call<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_storage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]     --> src/cpu.rs:1145:92
[INFO] [stdout]      |
[INFO] [stdout] 1145 |     fn trace_call<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                                                            ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]     --> src/cpu.rs:1145:103
[INFO] [stdout]      |
[INFO] [stdout] 1145 |     fn trace_call<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                                                                       ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `storage`
[INFO] [stdout]     --> src/cpu.rs:1167:54
[INFO] [stdout]      |
[INFO] [stdout] 1167 |     fn trace_branch<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_storage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]     --> src/cpu.rs:1167:94
[INFO] [stdout]      |
[INFO] [stdout] 1167 |     fn trace_branch<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                                                              ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]     --> src/cpu.rs:1167:105
[INFO] [stdout]      |
[INFO] [stdout] 1167 |     fn trace_branch<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                                                                         ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/cpu.rs:1303:13
[INFO] [stdout]      |
[INFO] [stdout] 1303 |         let mut buf = [
[INFO] [stdout]      |             ----^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/frontend/tui.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 |         let mut gb = gb_state.lock().unwrap();
[INFO] [stdout]   |             ----^^
[INFO] [stdout]   |             |
[INFO] [stdout]   |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dpi_scale`
[INFO] [stdout]   --> src/frontend/gui.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let dpi_scale = ctx.dpi_scale();
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dpi_scale`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> src/cpu.rs:1670:9
[INFO] [stdout]      |
[INFO] [stdout] 1670 |         0xff0f => Some("IE"),
[INFO] [stdout]      |         ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/frontend/gui.rs:150:13
[INFO] [stdout]     |
[INFO] [stdout] 150 |         let mut vertex_buffers = vec![self.vertex_buffer];
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/frontend/gui.rs:151:13
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let mut images = vec![texture];
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conf`
[INFO] [stdout]    --> src/frontend/gui.rs:249:9
[INFO] [stdout]     |
[INFO] [stdout] 249 |     let conf = miniquad::conf::Conf {
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_conf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/frontend/gui.rs:259:55
[INFO] [stdout]     |
[INFO] [stdout] 259 |     miniquad::start(miniquad::conf::Conf::default(), |mut ctx| {
[INFO] [stdout]     |                                                       ----^^^
[INFO] [stdout]     |                                                       |
[INFO] [stdout]     |                                                       help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/frontend/tui.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 |         let mut gb = gb_state.lock().unwrap();
[INFO] [stdout]   |             ----^^
[INFO] [stdout]   |             |
[INFO] [stdout]   |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dpi_scale`
[INFO] [stdout]   --> src/frontend/gui.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let dpi_scale = ctx.dpi_scale();
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dpi_scale`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/main.rs:87:13
[INFO] [stdout]    |
[INFO] [stdout] 87 |     let mut i = 0;
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `clock_total` is assigned to, but never used
[INFO] [stdout]   --> src/main.rs:88:13
[INFO] [stdout]    |
[INFO] [stdout] 88 |     let mut clock_total = 0;
[INFO] [stdout]    |             ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_clock_total` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `clock_total` is never read
[INFO] [stdout]   --> src/main.rs:97:9
[INFO] [stdout]    |
[INFO] [stdout] 97 |         clock_total = gb.run();
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:87:9
[INFO] [stdout]    |
[INFO] [stdout] 87 |     let mut i = 0;
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/frontend/gui.rs:150:13
[INFO] [stdout]     |
[INFO] [stdout] 150 |         let mut vertex_buffers = vec![self.vertex_buffer];
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/frontend/gui.rs:151:13
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let mut images = vec![texture];
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conf`
[INFO] [stdout]    --> src/frontend/gui.rs:249:9
[INFO] [stdout]     |
[INFO] [stdout] 249 |     let conf = miniquad::conf::Conf {
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_conf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/frontend/gui.rs:259:55
[INFO] [stdout]     |
[INFO] [stdout] 259 |     miniquad::start(miniquad::conf::Conf::default(), |mut ctx| {
[INFO] [stdout]     |                                                       ----^^^
[INFO] [stdout]     |                                                       |
[INFO] [stdout]     |                                                       help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `screen_time` is never read
[INFO] [stdout]    --> src/main.rs:553:13
[INFO] [stdout]     |
[INFO] [stdout] 553 |             screen_time -= screen_time % Self::SCREEN_TIME;
[INFO] [stdout]     |             ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tile_base`
[INFO] [stdout]    --> src/main.rs:754:25
[INFO] [stdout]     |
[INFO] [stdout] 754 |                     let tile_base = self.background_tile_base();
[INFO] [stdout]     |                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tile_base`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window_tile_base`
[INFO] [stdout]    --> src/main.rs:755:25
[INFO] [stdout]     |
[INFO] [stdout] 755 |                     let window_tile_base = self.window_tile_base();
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_window_tile_base`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window_y_offset`
[INFO] [stdout]    --> src/main.rs:799:79
[INFO] [stdout]     |
[INFO] [stdout] 799 |                         let window_pixel = window_coords.and_then(|(window_y, window_y_offset)| {
[INFO] [stdout]     |                                                                               ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_window_y_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/main.rs:87:13
[INFO] [stdout]    |
[INFO] [stdout] 87 |     let mut i = 0;
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `clock_total` is assigned to, but never used
[INFO] [stdout]   --> src/main.rs:88:13
[INFO] [stdout]    |
[INFO] [stdout] 88 |     let mut clock_total = 0;
[INFO] [stdout]    |             ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_clock_total` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `clock_total` is never read
[INFO] [stdout]   --> src/main.rs:97:9
[INFO] [stdout]    |
[INFO] [stdout] 97 |         clock_total = gb.run();
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1064:29
[INFO] [stdout]      |
[INFO] [stdout] 1064 |                         let mut res = self.management_bits[reg];
[INFO] [stdout]      |                             ----^^^
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             help: remove this `mut`
[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 i = 0;
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pc_before`
[INFO] [stdout]     --> src/main.rs:1807:13
[INFO] [stdout]      |
[INFO] [stdout] 1807 |         let pc_before = self.cpu.pc;
[INFO] [stdout]      |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pc_before`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `screen_time` is never read
[INFO] [stdout]    --> src/main.rs:553:13
[INFO] [stdout]     |
[INFO] [stdout] 553 |             screen_time -= screen_time % Self::SCREEN_TIME;
[INFO] [stdout]     |             ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tile_base`
[INFO] [stdout]    --> src/main.rs:754:25
[INFO] [stdout]     |
[INFO] [stdout] 754 |                     let tile_base = self.background_tile_base();
[INFO] [stdout]     |                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tile_base`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window_tile_base`
[INFO] [stdout]    --> src/main.rs:755:25
[INFO] [stdout]     |
[INFO] [stdout] 755 |                     let window_tile_base = self.window_tile_base();
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_window_tile_base`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window_y_offset`
[INFO] [stdout]    --> src/main.rs:799:79
[INFO] [stdout]     |
[INFO] [stdout] 799 |                         let window_pixel = window_coords.and_then(|(window_y, window_y_offset)| {
[INFO] [stdout]     |                                                                               ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_window_y_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1064:29
[INFO] [stdout]      |
[INFO] [stdout] 1064 |                         let mut res = self.management_bits[reg];
[INFO] [stdout]      |                             ----^^^
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pc_before`
[INFO] [stdout]     --> src/main.rs:1807:13
[INFO] [stdout]      |
[INFO] [stdout] 1807 |         let pc_before = self.cpu.pc;
[INFO] [stdout]      |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pc_before`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2601:13
[INFO] [stdout]      |
[INFO] [stdout] 2601 |         let mut memory = MemoryMapping {
[INFO] [stdout]      |             ----^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLOCKS_PER_FRAME` is never used
[INFO] [stdout]   --> src/main.rs:89:11
[INFO] [stdout]    |
[INFO] [stdout] 89 |     const CLOCKS_PER_FRAME: u64 = 4_190_000 / 60;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `next_line` and `next_draw_time` are never read
[INFO] [stdout]    --> src/main.rs:228:5
[INFO] [stdout]     |
[INFO] [stdout] 218 | struct Lcd {
[INFO] [stdout]     |        --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 228 |     next_line: u64,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 229 |     next_draw_time: u64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `palette_number` is never used
[INFO] [stdout]    --> src/main.rs:271:8
[INFO] [stdout]     |
[INFO] [stdout] 258 | impl OamAttributes {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 271 |     fn palette_number(&self) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `VBLANK_TIME`, `sprite_double_size`, and `sprite_enable` are never used
[INFO] [stdout]    --> src/main.rs:311:11
[INFO] [stdout]     |
[INFO] [stdout] 308 | impl Lcd {
[INFO] [stdout]     | -------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 311 |     const VBLANK_TIME: u64 = 4560; // vblank is 10 scan lines
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 429 |     fn sprite_double_size(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 433 |     fn sprite_enable(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GBCScreen` is never constructed
[INFO] [stdout]    --> src/main.rs:924:8
[INFO] [stdout]     |
[INFO] [stdout] 924 | struct GBCScreen {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GBState` is never used
[INFO] [stdout]     --> src/main.rs:1330:6
[INFO] [stdout]      |
[INFO] [stdout] 1330 | enum GBState {
[INFO] [stdout]      |      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_RAM_START` is never used
[INFO] [stdout]     --> src/main.rs:1418:7
[INFO] [stdout]      |
[INFO] [stdout] 1418 | const WAVE_RAM_START: usize = 0x130;
[INFO] [stdout]      |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_RAM_END` is never used
[INFO] [stdout]     --> src/main.rs:1419:7
[INFO] [stdout]      |
[INFO] [stdout] 1419 | const WAVE_RAM_END: usize = 0x13f;
[INFO] [stdout]      |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dump_mem_region` is never used
[INFO] [stdout]     --> src/main.rs:1547:4
[INFO] [stdout]      |
[INFO] [stdout] 1547 | fn dump_mem_region(mem_map: &dyn MemoryBanks, start: u16, words: u16, width: u16) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `battery`, `timer`, and `rumble` are never read
[INFO] [stdout]     --> src/main.rs:2007:5
[INFO] [stdout]      |
[INFO] [stdout] 2003 | struct CartridgeFeatures {
[INFO] [stdout]      |        ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 2007 |     battery: bool,
[INFO] [stdout]      |     ^^^^^^^
[INFO] [stdout] 2008 |     timer: bool,
[INFO] [stdout]      |     ^^^^^
[INFO] [stdout] 2009 |     rumble: bool,
[INFO] [stdout]      |     ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `CartridgeFeatures` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `features` is never read
[INFO] [stdout]     --> src/main.rs:2073:5
[INFO] [stdout]      |
[INFO] [stdout] 2072 | struct GBCCart {
[INFO] [stdout]      |        ------- field in this struct
[INFO] [stdout] 2073 |     features: CartridgeFeatures,
[INFO] [stdout]      |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `channel_active`, `channel_2_pace`, and `channel_4_wavelength` are never read
[INFO] [stdout]   --> src/apu.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub struct Apu {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     channel_active: [bool; 4],
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     channel_2_pace: i8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     channel_4_wavelength: u16,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_nr52` is never used
[INFO] [stdout]    --> src/apu.rs:740:8
[INFO] [stdout]     |
[INFO] [stdout] 83  | impl Apu {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 740 |     fn set_nr52(&mut self, v: u8) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `flag_z` is never used
[INFO] [stdout]     --> src/cpu.rs:1245:8
[INFO] [stdout]      |
[INFO] [stdout] 1023 | impl Cpu {
[INFO] [stdout]      | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1245 |     fn flag_z(&self) -> bool {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `memory` is never read
[INFO] [stdout]     --> src/cpu.rs:1609:5
[INFO] [stdout]      |
[INFO] [stdout] 1607 | pub(crate) struct DecoratedInstruction<'instr, 'data> {
[INFO] [stdout]      |                   -------------------- field in this struct
[INFO] [stdout] 1608 |     cpu: &'instr Cpu,
[INFO] [stdout] 1609 |     memory: &'instr MemoryMapping<'data>,
[INFO] [stdout]      |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `execute_test` is never used
[INFO] [stdout]     --> src/cpu.rs:1324:8
[INFO] [stdout]      |
[INFO] [stdout] 1324 |     fn execute_test(cpu: &mut Cpu, program: &[u8]) {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `do_ui` is never used
[INFO] [stdout]  --> src/frontend/tui.rs:6:15
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) fn do_ui(gb_state: Arc<Mutex<GBC>>) {
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]  --> src/timer.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub fn run(tx: std::sync::mpsc::Sender<()>) {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `with_test_mapping` is never used
[INFO] [stdout]     --> src/main.rs:2582:8
[INFO] [stdout]      |
[INFO] [stdout] 2582 |     fn with_test_mapping<U>(f: impl Fn(MemoryMapping) -> U) -> U {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/frontend/tui.rs:77:17
[INFO] [stdout]    |
[INFO] [stdout] 77 |                 write!(screen, "{}", [".", "+", "*", "#"][gb.lcd.display[(i * 160 + j) as usize] as usize]);
[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)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/frontend/tui.rs:79:13
[INFO] [stdout]    |
[INFO] [stdout] 79 |             write!(screen, "\n");
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2601:13
[INFO] [stdout]      |
[INFO] [stdout] 2601 |         let mut memory = MemoryMapping {
[INFO] [stdout]      |             ----^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `next_line` and `next_draw_time` are never read
[INFO] [stdout]    --> src/main.rs:228:5
[INFO] [stdout]     |
[INFO] [stdout] 218 | struct Lcd {
[INFO] [stdout]     |        --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 228 |     next_line: u64,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 229 |     next_draw_time: u64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `palette_number` is never used
[INFO] [stdout]    --> src/main.rs:271:8
[INFO] [stdout]     |
[INFO] [stdout] 258 | impl OamAttributes {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 271 |     fn palette_number(&self) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `VBLANK_TIME`, `sprite_double_size`, and `sprite_enable` are never used
[INFO] [stdout]    --> src/main.rs:311:11
[INFO] [stdout]     |
[INFO] [stdout] 308 | impl Lcd {
[INFO] [stdout]     | -------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 311 |     const VBLANK_TIME: u64 = 4560; // vblank is 10 scan lines
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 429 |     fn sprite_double_size(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 433 |     fn sprite_enable(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GBCScreen` is never constructed
[INFO] [stdout]    --> src/main.rs:924:8
[INFO] [stdout]     |
[INFO] [stdout] 924 | struct GBCScreen {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GBState` is never used
[INFO] [stdout]     --> src/main.rs:1330:6
[INFO] [stdout]      |
[INFO] [stdout] 1330 | enum GBState {
[INFO] [stdout]      |      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_RAM_START` is never used
[INFO] [stdout]     --> src/main.rs:1418:7
[INFO] [stdout]      |
[INFO] [stdout] 1418 | const WAVE_RAM_START: usize = 0x130;
[INFO] [stdout]      |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_RAM_END` is never used
[INFO] [stdout]     --> src/main.rs:1419:7
[INFO] [stdout]      |
[INFO] [stdout] 1419 | const WAVE_RAM_END: usize = 0x13f;
[INFO] [stdout]      |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dump_mem_region` is never used
[INFO] [stdout]     --> src/main.rs:1547:4
[INFO] [stdout]      |
[INFO] [stdout] 1547 | fn dump_mem_region(mem_map: &dyn MemoryBanks, start: u16, words: u16, width: u16) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `battery`, `timer`, and `rumble` are never read
[INFO] [stdout]     --> src/main.rs:2007:5
[INFO] [stdout]      |
[INFO] [stdout] 2003 | struct CartridgeFeatures {
[INFO] [stdout]      |        ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 2007 |     battery: bool,
[INFO] [stdout]      |     ^^^^^^^
[INFO] [stdout] 2008 |     timer: bool,
[INFO] [stdout]      |     ^^^^^
[INFO] [stdout] 2009 |     rumble: bool,
[INFO] [stdout]      |     ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `CartridgeFeatures` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `features` is never read
[INFO] [stdout]     --> src/main.rs:2073:5
[INFO] [stdout]      |
[INFO] [stdout] 2072 | struct GBCCart {
[INFO] [stdout]      |        ------- field in this struct
[INFO] [stdout] 2073 |     features: CartridgeFeatures,
[INFO] [stdout]      |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `channel_active`, `channel_2_pace`, and `channel_4_wavelength` are never read
[INFO] [stdout]   --> src/apu.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub struct Apu {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     channel_active: [bool; 4],
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     channel_2_pace: i8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     channel_4_wavelength: u16,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_nr52` is never used
[INFO] [stdout]    --> src/apu.rs:740:8
[INFO] [stdout]     |
[INFO] [stdout] 83  | impl Apu {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 740 |     fn set_nr52(&mut self, v: u8) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `flag_z` is never used
[INFO] [stdout]     --> src/cpu.rs:1245:8
[INFO] [stdout]      |
[INFO] [stdout] 1023 | impl Cpu {
[INFO] [stdout]      | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1245 |     fn flag_z(&self) -> bool {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `memory` is never read
[INFO] [stdout]     --> src/cpu.rs:1609:5
[INFO] [stdout]      |
[INFO] [stdout] 1607 | pub(crate) struct DecoratedInstruction<'instr, 'data> {
[INFO] [stdout]      |                   -------------------- field in this struct
[INFO] [stdout] 1608 |     cpu: &'instr Cpu,
[INFO] [stdout] 1609 |     memory: &'instr MemoryMapping<'data>,
[INFO] [stdout]      |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `do_ui` is never used
[INFO] [stdout]  --> src/frontend/tui.rs:6:15
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) fn do_ui(gb_state: Arc<Mutex<GBC>>) {
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]  --> src/timer.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub fn run(tx: std::sync::mpsc::Sender<()>) {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 77 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/frontend/tui.rs:77:17
[INFO] [stdout]    |
[INFO] [stdout] 77 |                 write!(screen, "{}", [".", "+", "*", "#"][gb.lcd.display[(i * 160 + j) as usize] as usize]);
[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)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/frontend/tui.rs:79:13
[INFO] [stdout]    |
[INFO] [stdout] 79 |             write!(screen, "\n");
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 73 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 7.82s
[INFO] running `Command { std: "docker" "inspect" "365f48b3af4f4024fb45384e3cae2474ef96400112f22c9535188e8c59a6fc71", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "365f48b3af4f4024fb45384e3cae2474ef96400112f22c9535188e8c59a6fc71", kill_on_drop: false }`
[INFO] [stdout] 365f48b3af4f4024fb45384e3cae2474ef96400112f22c9535188e8c59a6fc71
[INFO] checking iximeow/yaxgbc against nightly-2024-02-05+rustflags=-Dunexpected_cfgs+cargoflags=-Zcheck-cfg for check-cfg
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fiximeow%2Fyaxgbc" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/iximeow/yaxgbc on toolchain nightly-2024-02-05
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly-2024-02-05" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/iximeow/yaxgbc
[INFO] finished tweaking git repo https://github.com/iximeow/yaxgbc
[INFO] tweaked toml for git repo https://github.com/iximeow/yaxgbc written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/iximeow/yaxgbc already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly-2024-02-05" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: unused manifest key: dependencies.rodio.default-feature
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2024-02-05" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 55ad6d256bb1d5a790022031048ed9c7729db2b2ffb8e63b7c3820b7192fb4ff
[INFO] running `Command { std: "docker" "start" "-a" "55ad6d256bb1d5a790022031048ed9c7729db2b2ffb8e63b7c3820b7192fb4ff", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "55ad6d256bb1d5a790022031048ed9c7729db2b2ffb8e63b7c3820b7192fb4ff", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "55ad6d256bb1d5a790022031048ed9c7729db2b2ffb8e63b7c3820b7192fb4ff", kill_on_drop: false }`
[INFO] [stdout] 55ad6d256bb1d5a790022031048ed9c7729db2b2ffb8e63b7c3820b7192fb4ff
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dunexpected_cfgs" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2024-02-05" "check" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zcheck-cfg", kill_on_drop: false }`
[INFO] [stdout] 647e0e03635e72f39fe04b97ebf807fbf647bec8d912dc0050e920118df7018c
[INFO] running `Command { std: "docker" "start" "-a" "647e0e03635e72f39fe04b97ebf807fbf647bec8d912dc0050e920118df7018c", kill_on_drop: false }`
[INFO] [stderr] warning: unused manifest key: dependencies.rodio.default-feature
[INFO] [stderr]    Compiling libc v0.2.139
[INFO] [stderr]    Compiling proc-macro2 v1.0.66
[INFO] [stderr]    Compiling unicode-ident v1.0.6
[INFO] [stderr]    Compiling parking_lot_core v0.9.8
[INFO] [stderr]     Checking smallvec v1.11.0
[INFO] [stderr]    Compiling proc-macro2 v0.4.30
[INFO] [stderr]    Compiling syn v1.0.107
[INFO] [stderr]    Compiling unicode-xid v0.1.0
[INFO] [stderr]     Checking ttf-parser v0.19.1
[INFO] [stderr]     Checking log v0.4.19
[INFO] [stderr]    Compiling lock_api v0.4.10
[INFO] [stderr]    Compiling ahash v0.8.3
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]     Checking arrayvec v0.7.4
[INFO] [stderr]     Checking once_cell v1.17.0
[INFO] [stderr]    Compiling num-traits v0.2.15
[INFO] [stderr]    Compiling syn v0.15.44
[INFO] [stderr]    Compiling indexmap v1.9.2
[INFO] [stderr]    Compiling miniquad v0.3.16
[INFO] [stderr]     Checking nohash-hasher v0.2.0
[INFO] [stderr]    Compiling cpal v0.15.2
[INFO] [stderr]     Checking ogg v0.8.0
[INFO] [stderr]    Compiling tokio v1.28.2
[INFO] [stderr]     Checking webbrowser v0.5.5
[INFO] [stderr]     Checking dasp_sample v0.11.0
[INFO] [stderr]    Compiling heck v0.4.0
[INFO] [stderr]     Checking os_str_bytes v6.4.1
[INFO] [stderr]     Checking hashbrown v0.12.3
[INFO] [stderr]     Checking lewton v0.10.2
[INFO] [stderr]     Checking quad-url v0.1.1
[INFO] [stderr]     Checking claxon v0.4.3
[INFO] [stderr]     Checking windows-targets v0.42.2
[INFO] [stderr]     Checking clap_lex v0.2.4
[INFO] [stderr]     Checking termcolor v1.1.3
[INFO] [stderr]     Checking either v1.8.0
[INFO] [stderr]     Checking hound v3.5.1
[INFO] [stderr]     Checking textwrap v0.16.0
[INFO] [stderr]     Checking windows v0.46.0
[INFO] [stderr]     Checking hex v0.4.3
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]    Compiling quote v0.6.13
[INFO] [stderr]    Compiling quote v1.0.32
[INFO] [stderr]    Compiling syn v2.0.28
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]     Checking yaxpeax-arch v0.2.7
[INFO] [stderr]     Checking nix v0.24.3
[INFO] [stderr]     Checking getrandom v0.2.8
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking signal-hook-registry v1.4.1
[INFO] [stderr]     Checking mio v0.8.8
[INFO] [stderr]     Checking num_cpus v1.16.0
[INFO] [stderr]     Checking socket2 v0.4.9
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking parking_lot v0.12.1
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking alsa v0.7.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking owned_ttf_parser v0.19.0
[INFO] [stderr]     Checking ab_glyph v0.2.21
[INFO] [stderr]    Compiling num_enum v0.2.3
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]     Checking yaxpeax-sm83 v0.2.0 (https://www.github.com/iximeow/yaxpeax-sm83.git?rev=8332b3750cd3f42ca83d02347afc560b37992a69#8332b375)
[INFO] [stderr]    Compiling bytemuck_derive v1.4.1
[INFO] [stderr]    Compiling tokio-macros v2.1.0
[INFO] [stderr]    Compiling clap_derive v3.2.18
[INFO] [stderr]     Checking bytemuck v1.13.1
[INFO] [stderr]     Checking symphonia-core v0.5.3
[INFO] [stderr]     Checking ecolor v0.21.0
[INFO] [stderr]     Checking emath v0.21.0
[INFO] [stderr]     Checking epaint v0.21.0
[INFO] [stderr]     Checking clap v3.2.23
[INFO] [stderr]     Checking symphonia-metadata v0.5.3
[INFO] [stderr]     Checking egui v0.21.0
[INFO] [stderr]     Checking symphonia-bundle-mp3 v0.5.3
[INFO] [stderr]     Checking symphonia v0.5.3
[INFO] [stderr]     Checking rodio v0.17.3
[INFO] [stderr]     Checking egui-miniquad v0.14.0
[INFO] [stderr]     Checking yaxpeax-gbc v0.2.10 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/apu.rs:89:35
[INFO] [stdout]    |
[INFO] [stdout] 89 |                 let period_step = (value & 0x07);
[INFO] [stdout]    |                                   ^            ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 89 -                 let period_step = (value & 0x07);
[INFO] [stdout] 89 +                 let period_step = value & 0x07;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/apu.rs:223:46
[INFO] [stdout]     |
[INFO] [stdout] 223 |                 self.channel_4_clock_shift = (value >> 4);
[INFO] [stdout]     |                                              ^          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 223 -                 self.channel_4_clock_shift = (value >> 4);
[INFO] [stdout] 223 +                 self.channel_4_clock_shift = value >> 4;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/apu.rs:89:35
[INFO] [stdout]    |
[INFO] [stdout] 89 |                 let period_step = (value & 0x07);
[INFO] [stdout]    |                                   ^            ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 89 -                 let period_step = (value & 0x07);
[INFO] [stdout] 89 +                 let period_step = value & 0x07;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected `cfg` condition value: `branch-trace`
[INFO] [stdout]     --> src/cpu.rs:1042:19
[INFO] [stdout]      |
[INFO] [stdout] 1042 |         #[cfg(not(feature="branch-trace"))]
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]      |
[INFO] [stdout]      = note: no expected values for `feature`
[INFO] [stdout]      = help: consider adding `branch-trace` as a feature in `Cargo.toml`
[INFO] [stdout]      = note: see <https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#check-cfg> for more information about checking conditional configuration
[INFO] [stdout]      = note: requested on the command line with `-D unexpected-cfgs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected `cfg` condition value: `branch-trace`
[INFO] [stdout]     --> src/cpu.rs:1061:19
[INFO] [stdout]      |
[INFO] [stdout] 1061 |         #[cfg(not(feature="branch-trace"))]
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]      |
[INFO] [stdout]      = note: no expected values for `feature`
[INFO] [stdout]      = help: consider adding `branch-trace` as a feature in `Cargo.toml`
[INFO] [stdout]      = note: see <https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#check-cfg> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/apu.rs:223:46
[INFO] [stdout]     |
[INFO] [stdout] 223 |                 self.channel_4_clock_shift = (value >> 4);
[INFO] [stdout]     |                                              ^          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 223 -                 self.channel_4_clock_shift = (value >> 4);
[INFO] [stdout] 223 +                 self.channel_4_clock_shift = value >> 4;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected `cfg` condition value: `branch-trace`
[INFO] [stdout]     --> src/cpu.rs:1109:19
[INFO] [stdout]      |
[INFO] [stdout] 1109 |         #[cfg(not(feature="branch-trace"))]
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]      |
[INFO] [stdout]      = note: no expected values for `feature`
[INFO] [stdout]      = help: consider adding `branch-trace` as a feature in `Cargo.toml`
[INFO] [stdout]      = note: see <https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#check-cfg> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected `cfg` condition value: `branch-trace`
[INFO] [stdout]     --> src/cpu.rs:1146:19
[INFO] [stdout]      |
[INFO] [stdout] 1146 |         #[cfg(not(feature="branch-trace"))]
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]      |
[INFO] [stdout]      = note: no expected values for `feature`
[INFO] [stdout]      = help: consider adding `branch-trace` as a feature in `Cargo.toml`
[INFO] [stdout]      = note: see <https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#check-cfg> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected `cfg` condition value: `branch-trace`
[INFO] [stdout]     --> src/cpu.rs:1168:19
[INFO] [stdout]      |
[INFO] [stdout] 1168 |         #[cfg(not(feature="branch-trace"))]
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]      |
[INFO] [stdout]      = note: no expected values for `feature`
[INFO] [stdout]      = help: consider adding `branch-trace` as a feature in `Cargo.toml`
[INFO] [stdout]      = note: see <https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#check-cfg> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::FlatMapper`
[INFO] [stdout]     --> src/cpu.rs:1348:13
[INFO] [stdout]      |
[INFO] [stdout] 1348 |         use crate::FlatMapper;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::MemoryMapping`
[INFO] [stdout]     --> src/cpu.rs:1349:13
[INFO] [stdout]      |
[INFO] [stdout] 1349 |         use crate::MemoryMapping;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Write`
[INFO] [stdout]  --> src/frontend/gui.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicBool`, `Ordering`
[INFO] [stdout]  --> src/frontend/gui.rs:3:25
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::atomic::{AtomicBool, Ordering};
[INFO] [stdout]   |                         ^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LCDC`, `STAT`
[INFO] [stdout]  --> src/frontend/gui.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{STAT, SCX, SCY, IF, IE, GBC, LCDC, LY, LYC};
[INFO] [stdout]   |             ^^^^                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `egui::Vec2`
[INFO] [stdout]   --> src/frontend/gui.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use egui::Vec2;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected `cfg` condition value: `branch-trace`
[INFO] [stdout]     --> src/cpu.rs:1042:19
[INFO] [stdout]      |
[INFO] [stdout] 1042 |         #[cfg(not(feature="branch-trace"))]
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]      |
[INFO] [stdout]      = note: no expected values for `feature`
[INFO] [stdout]      = help: consider adding `branch-trace` as a feature in `Cargo.toml`
[INFO] [stdout]      = note: see <https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#check-cfg> for more information about checking conditional configuration
[INFO] [stdout]      = note: requested on the command line with `-D unexpected-cfgs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected `cfg` condition value: `branch-trace`
[INFO] [stdout]     --> src/cpu.rs:1061:19
[INFO] [stdout]      |
[INFO] [stdout] 1061 |         #[cfg(not(feature="branch-trace"))]
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]      |
[INFO] [stdout]      = note: no expected values for `feature`
[INFO] [stdout]      = help: consider adding `branch-trace` as a feature in `Cargo.toml`
[INFO] [stdout]      = note: see <https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#check-cfg> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected `cfg` condition value: `branch-trace`
[INFO] [stdout]     --> src/cpu.rs:1109:19
[INFO] [stdout]      |
[INFO] [stdout] 1109 |         #[cfg(not(feature="branch-trace"))]
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]      |
[INFO] [stdout]      = note: no expected values for `feature`
[INFO] [stdout]      = help: consider adding `branch-trace` as a feature in `Cargo.toml`
[INFO] [stdout]      = note: see <https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#check-cfg> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected `cfg` condition value: `branch-trace`
[INFO] [stdout]     --> src/cpu.rs:1146:19
[INFO] [stdout]      |
[INFO] [stdout] 1146 |         #[cfg(not(feature="branch-trace"))]
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]      |
[INFO] [stdout]      = note: no expected values for `feature`
[INFO] [stdout]      = help: consider adding `branch-trace` as a feature in `Cargo.toml`
[INFO] [stdout]      = note: see <https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#check-cfg> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/main.rs:406:12
[INFO] [stdout]     |
[INFO] [stdout] 406 |         if (self.lcdc & 0b0000_1000 == 0) {
[INFO] [stdout]     |            ^                            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 406 -         if (self.lcdc & 0b0000_1000 == 0) {
[INFO] [stdout] 406 +         if self.lcdc & 0b0000_1000 == 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected `cfg` condition value: `branch-trace`
[INFO] [stdout]     --> src/cpu.rs:1168:19
[INFO] [stdout]      |
[INFO] [stdout] 1168 |         #[cfg(not(feature="branch-trace"))]
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]      |
[INFO] [stdout]      = note: no expected values for `feature`
[INFO] [stdout]      = help: consider adding `branch-trace` as a feature in `Cargo.toml`
[INFO] [stdout]      = note: see <https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#check-cfg> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Cpu`
[INFO] [stdout]     --> src/cpu.rs:1347:13
[INFO] [stdout]      |
[INFO] [stdout] 1347 |         use crate::Cpu;
[INFO] [stdout]      |             ^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::FlatMapper`
[INFO] [stdout]     --> src/cpu.rs:1348:13
[INFO] [stdout]      |
[INFO] [stdout] 1348 |         use crate::FlatMapper;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/main.rs:818:46
[INFO] [stdout]     |
[INFO] [stdout] 818 | ...                   let tile_xoffs = (window_x % 8);
[INFO] [stdout]     |                                        ^            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 818 -                             let tile_xoffs = (window_x % 8);
[INFO] [stdout] 818 +                             let tile_xoffs = window_x % 8;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::MemoryMapping`
[INFO] [stdout]     --> src/cpu.rs:1349:13
[INFO] [stdout]      |
[INFO] [stdout] 1349 |         use crate::MemoryMapping;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Write`
[INFO] [stdout]  --> src/frontend/gui.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicBool`, `Ordering`
[INFO] [stdout]  --> src/frontend/gui.rs:3:25
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::atomic::{AtomicBool, Ordering};
[INFO] [stdout]   |                         ^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1201:46
[INFO] [stdout]      |
[INFO] [stdout] 1201 |                 self.management_bits[reg] |= (value & 0b0011_0000);
[INFO] [stdout]      |                                              ^                   ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1201 -                 self.management_bits[reg] |= (value & 0b0011_0000);
[INFO] [stdout] 1201 +                 self.management_bits[reg] |= value & 0b0011_0000;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LCDC`, `STAT`
[INFO] [stdout]  --> src/frontend/gui.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{STAT, SCX, SCY, IF, IE, GBC, LCDC, LY, LYC};
[INFO] [stdout]   |             ^^^^                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `egui::Vec2`
[INFO] [stdout]   --> src/frontend/gui.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use egui::Vec2;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/main.rs:406:12
[INFO] [stdout]     |
[INFO] [stdout] 406 |         if (self.lcdc & 0b0000_1000 == 0) {
[INFO] [stdout]     |            ^                            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 406 -         if (self.lcdc & 0b0000_1000 == 0) {
[INFO] [stdout] 406 +         if self.lcdc & 0b0000_1000 == 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/main.rs:818:46
[INFO] [stdout]     |
[INFO] [stdout] 818 | ...                   let tile_xoffs = (window_x % 8);
[INFO] [stdout]     |                                        ^            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 818 -                             let tile_xoffs = (window_x % 8);
[INFO] [stdout] 818 +                             let tile_xoffs = window_x % 8;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1201:46
[INFO] [stdout]      |
[INFO] [stdout] 1201 |                 self.management_bits[reg] |= (value & 0b0011_0000);
[INFO] [stdout]      |                                              ^                   ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1201 -                 self.management_bits[reg] |= (value & 0b0011_0000);
[INFO] [stdout] 1201 +                 self.management_bits[reg] |= value & 0b0011_0000;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]     --> src/cpu.rs:1045:9
[INFO] [stdout]      |
[INFO] [stdout] 1043 |         return;
[INFO] [stdout]      |         ------ any code following this expression is unreachable
[INFO] [stdout] 1044 |
[INFO] [stdout] 1045 |         let from_linear = storage.recursive_translate(from);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]     --> src/cpu.rs:1064:9
[INFO] [stdout]      |
[INFO] [stdout] 1062 |           return;
[INFO] [stdout]      |           ------ any code following this expression is unreachable
[INFO] [stdout] 1063 |
[INFO] [stdout] 1064 | /         if self.branch_trace.len() > TRACE_DEPTH {
[INFO] [stdout] 1065 | |             self.branch_trace.pop_back();
[INFO] [stdout] 1066 | |         }
[INFO] [stdout]      | |_________^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]     --> src/cpu.rs:1045:9
[INFO] [stdout]      |
[INFO] [stdout] 1043 |         return;
[INFO] [stdout]      |         ------ any code following this expression is unreachable
[INFO] [stdout] 1044 |
[INFO] [stdout] 1045 |         let from_linear = storage.recursive_translate(from);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]     --> src/cpu.rs:1064:9
[INFO] [stdout]      |
[INFO] [stdout] 1062 |           return;
[INFO] [stdout]      |           ------ any code following this expression is unreachable
[INFO] [stdout] 1063 |
[INFO] [stdout] 1064 | /         if self.branch_trace.len() > TRACE_DEPTH {
[INFO] [stdout] 1065 | |             self.branch_trace.pop_back();
[INFO] [stdout] 1066 | |         }
[INFO] [stdout]      | |_________^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]     --> src/cpu.rs:1112:9
[INFO] [stdout]      |
[INFO] [stdout] 1110 |           return;
[INFO] [stdout]      |           ------ any code following this expression is unreachable
[INFO] [stdout] 1111 |
[INFO] [stdout] 1112 | /         if self.branch_trace.len() > TRACE_DEPTH {
[INFO] [stdout] 1113 | |             self.branch_trace.pop_back();
[INFO] [stdout] 1114 | |         }
[INFO] [stdout]      | |_________^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]     --> src/cpu.rs:1112:9
[INFO] [stdout]      |
[INFO] [stdout] 1110 |           return;
[INFO] [stdout]      |           ------ any code following this expression is unreachable
[INFO] [stdout] 1111 |
[INFO] [stdout] 1112 | /         if self.branch_trace.len() > TRACE_DEPTH {
[INFO] [stdout] 1113 | |             self.branch_trace.pop_back();
[INFO] [stdout] 1114 | |         }
[INFO] [stdout]      | |_________^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]     --> src/cpu.rs:1149:9
[INFO] [stdout]      |
[INFO] [stdout] 1147 |         return;
[INFO] [stdout]      |         ------ any code following this expression is unreachable
[INFO] [stdout] 1148 |
[INFO] [stdout] 1149 |         let from_linear = storage.recursive_translate(from);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]     --> src/cpu.rs:1171:9
[INFO] [stdout]      |
[INFO] [stdout] 1169 |         return;
[INFO] [stdout]      |         ------ any code following this expression is unreachable
[INFO] [stdout] 1170 |
[INFO] [stdout] 1171 |         let from_linear = storage.recursive_translate(from);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]     --> src/cpu.rs:1149:9
[INFO] [stdout]      |
[INFO] [stdout] 1147 |         return;
[INFO] [stdout]      |         ------ any code following this expression is unreachable
[INFO] [stdout] 1148 |
[INFO] [stdout] 1149 |         let from_linear = storage.recursive_translate(from);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]     --> src/cpu.rs:1171:9
[INFO] [stdout]      |
[INFO] [stdout] 1169 |         return;
[INFO] [stdout]      |         ------ any code following this expression is unreachable
[INFO] [stdout] 1170 |
[INFO] [stdout] 1171 |         let from_linear = storage.recursive_translate(from);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]     --> src/main.rs:1318:17
[INFO] [stdout]      |
[INFO] [stdout] 1317 |                         panic!("unhandled write {:04x}", reg);
[INFO] [stdout]      |                         ------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 1318 |                 self.management_bits[reg] = value;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]     --> src/main.rs:1318:17
[INFO] [stdout]      |
[INFO] [stdout] 1317 |                         panic!("unhandled write {:04x}", reg);
[INFO] [stdout]      |                         ------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 1318 |                 self.management_bits[reg] = value;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Write`
[INFO] [stdout]  --> src/main.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::fmt::{Write as FmtWrite};
[INFO] [stdout]   |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `word`
[INFO] [stdout]    --> src/cpu.rs:100:32
[INFO] [stdout]     |
[INFO] [stdout] 100 |     fn on_word_read(&mut self, word: u8) {
[INFO] [stdout]     |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_word`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Write`
[INFO] [stdout]  --> src/main.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::fmt::{Write as FmtWrite};
[INFO] [stdout]   |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `word`
[INFO] [stdout]    --> src/cpu.rs:100:32
[INFO] [stdout]     |
[INFO] [stdout] 100 |     fn on_word_read(&mut self, word: u8) {
[INFO] [stdout]     |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_word`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `storage`
[INFO] [stdout]     --> src/cpu.rs:1041:51
[INFO] [stdout]      |
[INFO] [stdout] 1041 |     fn trace_int<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16, int_bit: u8) {
[INFO] [stdout]      |                                                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_storage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]     --> src/cpu.rs:1041:91
[INFO] [stdout]      |
[INFO] [stdout] 1041 |     fn trace_int<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16, int_bit: u8) {
[INFO] [stdout]      |                                                                                           ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]     --> src/cpu.rs:1041:102
[INFO] [stdout]      |
[INFO] [stdout] 1041 |     fn trace_int<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16, int_bit: u8) {
[INFO] [stdout]      |                                                                                                      ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `int_bit`
[INFO] [stdout]     --> src/cpu.rs:1041:111
[INFO] [stdout]      |
[INFO] [stdout] 1041 |     fn trace_int<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16, int_bit: u8) {
[INFO] [stdout]      |                                                                                                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_int_bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `call_kind`
[INFO] [stdout]     --> src/cpu.rs:1084:38
[INFO] [stdout]      |
[INFO] [stdout] 1084 |             Some(CallRecord { addrs, call_kind }) => {
[INFO] [stdout]      |                                      ^^^^^^^^^ help: try ignoring the field: `call_kind: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `storage`
[INFO] [stdout]     --> src/cpu.rs:1060:52
[INFO] [stdout]      |
[INFO] [stdout] 1060 |     fn trace_reti<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_storage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]     --> src/cpu.rs:1060:92
[INFO] [stdout]      |
[INFO] [stdout] 1060 |     fn trace_reti<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                                                            ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]     --> src/cpu.rs:1060:103
[INFO] [stdout]      |
[INFO] [stdout] 1060 |     fn trace_reti<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                                                                       ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `storage`
[INFO] [stdout]     --> src/cpu.rs:1108:51
[INFO] [stdout]      |
[INFO] [stdout] 1108 |     fn trace_ret<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_storage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]     --> src/cpu.rs:1108:91
[INFO] [stdout]      |
[INFO] [stdout] 1108 |     fn trace_ret<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                                                           ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]     --> src/cpu.rs:1108:102
[INFO] [stdout]      |
[INFO] [stdout] 1108 |     fn trace_ret<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                                                                      ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `storage`
[INFO] [stdout]     --> src/cpu.rs:1145:52
[INFO] [stdout]      |
[INFO] [stdout] 1145 |     fn trace_call<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_storage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]     --> src/cpu.rs:1145:92
[INFO] [stdout]      |
[INFO] [stdout] 1145 |     fn trace_call<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                                                            ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]     --> src/cpu.rs:1145:103
[INFO] [stdout]      |
[INFO] [stdout] 1145 |     fn trace_call<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                                                                       ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `storage`
[INFO] [stdout]     --> src/cpu.rs:1167:54
[INFO] [stdout]      |
[INFO] [stdout] 1167 |     fn trace_branch<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_storage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]     --> src/cpu.rs:1167:94
[INFO] [stdout]      |
[INFO] [stdout] 1167 |     fn trace_branch<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                                                              ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]     --> src/cpu.rs:1167:105
[INFO] [stdout]      |
[INFO] [stdout] 1167 |     fn trace_branch<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                                                                         ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/cpu.rs:1303:13
[INFO] [stdout]      |
[INFO] [stdout] 1303 |         let mut buf = [
[INFO] [stdout]      |             ----^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> src/cpu.rs:1670:9
[INFO] [stdout]      |
[INFO] [stdout] 1670 |         0xff0f => Some("IE"),
[INFO] [stdout]      |         ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `storage`
[INFO] [stdout]     --> src/cpu.rs:1041:51
[INFO] [stdout]      |
[INFO] [stdout] 1041 |     fn trace_int<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16, int_bit: u8) {
[INFO] [stdout]      |                                                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_storage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]     --> src/cpu.rs:1041:91
[INFO] [stdout]      |
[INFO] [stdout] 1041 |     fn trace_int<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16, int_bit: u8) {
[INFO] [stdout]      |                                                                                           ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]     --> src/cpu.rs:1041:102
[INFO] [stdout]      |
[INFO] [stdout] 1041 |     fn trace_int<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16, int_bit: u8) {
[INFO] [stdout]      |                                                                                                      ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `int_bit`
[INFO] [stdout]     --> src/cpu.rs:1041:111
[INFO] [stdout]      |
[INFO] [stdout] 1041 |     fn trace_int<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16, int_bit: u8) {
[INFO] [stdout]      |                                                                                                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_int_bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `call_kind`
[INFO] [stdout]     --> src/cpu.rs:1084:38
[INFO] [stdout]      |
[INFO] [stdout] 1084 |             Some(CallRecord { addrs, call_kind }) => {
[INFO] [stdout]      |                                      ^^^^^^^^^ help: try ignoring the field: `call_kind: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `storage`
[INFO] [stdout]     --> src/cpu.rs:1060:52
[INFO] [stdout]      |
[INFO] [stdout] 1060 |     fn trace_reti<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_storage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]     --> src/cpu.rs:1060:92
[INFO] [stdout]      |
[INFO] [stdout] 1060 |     fn trace_reti<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                                                            ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]     --> src/cpu.rs:1060:103
[INFO] [stdout]      |
[INFO] [stdout] 1060 |     fn trace_reti<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                                                                       ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `storage`
[INFO] [stdout]     --> src/cpu.rs:1108:51
[INFO] [stdout]      |
[INFO] [stdout] 1108 |     fn trace_ret<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_storage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]     --> src/cpu.rs:1108:91
[INFO] [stdout]      |
[INFO] [stdout] 1108 |     fn trace_ret<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                                                           ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]     --> src/cpu.rs:1108:102
[INFO] [stdout]      |
[INFO] [stdout] 1108 |     fn trace_ret<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                                                                      ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `storage`
[INFO] [stdout]     --> src/cpu.rs:1145:52
[INFO] [stdout]      |
[INFO] [stdout] 1145 |     fn trace_call<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_storage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]     --> src/cpu.rs:1145:92
[INFO] [stdout]      |
[INFO] [stdout] 1145 |     fn trace_call<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                                                            ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]     --> src/cpu.rs:1145:103
[INFO] [stdout]      |
[INFO] [stdout] 1145 |     fn trace_call<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                                                                       ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `storage`
[INFO] [stdout]     --> src/cpu.rs:1167:54
[INFO] [stdout]      |
[INFO] [stdout] 1167 |     fn trace_branch<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_storage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]     --> src/cpu.rs:1167:94
[INFO] [stdout]      |
[INFO] [stdout] 1167 |     fn trace_branch<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                                                              ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]     --> src/cpu.rs:1167:105
[INFO] [stdout]      |
[INFO] [stdout] 1167 |     fn trace_branch<'storage: 'env, 'env>(&mut self, storage: &'env MemoryMapping<'storage>, from: u16, to: u16) {
[INFO] [stdout]      |                                                                                                         ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/frontend/tui.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 |         let mut gb = gb_state.lock().unwrap();
[INFO] [stdout]   |             ----^^
[INFO] [stdout]   |             |
[INFO] [stdout]   |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dpi_scale`
[INFO] [stdout]   --> src/frontend/gui.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let dpi_scale = ctx.dpi_scale();
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dpi_scale`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/cpu.rs:1303:13
[INFO] [stdout]      |
[INFO] [stdout] 1303 |         let mut buf = [
[INFO] [stdout]      |             ----^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/frontend/gui.rs:150:13
[INFO] [stdout]     |
[INFO] [stdout] 150 |         let mut vertex_buffers = vec![self.vertex_buffer];
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/frontend/gui.rs:151:13
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let mut images = vec![texture];
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conf`
[INFO] [stdout]    --> src/frontend/gui.rs:249:9
[INFO] [stdout]     |
[INFO] [stdout] 249 |     let conf = miniquad::conf::Conf {
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_conf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> src/cpu.rs:1670:9
[INFO] [stdout]      |
[INFO] [stdout] 1670 |         0xff0f => Some("IE"),
[INFO] [stdout]      |         ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/frontend/gui.rs:259:55
[INFO] [stdout]     |
[INFO] [stdout] 259 |     miniquad::start(miniquad::conf::Conf::default(), |mut ctx| {
[INFO] [stdout]     |                                                       ----^^^
[INFO] [stdout]     |                                                       |
[INFO] [stdout]     |                                                       help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/main.rs:87:13
[INFO] [stdout]    |
[INFO] [stdout] 87 |     let mut i = 0;
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `clock_total` is assigned to, but never used
[INFO] [stdout]   --> src/main.rs:88:13
[INFO] [stdout]    |
[INFO] [stdout] 88 |     let mut clock_total = 0;
[INFO] [stdout]    |             ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_clock_total` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/frontend/tui.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 |         let mut gb = gb_state.lock().unwrap();
[INFO] [stdout]   |             ----^^
[INFO] [stdout]   |             |
[INFO] [stdout]   |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `clock_total` is never read
[INFO] [stdout]   --> src/main.rs:97:9
[INFO] [stdout]    |
[INFO] [stdout] 97 |         clock_total = gb.run();
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dpi_scale`
[INFO] [stdout]   --> src/frontend/gui.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let dpi_scale = ctx.dpi_scale();
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dpi_scale`
[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 i = 0;
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `screen_time` is never read
[INFO] [stdout]    --> src/main.rs:553:13
[INFO] [stdout]     |
[INFO] [stdout] 553 |             screen_time -= screen_time % Self::SCREEN_TIME;
[INFO] [stdout]     |             ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tile_base`
[INFO] [stdout]    --> src/main.rs:754:25
[INFO] [stdout]     |
[INFO] [stdout] 754 |                     let tile_base = self.background_tile_base();
[INFO] [stdout]     |                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tile_base`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window_tile_base`
[INFO] [stdout]    --> src/main.rs:755:25
[INFO] [stdout]     |
[INFO] [stdout] 755 |                     let window_tile_base = self.window_tile_base();
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_window_tile_base`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/frontend/gui.rs:150:13
[INFO] [stdout]     |
[INFO] [stdout] 150 |         let mut vertex_buffers = vec![self.vertex_buffer];
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/frontend/gui.rs:151:13
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let mut images = vec![texture];
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window_y_offset`
[INFO] [stdout]    --> src/main.rs:799:79
[INFO] [stdout]     |
[INFO] [stdout] 799 |                         let window_pixel = window_coords.and_then(|(window_y, window_y_offset)| {
[INFO] [stdout]     |                                                                               ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_window_y_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conf`
[INFO] [stdout]    --> src/frontend/gui.rs:249:9
[INFO] [stdout]     |
[INFO] [stdout] 249 |     let conf = miniquad::conf::Conf {
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_conf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/frontend/gui.rs:259:55
[INFO] [stdout]     |
[INFO] [stdout] 259 |     miniquad::start(miniquad::conf::Conf::default(), |mut ctx| {
[INFO] [stdout]     |                                                       ----^^^
[INFO] [stdout]     |                                                       |
[INFO] [stdout]     |                                                       help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1064:29
[INFO] [stdout]      |
[INFO] [stdout] 1064 |                         let mut res = self.management_bits[reg];
[INFO] [stdout]      |                             ----^^^
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/main.rs:87:13
[INFO] [stdout]    |
[INFO] [stdout] 87 |     let mut i = 0;
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `clock_total` is assigned to, but never used
[INFO] [stdout]   --> src/main.rs:88:13
[INFO] [stdout]    |
[INFO] [stdout] 88 |     let mut clock_total = 0;
[INFO] [stdout]    |             ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_clock_total` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `clock_total` is never read
[INFO] [stdout]   --> src/main.rs:97:9
[INFO] [stdout]    |
[INFO] [stdout] 97 |         clock_total = gb.run();
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:87:9
[INFO] [stdout]    |
[INFO] [stdout] 87 |     let mut i = 0;
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pc_before`
[INFO] [stdout]     --> src/main.rs:1807:13
[INFO] [stdout]      |
[INFO] [stdout] 1807 |         let pc_before = self.cpu.pc;
[INFO] [stdout]      |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pc_before`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `screen_time` is never read
[INFO] [stdout]    --> src/main.rs:553:13
[INFO] [stdout]     |
[INFO] [stdout] 553 |             screen_time -= screen_time % Self::SCREEN_TIME;
[INFO] [stdout]     |             ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tile_base`
[INFO] [stdout]    --> src/main.rs:754:25
[INFO] [stdout]     |
[INFO] [stdout] 754 |                     let tile_base = self.background_tile_base();
[INFO] [stdout]     |                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tile_base`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window_tile_base`
[INFO] [stdout]    --> src/main.rs:755:25
[INFO] [stdout]     |
[INFO] [stdout] 755 |                     let window_tile_base = self.window_tile_base();
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_window_tile_base`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window_y_offset`
[INFO] [stdout]    --> src/main.rs:799:79
[INFO] [stdout]     |
[INFO] [stdout] 799 |                         let window_pixel = window_coords.and_then(|(window_y, window_y_offset)| {
[INFO] [stdout]     |                                                                               ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_window_y_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1064:29
[INFO] [stdout]      |
[INFO] [stdout] 1064 |                         let mut res = self.management_bits[reg];
[INFO] [stdout]      |                             ----^^^
[INFO] [stdout]      |                             |
[INFO] [stdout]      |                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2601:13
[INFO] [stdout]      |
[INFO] [stdout] 2601 |         let mut memory = MemoryMapping {
[INFO] [stdout]      |             ----^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pc_before`
[INFO] [stdout]     --> src/main.rs:1807:13
[INFO] [stdout]      |
[INFO] [stdout] 1807 |         let pc_before = self.cpu.pc;
[INFO] [stdout]      |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pc_before`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLOCKS_PER_FRAME` is never used
[INFO] [stdout]   --> src/main.rs:89:11
[INFO] [stdout]    |
[INFO] [stdout] 89 |     const CLOCKS_PER_FRAME: u64 = 4_190_000 / 60;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `next_line` and `next_draw_time` are never read
[INFO] [stdout]    --> src/main.rs:228:5
[INFO] [stdout]     |
[INFO] [stdout] 218 | struct Lcd {
[INFO] [stdout]     |        --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 228 |     next_line: u64,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 229 |     next_draw_time: u64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `palette_number` is never used
[INFO] [stdout]    --> src/main.rs:271:8
[INFO] [stdout]     |
[INFO] [stdout] 258 | impl OamAttributes {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 271 |     fn palette_number(&self) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `VBLANK_TIME`, `sprite_double_size`, and `sprite_enable` are never used
[INFO] [stdout]    --> src/main.rs:311:11
[INFO] [stdout]     |
[INFO] [stdout] 308 | impl Lcd {
[INFO] [stdout]     | -------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 311 |     const VBLANK_TIME: u64 = 4560; // vblank is 10 scan lines
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 429 |     fn sprite_double_size(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 433 |     fn sprite_enable(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GBCScreen` is never constructed
[INFO] [stdout]    --> src/main.rs:924:8
[INFO] [stdout]     |
[INFO] [stdout] 924 | struct GBCScreen {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GBState` is never used
[INFO] [stdout]     --> src/main.rs:1330:6
[INFO] [stdout]      |
[INFO] [stdout] 1330 | enum GBState {
[INFO] [stdout]      |      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_RAM_START` is never used
[INFO] [stdout]     --> src/main.rs:1418:7
[INFO] [stdout]      |
[INFO] [stdout] 1418 | const WAVE_RAM_START: usize = 0x130;
[INFO] [stdout]      |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_RAM_END` is never used
[INFO] [stdout]     --> src/main.rs:1419:7
[INFO] [stdout]      |
[INFO] [stdout] 1419 | const WAVE_RAM_END: usize = 0x13f;
[INFO] [stdout]      |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dump_mem_region` is never used
[INFO] [stdout]     --> src/main.rs:1547:4
[INFO] [stdout]      |
[INFO] [stdout] 1547 | fn dump_mem_region(mem_map: &dyn MemoryBanks, start: u16, words: u16, width: u16) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `battery`, `timer`, and `rumble` are never read
[INFO] [stdout]     --> src/main.rs:2007:5
[INFO] [stdout]      |
[INFO] [stdout] 2003 | struct CartridgeFeatures {
[INFO] [stdout]      |        ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 2007 |     battery: bool,
[INFO] [stdout]      |     ^^^^^^^
[INFO] [stdout] 2008 |     timer: bool,
[INFO] [stdout]      |     ^^^^^
[INFO] [stdout] 2009 |     rumble: bool,
[INFO] [stdout]      |     ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `CartridgeFeatures` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `features` is never read
[INFO] [stdout]     --> src/main.rs:2073:5
[INFO] [stdout]      |
[INFO] [stdout] 2072 | struct GBCCart {
[INFO] [stdout]      |        ------- field in this struct
[INFO] [stdout] 2073 |     features: CartridgeFeatures,
[INFO] [stdout]      |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `channel_active`, `channel_2_pace`, and `channel_4_wavelength` are never read
[INFO] [stdout]   --> src/apu.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub struct Apu {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     channel_active: [bool; 4],
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     channel_2_pace: i8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     channel_4_wavelength: u16,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_nr52` is never used
[INFO] [stdout]    --> src/apu.rs:740:8
[INFO] [stdout]     |
[INFO] [stdout] 83  | impl Apu {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 740 |     fn set_nr52(&mut self, v: u8) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `flag_z` is never used
[INFO] [stdout]     --> src/cpu.rs:1245:8
[INFO] [stdout]      |
[INFO] [stdout] 1023 | impl Cpu {
[INFO] [stdout]      | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1245 |     fn flag_z(&self) -> bool {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `memory` is never read
[INFO] [stdout]     --> src/cpu.rs:1609:5
[INFO] [stdout]      |
[INFO] [stdout] 1607 | pub(crate) struct DecoratedInstruction<'instr, 'data> {
[INFO] [stdout]      |                   -------------------- field in this struct
[INFO] [stdout] 1608 |     cpu: &'instr Cpu,
[INFO] [stdout] 1609 |     memory: &'instr MemoryMapping<'data>,
[INFO] [stdout]      |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `execute_test` is never used
[INFO] [stdout]     --> src/cpu.rs:1324:8
[INFO] [stdout]      |
[INFO] [stdout] 1324 |     fn execute_test(cpu: &mut Cpu, program: &[u8]) {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `do_ui` is never used
[INFO] [stdout]  --> src/frontend/tui.rs:6:15
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) fn do_ui(gb_state: Arc<Mutex<GBC>>) {
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]  --> src/timer.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub fn run(tx: std::sync::mpsc::Sender<()>) {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `with_test_mapping` is never used
[INFO] [stdout]     --> src/main.rs:2582:8
[INFO] [stdout]      |
[INFO] [stdout] 2582 |     fn with_test_mapping<U>(f: impl Fn(MemoryMapping) -> U) -> U {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2601:13
[INFO] [stdout]      |
[INFO] [stdout] 2601 |         let mut memory = MemoryMapping {
[INFO] [stdout]      |             ----^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/frontend/tui.rs:77:17
[INFO] [stdout]    |
[INFO] [stdout] 77 |                 write!(screen, "{}", [".", "+", "*", "#"][gb.lcd.display[(i * 160 + j) as usize] as usize]);
[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)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/frontend/tui.rs:79:13
[INFO] [stdout]    |
[INFO] [stdout] 79 |             write!(screen, "\n");
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `next_line` and `next_draw_time` are never read
[INFO] [stdout]    --> src/main.rs:228:5
[INFO] [stdout]     |
[INFO] [stdout] 218 | struct Lcd {
[INFO] [stdout]     |        --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 228 |     next_line: u64,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 229 |     next_draw_time: u64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `palette_number` is never used
[INFO] [stdout]    --> src/main.rs:271:8
[INFO] [stdout]     |
[INFO] [stdout] 258 | impl OamAttributes {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 271 |     fn palette_number(&self) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `VBLANK_TIME`, `sprite_double_size`, and `sprite_enable` are never used
[INFO] [stdout]    --> src/main.rs:311:11
[INFO] [stdout]     |
[INFO] [stdout] 308 | impl Lcd {
[INFO] [stdout]     | -------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 311 |     const VBLANK_TIME: u64 = 4560; // vblank is 10 scan lines
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 429 |     fn sprite_double_size(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 433 |     fn sprite_enable(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GBCScreen` is never constructed
[INFO] [stdout]    --> src/main.rs:924:8
[INFO] [stdout]     |
[INFO] [stdout] 924 | struct GBCScreen {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GBState` is never used
[INFO] [stdout]     --> src/main.rs:1330:6
[INFO] [stdout]      |
[INFO] [stdout] 1330 | enum GBState {
[INFO] [stdout]      |      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_RAM_START` is never used
[INFO] [stdout]     --> src/main.rs:1418:7
[INFO] [stdout]      |
[INFO] [stdout] 1418 | const WAVE_RAM_START: usize = 0x130;
[INFO] [stdout]      |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_RAM_END` is never used
[INFO] [stdout]     --> src/main.rs:1419:7
[INFO] [stdout]      |
[INFO] [stdout] 1419 | const WAVE_RAM_END: usize = 0x13f;
[INFO] [stdout]      |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dump_mem_region` is never used
[INFO] [stdout]     --> src/main.rs:1547:4
[INFO] [stdout]      |
[INFO] [stdout] 1547 | fn dump_mem_region(mem_map: &dyn MemoryBanks, start: u16, words: u16, width: u16) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `battery`, `timer`, and `rumble` are never read
[INFO] [stdout]     --> src/main.rs:2007:5
[INFO] [stdout]      |
[INFO] [stdout] 2003 | struct CartridgeFeatures {
[INFO] [stdout]      |        ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 2007 |     battery: bool,
[INFO] [stdout]      |     ^^^^^^^
[INFO] [stdout] 2008 |     timer: bool,
[INFO] [stdout]      |     ^^^^^
[INFO] [stdout] 2009 |     rumble: bool,
[INFO] [stdout]      |     ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `CartridgeFeatures` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `features` is never read
[INFO] [stdout]     --> src/main.rs:2073:5
[INFO] [stdout]      |
[INFO] [stdout] 2072 | struct GBCCart {
[INFO] [stdout]      |        ------- field in this struct
[INFO] [stdout] 2073 |     features: CartridgeFeatures,
[INFO] [stdout]      |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `channel_active`, `channel_2_pace`, and `channel_4_wavelength` are never read
[INFO] [stdout]   --> src/apu.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub struct Apu {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     channel_active: [bool; 4],
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     channel_2_pace: i8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     channel_4_wavelength: u16,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_nr52` is never used
[INFO] [stdout]    --> src/apu.rs:740:8
[INFO] [stdout]     |
[INFO] [stdout] 83  | impl Apu {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 740 |     fn set_nr52(&mut self, v: u8) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `flag_z` is never used
[INFO] [stdout]     --> src/cpu.rs:1245:8
[INFO] [stdout]      |
[INFO] [stdout] 1023 | impl Cpu {
[INFO] [stdout]      | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1245 |     fn flag_z(&self) -> bool {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `memory` is never read
[INFO] [stdout]     --> src/cpu.rs:1609:5
[INFO] [stdout]      |
[INFO] [stdout] 1607 | pub(crate) struct DecoratedInstruction<'instr, 'data> {
[INFO] [stdout]      |                   -------------------- field in this struct
[INFO] [stdout] 1608 |     cpu: &'instr Cpu,
[INFO] [stdout] 1609 |     memory: &'instr MemoryMapping<'data>,
[INFO] [stdout]      |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `do_ui` is never used
[INFO] [stdout]  --> src/frontend/tui.rs:6:15
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) fn do_ui(gb_state: Arc<Mutex<GBC>>) {
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]  --> src/timer.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub fn run(tx: std::sync::mpsc::Sender<()>) {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors; 77 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/frontend/tui.rs:77:17
[INFO] [stdout]    |
[INFO] [stdout] 77 |                 write!(screen, "{}", [".", "+", "*", "#"][gb.lcd.display[(i * 160 + j) as usize] as usize]);
[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)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/frontend/tui.rs:79:13
[INFO] [stdout]    |
[INFO] [stdout] 79 |             write!(screen, "\n");
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `yaxpeax-gbc` (bin "yaxgbc") due to 6 previous errors; 77 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: aborting due to 5 previous errors; 73 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `yaxpeax-gbc` (bin "yaxgbc" test) due to 6 previous errors; 73 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "647e0e03635e72f39fe04b97ebf807fbf647bec8d912dc0050e920118df7018c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "647e0e03635e72f39fe04b97ebf807fbf647bec8d912dc0050e920118df7018c", kill_on_drop: false }`
[INFO] [stdout] 647e0e03635e72f39fe04b97ebf807fbf647bec8d912dc0050e920118df7018c
