[INFO] cloning repository https://github.com/KaOs1/gb-r
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/KaOs1/gb-r" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKaOs1%2Fgb-r", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKaOs1%2Fgb-r'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 08ed4a1ff9b595811d3b6a2d2be31feec19f2ac2
[INFO] checking KaOs1/gb-r against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKaOs1%2Fgb-r" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/KaOs1/gb-r
[INFO] finished tweaking git repo https://github.com/KaOs1/gb-r
[INFO] tweaked toml for git repo https://github.com/KaOs1/gb-r written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/KaOs1/gb-r on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/KaOs1/gb-r 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" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded thiserror-impl v1.0.47
[INFO] [stderr]   Downloaded winit_input_helper v0.14.1
[INFO] [stderr]   Downloaded ab_glyph v0.2.21
[INFO] [stderr]   Downloaded thiserror v1.0.47
[INFO] [stderr]   Downloaded random_color v0.6.1
[INFO] [stderr]   Downloaded type-map v0.5.0
[INFO] [stderr]   Downloaded smithay-clipboard v0.6.5
[INFO] [stderr]   Downloaded lebe v0.5.1
[INFO] [stderr]   Downloaded num v0.4.1
[INFO] [stderr]   Downloaded ecolor v0.22.0
[INFO] [stderr]   Downloaded str-buf v1.0.5
[INFO] [stderr]   Downloaded atomic_refcell v0.1.12
[INFO] [stderr]   Downloaded errno v0.3.4
[INFO] [stderr]   Downloaded predicates-tree v1.0.9
[INFO] [stderr]   Downloaded range-alloc v0.1.1
[INFO] [stderr]   Downloaded predicates-core v1.0.6
[INFO] [stderr]   Downloaded pin-project-internal v1.0.10
[INFO] [stderr]   Downloaded egui-winit v0.22.0
[INFO] [stderr]   Downloaded pixels v0.13.0
[INFO] [stderr]   Downloaded egui-wgpu v0.22.0
[INFO] [stderr]   Downloaded emath v0.22.0
[INFO] [stderr]   Downloaded egui_extras v0.22.0
[INFO] [stderr]   Downloaded gif v0.11.3
[INFO] [stderr]   Downloaded webbrowser v0.8.11
[INFO] [stderr]   Downloaded arboard v3.2.0
[INFO] [stderr]   Downloaded flume v0.10.12
[INFO] [stderr]   Downloaded wide v0.7.11
[INFO] [stderr]   Downloaded crossbeam-channel v0.5.4
[INFO] [stderr]   Downloaded mio v0.8.2
[INFO] [stderr]   Downloaded ttf-parser v0.19.1
[INFO] [stderr]   Downloaded ultraviolet v0.9.1
[INFO] [stderr]   Downloaded aho-corasick v1.1.1
[INFO] [stderr]   Downloaded syn v1.0.87
[INFO] [stderr]   Downloaded syn v2.0.29
[INFO] [stderr]   Downloaded egui v0.22.0
[INFO] [stderr]   Downloaded exr v1.4.1
[INFO] [stderr]   Downloaded image v0.24.1
[INFO] [stderr]   Downloaded object v0.32.0
[INFO] [stderr]   Downloaded regex v1.9.5
[INFO] [stderr]   Downloaded pin-project v1.0.10
[INFO] [stderr]   Downloaded rustix v0.38.17
[INFO] [stderr]   Downloaded libloading v0.8.0
[INFO] [stderr]   Downloaded bitflags v2.4.0
[INFO] [stderr]   Downloaded winit v0.28.6
[INFO] [stderr]   Downloaded calloop v0.10.2
[INFO] [stderr]   Downloaded crossbeam-utils v0.8.8
[INFO] [stderr]   Downloaded regex-automata v0.3.8
[INFO] [stderr]   Downloaded jpeg-decoder v0.2.2
[INFO] [stderr]   Downloaded epaint v0.22.0
[INFO] [stderr]   Downloaded linux-raw-sys v0.4.8
[INFO] [stderr]   Downloaded tiff v0.7.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 458e1006aa2c319385fb8a5b4bc60d3e082b2694cf16bb03d4f8763dab2efe84
[INFO] running `Command { std: "docker" "start" "-a" "458e1006aa2c319385fb8a5b4bc60d3e082b2694cf16bb03d4f8763dab2efe84", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "458e1006aa2c319385fb8a5b4bc60d3e082b2694cf16bb03d4f8763dab2efe84", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "458e1006aa2c319385fb8a5b4bc60d3e082b2694cf16bb03d4f8763dab2efe84", kill_on_drop: false }`
[INFO] [stdout] 458e1006aa2c319385fb8a5b4bc60d3e082b2694cf16bb03d4f8763dab2efe84
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 155b354186105a1c2ee681f01f445b8d3020f9db7c7520c776cfe8062e926e2b
[INFO] running `Command { std: "docker" "start" "-a" "155b354186105a1c2ee681f01f445b8d3020f9db7c7520c776cfe8062e926e2b", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.148
[INFO] [stderr]    Compiling proc-macro2 v1.0.66
[INFO] [stderr]     Checking smallvec v1.8.0
[INFO] [stderr]    Compiling log v0.4.14
[INFO] [stderr]     Checking libloading v0.7.3
[INFO] [stderr]    Compiling thiserror v1.0.47
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]    Compiling num-traits v0.2.16
[INFO] [stderr]     Checking lock_api v0.4.6
[INFO] [stderr]    Compiling wayland-sys v0.29.5
[INFO] [stderr]     Checking ttf-parser v0.19.1
[INFO] [stderr]     Checking scoped-tls v1.0.0
[INFO] [stderr]     Checking arrayvec v0.7.2
[INFO] [stderr]     Checking nom v7.1.1
[INFO] [stderr]    Compiling ahash v0.7.6
[INFO] [stderr]     Checking bitflags v2.4.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.8
[INFO] [stderr]     Checking dlib v0.5.0
[INFO] [stderr]    Compiling syn v1.0.87
[INFO] [stderr]     Checking deflate v1.0.0
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]     Checking miniz_oxide v0.5.1
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.8
[INFO] [stderr]    Compiling ahash v0.8.3
[INFO] [stderr]     Checking unicode-width v0.1.8
[INFO] [stderr]    Compiling getrandom v0.1.16
[INFO] [stderr]     Checking bit-set v0.5.2
[INFO] [stderr]    Compiling smithay-client-toolkit v0.16.0
[INFO] [stderr]     Checking codespan-reporting v0.11.1
[INFO] [stderr]    Compiling futures-core v0.3.21
[INFO] [stderr]    Compiling rayon-core v1.9.1
[INFO] [stderr]     Checking arrayref v0.3.7
[INFO] [stderr]     Checking either v1.6.1
[INFO] [stderr]     Checking gpu-alloc v0.5.3
[INFO] [stderr]     Checking ash v0.37.3+1.3.251
[INFO] [stderr]     Checking wgpu-types v0.16.1
[INFO] [stderr]     Checking aho-corasick v1.1.1
[INFO] [stderr]    Compiling num-bigint v0.4.4
[INFO] [stderr]     Checking libloading v0.8.0
[INFO] [stderr]     Checking regex-syntax v0.7.5
[INFO] [stderr]     Checking profiling v1.0.5
[INFO] [stderr]     Checking ppv-lite86 v0.2.16
[INFO] [stderr]     Checking nohash-hasher v0.2.0
[INFO] [stderr]     Checking crossbeam-deque v0.8.1
[INFO] [stderr]     Checking png v0.17.5
[INFO] [stderr]     Checking crossbeam-channel v0.5.4
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]    Compiling rayon v1.5.1
[INFO] [stderr]    Compiling quote v1.0.33
[INFO] [stderr]    Compiling num-rational v0.4.1
[INFO] [stderr]    Compiling num-iter v0.1.43
[INFO] [stderr]    Compiling smithay-client-toolkit v0.15.3
[INFO] [stderr]    Compiling syn v2.0.29
[INFO] [stderr]    Compiling wayland-scanner v0.29.5
[INFO] [stderr]     Checking futures-sink v0.3.21
[INFO] [stderr]    Compiling rustix v0.38.17
[INFO] [stderr]     Checking idna v0.2.3
[INFO] [stderr]     Checking spirv v0.2.0+1.5.4
[INFO] [stderr]     Checking form_urlencoded v1.0.1
[INFO] [stderr]     Checking instant v0.1.9
[INFO] [stderr]     Checking linux-raw-sys v0.4.8
[INFO] [stderr]     Checking weezl v0.1.5
[INFO] [stderr]    Compiling byteorder v1.3.4
[INFO] [stderr]     Checking inflate v0.4.5
[INFO] [stderr]     Checking bit_field v0.10.1
[INFO] [stderr]     Checking url v2.2.2
[INFO] [stderr]     Checking home v0.5.5
[INFO] [stderr]     Checking lebe v0.5.1
[INFO] [stderr]     Checking predicates-core v1.0.6
[INFO] [stderr]     Checking half v1.8.2
[INFO] [stderr]     Checking jpeg-decoder v0.1.22
[INFO] [stderr]     Checking gif v0.11.3
[INFO] [stderr]     Checking float-cmp v0.9.0
[INFO] [stderr]     Checking getrandom v0.2.5
[INFO] [stderr]     Checking nix v0.24.3
[INFO] [stderr]     Checking parking_lot_core v0.9.8
[INFO] [stderr]     Checking nix v0.22.3
[INFO] [stderr]     Checking num_cpus v1.13.1
[INFO] [stderr]     Checking memmap2 v0.5.10
[INFO] [stderr]     Checking xcursor v0.3.4
[INFO] [stderr]     Checking khronos-egl v4.1.0
[INFO] [stderr]     Checking parking_lot v0.12.1
[INFO] [stderr]     Checking regex-automata v0.3.8
[INFO] [stderr]     Checking nanorand v0.7.0
[INFO] [stderr]     Checking hashbrown v0.11.2
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking x11-dl v2.19.1
[INFO] [stderr]     Checking mio v0.8.2
[INFO] [stderr]     Checking gethostname v0.2.3
[INFO] [stderr]     Checking owned_ttf_parser v0.19.0
[INFO] [stderr]     Checking memmap2 v0.3.1
[INFO] [stderr]     Checking rand_pcg v0.2.1
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking threadpool v1.8.1
[INFO] [stderr]     Checking rand_core v0.6.3
[INFO] [stderr]     Checking ab_glyph v0.2.21
[INFO] [stderr]     Checking flate2 v1.0.22
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking is-terminal v0.4.9
[INFO] [stderr]     Checking gpu-descriptor v0.2.2
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking webbrowser v0.8.11
[INFO] [stderr]    Compiling wayland-client v0.29.5
[INFO] [stderr]    Compiling wayland-protocols v0.29.5
[INFO] [stderr]    Compiling winit v0.28.6
[INFO] [stderr]     Checking tiff v0.7.1
[INFO] [stderr]     Checking num-complex v0.4.4
[INFO] [stderr]     Checking num-traits v0.1.43
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking type-map v0.5.0
[INFO] [stderr]     Checking normalize-line-endings v0.3.0
[INFO] [stderr]     Checking termtree v0.4.1
[INFO] [stderr]     Checking pollster v0.3.0
[INFO] [stderr]     Checking predicates-tree v1.0.9
[INFO] [stderr]     Checking enum_primitive v0.1.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking num v0.4.1
[INFO] [stderr]     Checking flume v0.11.0
[INFO] [stderr]     Checking fragile v2.0.0
[INFO] [stderr]     Checking downcast v0.11.0
[INFO] [stderr]     Checking random_color v0.6.1
[INFO] [stderr]     Checking dotenv v0.15.0
[INFO] [stderr]    Compiling bytemuck_derive v1.4.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.47
[INFO] [stderr]    Compiling serde_derive v1.0.188
[INFO] [stderr]     Checking bytemuck v1.13.1
[INFO] [stderr]     Checking naga v0.12.3
[INFO] [stderr]     Checking ecolor v0.22.0
[INFO] [stderr]     Checking emath v0.22.0
[INFO] [stderr]     Checking tiny-skia-path v0.8.4
[INFO] [stderr]     Checking safe_arch v0.7.1
[INFO] [stderr]     Checking regex v1.9.5
[INFO] [stderr]     Checking wide v0.7.11
[INFO] [stderr]     Checking tiny-skia v0.8.4
[INFO] [stderr]     Checking epaint v0.22.0
[INFO] [stderr]     Checking predicates v2.1.5
[INFO] [stderr]     Checking env_logger v0.10.0
[INFO] [stderr]     Checking jpeg-decoder v0.2.2
[INFO] [stderr]     Checking wayland-commons v0.29.5
[INFO] [stderr]     Checking calloop v0.10.2
[INFO] [stderr]     Checking x11rb-protocol v0.10.0
[INFO] [stderr]     Checking egui v0.22.0
[INFO] [stderr]    Compiling pin-project-internal v1.0.10
[INFO] [stderr]    Compiling mockall_derive v0.11.4
[INFO] [stderr]     Checking ultraviolet v0.9.1
[INFO] [stderr]     Checking wayland-cursor v0.29.4
[INFO] [stderr]     Checking pin-project v1.0.10
[INFO] [stderr]     Checking flume v0.10.12
[INFO] [stderr]     Checking exr v1.4.1
[INFO] [stderr]     Checking serde v1.0.188
[INFO] [stderr]     Checking mockall v0.11.4
[INFO] [stderr]     Checking image v0.24.1
[INFO] [stderr]     Checking x11rb v0.10.1
[INFO] [stderr]     Checking egui_extras v0.22.0
[INFO] [stderr]     Checking wgpu-hal v0.16.2
[INFO] [stderr]     Checking arboard v3.2.0
[INFO] [stderr]     Checking wgpu-core v0.16.1
[INFO] [stderr]     Checking wgpu v0.16.3
[INFO] [stderr]     Checking pixels v0.13.0
[INFO] [stderr]     Checking egui-wgpu v0.22.0
[INFO] [stderr]     Checking smithay-clipboard v0.6.5
[INFO] [stderr]     Checking sctk-adwaita v0.5.4
[INFO] [stderr]     Checking winit_input_helper v0.14.1
[INFO] [stderr]     Checking egui-winit v0.22.0
[INFO] [stderr]     Checking gb-r v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `TILE_COLOR_ID`
[INFO] [stdout]  --> src/gbr/ppu/pixel_processor.rs:9:31
[INFO] [stdout]   |
[INFO] [stdout] 9 |     tile::{TileData, TileMap, TILE_COLOR_ID},
[INFO] [stdout]   |                               ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TILE_COLOR_ID`
[INFO] [stdout]  --> src/gbr/ppu/pixel_processor.rs:9:31
[INFO] [stdout]   |
[INFO] [stdout] 9 |     tile::{TileData, TileMap, TILE_COLOR_ID},
[INFO] [stdout]   |                               ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GenericImage`
[INFO] [stdout]  --> src/debugger/tilemap_view.rs:2:13
[INFO] [stdout]   |
[INFO] [stdout] 2 | use image::{GenericImage, RgbaImage};
[INFO] [stdout]   |             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GenericImage`
[INFO] [stdout]  --> src/debugger/tilemap_view.rs:2:13
[INFO] [stdout]   |
[INFO] [stdout] 2 | use image::{GenericImage, RgbaImage};
[INFO] [stdout]   |             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `settings`
[INFO] [stdout]   --> src/gbr/game_boy.rs:88:39
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub fn update_settings(&mut self, settings: &EmuSettings) {
[INFO] [stdout]    |                                       ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_settings`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame_time`
[INFO] [stdout]    --> src/gbr/game_boy.rs:178:13
[INFO] [stdout]     |
[INFO] [stdout] 178 |         let frame_time = Duration::from_secs_f64(1.0 / 59.7);
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frame_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `elapsed`
[INFO] [stdout]    --> src/gbr/game_boy.rs:207:21
[INFO] [stdout]     |
[INFO] [stdout] 207 |                 let elapsed = SystemTime::now().duration_since(now).unwrap();
[INFO] [stdout]     |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_elapsed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/gbr/mbc.rs:123:13
[INFO] [stdout]     |
[INFO] [stdout] 123 |             _ => Err(GbError::MbcAddrOutOfBounds(addr)),
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/gbr/mbc.rs:123:13
[INFO] [stdout]     |
[INFO] [stdout] 100 |             CART_ROM_BANK0_START..=CART_ROM_BANK0_END => Ok(self.rom[addr as usize]),
[INFO] [stdout]     |             ----------------------------------------- matches some of the same values
[INFO] [stdout] 101 |             CART_ROM_ACTIVE_BANK_START..=CART_ROM_ACTIVE_BANK_END => {
[INFO] [stdout]     |             ----------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 114 |             CART_RAM_START..=CART_RAM_END => {
[INFO] [stdout]     |             ----------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 122 |             _ => panic!("Read byte from {:#06X}", addr),
[INFO] [stdout]     |             - matches some of the same values
[INFO] [stdout] 123 |             _ => Err(GbError::MbcAddrOutOfBounds(addr)),
[INFO] [stdout]     |             ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/gbr/mbc.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 167 |             _ => return Err(GbError::MbcAddrOutOfBounds(addr)),
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/gbr/mbc.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 129 |             RAM_ENABLE_REG_START..=RAM_ENABLE_REG_END => {
[INFO] [stdout]     |             ----------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 132 |             BANK_REG1_START..=BANK_REG1_END => {
[INFO] [stdout]     |             ------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 147 |             BANK_REG2_START..=BANK_REG2_END => {
[INFO] [stdout]     |             ------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 154 |             BANK_MODE_START..=BANK_MODE_END => {
[INFO] [stdout]     |             ------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 167 |             _ => return Err(GbError::MbcAddrOutOfBounds(addr)),
[INFO] [stdout]     |             ^ ...and 2 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/gbr/mbc.rs:190:13
[INFO] [stdout]     |
[INFO] [stdout] 190 |             _ => Err(GbError::MbcAddrOutOfBounds(addr)),
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/gbr/mbc.rs:190:13
[INFO] [stdout]     |
[INFO] [stdout] 175 |             CART_ROM_BANK0_START..=CART_ROM_BANK0_END => {
[INFO] [stdout]     |             ----------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 178 |             CART_ROM_ACTIVE_BANK_START..=CART_ROM_ACTIVE_BANK_END => Ok(LittleEndian::read_u16(
[INFO] [stdout]     |             ----------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 181 |             CART_RAM_START..=CART_RAM_END => {
[INFO] [stdout]     |             ----------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 189 |             _ => panic!("Read word from {:#06X}", addr),
[INFO] [stdout]     |             - matches some of the same values
[INFO] [stdout] 190 |             _ => Err(GbError::MbcAddrOutOfBounds(addr)),
[INFO] [stdout]     |             ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tiles`
[INFO] [stdout]    --> src/gbr/ppu/pixel_processor.rs:316:33
[INFO] [stdout]     |
[INFO] [stdout] 316 |     fn get_tile_data(&mut self, tiles: &TileData, lcd_ctrl: &LcdControlRegister) {
[INFO] [stdout]     |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_tiles`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `instr`
[INFO] [stdout]    --> src/gbr/cpu.rs:639:17
[INFO] [stdout]     |
[INFO] [stdout] 639 |             let instr = Instruction::decode(opcode, byte, word).unwrap();
[INFO] [stdout]     |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_instr`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `settings`
[INFO] [stdout]   --> src/gbr/game_boy.rs:88:39
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub fn update_settings(&mut self, settings: &EmuSettings) {
[INFO] [stdout]    |                                       ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_settings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame_time`
[INFO] [stdout]    --> src/gbr/game_boy.rs:178:13
[INFO] [stdout]     |
[INFO] [stdout] 178 |         let frame_time = Duration::from_secs_f64(1.0 / 59.7);
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frame_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `elapsed`
[INFO] [stdout]    --> src/gbr/game_boy.rs:207:21
[INFO] [stdout]     |
[INFO] [stdout] 207 |                 let elapsed = SystemTime::now().duration_since(now).unwrap();
[INFO] [stdout]     |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_elapsed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `AddrOutOfBounds` is never constructed
[INFO] [stdout]   --> src/gbr/mod.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub enum GbError {
[INFO] [stdout]    |          ------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 32 |     AddrOutOfBounds(u16),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GbError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/gbr/cart_header.rs:163:5
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub struct CartHeader {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 163 |     title: String,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 164 |     manufactorer_code: String,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 165 |     old_licensee_code: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 166 |     new_licensee_code: [u8; 2],
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 167 |     destination_code: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 168 |     rom_version_number: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 169 |     cgb_flag: bool,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 170 |     sgb_flag: bool,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CartHeader` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `UpdateSettings` is never constructed
[INFO] [stdout]    --> src/gbr/game_boy.rs:127:5
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub enum GbrEvent {
[INFO] [stdout]     |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 127 |     UpdateSettings(EmuSettings),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `skip_bootrom` and `fps_limiter` are never read
[INFO] [stdout]    --> src/gbr/game_boy.rs:142:5
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub struct EmuSettings {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 142 |     skip_bootrom: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 143 |     fps_limiter: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Error` is never constructed
[INFO] [stdout]    --> src/gbr/game_boy.rs:163:5
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub enum EmuState {
[INFO] [stdout]     |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 163 |     Error,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `opcode` and `peek_len` are never used
[INFO] [stdout]    --> src/gbr/instruction/mod.rs:310:12
[INFO] [stdout]     |
[INFO] [stdout] 309 | impl Instruction {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 310 |     pub fn opcode(&self) -> Opcode {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 856 |     pub fn peek_len(opcode: u8) -> Result<u8, GbError> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `lyc` is never read
[INFO] [stdout]   --> src/gbr/ppu/mod.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub struct PpuState {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub lyc: u8,
[INFO] [stdout]    |         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PpuState` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `GetTileData`, `PushBg`, `PushObjs`, and `PopPixels` are never constructed
[INFO] [stdout]   --> src/gbr/ppu/pixel_processor.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | enum Step {
[INFO] [stdout]    |      ---- variants in this enum
[INFO] [stdout] 15 |     GetTileIndex,
[INFO] [stdout] 16 |     GetTileData,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 17 |     PushBg,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 18 |     PushObjs,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 19 |     PopPixels,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/gbr/ppu/pixel_processor.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct PixelProcessor {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 50 |     scan_line_x: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 51 |     old_dots: u16,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 52 |     curr_step: Step,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 53 |     curr_tile_index: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 54 |     curr_tile_line: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 55 |     curr_tile_msb: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 56 |     curr_tile_lsb: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 57 |     scroll_x: u8,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 58 |     scroll_y: u8,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 59 |     objs: Vec<ObjAttribute>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 60 |     pixel_fifo: Vec<Pixel>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/gbr/ppu/pixel_processor.rs:82:12
[INFO] [stdout]     |
[INFO] [stdout]  64 | impl PixelProcessor {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  82 |     pub fn start(&mut self, oam: &ObjAttributeMemory, ly: u8, viewport: &Point<u8>) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  98 |     pub fn finished(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn process(
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 267 |     fn get_tile_index(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 302 |     fn get_win_tile_pos(&mut self, ly: u8, win_position: &Point<u8>) -> Point<u16> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 309 |     fn get_bg_tile_pos(&mut self, ly: u8) -> Point<u16> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 316 |     fn get_tile_data(&mut self, tiles: &TileData, lcd_ctrl: &LcdControlRegister) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 323 |     fn push_bg(&mut self, tiles: &TileData) {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 335 |     fn push_objs(&mut self, ly: u8, tiles: &TileData, lcd_ctrl: &LcdControlRegister) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 374 |     fn pop_pixels(&mut self, ly: u8, bg_palette: &Palette, obj_palettes: &[Palette]) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `at` is never used
[INFO] [stdout]    --> src/gbr/ppu/tile.rs:125:12
[INFO] [stdout]     |
[INFO] [stdout] 124 | impl TileMap {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] 125 |     pub fn at(&self, r: usize, c: usize) -> u8 {
[INFO] [stdout]     |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/gbr/mbc.rs:123:13
[INFO] [stdout]     |
[INFO] [stdout] 123 |             _ => Err(GbError::MbcAddrOutOfBounds(addr)),
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/gbr/mbc.rs:123:13
[INFO] [stdout]     |
[INFO] [stdout] 100 |             CART_ROM_BANK0_START..=CART_ROM_BANK0_END => Ok(self.rom[addr as usize]),
[INFO] [stdout]     |             ----------------------------------------- matches some of the same values
[INFO] [stdout] 101 |             CART_ROM_ACTIVE_BANK_START..=CART_ROM_ACTIVE_BANK_END => {
[INFO] [stdout]     |             ----------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 114 |             CART_RAM_START..=CART_RAM_END => {
[INFO] [stdout]     |             ----------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 122 |             _ => panic!("Read byte from {:#06X}", addr),
[INFO] [stdout]     |             - matches some of the same values
[INFO] [stdout] 123 |             _ => Err(GbError::MbcAddrOutOfBounds(addr)),
[INFO] [stdout]     |             ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/gbr/mbc.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 167 |             _ => return Err(GbError::MbcAddrOutOfBounds(addr)),
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/gbr/mbc.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 129 |             RAM_ENABLE_REG_START..=RAM_ENABLE_REG_END => {
[INFO] [stdout]     |             ----------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 132 |             BANK_REG1_START..=BANK_REG1_END => {
[INFO] [stdout]     |             ------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 147 |             BANK_REG2_START..=BANK_REG2_END => {
[INFO] [stdout]     |             ------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 154 |             BANK_MODE_START..=BANK_MODE_END => {
[INFO] [stdout]     |             ------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 167 |             _ => return Err(GbError::MbcAddrOutOfBounds(addr)),
[INFO] [stdout]     |             ^ ...and 2 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/gbr/mbc.rs:190:13
[INFO] [stdout]     |
[INFO] [stdout] 190 |             _ => Err(GbError::MbcAddrOutOfBounds(addr)),
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/gbr/mbc.rs:190:13
[INFO] [stdout]     |
[INFO] [stdout] 175 |             CART_ROM_BANK0_START..=CART_ROM_BANK0_END => {
[INFO] [stdout]     |             ----------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 178 |             CART_ROM_ACTIVE_BANK_START..=CART_ROM_ACTIVE_BANK_END => Ok(LittleEndian::read_u16(
[INFO] [stdout]     |             ----------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 181 |             CART_RAM_START..=CART_RAM_END => {
[INFO] [stdout]     |             ----------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 189 |             _ => panic!("Read word from {:#06X}", addr),
[INFO] [stdout]     |             - matches some of the same values
[INFO] [stdout] 190 |             _ => Err(GbError::MbcAddrOutOfBounds(addr)),
[INFO] [stdout]     |             ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tiles`
[INFO] [stdout]    --> src/gbr/ppu/pixel_processor.rs:316:33
[INFO] [stdout]     |
[INFO] [stdout] 316 |     fn get_tile_data(&mut self, tiles: &TileData, lcd_ctrl: &LcdControlRegister) {
[INFO] [stdout]     |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_tiles`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `AddrOutOfBounds` is never constructed
[INFO] [stdout]   --> src/gbr/mod.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub enum GbError {
[INFO] [stdout]    |          ------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 32 |     AddrOutOfBounds(u16),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GbError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/gbr/cart_header.rs:163:5
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub struct CartHeader {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 163 |     title: String,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 164 |     manufactorer_code: String,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 165 |     old_licensee_code: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 166 |     new_licensee_code: [u8; 2],
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 167 |     destination_code: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 168 |     rom_version_number: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 169 |     cgb_flag: bool,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 170 |     sgb_flag: bool,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CartHeader` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `UpdateSettings` is never constructed
[INFO] [stdout]    --> src/gbr/game_boy.rs:127:5
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub enum GbrEvent {
[INFO] [stdout]     |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 127 |     UpdateSettings(EmuSettings),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `skip_bootrom` and `fps_limiter` are never read
[INFO] [stdout]    --> src/gbr/game_boy.rs:142:5
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub struct EmuSettings {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 142 |     skip_bootrom: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 143 |     fps_limiter: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Error` is never constructed
[INFO] [stdout]    --> src/gbr/game_boy.rs:163:5
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub enum EmuState {
[INFO] [stdout]     |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 163 |     Error,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `opcode` and `peek_len` are never used
[INFO] [stdout]    --> src/gbr/instruction/mod.rs:310:12
[INFO] [stdout]     |
[INFO] [stdout] 309 | impl Instruction {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 310 |     pub fn opcode(&self) -> Opcode {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 856 |     pub fn peek_len(opcode: u8) -> Result<u8, GbError> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `lyc` is never read
[INFO] [stdout]   --> src/gbr/ppu/mod.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub struct PpuState {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub lyc: u8,
[INFO] [stdout]    |         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PpuState` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `GetTileData`, `PushBg`, `PushObjs`, and `PopPixels` are never constructed
[INFO] [stdout]   --> src/gbr/ppu/pixel_processor.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | enum Step {
[INFO] [stdout]    |      ---- variants in this enum
[INFO] [stdout] 15 |     GetTileIndex,
[INFO] [stdout] 16 |     GetTileData,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 17 |     PushBg,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 18 |     PushObjs,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 19 |     PopPixels,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/gbr/ppu/pixel_processor.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct PixelProcessor {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 50 |     scan_line_x: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 51 |     old_dots: u16,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 52 |     curr_step: Step,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 53 |     curr_tile_index: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 54 |     curr_tile_line: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 55 |     curr_tile_msb: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 56 |     curr_tile_lsb: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 57 |     scroll_x: u8,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 58 |     scroll_y: u8,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 59 |     objs: Vec<ObjAttribute>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 60 |     pixel_fifo: Vec<Pixel>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/gbr/ppu/pixel_processor.rs:82:12
[INFO] [stdout]     |
[INFO] [stdout]  64 | impl PixelProcessor {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  82 |     pub fn start(&mut self, oam: &ObjAttributeMemory, ly: u8, viewport: &Point<u8>) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  98 |     pub fn finished(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn process(
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 267 |     fn get_tile_index(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 302 |     fn get_win_tile_pos(&mut self, ly: u8, win_position: &Point<u8>) -> Point<u16> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 309 |     fn get_bg_tile_pos(&mut self, ly: u8) -> Point<u16> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 316 |     fn get_tile_data(&mut self, tiles: &TileData, lcd_ctrl: &LcdControlRegister) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 323 |     fn push_bg(&mut self, tiles: &TileData) {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 335 |     fn push_objs(&mut self, ly: u8, tiles: &TileData, lcd_ctrl: &LcdControlRegister) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 374 |     fn pop_pixels(&mut self, ly: u8, bg_palette: &Palette, obj_palettes: &[Palette]) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `at` is never used
[INFO] [stdout]    --> src/gbr/ppu/tile.rs:125:12
[INFO] [stdout]     |
[INFO] [stdout] 124 | impl TileMap {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] 125 |     pub fn at(&self, r: usize, c: usize) -> u8 {
[INFO] [stdout]     |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 17s
[INFO] running `Command { std: "docker" "inspect" "155b354186105a1c2ee681f01f445b8d3020f9db7c7520c776cfe8062e926e2b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "155b354186105a1c2ee681f01f445b8d3020f9db7c7520c776cfe8062e926e2b", kill_on_drop: false }`
[INFO] [stdout] 155b354186105a1c2ee681f01f445b8d3020f9db7c7520c776cfe8062e926e2b
