[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 beta-2023-04-20 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-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/grimace87/shining-emulator on toolchain beta-2023-04-20
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2023-04-20" "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-tc2/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" "+beta-2023-04-20" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-04-20" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 3767d156e2c0a92b98b37db39e577e571554bf6a46e4af5efa62486751e61a67
[INFO] running `Command { std: "docker" "start" "-a" "3767d156e2c0a92b98b37db39e577e571554bf6a46e4af5efa62486751e61a67", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3767d156e2c0a92b98b37db39e577e571554bf6a46e4af5efa62486751e61a67", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3767d156e2c0a92b98b37db39e577e571554bf6a46e4af5efa62486751e61a67", kill_on_drop: false }`
[INFO] [stdout] 3767d156e2c0a92b98b37db39e577e571554bf6a46e4af5efa62486751e61a67
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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" "+beta-2023-04-20" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 85a43d6c46d7fa656226be18b95663c2ed53774a8642c17fb10eeeaf25b9b477
[INFO] running `Command { std: "docker" "start" "-a" "85a43d6c46d7fa656226be18b95663c2ed53774a8642c17fb10eeeaf25b9b477", 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: methods `do_work` and `reset` are never used
[INFO] [stdout]   --> src/emulator/mod.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | impl Emulator<DummyAudioController> {
[INFO] [stdout]    | ----------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 75 |     fn do_work(&mut self, time_diff_millis: u64) {
[INFO] [stdout]    |        ^^^^^^^
[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: methods `on_invalid_instruction`, `set_input_values`, and `execute_accumulated_clocks` are never used
[INFO] [stdout]    --> src/emulator/cpu.rs:71:8
[INFO] [stdout]     |
[INFO] [stdout] 38  | impl Cpu {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 71  |     fn on_invalid_instruction(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn set_input_values(&mut self, key_dir: u8, key_but: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[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] 15 | impl SimpleExternalRam {
[INFO] [stdout]    | ---------------------- associated function in this implementation
[INFO] [stdout] 16 |
[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] 27  | impl Sram {
[INFO] [stdout]     | --------- method in this implementation
[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: multiple associated items are never used
[INFO] [stdout]    --> src/emulator/gpu/filter/xbr_params.rs:26:12
[INFO] [stdout]     |
[INFO] [stdout] 24  | impl XbrParams {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 25  |
[INFO] [stdout] 26  |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 46  |     fn generate_rgb_to_yuv_conversion() -> Vec<u32> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68  |     fn pixel_difference(&self, x: usize, y: usize) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86  |     fn similar_pixels(&self, a: usize, b: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90  |     fn alpha_blend_base(a: usize, b: usize, m: usize, s: usize) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     fn alpha_blend_32_w(a: u32, b: usize) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn alpha_blend_64_w(a: u32, b: usize) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     fn alpha_blend_128_w(a: u32, b: usize) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     fn alpha_blend_192_w(a: u32, b: usize) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     fn alpha_blend_224_w(a: u32, b: usize) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     fn filter_2(
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     fn filter_3(
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     fn filter_4(
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 420 |     fn xbr_filter(&mut self, n: usize) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 547 |     pub fn xbr_filter_xbr2x(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 551 |     pub fn xbr_filter_xbr3x(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[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] 15 | impl SimpleMemoryMap {
[INFO] [stdout]    | -------------------- associated function in this implementation
[INFO] [stdout] 16 |
[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] 19 | impl MemBus {
[INFO] [stdout]    | ----------- method in this implementation
[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: multiple associated items are never used
[INFO] [stdout]    --> src/emulator/sgb.rs:77:12
[INFO] [stdout]     |
[INFO] [stdout] 52  | impl Sgb {
[INFO] [stdout]     | -------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 77  |     pub fn reset(&mut self) {
[INFO] [stdout]     |            ^^^^^
[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] 157 |     fn check_byte(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     fn check_packets<M: MemoryMap>(&mut self, mem_bus: &mut M) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     fn finalise_palette_load(&mut self, first: usize, second: usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     fn remap_555_8888(lo_byte: u32, hi_byte: u32) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 244 |     fn finalise_attr_blk(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 337 |     fn finalise_attr_lin(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 341 |     fn finalise_attr_div(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 396 |     fn finalise_attr_chr(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 454 |     fn finalise_palette_set(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 471 |     fn finalise_palette_transfer<M: MemoryMap>(&mut self, mem_bus: &mut M) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 487 |     fn finalise_multi_request(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 493 |     fn finalise_mask_enable(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[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: multiple methods are never used
[INFO] [stdout]   --> src/emulator/input.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 7  | impl Input {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn press_right(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn press_left(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn press_up(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn press_down(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn press_select(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn press_start(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn press_a(&mut self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn press_b(&mut self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn release_right(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn release_left(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn release_up(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn release_down(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn release_select(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn release_start(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn release_a(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub fn release_b(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 66 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 2.33s
[INFO] running `Command { std: "docker" "inspect" "85a43d6c46d7fa656226be18b95663c2ed53774a8642c17fb10eeeaf25b9b477", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "85a43d6c46d7fa656226be18b95663c2ed53774a8642c17fb10eeeaf25b9b477", kill_on_drop: false }`
[INFO] [stdout] 85a43d6c46d7fa656226be18b95663c2ed53774a8642c17fb10eeeaf25b9b477
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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" "+beta-2023-04-20" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8ceb88211bb29602b9517ca5bc34005a9d1d3bb621177ab396c6f1bcc6166fe4
[INFO] running `Command { std: "docker" "start" "-a" "8ceb88211bb29602b9517ca5bc34005a9d1d3bb621177ab396c6f1bcc6166fe4", 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: methods `do_work` and `reset` are never used
[INFO] [stdout]   --> src/emulator/mod.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | impl Emulator<DummyAudioController> {
[INFO] [stdout]    | ----------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 75 |     fn do_work(&mut self, time_diff_millis: u64) {
[INFO] [stdout]    |        ^^^^^^^
[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: methods `on_invalid_instruction`, `set_input_values`, and `execute_accumulated_clocks` are never used
[INFO] [stdout]    --> src/emulator/cpu.rs:71:8
[INFO] [stdout]     |
[INFO] [stdout] 38  | impl Cpu {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 71  |     fn on_invalid_instruction(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn set_input_values(&mut self, key_dir: u8, key_but: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[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] 15 | impl SimpleExternalRam {
[INFO] [stdout]    | ---------------------- associated function in this implementation
[INFO] [stdout] 16 |
[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] 27  | impl Sram {
[INFO] [stdout]     | --------- method in this implementation
[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] 19 | impl MemBus {
[INFO] [stdout]    | ----------- method in this implementation
[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: multiple methods are never used
[INFO] [stdout]   --> src/emulator/input.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 7  | impl Input {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn press_right(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn press_left(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn press_up(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn press_down(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn press_select(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn press_start(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn press_a(&mut self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn press_b(&mut self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn release_right(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn release_left(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn release_up(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn release_down(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn release_select(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn release_start(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn release_a(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub fn release_b(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 35 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.84s
[INFO] running `Command { std: "docker" "inspect" "8ceb88211bb29602b9517ca5bc34005a9d1d3bb621177ab396c6f1bcc6166fe4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8ceb88211bb29602b9517ca5bc34005a9d1d3bb621177ab396c6f1bcc6166fe4", kill_on_drop: false }`
[INFO] [stdout] 8ceb88211bb29602b9517ca5bc34005a9d1d3bb621177ab396c6f1bcc6166fe4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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" "+beta-2023-04-20" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 528b1ece5037f8e3e3a62252fd3310c62688df2642a721fd7139ddbd0c2f5c1b
[INFO] running `Command { std: "docker" "start" "-a" "528b1ece5037f8e3e3a62252fd3310c62688df2642a721fd7139ddbd0c2f5c1b", 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: methods `do_work` and `reset` are never used
[INFO] [stderr]   --> src/emulator/mod.rs:75:8
[INFO] [stderr]    |
[INFO] [stderr] 43 | impl Emulator<DummyAudioController> {
[INFO] [stderr]    | ----------------------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 75 |     fn do_work(&mut self, time_diff_millis: u64) {
[INFO] [stderr]    |        ^^^^^^^
[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: methods `on_invalid_instruction`, `set_input_values`, and `execute_accumulated_clocks` are never used
[INFO] [stderr]    --> src/emulator/cpu.rs:71:8
[INFO] [stderr]     |
[INFO] [stderr] 38  | impl Cpu {
[INFO] [stderr]     | -------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 71  |     fn on_invalid_instruction(&mut self) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 107 |     pub fn set_input_values(&mut self, key_dir: u8, key_but: u8) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[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] 15 | impl SimpleExternalRam {
[INFO] [stderr]    | ---------------------- associated function in this implementation
[INFO] [stderr] 16 |
[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] 27  | impl Sram {
[INFO] [stderr]     | --------- method in this implementation
[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] 19 | impl MemBus {
[INFO] [stderr]    | ----------- method in this implementation
[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: multiple methods are never used
[INFO] [stderr]   --> src/emulator/input.rs:25:12
[INFO] [stderr]    |
[INFO] [stderr] 7  | impl Input {
[INFO] [stderr]    | ---------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 25 |     pub fn press_right(&mut self) {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 29 |     pub fn press_left(&mut self) {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 33 |     pub fn press_up(&mut self) {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 37 |     pub fn press_down(&mut self) {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 41 |     pub fn press_select(&mut self) {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 45 |     pub fn press_start(&mut self) {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 49 |     pub fn press_a(&mut self) {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 53 |     pub fn press_b(&mut self) {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 57 |     pub fn release_right(&mut self) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 61 |     pub fn release_left(&mut self) {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 65 |     pub fn release_up(&mut self) {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 69 |     pub fn release_down(&mut self) {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 73 |     pub fn release_select(&mut self) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 77 |     pub fn release_start(&mut self) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 81 |     pub fn release_a(&mut self) {
[INFO] [stderr]    |            ^^^^^^^^^
[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 35 warnings (run `cargo fix --bin "shining-emulator" --tests` to apply 12 suggestions)
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.03s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/shining_emulator-006b7d5d2a7286e8)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test emulator::sgb::tests::attr_commands_colour_areas ... ok
[INFO] [stdout] test emulator::sgb::tests::pal_commands_update_palettes ... ok
[INFO] [stdout] test test::rom_loads ... FAILED
[INFO] [stdout] test emulator::gpu::filter::tests::can_filter_2x ... ok
[INFO] [stdout] test emulator::gpu::filter::tests::can_filter_4x ... ok
[INFO] [stdout] test emulator::gpu::filter::tests::can_filter_3x ... 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:     0x55a7dd4e2aaa - std::backtrace_rs::backtrace::libunwind::trace::h2f05d0192276a8f6
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
[INFO] [stdout]    1:     0x55a7dd4e2aaa - std::backtrace_rs::backtrace::trace_unsynchronized::hedc23dff7a1af150
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x55a7dd4e2aaa - std::sys_common::backtrace::_print_fmt::h17541ef7592f3ce2
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/sys_common/backtrace.rs:65:5
[INFO] [stdout]    3:     0x55a7dd4e2aaa - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h20f75df5ab0c0792
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/sys_common/backtrace.rs:44:22
[INFO] [stdout]    4:     0x55a7dd5066ff - core::fmt::write::h78109e6f466b3af6
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/core/src/fmt/mod.rs:1254:17
[INFO] [stdout]    5:     0x55a7dd4dfdf5 - std::io::Write::write_fmt::hd24bfb68a1b35a25
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/io/mod.rs:1698:15
[INFO] [stdout]    6:     0x55a7dd4e2875 - std::sys_common::backtrace::_print::h8dac57a9f8fbf9a5
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/sys_common/backtrace.rs:47:5
[INFO] [stdout]    7:     0x55a7dd4e2875 - std::sys_common::backtrace::print::hf9ecbf41d1aa712f
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/sys_common/backtrace.rs:34:9
[INFO] [stdout]    8:     0x55a7dd4e452e - std::panicking::default_hook::{{closure}}::h04c07acfc84ca028
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/panicking.rs:269:22
[INFO] [stdout]    9:     0x55a7dd4e4261 - std::panicking::default_hook::h01f6bb23e1eceb2c
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/panicking.rs:285:9
[INFO] [stdout]   10:     0x55a7dd4b4c4b - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h87fe9f7b2fd49e4c
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/alloc/src/boxed.rs:1987:9
[INFO] [stdout]   11:     0x55a7dd4b4c4b - test::test_main::{{closure}}::he94d679243a7531b
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/test/src/lib.rs:134:21
[INFO] [stdout]   12:     0x55a7dd4e4c14 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h3f2d6d8b14c4769f
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/alloc/src/boxed.rs:1987:9
[INFO] [stdout]   13:     0x55a7dd4e4c14 - std::panicking::rust_panic_with_hook::h2bb3722bbaf2f6df
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/panicking.rs:695:13
[INFO] [stdout]   14:     0x55a7dd4e4989 - std::panicking::begin_panic_handler::{{closure}}::h91bc7f36a4be011b
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/panicking.rs:582:13
[INFO] [stdout]   15:     0x55a7dd4e2f16 - std::sys_common::backtrace::__rust_end_short_backtrace::h8b3d3717114f9e59
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/sys_common/backtrace.rs:150:18
[INFO] [stdout]   16:     0x55a7dd4e46e2 - rust_begin_unwind
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/panicking.rs:578:5
[INFO] [stdout]   17:     0x55a7dd464ba3 - core::panicking::panic_fmt::hfd368e3fbdabea26
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/core/src/panicking.rs:67:14
[INFO] [stdout]   18:     0x55a7dd464ff3 - core::result::unwrap_failed::he54eb4b2f125b26f
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/core/src/result.rs:1687:5
[INFO] [stdout]   19:     0x55a7dd47b7c4 - core::result::Result<T,E>::unwrap::h6e1e60eb7a8efcb8
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/core/src/result.rs:1089:23
[INFO] [stdout]   20:     0x55a7dd47b1e3 - shining_emulator::test::rom_loads::h406441eec4bec9eb
[INFO] [stdout]                                at /opt/rustwide/workdir/src/main.rs:34:20
[INFO] [stdout]   21:     0x55a7dd47b197 - shining_emulator::test::rom_loads::{{closure}}::h36c436847b5df380
[INFO] [stdout]                                at /opt/rustwide/workdir/src/main.rs:33:20
[INFO] [stdout]   22:     0x55a7dd479d45 - core::ops::function::FnOnce::call_once::hcaffb08a530ef1a3
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x55a7dd4b9b1f - core::ops::function::FnOnce::call_once::ha6a70e79f7481a7e
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x55a7dd4b9b1f - test::__rust_begin_short_backtrace::hce33033019b61e69
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/test/src/lib.rs:655:18
[INFO] [stdout]   25:     0x55a7dd48730c - test::run_test::{{closure}}::h858d3528838ae3e5
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/test/src/lib.rs:646:30
[INFO] [stdout]   26:     0x55a7dd48730c - core::ops::function::FnOnce::call_once{{vtable.shim}}::he8ac2b00f01ae79e
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   27:     0x55a7dd4b8bf6 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h8093d25b522725ef
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/alloc/src/boxed.rs:1973:9
[INFO] [stdout]   28:     0x55a7dd4b8bf6 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h5c334c204e4a3913
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/core/src/panic/unwind_safe.rs:271:9
[INFO] [stdout]   29:     0x55a7dd4b8bf6 - std::panicking::try::do_call::ha8b740c7b9478074
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/panicking.rs:485:40
[INFO] [stdout]   30:     0x55a7dd4b8bf6 - std::panicking::try::h5d34f63d0e41b64e
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/panicking.rs:449:19
[INFO] [stdout]   31:     0x55a7dd4b8bf6 - std::panic::catch_unwind::hcfbb511e1aa7fc67
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/panic.rs:140:14
[INFO] [stdout]   32:     0x55a7dd4b8bf6 - test::run_test_in_process::h9abda90f802eaf21
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/test/src/lib.rs:678:27
[INFO] [stdout]   33:     0x55a7dd4b8bf6 - test::run_test::run_test_inner::{{closure}}::h0f058de91f6c6edf
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/test/src/lib.rs:572:39
[INFO] [stdout]   34:     0x55a7dd481b15 - test::run_test::run_test_inner::{{closure}}::h5ca48a4c59c6c1fb
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/test/src/lib.rs:599:37
[INFO] [stdout]   35:     0x55a7dd481b15 - std::sys_common::backtrace::__rust_begin_short_backtrace::h32bd51e1495d4a33
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/sys_common/backtrace.rs:134:18
[INFO] [stdout]   36:     0x55a7dd487051 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hc086fae9b128b2db
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/thread/mod.rs:526:17
[INFO] [stdout]   37:     0x55a7dd487051 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hb66571888d270d43
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/core/src/panic/unwind_safe.rs:271:9
[INFO] [stdout]   38:     0x55a7dd487051 - std::panicking::try::do_call::h4fa2ef4f6e51fecf
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/panicking.rs:485:40
[INFO] [stdout]   39:     0x55a7dd487051 - std::panicking::try::h1e9e22b8584489b5
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/panicking.rs:449:19
[INFO] [stdout]   40:     0x55a7dd487051 - std::panic::catch_unwind::h44698a3de0e0769e
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/panic.rs:140:14
[INFO] [stdout]   41:     0x55a7dd487051 - std::thread::Builder::spawn_unchecked_::{{closure}}::h50153abde3fe239e
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/thread/mod.rs:525:30
[INFO] [stdout]   42:     0x55a7dd487051 - core::ops::function::FnOnce::call_once{{vtable.shim}}::hbe5bbf6f38394364
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   43:     0x55a7dd4e90e5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h0d83cb2920a49046
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/alloc/src/boxed.rs:1973:9
[INFO] [stdout]   44:     0x55a7dd4e90e5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hbe0a008aa7d9ef59
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/alloc/src/boxed.rs:1973:9
[INFO] [stdout]   45:     0x55a7dd4e90e5 - std::sys::unix::thread::Thread::new::thread_start::h3a466996bdf6b1f9
[INFO] [stdout]                                at /rustc/1b7dd2252b99671ce5d1cb9664c5f8636329436d/library/std/src/sys/unix/thread.rs:108:17
[INFO] [stdout]   46:     0x7fc215485b43 - <unknown>
[INFO] [stdout]   47:     0x7fc215516bb4 - __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 0.94s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--bin shining-emulator`
[INFO] running `Command { std: "docker" "inspect" "528b1ece5037f8e3e3a62252fd3310c62688df2642a721fd7139ddbd0c2f5c1b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "528b1ece5037f8e3e3a62252fd3310c62688df2642a721fd7139ddbd0c2f5c1b", kill_on_drop: false }`
[INFO] [stdout] 528b1ece5037f8e3e3a62252fd3310c62688df2642a721fd7139ddbd0c2f5c1b
