[INFO] cloning repository https://github.com/grimace87/shining-emulator
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/grimace87/shining-emulator" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgrimace87%2Fshining-emulator", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgrimace87%2Fshining-emulator'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] bd4f494d64bf9b14dcc248680db497f5c48ae1ce
[INFO] testing grimace87/shining-emulator against 1.69.0 for beta-1.70-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgrimace87%2Fshining-emulator" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/grimace87/shining-emulator on toolchain 1.69.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.69.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/grimace87/shining-emulator
[INFO] finished tweaking git repo https://github.com/grimace87/shining-emulator
[INFO] tweaked toml for git repo https://github.com/grimace87/shining-emulator written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/grimace87/shining-emulator 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.69.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+1.69.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] b5a3022e033f5f46c9fe89e97c25aadc8857fafb6376148a7f742ae45deba107
[INFO] running `Command { std: "docker" "start" "-a" "b5a3022e033f5f46c9fe89e97c25aadc8857fafb6376148a7f742ae45deba107", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b5a3022e033f5f46c9fe89e97c25aadc8857fafb6376148a7f742ae45deba107", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b5a3022e033f5f46c9fe89e97c25aadc8857fafb6376148a7f742ae45deba107", kill_on_drop: false }`
[INFO] [stdout] b5a3022e033f5f46c9fe89e97c25aadc8857fafb6376148a7f742ae45deba107
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+1.69.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 44036e550421c63da6b3f088eb7bb398bbf5dd2bdb8af843fd86c9f02ce36f2e
[INFO] running `Command { std: "docker" "start" "-a" "44036e550421c63da6b3f088eb7bb398bbf5dd2bdb8af843fd86c9f02ce36f2e", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.126
[INFO] [stderr]    Compiling dirs-sys v0.3.7
[INFO] [stderr]    Compiling dirs v4.0.0
[INFO] [stderr]    Compiling shining-emulator v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `clocks`
[INFO] [stdout]    --> src/emulator/cpu.rs:117:9
[INFO] [stdout]     |
[INFO] [stdout] 117 |         clocks: u64,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_clocks`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mem_bus`
[INFO] [stdout]    --> src/emulator/cpu.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |         mem_bus: &mut M,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mem_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `audio`
[INFO] [stdout]    --> src/emulator/cpu.rs:119:9
[INFO] [stdout]     |
[INFO] [stdout] 119 |         audio: &mut A
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_audio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nl_1`
[INFO] [stdout]    --> src/emulator/gpu/filter/xbr_params.rs:498:29
[INFO] [stdout]     |
[INFO] [stdout] 498 |                         let nl_1 = out_offset_1_line + 1;
[INFO] [stdout]     |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_nl_1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `out_offset` is never read
[INFO] [stdout]    --> src/emulator/gpu/filter/xbr_params.rs:542:17
[INFO] [stdout]     |
[INFO] [stdout] 542 |                 out_offset += n;
[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: `address`
[INFO] [stdout]   --> src/emulator/mem/mem_bus.rs:99:28
[INFO] [stdout]    |
[INFO] [stdout] 99 |     fn read_address(&self, address: usize) -> u8 {
[INFO] [stdout]    |                            ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `address`
[INFO] [stdout]    --> src/emulator/mem/mem_bus.rs:103:33
[INFO] [stdout]     |
[INFO] [stdout] 103 |     fn write_address(&mut self, address: usize, byte: u8) {
[INFO] [stdout]     |                                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `byte`
[INFO] [stdout]    --> src/emulator/mem/mem_bus.rs:103:49
[INFO] [stdout]     |
[INFO] [stdout] 103 |     fn write_address(&mut self, address: usize, byte: u8) {
[INFO] [stdout]     |                                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_byte`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/emulator/rom.rs:255:13
[INFO] [stdout]     |
[INFO] [stdout] 255 |         let mut rom_slice = &mut rom[0..(size_bytes as usize)];
[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/emulator/sgb.rs:475:17
[INFO] [stdout]     |
[INFO] [stdout] 475 |             let mut source_index: usize = 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/emulator/mod.rs:46:13
[INFO] [stdout]    |
[INFO] [stdout] 46 |         let mut emulator = Self {
[INFO] [stdout]    |             ----^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SGB_FREQ` is never used
[INFO] [stdout]   --> src/emulator/mod.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const SGB_FREQ: u64 = 4295454;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CGB_FREQ` is never used
[INFO] [stdout]   --> src/emulator/mod.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const CGB_FREQ: u64 = 8400000;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/emulator/mod.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct Emulator<A: AudioController> {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 26 |     cpu: Cpu,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 27 |     mem_bus: RefCell<MemBus>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 28 |     gpu: Gpu,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 29 |     sgb: Sgb,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 30 |     audio: RefCell<A>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 31 |     input: Input,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 32 |     wram: Vec<u8>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 33 |     vram: Vec<u8>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 34 |     io_ports: Vec<u8>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 35 |     cpu_clock_frequency: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 36 |     divider_count: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 37 |     accumulated_clocks: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 38 |     clock_multiply: i64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 39 |     clock_divide: i64,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 40 |     current_clock_multiplier_combo: i32
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `do_work` is never used
[INFO] [stdout]   --> src/emulator/mod.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn do_work(&mut self, time_diff_millis: u64) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]   --> src/emulator/mod.rs:98:12
[INFO] [stdout]    |
[INFO] [stdout] 98 |     pub fn reset(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Halted` is never constructed
[INFO] [stdout]  --> src/emulator/cpu.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | enum Mode {
[INFO] [stdout]   |      ---- variant in this enum
[INFO] [stdout] 8 |     Running,
[INFO] [stdout] 9 |     Halted,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `current_key_dir` and `current_key_but` are never read
[INFO] [stdout]   --> src/emulator/cpu.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Cpu {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 33 |     current_key_dir: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 34 |     current_key_but: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `on_invalid_instruction` is never used
[INFO] [stdout]   --> src/emulator/cpu.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 71 |     fn on_invalid_instruction(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_input_values` is never used
[INFO] [stdout]    --> src/emulator/cpu.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout] 107 |     pub fn set_input_values(&mut self, key_dir: u8, key_but: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `execute_accumulated_clocks` is never used
[INFO] [stdout]    --> src/emulator/cpu.rs:115:12
[INFO] [stdout]     |
[INFO] [stdout] 115 |     pub fn execute_accumulated_clocks<M: MemoryMap, A: AudioController>(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/emulator/external_ram/mod.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `has_timer` and `size_enum` are never read
[INFO] [stdout]   --> src/emulator/external_ram/sram.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Sram {
[INFO] [stdout]    |            ---- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16 |     has_timer: bool,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     size_enum: u8,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `write_timer_data` is never used
[INFO] [stdout]    --> src/emulator/external_ram/sram.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 |     pub fn write_timer_data(&mut self, timer_mode: usize, byte: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `HBlank` and `ScanVram` are never constructed
[INFO] [stdout]  --> src/emulator/gpu/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | enum Mode {
[INFO] [stdout]   |      ---- variants in this enum
[INFO] [stdout] 5 |     HBlank,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 8 |     ScanVram
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `needing_clear` and `tile_set` are never read
[INFO] [stdout]   --> src/emulator/gpu/mod.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct Gpu {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 15 |     needing_clear: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 16 |     mode: Mode,
[INFO] [stdout] 17 |     tile_set: Vec<u32>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PART_MASK` is never used
[INFO] [stdout]  --> src/emulator/gpu/filter/xbr_params.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const PART_MASK: usize = 0x00ff00ff;
[INFO] [stdout]   |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `Y_MASK` is never used
[INFO] [stdout]  --> src/emulator/gpu/filter/xbr_params.rs:5:7
[INFO] [stdout]   |
[INFO] [stdout] 5 | const Y_MASK: usize = 0x00ff0000;
[INFO] [stdout]   |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `U_MASK` is never used
[INFO] [stdout]  --> src/emulator/gpu/filter/xbr_params.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const U_MASK: usize = 0x0000ff00;
[INFO] [stdout]   |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `V_MASK` is never used
[INFO] [stdout]  --> src/emulator/gpu/filter/xbr_params.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | const V_MASK: usize = 0x000000ff;
[INFO] [stdout]   |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CONST_ZERO` is never used
[INFO] [stdout]  --> src/emulator/gpu/filter/xbr_params.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const CONST_ZERO: usize = 0;
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CONST_ONE` is never used
[INFO] [stdout]   --> src/emulator/gpu/filter/xbr_params.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const CONST_ONE: usize = 1;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CONST_TWO` is never used
[INFO] [stdout]   --> src/emulator/gpu/filter/xbr_params.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const CONST_TWO: usize = 2;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CONST_THREE` is never used
[INFO] [stdout]   --> src/emulator/gpu/filter/xbr_params.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const CONST_THREE: usize = 3;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `XbrParams` is never constructed
[INFO] [stdout]   --> src/emulator/gpu/filter/xbr_params.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct XbrParams {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/emulator/gpu/filter/xbr_params.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `generate_rgb_to_yuv_conversion` is never used
[INFO] [stdout]   --> src/emulator/gpu/filter/xbr_params.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 |     fn generate_rgb_to_yuv_conversion() -> Vec<u32> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `pixel_difference` is never used
[INFO] [stdout]   --> src/emulator/gpu/filter/xbr_params.rs:68:8
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn pixel_difference(&self, x: usize, y: usize) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `similar_pixels` is never used
[INFO] [stdout]   --> src/emulator/gpu/filter/xbr_params.rs:86:8
[INFO] [stdout]    |
[INFO] [stdout] 86 |     fn similar_pixels(&self, a: usize, b: usize) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `alpha_blend_base` is never used
[INFO] [stdout]   --> src/emulator/gpu/filter/xbr_params.rs:90:8
[INFO] [stdout]    |
[INFO] [stdout] 90 |     fn alpha_blend_base(a: usize, b: usize, m: usize, s: usize) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `alpha_blend_32_w` is never used
[INFO] [stdout]    --> src/emulator/gpu/filter/xbr_params.rs:104:8
[INFO] [stdout]     |
[INFO] [stdout] 104 |     fn alpha_blend_32_w(a: u32, b: usize) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `alpha_blend_64_w` is never used
[INFO] [stdout]    --> src/emulator/gpu/filter/xbr_params.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout] 108 |     fn alpha_blend_64_w(a: u32, b: usize) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `alpha_blend_128_w` is never used
[INFO] [stdout]    --> src/emulator/gpu/filter/xbr_params.rs:112:8
[INFO] [stdout]     |
[INFO] [stdout] 112 |     fn alpha_blend_128_w(a: u32, b: usize) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `alpha_blend_192_w` is never used
[INFO] [stdout]    --> src/emulator/gpu/filter/xbr_params.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 |     fn alpha_blend_192_w(a: u32, b: usize) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `alpha_blend_224_w` is never used
[INFO] [stdout]    --> src/emulator/gpu/filter/xbr_params.rs:120:8
[INFO] [stdout]     |
[INFO] [stdout] 120 |     fn alpha_blend_224_w(a: u32, b: usize) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `filter_2` is never used
[INFO] [stdout]    --> src/emulator/gpu/filter/xbr_params.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 132 |     fn filter_2(
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `filter_3` is never used
[INFO] [stdout]    --> src/emulator/gpu/filter/xbr_params.rs:219:8
[INFO] [stdout]     |
[INFO] [stdout] 219 |     fn filter_3(
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `filter_4` is never used
[INFO] [stdout]    --> src/emulator/gpu/filter/xbr_params.rs:313:8
[INFO] [stdout]     |
[INFO] [stdout] 313 |     fn filter_4(
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `xbr_filter` is never used
[INFO] [stdout]    --> src/emulator/gpu/filter/xbr_params.rs:420:8
[INFO] [stdout]     |
[INFO] [stdout] 420 |     fn xbr_filter(&mut self, n: usize) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `xbr_filter_xbr2x` is never used
[INFO] [stdout]    --> src/emulator/gpu/filter/xbr_params.rs:547:12
[INFO] [stdout]     |
[INFO] [stdout] 547 |     pub fn xbr_filter_xbr2x(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `xbr_filter_xbr3x` is never used
[INFO] [stdout]    --> src/emulator/gpu/filter/xbr_params.rs:551:12
[INFO] [stdout]     |
[INFO] [stdout] 551 |     pub fn xbr_filter_xbr3x(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `xbr_filter_xbr4x` is never used
[INFO] [stdout]    --> src/emulator/gpu/filter/xbr_params.rs:555:12
[INFO] [stdout]     |
[INFO] [stdout] 555 |     pub fn xbr_filter_xbr4x(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rom` and `bank_select_mask` are never read
[INFO] [stdout]   --> src/emulator/rom.rs:7:5
[INFO] [stdout]    |
[INFO] [stdout] 5  | pub struct Rom {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] 6  |     pub valid: bool,
[INFO] [stdout] 7  |     rom: Vec<u8>,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     bank_select_mask: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/emulator/mem/mod.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rom_bank_offset`, `wram_bank_offset`, and `vram_bank_offset` are never read
[INFO] [stdout]   --> src/emulator/mem/mem_bus.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub struct MemBus {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 14 |     rom_bank_offset: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 15 |     wram_bank_offset: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 16 |     vram_bank_offset: usize
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]   --> src/emulator/mem/mem_bus.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn reset(&mut self, sgb_flag: bool) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SGBCOM_PAL01` is never used
[INFO] [stdout]  --> src/emulator/sgb.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const SGBCOM_PAL01: u32     = 0x00;
[INFO] [stdout]   |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SGBCOM_PAL23` is never used
[INFO] [stdout]  --> src/emulator/sgb.rs:5:7
[INFO] [stdout]   |
[INFO] [stdout] 5 | const SGBCOM_PAL23: u32     = 0x01;
[INFO] [stdout]   |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SGBCOM_PAL03` is never used
[INFO] [stdout]  --> src/emulator/sgb.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const SGBCOM_PAL03: u32     = 0x02;
[INFO] [stdout]   |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SGBCOM_PAL12` is never used
[INFO] [stdout]  --> src/emulator/sgb.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | const SGBCOM_PAL12: u32     = 0x03;
[INFO] [stdout]   |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SGBCOM_ATTR_BLK` is never used
[INFO] [stdout]  --> src/emulator/sgb.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const SGBCOM_ATTR_BLK: u32  = 0x04;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SGBCOM_ATTR_LIN` is never used
[INFO] [stdout]  --> src/emulator/sgb.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const SGBCOM_ATTR_LIN: u32  = 0x05;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SGBCOM_ATTR_DIV` is never used
[INFO] [stdout]   --> src/emulator/sgb.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const SGBCOM_ATTR_DIV: u32  = 0x06;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SGBCOM_ATTR_CHR` is never used
[INFO] [stdout]   --> src/emulator/sgb.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const SGBCOM_ATTR_CHR: u32  = 0x07;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SGBCOM_SOUND` is never used
[INFO] [stdout]   --> src/emulator/sgb.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const SGBCOM_SOUND: u32     = 0x08;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SGBCOM_SOU_TRN` is never used
[INFO] [stdout]   --> src/emulator/sgb.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const SGBCOM_SOU_TRN: u32   = 0x09;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SGBCOM_PAL_SET` is never used
[INFO] [stdout]   --> src/emulator/sgb.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const SGBCOM_PAL_SET: u32   = 0x0a;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SGBCOM_PAL_TRN` is never used
[INFO] [stdout]   --> src/emulator/sgb.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const SGBCOM_PAL_TRN: u32   = 0x0b;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SGBCOM_ATRC_EN` is never used
[INFO] [stdout]   --> src/emulator/sgb.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const SGBCOM_ATRC_EN: u32   = 0x0c;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SGBCOM_TEST_EN` is never used
[INFO] [stdout]   --> src/emulator/sgb.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const SGBCOM_TEST_EN: u32   = 0x0d;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SGBCOM_ICON_EN` is never used
[INFO] [stdout]   --> src/emulator/sgb.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const SGBCOM_ICON_EN: u32   = 0x0e;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SGBCOM_DATA_SEND` is never used
[INFO] [stdout]   --> src/emulator/sgb.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const SGBCOM_DATA_SEND: u32 = 0x0f;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SGBCOM_DATA_TRN` is never used
[INFO] [stdout]   --> src/emulator/sgb.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const SGBCOM_DATA_TRN: u32  = 0x10;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SGBCOM_MLT_REQ` is never used
[INFO] [stdout]   --> src/emulator/sgb.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const SGBCOM_MLT_REQ: u32   = 0x11;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SGBCOM_JUMP` is never used
[INFO] [stdout]   --> src/emulator/sgb.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const SGBCOM_JUMP: u32      = 0x12;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SGBCOM_CHR_TRN` is never used
[INFO] [stdout]   --> src/emulator/sgb.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const SGBCOM_CHR_TRN: u32   = 0x13;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SGBCOM_PCT_TRN` is never used
[INFO] [stdout]   --> src/emulator/sgb.rs:24:7
[INFO] [stdout]    |
[INFO] [stdout] 24 | const SGBCOM_PCT_TRN: u32   = 0x14;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SGBCOM_ATTR_TRN` is never used
[INFO] [stdout]   --> src/emulator/sgb.rs:25:7
[INFO] [stdout]    |
[INFO] [stdout] 25 | const SGBCOM_ATTR_TRN: u32  = 0x15;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SGBCOM_ATTR_SET` is never used
[INFO] [stdout]   --> src/emulator/sgb.rs:26:7
[INFO] [stdout]    |
[INFO] [stdout] 26 | const SGBCOM_ATTR_SET: u32  = 0x16;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SGBCOM_MASK_EN` is never used
[INFO] [stdout]   --> src/emulator/sgb.rs:27:7
[INFO] [stdout]    |
[INFO] [stdout] 27 | const SGBCOM_MASK_EN: u32   = 0x17;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SGBCOM_OBJ_TRN` is never used
[INFO] [stdout]   --> src/emulator/sgb.rs:28:7
[INFO] [stdout]    |
[INFO] [stdout] 28 | const SGBCOM_OBJ_TRN: u32   = 0x18;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SGBCOM_PAL_PRI` is never used
[INFO] [stdout]   --> src/emulator/sgb.rs:29:7
[INFO] [stdout]    |
[INFO] [stdout] 29 | const SGBCOM_PAL_PRI: u32   = 0x19;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/emulator/sgb.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct Sgb {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] 32 |     reading_command: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 33 |     command_bytes: [[u32; 16]; 7],
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 34 |     command_bits: [u32; 8],
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 35 |     command: u32,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 36 |     read_command_bits: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 37 |     read_command_bytes: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 38 |     freeze_screen: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 39 |     freeze_mode: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 40 |     multi_enabled: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 41 |     no_players: u32,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 42 |     no_packets_sent: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 43 |     no_packets_to_send: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 44 |     read_joypad_id: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 45 |     mono_data: Vec<u32>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 46 |     mapped_vram_for_trn_op: Vec<u8>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 47 |     pub palettes_abgr: Vec<u32>,
[INFO] [stdout] 48 |     sys_palettes: Vec<u32>,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 49 |     chr_palettes: Vec<u32>
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]   --> src/emulator/sgb.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn reset(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `write_input_signal` is never used
[INFO] [stdout]    --> src/emulator/sgb.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout] 103 |     pub fn write_input_signal<M: MemoryMap>(&mut self, byte: u8, mem_bus: &mut M) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `check_byte` is never used
[INFO] [stdout]    --> src/emulator/sgb.rs:157:8
[INFO] [stdout]     |
[INFO] [stdout] 157 |     fn check_byte(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `check_packets` is never used
[INFO] [stdout]    --> src/emulator/sgb.rs:183:8
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn check_packets<M: MemoryMap>(&mut self, mem_bus: &mut M) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `finalise_palette_load` is never used
[INFO] [stdout]    --> src/emulator/sgb.rs:210:8
[INFO] [stdout]     |
[INFO] [stdout] 210 |     fn finalise_palette_load(&mut self, first: usize, second: usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `remap_555_8888` is never used
[INFO] [stdout]    --> src/emulator/sgb.rs:236:8
[INFO] [stdout]     |
[INFO] [stdout] 236 |     fn remap_555_8888(lo_byte: u32, hi_byte: u32) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `finalise_attr_blk` is never used
[INFO] [stdout]    --> src/emulator/sgb.rs:244:8
[INFO] [stdout]     |
[INFO] [stdout] 244 |     fn finalise_attr_blk(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `finalise_attr_lin` is never used
[INFO] [stdout]    --> src/emulator/sgb.rs:337:8
[INFO] [stdout]     |
[INFO] [stdout] 337 |     fn finalise_attr_lin(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `finalise_attr_div` is never used
[INFO] [stdout]    --> src/emulator/sgb.rs:341:8
[INFO] [stdout]     |
[INFO] [stdout] 341 |     fn finalise_attr_div(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `finalise_attr_chr` is never used
[INFO] [stdout]    --> src/emulator/sgb.rs:396:8
[INFO] [stdout]     |
[INFO] [stdout] 396 |     fn finalise_attr_chr(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `finalise_palette_set` is never used
[INFO] [stdout]    --> src/emulator/sgb.rs:454:8
[INFO] [stdout]     |
[INFO] [stdout] 454 |     fn finalise_palette_set(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `finalise_palette_transfer` is never used
[INFO] [stdout]    --> src/emulator/sgb.rs:471:8
[INFO] [stdout]     |
[INFO] [stdout] 471 |     fn finalise_palette_transfer<M: MemoryMap>(&mut self, mem_bus: &mut M) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `finalise_multi_request` is never used
[INFO] [stdout]    --> src/emulator/sgb.rs:487:8
[INFO] [stdout]     |
[INFO] [stdout] 487 |     fn finalise_multi_request(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `finalise_mask_enable` is never used
[INFO] [stdout]    --> src/emulator/sgb.rs:493:8
[INFO] [stdout]     |
[INFO] [stdout] 493 |     fn finalise_mask_enable(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `map_vram_for_transfer_op` is never used
[INFO] [stdout]    --> src/emulator/sgb.rs:508:8
[INFO] [stdout]     |
[INFO] [stdout] 508 |     fn map_vram_for_transfer_op<M: MemoryMap>(&mut self, mem_bus: &mut M) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `press_right` is never used
[INFO] [stdout]   --> src/emulator/input.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn press_right(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `press_left` is never used
[INFO] [stdout]   --> src/emulator/input.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub fn press_left(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `press_up` is never used
[INFO] [stdout]   --> src/emulator/input.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn press_up(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `press_down` is never used
[INFO] [stdout]   --> src/emulator/input.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn press_down(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `press_select` is never used
[INFO] [stdout]   --> src/emulator/input.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn press_select(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `press_start` is never used
[INFO] [stdout]   --> src/emulator/input.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 |     pub fn press_start(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `press_a` is never used
[INFO] [stdout]   --> src/emulator/input.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub fn press_a(&mut self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `press_b` is never used
[INFO] [stdout]   --> src/emulator/input.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub fn press_b(&mut self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `release_right` is never used
[INFO] [stdout]   --> src/emulator/input.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn release_right(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `release_left` is never used
[INFO] [stdout]   --> src/emulator/input.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub fn release_left(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `release_up` is never used
[INFO] [stdout]   --> src/emulator/input.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub fn release_up(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `release_down` is never used
[INFO] [stdout]   --> src/emulator/input.rs:69:12
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub fn release_down(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `release_select` is never used
[INFO] [stdout]   --> src/emulator/input.rs:73:12
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub fn release_select(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `release_start` is never used
[INFO] [stdout]   --> src/emulator/input.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn release_start(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `release_a` is never used
[INFO] [stdout]   --> src/emulator/input.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub fn release_a(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `release_b` is never used
[INFO] [stdout]   --> src/emulator/input.rs:85:12
[INFO] [stdout]    |
[INFO] [stdout] 85 |     pub fn release_b(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 114 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 2.27s
[INFO] running `Command { std: "docker" "inspect" "44036e550421c63da6b3f088eb7bb398bbf5dd2bdb8af843fd86c9f02ce36f2e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "44036e550421c63da6b3f088eb7bb398bbf5dd2bdb8af843fd86c9f02ce36f2e", kill_on_drop: false }`
[INFO] [stdout] 44036e550421c63da6b3f088eb7bb398bbf5dd2bdb8af843fd86c9f02ce36f2e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+1.69.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2df61ab7b31fbfcf363c8809ab2ba416fa640a5ef18cd2857586a64ae63c1bc5
[INFO] running `Command { std: "docker" "start" "-a" "2df61ab7b31fbfcf363c8809ab2ba416fa640a5ef18cd2857586a64ae63c1bc5", kill_on_drop: false }`
[INFO] [stderr]    Compiling shining-emulator v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `clocks`
[INFO] [stdout]    --> src/emulator/cpu.rs:117:9
[INFO] [stdout]     |
[INFO] [stdout] 117 |         clocks: u64,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_clocks`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mem_bus`
[INFO] [stdout]    --> src/emulator/cpu.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |         mem_bus: &mut M,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mem_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `audio`
[INFO] [stdout]    --> src/emulator/cpu.rs:119:9
[INFO] [stdout]     |
[INFO] [stdout] 119 |         audio: &mut A
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_audio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nl_1`
[INFO] [stdout]    --> src/emulator/gpu/filter/xbr_params.rs:498:29
[INFO] [stdout]     |
[INFO] [stdout] 498 |                         let nl_1 = out_offset_1_line + 1;
[INFO] [stdout]     |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_nl_1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `out_offset` is never read
[INFO] [stdout]    --> src/emulator/gpu/filter/xbr_params.rs:542:17
[INFO] [stdout]     |
[INFO] [stdout] 542 |                 out_offset += n;
[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: `address`
[INFO] [stdout]   --> src/emulator/mem/mem_bus.rs:99:28
[INFO] [stdout]    |
[INFO] [stdout] 99 |     fn read_address(&self, address: usize) -> u8 {
[INFO] [stdout]    |                            ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `address`
[INFO] [stdout]    --> src/emulator/mem/mem_bus.rs:103:33
[INFO] [stdout]     |
[INFO] [stdout] 103 |     fn write_address(&mut self, address: usize, byte: u8) {
[INFO] [stdout]     |                                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `byte`
[INFO] [stdout]    --> src/emulator/mem/mem_bus.rs:103:49
[INFO] [stdout]     |
[INFO] [stdout] 103 |     fn write_address(&mut self, address: usize, byte: u8) {
[INFO] [stdout]     |                                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_byte`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expected_palette_3`
[INFO] [stdout]    --> src/emulator/sgb.rs:615:13
[INFO] [stdout]     |
[INFO] [stdout] 615 |         let expected_palette_3: [u32; 4] = [0xff38d8e0, 0xff38d8e0, 0xffc04018, 0xff38d8e0];
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_palette_3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expected_palette_2`
[INFO] [stdout]    --> src/emulator/sgb.rs:627:13
[INFO] [stdout]     |
[INFO] [stdout] 627 |         let expected_palette_2: [u32; 4] = [0xff38d8e0, 0xff38d8e0, 0xffc04018, 0xff38d8e0];
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_palette_2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/emulator/rom.rs:255:13
[INFO] [stdout]     |
[INFO] [stdout] 255 |         let mut rom_slice = &mut rom[0..(size_bytes as usize)];
[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/emulator/sgb.rs:475:17
[INFO] [stdout]     |
[INFO] [stdout] 475 |             let mut source_index: usize = 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/emulator/mod.rs:46:13
[INFO] [stdout]    |
[INFO] [stdout] 46 |         let mut emulator = Self {
[INFO] [stdout]    |             ----^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SGB_FREQ` is never used
[INFO] [stdout]   --> src/emulator/mod.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const SGB_FREQ: u64 = 4295454;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CGB_FREQ` is never used
[INFO] [stdout]   --> src/emulator/mod.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const CGB_FREQ: u64 = 8400000;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/emulator/mod.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct Emulator<A: AudioController> {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 26 |     cpu: Cpu,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 27 |     mem_bus: RefCell<MemBus>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 28 |     gpu: Gpu,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 29 |     sgb: Sgb,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 30 |     audio: RefCell<A>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 31 |     input: Input,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 32 |     wram: Vec<u8>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 33 |     vram: Vec<u8>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 34 |     io_ports: Vec<u8>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 35 |     cpu_clock_frequency: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 36 |     divider_count: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 37 |     accumulated_clocks: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 38 |     clock_multiply: i64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 39 |     clock_divide: i64,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 40 |     current_clock_multiplier_combo: i32
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `do_work` is never used
[INFO] [stdout]   --> src/emulator/mod.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn do_work(&mut self, time_diff_millis: u64) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]   --> src/emulator/mod.rs:98:12
[INFO] [stdout]    |
[INFO] [stdout] 98 |     pub fn reset(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Halted` is never constructed
[INFO] [stdout]  --> src/emulator/cpu.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | enum Mode {
[INFO] [stdout]   |      ---- variant in this enum
[INFO] [stdout] 8 |     Running,
[INFO] [stdout] 9 |     Halted,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `current_key_dir` and `current_key_but` are never read
[INFO] [stdout]   --> src/emulator/cpu.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Cpu {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 33 |     current_key_dir: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 34 |     current_key_but: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `on_invalid_instruction` is never used
[INFO] [stdout]   --> src/emulator/cpu.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 71 |     fn on_invalid_instruction(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_input_values` is never used
[INFO] [stdout]    --> src/emulator/cpu.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout] 107 |     pub fn set_input_values(&mut self, key_dir: u8, key_but: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `execute_accumulated_clocks` is never used
[INFO] [stdout]    --> src/emulator/cpu.rs:115:12
[INFO] [stdout]     |
[INFO] [stdout] 115 |     pub fn execute_accumulated_clocks<M: MemoryMap, A: AudioController>(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/emulator/external_ram/mod.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `has_timer` and `size_enum` are never read
[INFO] [stdout]   --> src/emulator/external_ram/sram.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Sram {
[INFO] [stdout]    |            ---- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16 |     has_timer: bool,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     size_enum: u8,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `write_timer_data` is never used
[INFO] [stdout]    --> src/emulator/external_ram/sram.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 |     pub fn write_timer_data(&mut self, timer_mode: usize, byte: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `HBlank` and `ScanVram` are never constructed
[INFO] [stdout]  --> src/emulator/gpu/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | enum Mode {
[INFO] [stdout]   |      ---- variants in this enum
[INFO] [stdout] 5 |     HBlank,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 8 |     ScanVram
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `needing_clear` and `tile_set` are never read
[INFO] [stdout]   --> src/emulator/gpu/mod.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct Gpu {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 15 |     needing_clear: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 16 |     mode: Mode,
[INFO] [stdout] 17 |     tile_set: Vec<u32>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rom` and `bank_select_mask` are never read
[INFO] [stdout]   --> src/emulator/rom.rs:7:5
[INFO] [stdout]    |
[INFO] [stdout] 5  | pub struct Rom {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] 6  |     pub valid: bool,
[INFO] [stdout] 7  |     rom: Vec<u8>,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     bank_select_mask: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rom_bank_offset`, `wram_bank_offset`, and `vram_bank_offset` are never read
[INFO] [stdout]   --> src/emulator/mem/mem_bus.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub struct MemBus {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 14 |     rom_bank_offset: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 15 |     wram_bank_offset: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 16 |     vram_bank_offset: usize
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]   --> src/emulator/mem/mem_bus.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn reset(&mut self, sgb_flag: bool) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SGBCOM_SOU_TRN` is never used
[INFO] [stdout]   --> src/emulator/sgb.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const SGBCOM_SOU_TRN: u32   = 0x09;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SGBCOM_ATRC_EN` is never used
[INFO] [stdout]   --> src/emulator/sgb.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const SGBCOM_ATRC_EN: u32   = 0x0c;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SGBCOM_TEST_EN` is never used
[INFO] [stdout]   --> src/emulator/sgb.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const SGBCOM_TEST_EN: u32   = 0x0d;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SGBCOM_DATA_TRN` is never used
[INFO] [stdout]   --> src/emulator/sgb.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const SGBCOM_DATA_TRN: u32  = 0x10;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SGBCOM_JUMP` is never used
[INFO] [stdout]   --> src/emulator/sgb.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const SGBCOM_JUMP: u32      = 0x12;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SGBCOM_OBJ_TRN` is never used
[INFO] [stdout]   --> src/emulator/sgb.rs:28:7
[INFO] [stdout]    |
[INFO] [stdout] 28 | const SGBCOM_OBJ_TRN: u32   = 0x18;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `press_right` is never used
[INFO] [stdout]   --> src/emulator/input.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn press_right(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `press_left` is never used
[INFO] [stdout]   --> src/emulator/input.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub fn press_left(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `press_up` is never used
[INFO] [stdout]   --> src/emulator/input.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn press_up(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `press_down` is never used
[INFO] [stdout]   --> src/emulator/input.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn press_down(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `press_select` is never used
[INFO] [stdout]   --> src/emulator/input.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn press_select(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `press_start` is never used
[INFO] [stdout]   --> src/emulator/input.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 |     pub fn press_start(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `press_a` is never used
[INFO] [stdout]   --> src/emulator/input.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub fn press_a(&mut self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `press_b` is never used
[INFO] [stdout]   --> src/emulator/input.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub fn press_b(&mut self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `release_right` is never used
[INFO] [stdout]   --> src/emulator/input.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn release_right(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `release_left` is never used
[INFO] [stdout]   --> src/emulator/input.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub fn release_left(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `release_up` is never used
[INFO] [stdout]   --> src/emulator/input.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub fn release_up(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `release_down` is never used
[INFO] [stdout]   --> src/emulator/input.rs:69:12
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub fn release_down(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `release_select` is never used
[INFO] [stdout]   --> src/emulator/input.rs:73:12
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub fn release_select(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `release_start` is never used
[INFO] [stdout]   --> src/emulator/input.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn release_start(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `release_a` is never used
[INFO] [stdout]   --> src/emulator/input.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub fn release_a(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `release_b` is never used
[INFO] [stdout]   --> src/emulator/input.rs:85:12
[INFO] [stdout]    |
[INFO] [stdout] 85 |     pub fn release_b(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 53 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.88s
[INFO] running `Command { std: "docker" "inspect" "2df61ab7b31fbfcf363c8809ab2ba416fa640a5ef18cd2857586a64ae63c1bc5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2df61ab7b31fbfcf363c8809ab2ba416fa640a5ef18cd2857586a64ae63c1bc5", kill_on_drop: false }`
[INFO] [stdout] 2df61ab7b31fbfcf363c8809ab2ba416fa640a5ef18cd2857586a64ae63c1bc5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+1.69.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] f8e3f1e432681b13d6cf3f9f1495aa571b856310cd4ebc8bb5e6d3d6c7981c57
[INFO] running `Command { std: "docker" "start" "-a" "f8e3f1e432681b13d6cf3f9f1495aa571b856310cd4ebc8bb5e6d3d6c7981c57", kill_on_drop: false }`
[INFO] [stderr] warning: unused variable: `clocks`
[INFO] [stderr]    --> src/emulator/cpu.rs:117:9
[INFO] [stderr]     |
[INFO] [stderr] 117 |         clocks: u64,
[INFO] [stderr]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_clocks`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `mem_bus`
[INFO] [stderr]    --> src/emulator/cpu.rs:118:9
[INFO] [stderr]     |
[INFO] [stderr] 118 |         mem_bus: &mut M,
[INFO] [stderr]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mem_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `audio`
[INFO] [stderr]    --> src/emulator/cpu.rs:119:9
[INFO] [stderr]     |
[INFO] [stderr] 119 |         audio: &mut A
[INFO] [stderr]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_audio`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `nl_1`
[INFO] [stderr]    --> src/emulator/gpu/filter/xbr_params.rs:498:29
[INFO] [stderr]     |
[INFO] [stderr] 498 |                         let nl_1 = out_offset_1_line + 1;
[INFO] [stderr]     |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_nl_1`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `out_offset` is never read
[INFO] [stderr]    --> src/emulator/gpu/filter/xbr_params.rs:542:17
[INFO] [stderr]     |
[INFO] [stderr] 542 |                 out_offset += n;
[INFO] [stderr]     |                 ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `address`
[INFO] [stderr]   --> src/emulator/mem/mem_bus.rs:99:28
[INFO] [stderr]    |
[INFO] [stderr] 99 |     fn read_address(&self, address: usize) -> u8 {
[INFO] [stderr]    |                            ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `address`
[INFO] [stderr]    --> src/emulator/mem/mem_bus.rs:103:33
[INFO] [stderr]     |
[INFO] [stderr] 103 |     fn write_address(&mut self, address: usize, byte: u8) {
[INFO] [stderr]     |                                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `byte`
[INFO] [stderr]    --> src/emulator/mem/mem_bus.rs:103:49
[INFO] [stderr]     |
[INFO] [stderr] 103 |     fn write_address(&mut self, address: usize, byte: u8) {
[INFO] [stderr]     |                                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_byte`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `expected_palette_3`
[INFO] [stderr]    --> src/emulator/sgb.rs:615:13
[INFO] [stderr]     |
[INFO] [stderr] 615 |         let expected_palette_3: [u32; 4] = [0xff38d8e0, 0xff38d8e0, 0xffc04018, 0xff38d8e0];
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_palette_3`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `expected_palette_2`
[INFO] [stderr]    --> src/emulator/sgb.rs:627:13
[INFO] [stderr]     |
[INFO] [stderr] 627 |         let expected_palette_2: [u32; 4] = [0xff38d8e0, 0xff38d8e0, 0xffc04018, 0xff38d8e0];
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_palette_2`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/emulator/rom.rs:255:13
[INFO] [stderr]     |
[INFO] [stderr] 255 |         let mut rom_slice = &mut rom[0..(size_bytes as usize)];
[INFO] [stderr]     |             ----^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/emulator/sgb.rs:475:17
[INFO] [stderr]     |
[INFO] [stderr] 475 |             let mut source_index: usize = 0;
[INFO] [stderr]     |                 ----^^^^^^^^^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/emulator/mod.rs:46:13
[INFO] [stderr]    |
[INFO] [stderr] 46 |         let mut emulator = Self {
[INFO] [stderr]    |             ----^^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SGB_FREQ` is never used
[INFO] [stderr]   --> src/emulator/mod.rs:22:7
[INFO] [stderr]    |
[INFO] [stderr] 22 | const SGB_FREQ: u64 = 4295454;
[INFO] [stderr]    |       ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CGB_FREQ` is never used
[INFO] [stderr]   --> src/emulator/mod.rs:23:7
[INFO] [stderr]    |
[INFO] [stderr] 23 | const CGB_FREQ: u64 = 8400000;
[INFO] [stderr]    |       ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple fields are never read
[INFO] [stderr]   --> src/emulator/mod.rs:26:5
[INFO] [stderr]    |
[INFO] [stderr] 25 | pub struct Emulator<A: AudioController> {
[INFO] [stderr]    |            -------- fields in this struct
[INFO] [stderr] 26 |     cpu: Cpu,
[INFO] [stderr]    |     ^^^
[INFO] [stderr] 27 |     mem_bus: RefCell<MemBus>,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] 28 |     gpu: Gpu,
[INFO] [stderr]    |     ^^^
[INFO] [stderr] 29 |     sgb: Sgb,
[INFO] [stderr]    |     ^^^
[INFO] [stderr] 30 |     audio: RefCell<A>,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 31 |     input: Input,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 32 |     wram: Vec<u8>,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 33 |     vram: Vec<u8>,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 34 |     io_ports: Vec<u8>,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 35 |     cpu_clock_frequency: u64,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 36 |     divider_count: u32,
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] 37 |     accumulated_clocks: u64,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 38 |     clock_multiply: i64,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 39 |     clock_divide: i64,
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] 40 |     current_clock_multiplier_combo: i32
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `do_work` is never used
[INFO] [stderr]   --> src/emulator/mod.rs:75:8
[INFO] [stderr]    |
[INFO] [stderr] 75 |     fn do_work(&mut self, time_diff_millis: u64) {
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `reset` is never used
[INFO] [stderr]   --> src/emulator/mod.rs:98:12
[INFO] [stderr]    |
[INFO] [stderr] 98 |     pub fn reset(&mut self) {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `Halted` is never constructed
[INFO] [stderr]  --> src/emulator/cpu.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | enum Mode {
[INFO] [stderr]   |      ---- variant in this enum
[INFO] [stderr] 8 |     Running,
[INFO] [stderr] 9 |     Halted,
[INFO] [stderr]   |     ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `current_key_dir` and `current_key_but` are never read
[INFO] [stderr]   --> src/emulator/cpu.rs:33:5
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub struct Cpu {
[INFO] [stderr]    |            --- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 33 |     current_key_dir: u8,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 34 |     current_key_but: u8,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `on_invalid_instruction` is never used
[INFO] [stderr]   --> src/emulator/cpu.rs:71:8
[INFO] [stderr]    |
[INFO] [stderr] 71 |     fn on_invalid_instruction(&mut self) {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `set_input_values` is never used
[INFO] [stderr]    --> src/emulator/cpu.rs:107:12
[INFO] [stderr]     |
[INFO] [stderr] 107 |     pub fn set_input_values(&mut self, key_dir: u8, key_but: u8) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `execute_accumulated_clocks` is never used
[INFO] [stderr]    --> src/emulator/cpu.rs:115:12
[INFO] [stderr]     |
[INFO] [stderr] 115 |     pub fn execute_accumulated_clocks<M: MemoryMap, A: AudioController>(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/emulator/external_ram/mod.rs:17:12
[INFO] [stderr]    |
[INFO] [stderr] 17 |     pub fn new() -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `has_timer` and `size_enum` are never read
[INFO] [stderr]   --> src/emulator/external_ram/sram.rs:16:5
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub struct Sram {
[INFO] [stderr]    |            ---- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 16 |     has_timer: bool,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 21 |     size_enum: u8,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `write_timer_data` is never used
[INFO] [stderr]    --> src/emulator/external_ram/sram.rs:112:12
[INFO] [stderr]     |
[INFO] [stderr] 112 |     pub fn write_timer_data(&mut self, timer_mode: usize, byte: u8) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `HBlank` and `ScanVram` are never constructed
[INFO] [stderr]  --> src/emulator/gpu/mod.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | enum Mode {
[INFO] [stderr]   |      ---- variants in this enum
[INFO] [stderr] 5 |     HBlank,
[INFO] [stderr]   |     ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 8 |     ScanVram
[INFO] [stderr]   |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `needing_clear` and `tile_set` are never read
[INFO] [stderr]   --> src/emulator/gpu/mod.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub struct Gpu {
[INFO] [stderr]    |            --- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 15 |     needing_clear: bool,
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] 16 |     mode: Mode,
[INFO] [stderr] 17 |     tile_set: Vec<u32>,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `rom` and `bank_select_mask` are never read
[INFO] [stderr]   --> src/emulator/rom.rs:7:5
[INFO] [stderr]    |
[INFO] [stderr] 5  | pub struct Rom {
[INFO] [stderr]    |            --- fields in this struct
[INFO] [stderr] 6  |     pub valid: bool,
[INFO] [stderr] 7  |     rom: Vec<u8>,
[INFO] [stderr]    |     ^^^
[INFO] [stderr] ...
[INFO] [stderr] 17 |     bank_select_mask: u32,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `rom_bank_offset`, `wram_bank_offset`, and `vram_bank_offset` are never read
[INFO] [stderr]   --> src/emulator/mem/mem_bus.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 6  | pub struct MemBus {
[INFO] [stderr]    |            ------ fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 14 |     rom_bank_offset: usize,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 15 |     wram_bank_offset: usize,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 16 |     vram_bank_offset: usize
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `reset` is never used
[INFO] [stderr]   --> src/emulator/mem/mem_bus.rs:37:12
[INFO] [stderr]    |
[INFO] [stderr] 37 |     pub fn reset(&mut self, sgb_flag: bool) {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SGBCOM_SOU_TRN` is never used
[INFO] [stderr]   --> src/emulator/sgb.rs:13:7
[INFO] [stderr]    |
[INFO] [stderr] 13 | const SGBCOM_SOU_TRN: u32   = 0x09;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SGBCOM_ATRC_EN` is never used
[INFO] [stderr]   --> src/emulator/sgb.rs:16:7
[INFO] [stderr]    |
[INFO] [stderr] 16 | const SGBCOM_ATRC_EN: u32   = 0x0c;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SGBCOM_TEST_EN` is never used
[INFO] [stderr]   --> src/emulator/sgb.rs:17:7
[INFO] [stderr]    |
[INFO] [stderr] 17 | const SGBCOM_TEST_EN: u32   = 0x0d;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SGBCOM_DATA_TRN` is never used
[INFO] [stderr]   --> src/emulator/sgb.rs:20:7
[INFO] [stderr]    |
[INFO] [stderr] 20 | const SGBCOM_DATA_TRN: u32  = 0x10;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SGBCOM_JUMP` is never used
[INFO] [stderr]   --> src/emulator/sgb.rs:22:7
[INFO] [stderr]    |
[INFO] [stderr] 22 | const SGBCOM_JUMP: u32      = 0x12;
[INFO] [stderr]    |       ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SGBCOM_OBJ_TRN` is never used
[INFO] [stderr]   --> src/emulator/sgb.rs:28:7
[INFO] [stderr]    |
[INFO] [stderr] 28 | const SGBCOM_OBJ_TRN: u32   = 0x18;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `press_right` is never used
[INFO] [stderr]   --> src/emulator/input.rs:25:12
[INFO] [stderr]    |
[INFO] [stderr] 25 |     pub fn press_right(&mut self) {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `press_left` is never used
[INFO] [stderr]   --> src/emulator/input.rs:29:12
[INFO] [stderr]    |
[INFO] [stderr] 29 |     pub fn press_left(&mut self) {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `press_up` is never used
[INFO] [stderr]   --> src/emulator/input.rs:33:12
[INFO] [stderr]    |
[INFO] [stderr] 33 |     pub fn press_up(&mut self) {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `press_down` is never used
[INFO] [stderr]   --> src/emulator/input.rs:37:12
[INFO] [stderr]    |
[INFO] [stderr] 37 |     pub fn press_down(&mut self) {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `press_select` is never used
[INFO] [stderr]   --> src/emulator/input.rs:41:12
[INFO] [stderr]    |
[INFO] [stderr] 41 |     pub fn press_select(&mut self) {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `press_start` is never used
[INFO] [stderr]   --> src/emulator/input.rs:45:12
[INFO] [stderr]    |
[INFO] [stderr] 45 |     pub fn press_start(&mut self) {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `press_a` is never used
[INFO] [stderr]   --> src/emulator/input.rs:49:12
[INFO] [stderr]    |
[INFO] [stderr] 49 |     pub fn press_a(&mut self) {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `press_b` is never used
[INFO] [stderr]   --> src/emulator/input.rs:53:12
[INFO] [stderr]    |
[INFO] [stderr] 53 |     pub fn press_b(&mut self) {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `release_right` is never used
[INFO] [stderr]   --> src/emulator/input.rs:57:12
[INFO] [stderr]    |
[INFO] [stderr] 57 |     pub fn release_right(&mut self) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `release_left` is never used
[INFO] [stderr]   --> src/emulator/input.rs:61:12
[INFO] [stderr]    |
[INFO] [stderr] 61 |     pub fn release_left(&mut self) {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `release_up` is never used
[INFO] [stderr]   --> src/emulator/input.rs:65:12
[INFO] [stderr]    |
[INFO] [stderr] 65 |     pub fn release_up(&mut self) {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `release_down` is never used
[INFO] [stderr]   --> src/emulator/input.rs:69:12
[INFO] [stderr]    |
[INFO] [stderr] 69 |     pub fn release_down(&mut self) {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `release_select` is never used
[INFO] [stderr]   --> src/emulator/input.rs:73:12
[INFO] [stderr]    |
[INFO] [stderr] 73 |     pub fn release_select(&mut self) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `release_start` is never used
[INFO] [stderr]   --> src/emulator/input.rs:77:12
[INFO] [stderr]    |
[INFO] [stderr] 77 |     pub fn release_start(&mut self) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `release_a` is never used
[INFO] [stderr]   --> src/emulator/input.rs:81:12
[INFO] [stderr]    |
[INFO] [stderr] 81 |     pub fn release_a(&mut self) {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `release_b` is never used
[INFO] [stderr]   --> src/emulator/input.rs:85:12
[INFO] [stderr]    |
[INFO] [stderr] 85 |     pub fn release_b(&mut self) {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `shining-emulator` (bin "shining-emulator" test) generated 53 warnings (run `cargo fix --bin "shining-emulator" --tests` to apply 12 suggestions)
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.02s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/shining_emulator-52af8df61c81c967)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test emulator::sgb::tests::pal_commands_update_palettes ... ok
[INFO] [stdout] test emulator::sgb::tests::attr_commands_colour_areas ... ok
[INFO] [stdout] test test::rom_loads ... FAILED
[INFO] [stdout] test emulator::gpu::filter::tests::can_filter_4x ... ok
[INFO] [stdout] test emulator::gpu::filter::tests::can_filter_3x ... ok
[INFO] [stdout] test emulator::gpu::filter::tests::can_filter_2x ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- test::rom_loads stdout ----
[INFO] [stdout] thread 'test::rom_loads' panicked at 'called `Result::unwrap()` on an `Err` value: "Os { code: 2, kind: NotFound, message: \"No such file or directory\" }"', src/main.rs:35:14
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x55ce00a2c81a - std::backtrace_rs::backtrace::libunwind::trace::ha9053a9a07ca49cb
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
[INFO] [stdout]    1:     0x55ce00a2c81a - std::backtrace_rs::backtrace::trace_unsynchronized::h9c2852a457ad564e
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x55ce00a2c81a - std::sys_common::backtrace::_print_fmt::h457936fbfaa0070f
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/sys_common/backtrace.rs:65:5
[INFO] [stdout]    3:     0x55ce00a2c81a - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h5779d7bf7f70cb0c
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/sys_common/backtrace.rs:44:22
[INFO] [stdout]    4:     0x55ce00a4feae - core::fmt::write::h5a4baaff1bcd3eb5
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/fmt/mod.rs:1232:17
[INFO] [stdout]    5:     0x55ce00a29c95 - std::io::Write::write_fmt::h478f79c628ef31d1
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/io/mod.rs:1684:15
[INFO] [stdout]    6:     0x55ce00a2c5e5 - std::sys_common::backtrace::_print::h5fcdc36060f177e8
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/sys_common/backtrace.rs:47:5
[INFO] [stdout]    7:     0x55ce00a2c5e5 - std::sys_common::backtrace::print::h54ca9458b876c8bf
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/sys_common/backtrace.rs:34:9
[INFO] [stdout]    8:     0x55ce00a2e3af - std::panicking::default_hook::{{closure}}::hbe471161c7664ed6
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:271:22
[INFO] [stdout]    9:     0x55ce00a2e06f - std::panicking::default_hook::ha3500da57aa4ac4f
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:287:9
[INFO] [stdout]   10:     0x55ce009fdb97 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hdf1b89dd137ece34
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/alloc/src/boxed.rs:2001:9
[INFO] [stdout]   11:     0x55ce009fdb97 - test::test_main::{{closure}}::h9081a79f20e75698
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/test/src/lib.rs:135:21
[INFO] [stdout]   12:     0x55ce00a2eadd - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h6507bddc3eebb4a5
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/alloc/src/boxed.rs:2001:9
[INFO] [stdout]   13:     0x55ce00a2eadd - std::panicking::rust_panic_with_hook::h50c09d000dc561d2
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:696:13
[INFO] [stdout]   14:     0x55ce00a2e859 - std::panicking::begin_panic_handler::{{closure}}::h9e2b2176e00e0d9c
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:583:13
[INFO] [stdout]   15:     0x55ce00a2cc86 - std::sys_common::backtrace::__rust_end_short_backtrace::h5739b8e512c09d02
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/sys_common/backtrace.rs:150:18
[INFO] [stdout]   16:     0x55ce00a2e562 - rust_begin_unwind
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:579:5
[INFO] [stdout]   17:     0x55ce009b1b83 - core::panicking::panic_fmt::hf33a1475b4dc5c3e
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/panicking.rs:64:14
[INFO] [stdout]   18:     0x55ce009b1fd3 - core::result::unwrap_failed::hdff5465d74574b44
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/result.rs:1750:5
[INFO] [stdout]   19:     0x55ce009c81e4 - core::result::Result<T,E>::unwrap::hb054197abca193bd
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/result.rs:1090:23
[INFO] [stdout]   20:     0x55ce009c76b3 - shining_emulator::test::rom_loads::h9c3880a530e99820
[INFO] [stdout]                                at /opt/rustwide/workdir/src/main.rs:34:20
[INFO] [stdout]   21:     0x55ce009c7667 - shining_emulator::test::rom_loads::{{closure}}::h5e3562812dcda332
[INFO] [stdout]                                at /opt/rustwide/workdir/src/main.rs:33:20
[INFO] [stdout]   22:     0x55ce009c7bd5 - core::ops::function::FnOnce::call_once::h6e9290bec5e34901
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x55ce00a02f7f - core::ops::function::FnOnce::call_once::h7d969581be7d0075
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x55ce00a02f7f - test::__rust_begin_short_backtrace::hca25a52684e56655
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/test/src/lib.rs:656:18
[INFO] [stdout]   25:     0x55ce009d459c - test::run_test::{{closure}}::ha8ac744c4af1a4bb
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/test/src/lib.rs:647:30
[INFO] [stdout]   26:     0x55ce009d459c - core::ops::function::FnOnce::call_once{{vtable.shim}}::h7b411a9ed45bdecf
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   27:     0x55ce00a01f46 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hd05328869a8ed200
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/alloc/src/boxed.rs:1987:9
[INFO] [stdout]   28:     0x55ce00a01f46 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h0c601ce20bd5b2be
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/panic/unwind_safe.rs:271:9
[INFO] [stdout]   29:     0x55ce00a01f46 - std::panicking::try::do_call::ha4be5c164fe30854
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:487:40
[INFO] [stdout]   30:     0x55ce00a01f46 - std::panicking::try::h604546f3609af05f
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:451:19
[INFO] [stdout]   31:     0x55ce00a01f46 - std::panic::catch_unwind::h5bfa8afe44c9c2f9
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panic.rs:140:14
[INFO] [stdout]   32:     0x55ce00a01f46 - test::run_test_in_process::hd50dee55dd63e6aa
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/test/src/lib.rs:679:27
[INFO] [stdout]   33:     0x55ce00a01f46 - test::run_test::run_test_inner::{{closure}}::h4aa0f433aa85cea8
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/test/src/lib.rs:573:39
[INFO] [stdout]   34:     0x55ce009cec11 - test::run_test::run_test_inner::{{closure}}::had56431adf24b4d6
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/test/src/lib.rs:600:37
[INFO] [stdout]   35:     0x55ce009cec11 - std::sys_common::backtrace::__rust_begin_short_backtrace::ha8d9890e0c73bf13
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/sys_common/backtrace.rs:134:18
[INFO] [stdout]   36:     0x55ce009d462b - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::h251832bcb4a95327
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/thread/mod.rs:560:17
[INFO] [stdout]   37:     0x55ce009d462b - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h8fdff598fa414831
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/panic/unwind_safe.rs:271:9
[INFO] [stdout]   38:     0x55ce009d462b - std::panicking::try::do_call::h455dd2f7764a950f
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:487:40
[INFO] [stdout]   39:     0x55ce009d462b - std::panicking::try::had6f23b7b73ae72a
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:451:19
[INFO] [stdout]   40:     0x55ce009d462b - std::panic::catch_unwind::ha6a5ca3915b4dad0
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panic.rs:140:14
[INFO] [stdout]   41:     0x55ce009d462b - std::thread::Builder::spawn_unchecked_::{{closure}}::h883b72ef75da6231
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/thread/mod.rs:559:30
[INFO] [stdout]   42:     0x55ce009d462b - core::ops::function::FnOnce::call_once{{vtable.shim}}::hb7dff73dc8bd2ccb
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   43:     0x55ce00a32e43 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h39990b24eedef2ab
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/alloc/src/boxed.rs:1987:9
[INFO] [stdout]   44:     0x55ce00a32e43 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h01a027258444143b
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/alloc/src/boxed.rs:1987:9
[INFO] [stdout]   45:     0x55ce00a32e43 - std::sys::unix::thread::Thread::new::thread_start::ha4f1cdd9c25884ba
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/sys/unix/thread.rs:108:17
[INFO] [stdout]   46:     0x7f71f749cb43 - <unknown>
[INFO] [stdout]   47:     0x7f71f752dbb4 - __clone
[INFO] [stdout]   48:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     test::rom_loads
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 5 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.27s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--bin shining-emulator`
[INFO] running `Command { std: "docker" "inspect" "f8e3f1e432681b13d6cf3f9f1495aa571b856310cd4ebc8bb5e6d3d6c7981c57", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f8e3f1e432681b13d6cf3f9f1495aa571b856310cd4ebc8bb5e6d3d6c7981c57", kill_on_drop: false }`
[INFO] [stdout] f8e3f1e432681b13d6cf3f9f1495aa571b856310cd4ebc8bb5e6d3d6c7981c57
