[INFO] cloning repository https://github.com/nick-gl/gb_emulator
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/nick-gl/gb_emulator" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnick-gl%2Fgb_emulator", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnick-gl%2Fgb_emulator'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 8af2156b49920e423146a433ee86e85db71d09f5
[INFO] testing nick-gl/gb_emulator against master#c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 for pr-146098-7
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnick-gl%2Fgb_emulator" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/nick-gl/gb_emulator
[INFO] finished tweaking git repo https://github.com/nick-gl/gb_emulator
[INFO] tweaked toml for git repo https://github.com/nick-gl/gb_emulator written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/nick-gl/gb_emulator on toolchain c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/nick-gl/gb_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" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 9db2a3e3b53553923f108fdc35061ef8877a7f634c906d4240f733634073da90
[INFO] running `Command { std: "docker" "start" "-a" "9db2a3e3b53553923f108fdc35061ef8877a7f634c906d4240f733634073da90", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9db2a3e3b53553923f108fdc35061ef8877a7f634c906d4240f733634073da90", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9db2a3e3b53553923f108fdc35061ef8877a7f634c906d4240f733634073da90", kill_on_drop: false }`
[INFO] [stdout] 9db2a3e3b53553923f108fdc35061ef8877a7f634c906d4240f733634073da90
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 80420ca6b523bdaed85404d685ab13eda9d8b8e27583d7e9c6e54d692920d9d1
[INFO] running `Command { std: "docker" "start" "-a" "80420ca6b523bdaed85404d685ab13eda9d8b8e27583d7e9c6e54d692920d9d1", kill_on_drop: false }`
[INFO] [stderr]    Compiling gb_emu v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::collections::hash_map::Values`
[INFO] [stdout]  --> src/cpu.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::hash_map::Values;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ADDHLTarget`
[INFO] [stdout]  --> src/cpu.rs:2:39
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::instruction::{Instruction, ADDHLTarget, ArithmeticTarget, IncTarget, ByteAddressFromA, AFromByteAddress, IndirectFromA, AF...
[INFO] [stdout]   |                                       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/cpu.rs:1280:25
[INFO] [stdout]      |
[INFO] [stdout] 1280 |         let new_value = (values >> 1);
[INFO] [stdout]      |                         ^           ^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1280 -         let new_value = (values >> 1);
[INFO] [stdout] 1280 +         let new_value = values >> 1 ;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/cpu.rs:1290:29
[INFO] [stdout]      |
[INFO] [stdout] 1290 |         let mut new_value = (values >> 1);
[INFO] [stdout]      |                             ^           ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1290 -         let mut new_value = (values >> 1);
[INFO] [stdout] 1290 +         let mut new_value = values >> 1 ;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/cpu.rs:106:29
[INFO] [stdout]     |
[INFO] [stdout] 105 | ...                   WordByteSource::U16 | WordByteSource::SP => 3,
[INFO] [stdout]     |                       ---------------------------------------- matches all the relevant values
[INFO] [stdout] 106 | ...                   _=> 1
[INFO] [stdout]     |                       ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]    --> src/cpu.rs:772:29
[INFO] [stdout]     |
[INFO] [stdout] 772 |                         let new_value = self.or(value);
[INFO] [stdout]     |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]     --> src/cpu.rs:1011:29
[INFO] [stdout]      |
[INFO] [stdout] 1011 |                         let new_value = self.sub(value);
[INFO] [stdout]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]     --> src/cpu.rs:1021:29
[INFO] [stdout]      |
[INFO] [stdout] 1021 |                         let new_value = self.sub(value);
[INFO] [stdout]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]     --> src/cpu.rs:1026:29
[INFO] [stdout]      |
[INFO] [stdout] 1026 |                         let new_value = self.sub(value);
[INFO] [stdout]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]     --> src/cpu.rs:1031:29
[INFO] [stdout]      |
[INFO] [stdout] 1031 |                         let new_value = self.sub(value);self.pc.wrapping_add(1)
[INFO] [stdout]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]     --> src/cpu.rs:1035:29
[INFO] [stdout]      |
[INFO] [stdout] 1035 |                         let new_value = self.sub(value);self.pc.wrapping_add(1)
[INFO] [stdout]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]     --> src/cpu.rs:1039:29
[INFO] [stdout]      |
[INFO] [stdout] 1039 |                         let new_value = self.sub(value);self.pc.wrapping_add(1)
[INFO] [stdout]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]     --> src/cpu.rs:1043:29
[INFO] [stdout]      |
[INFO] [stdout] 1043 |                         let new_value = self.sub(value);self.pc.wrapping_add(1)
[INFO] [stdout]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]     --> src/cpu.rs:1047:29
[INFO] [stdout]      |
[INFO] [stdout] 1047 |                         let new_value = self.sub(value);self.pc.wrapping_add(1)
[INFO] [stdout]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]     --> src/cpu.rs:1451:26
[INFO] [stdout]      |
[INFO] [stdout] 1451 |     fn set_af(&mut self, value: u16) {
[INFO] [stdout]      |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/instruction.rs:369:13
[INFO] [stdout]     |
[INFO] [stdout] 369 |             _ => None,
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/instruction.rs:369:13
[INFO] [stdout]     |
[INFO] [stdout] 269 |             0x00 => Some(Instruction::RLC(B)),
[INFO] [stdout]     |             ---- matches some of the same values
[INFO] [stdout] 270 |             0x01 => Some(Instruction::RLC(C)),
[INFO] [stdout]     |             ---- matches some of the same values
[INFO] [stdout] 271 |             0x02 => Some(Instruction::RLC(D)),
[INFO] [stdout]     |             ---- matches some of the same values
[INFO] [stdout] 272 |             0x03 => Some(Instruction::RLC(E)),
[INFO] [stdout]     |             ---- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 369 |             _ => None,
[INFO] [stdout]     |             ^ ...and 63 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filename`
[INFO] [stdout]   --> src/cartride.rs:22:24
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn load(&self, filename: &str) {
[INFO] [stdout]    |                        ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filename`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Frequency` is more private than the item `Timer::new`
[INFO] [stdout]   --> src/timer.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn new(frequency: Frequency) -> Timer {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `Timer::new` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Frequency` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/timer.rs:2:1
[INFO] [stdout]    |
[INFO] [stdout]  2 | enum Frequency {
[INFO] [stdout]    | ^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CPU` is never constructed
[INFO] [stdout]  --> src/cpu.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct CPU {
[INFO] [stdout]   |            ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Register` is never constructed
[INFO] [stdout]   --> src/cpu.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | struct Register {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]     --> src/cpu.rs:33:11
[INFO] [stdout]      |
[INFO] [stdout]   32 | impl CPU {
[INFO] [stdout]      | -------- methods in this implementation
[INFO] [stdout]   33 |    pub fn step(&mut self) {
[INFO] [stdout]      |           ^^^^
[INFO] [stdout] ...
[INFO] [stdout]   47 |     fn execute(&mut self, instruction: Instruction) -> u16 {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1121 |     fn add_hl(&mut self, value: u16) {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1131 |     fn pop(&mut self) -> u16 {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1140 |     fn push(&mut self, value: u16) {
[INFO] [stdout]      |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1147 |     fn and(&mut self, value: u8) -> u8 {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1155 |     fn jump(&self, jump: bool) -> u16 {
[INFO] [stdout]      |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1164 |     fn ccf(&mut self) {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1167 |     fn scf(&mut self) {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1170 |     fn rra(&mut self) {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1182 |     fn rr(&mut self, value: u8) -> u8 {
[INFO] [stdout]      |        ^^
[INFO] [stdout] ...
[INFO] [stdout] 1195 |     fn rla(&mut self) {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1207 |     fn rl(&mut self, value: u8) -> u8 {
[INFO] [stdout]      |        ^^
[INFO] [stdout] ...
[INFO] [stdout] 1220 |     fn rrca(&mut self) {
[INFO] [stdout]      |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1229 |     fn rrc(&mut self, value: u8) -> u8 {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1239 |     fn rrla(&mut self) {
[INFO] [stdout]      |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1249 |     fn rlc(&mut self, value: u8) -> u8 {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1260 |     fn cpl(&mut self) {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1265 |     fn bit(&mut self, bit: u8, value: u8)  {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1272 |     fn reset(&mut self, bit: u8, value: u8) -> u8 {
[INFO] [stdout]      |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1275 |     fn set(&mut self, bit: u8, value: u8) -> u8 {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1278 |     fn srl(&mut self, values: u8) -> u8 {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1287 |     fn sra(&mut self, values: u8) -> u8 {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1298 |     fn sla(&mut self, values: u8) -> u8 {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1309 |     fn dec16(&mut self, values: u16) -> u16 {
[INFO] [stdout]      |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1312 |     fn inc16(&mut self, values: u16) -> u16 {
[INFO] [stdout]      |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1316 |     fn or(&mut self, value: u8) -> u8 {
[INFO] [stdout]      |        ^^
[INFO] [stdout] ...
[INFO] [stdout] 1324 |     fn xor(&mut self, value: u8) -> u8 {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1332 |     fn dec8(&mut self, value: u8) -> u8 {
[INFO] [stdout]      |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1340 |     fn inc8(&mut self, value: u8) -> u8 {
[INFO] [stdout]      |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1348 |     fn adc(&mut self, value: u8) -> u8 {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1360 |     fn sbc(&mut self, value: u8) -> u8 {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1370 |     fn sub(&mut self, value: u8) -> u8 {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1378 |     fn add(&mut self, value: u8) -> u8 {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1387 |     fn swap(&mut self, value: u8) -> u8 {
[INFO] [stdout]      |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]     --> src/cpu.rs:1423:8
[INFO] [stdout]      |
[INFO] [stdout] 1422 | impl Register {
[INFO] [stdout]      | ------------- methods in this implementation
[INFO] [stdout] 1423 |     fn get_hl(&self) -> u16 {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1427 |     fn set_hl(&mut self, value: u16) {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1431 |     fn get_bc(&self) -> u16 {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1435 |     fn set_bc(&mut self, value: u16) {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1439 |     fn get_de(&self) -> u16 {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1443 |     fn set_de(&mut self, value: u16) {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1447 |     fn get_af(&self) -> u16 {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1451 |     fn set_af(&mut self, value: u16) {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VRAM_BEGIN` is never used
[INFO] [stdout]  --> src/bus.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const VRAM_BEGIN: usize = 0x8000;
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VRAM_END` is never used
[INFO] [stdout]  --> src/bus.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub const VRAM_END: usize = 0x9FFF;
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VRAM_SIZE` is never used
[INFO] [stdout]  --> src/bus.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const VRAM_SIZE: usize = VRAM_END - VRAM_BEGIN + 1;
[INFO] [stdout]   |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WRAM_BEGIN` is never used
[INFO] [stdout]  --> src/bus.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const WRAM_BEGIN: usize = 0xC000;
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WRAM_END` is never used
[INFO] [stdout]  --> src/bus.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const WRAM_END: usize = 0xCFFF;
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WRAM_SIZE` is never used
[INFO] [stdout]   --> src/bus.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const WRAM_SIZE: usize = WRAM_END - WRAM_BEGIN + 1;
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SWITCH_BEGIN` is never used
[INFO] [stdout]   --> src/bus.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const SWITCH_BEGIN: usize = 0xA000;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SWITCH_END` is never used
[INFO] [stdout]   --> src/bus.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub const SWITCH_END: usize = 0xBFFF;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SWITCH_SIZE` is never used
[INFO] [stdout]   --> src/bus.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub const SWITCH_SIZE: usize = SWITCH_END - SWITCH_BEGIN + 1;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OAM_BEGIN` is never used
[INFO] [stdout]   --> src/bus.rs:16:11
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub const OAM_BEGIN: usize = 0xFE00;
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OAM_END` is never used
[INFO] [stdout]   --> src/bus.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub const OAM_END: usize = 0xFE9F;
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OAM_SIZE` is never used
[INFO] [stdout]   --> src/bus.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const OAM_SIZE: usize = OAM_END - OAM_BEGIN + 1;
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IO_BEGIN` is never used
[INFO] [stdout]   --> src/bus.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const IO_BEGIN: usize = 0xFF00;
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IO_END` is never used
[INFO] [stdout]   --> src/bus.rs:21:11
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub const IO_END: usize = 0xFF7F;
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IO_SIZE` is never used
[INFO] [stdout]   --> src/bus.rs:22:11
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub const IO_SIZE: usize = IO_END - IO_BEGIN + 1;
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HRAM_BEGIN` is never used
[INFO] [stdout]   --> src/bus.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub const HRAM_BEGIN: usize = 0xFF80;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HRAM_END` is never used
[INFO] [stdout]   --> src/bus.rs:25:11
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub const HRAM_END: usize = 0xFFFE;
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HRAM_SIZE` is never used
[INFO] [stdout]   --> src/bus.rs:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub const HRAM_SIZE: usize = HRAM_END - HRAM_BEGIN + 1; //test
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MemoryBus` is never constructed
[INFO] [stdout]   --> src/bus.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct MemoryBus {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `update`, `read_byte`, and `write_byte` are never used
[INFO] [stdout]   --> src/bus.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl MemoryBus {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn update(&mut self, cycle: u8) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn read_byte(&self, address: u16) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn write_byte(&mut self, address: u16, value: u8) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `from_byte`, `from_byte_not_prefixed`, `from_byte_prefixed`, and `decode_prefix_target` are never used
[INFO] [stdout]    --> src/instruction.rs:2:12
[INFO] [stdout]     |
[INFO] [stdout]   1 | impl Instruction {
[INFO] [stdout]     | ---------------- associated functions in this implementation
[INFO] [stdout]   2 |     pub fn from_byte(byte: u8, prefix: bool) -> Option<Instruction> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]   9 |     pub fn from_byte_not_prefixed(byte: u8) -> Option<Instruction> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 265 |     pub fn from_byte_prefixed(byte: u8) -> Option<Instruction> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 373 |     fn decode_prefix_target(code: u8) -> PrefixTarget {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Instruction` is never used
[INFO] [stdout]    --> src/instruction.rs:388:10
[INFO] [stdout]     |
[INFO] [stdout] 388 | pub enum Instruction {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `StackTarget` is never used
[INFO] [stdout]    --> src/instruction.rs:429:10
[INFO] [stdout]     |
[INFO] [stdout] 429 | pub enum StackTarget {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ArithmeticTarget` is never used
[INFO] [stdout]    --> src/instruction.rs:436:10
[INFO] [stdout]     |
[INFO] [stdout] 436 | pub enum ArithmeticTarget {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PrefixTarget` is never used
[INFO] [stdout]    --> src/instruction.rs:448:10
[INFO] [stdout]     |
[INFO] [stdout] 448 | pub enum PrefixTarget {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `IncTarget` is never used
[INFO] [stdout]    --> src/instruction.rs:458:10
[INFO] [stdout]     |
[INFO] [stdout] 458 | pub enum IncTarget {
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ADDHLTarget` is never used
[INFO] [stdout]    --> src/instruction.rs:471:10
[INFO] [stdout]     |
[INFO] [stdout] 471 | pub enum ADDHLTarget {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `JumpTest` is never used
[INFO] [stdout]    --> src/instruction.rs:477:10
[INFO] [stdout]     |
[INFO] [stdout] 477 | pub enum JumpTest {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `WordByteTarget` is never used
[INFO] [stdout]    --> src/instruction.rs:484:10
[INFO] [stdout]     |
[INFO] [stdout] 484 | pub enum WordByteTarget {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `WordByteSource` is never used
[INFO] [stdout]    --> src/instruction.rs:488:10
[INFO] [stdout]     |
[INFO] [stdout] 488 | pub enum WordByteSource {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AFromIndirect` is never used
[INFO] [stdout]    --> src/instruction.rs:492:10
[INFO] [stdout]     |
[INFO] [stdout] 492 | pub enum AFromIndirect {
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `IndirectFromA` is never used
[INFO] [stdout]    --> src/instruction.rs:496:10
[INFO] [stdout]     |
[INFO] [stdout] 496 | pub enum IndirectFromA {
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AFromByteAddress` is never used
[INFO] [stdout]    --> src/instruction.rs:499:10
[INFO] [stdout]     |
[INFO] [stdout] 499 | pub enum AFromByteAddress {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ByteAddressFromA` is never used
[INFO] [stdout]    --> src/instruction.rs:505:10
[INFO] [stdout]     |
[INFO] [stdout] 505 | pub enum ByteAddressFromA {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LoadByteTarget` is never used
[INFO] [stdout]    --> src/instruction.rs:511:10
[INFO] [stdout]     |
[INFO] [stdout] 511 | pub enum LoadByteTarget {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LoadByteSource` is never used
[INFO] [stdout]    --> src/instruction.rs:514:10
[INFO] [stdout]     |
[INFO] [stdout] 514 | pub enum LoadByteSource {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LoadType` is never used
[INFO] [stdout]    --> src/instruction.rs:517:10
[INFO] [stdout]     |
[INFO] [stdout] 517 | pub enum LoadType {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cartridge` is never constructed
[INFO] [stdout]  --> src/cartride.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct Cartridge {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MbcType` is never used
[INFO] [stdout]   --> src/cartride.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum MbcType {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `load` is never used
[INFO] [stdout]   --> src/cartride.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl Cartridge {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] 22 |     pub fn load(&self, filename: &str) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Frequency` is never used
[INFO] [stdout]  --> src/timer.rs:2:6
[INFO] [stdout]   |
[INFO] [stdout] 2 | enum Frequency {
[INFO] [stdout]   |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `find_cycle` is never used
[INFO] [stdout]  --> src/timer.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | impl Frequency {
[INFO] [stdout]   | -------------- method in this implementation
[INFO] [stdout] 9 |     fn find_cycle(&self) -> usize {
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Timer` is never constructed
[INFO] [stdout]   --> src/timer.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Timer {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `update` are never used
[INFO] [stdout]   --> src/timer.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl Timer {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 26 |
[INFO] [stdout] 27 |     pub fn new(frequency: Frequency) -> Timer {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn update(&mut self, cycles: u8) -> bool {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.20s
[INFO] running `Command { std: "docker" "inspect" "80420ca6b523bdaed85404d685ab13eda9d8b8e27583d7e9c6e54d692920d9d1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "80420ca6b523bdaed85404d685ab13eda9d8b8e27583d7e9c6e54d692920d9d1", kill_on_drop: false }`
[INFO] [stdout] 80420ca6b523bdaed85404d685ab13eda9d8b8e27583d7e9c6e54d692920d9d1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f6ec0c86a4ff82357580b80f2c86f11ab11bc92f03f99191fea94511e0ebf117
[INFO] running `Command { std: "docker" "start" "-a" "f6ec0c86a4ff82357580b80f2c86f11ab11bc92f03f99191fea94511e0ebf117", kill_on_drop: false }`
[INFO] [stderr]    Compiling gb_emu v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::collections::hash_map::Values`
[INFO] [stdout]  --> src/cpu.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::hash_map::Values;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ADDHLTarget`
[INFO] [stdout]  --> src/cpu.rs:2:39
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::instruction::{Instruction, ADDHLTarget, ArithmeticTarget, IncTarget, ByteAddressFromA, AFromByteAddress, IndirectFromA, AF...
[INFO] [stdout]   |                                       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/cpu.rs:1280:25
[INFO] [stdout]      |
[INFO] [stdout] 1280 |         let new_value = (values >> 1);
[INFO] [stdout]      |                         ^           ^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1280 -         let new_value = (values >> 1);
[INFO] [stdout] 1280 +         let new_value = values >> 1 ;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/cpu.rs:1290:29
[INFO] [stdout]      |
[INFO] [stdout] 1290 |         let mut new_value = (values >> 1);
[INFO] [stdout]      |                             ^           ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1290 -         let mut new_value = (values >> 1);
[INFO] [stdout] 1290 +         let mut new_value = values >> 1 ;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/cpu.rs:106:29
[INFO] [stdout]     |
[INFO] [stdout] 105 | ...                   WordByteSource::U16 | WordByteSource::SP => 3,
[INFO] [stdout]     |                       ---------------------------------------- matches all the relevant values
[INFO] [stdout] 106 | ...                   _=> 1
[INFO] [stdout]     |                       ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]    --> src/cpu.rs:772:29
[INFO] [stdout]     |
[INFO] [stdout] 772 |                         let new_value = self.or(value);
[INFO] [stdout]     |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]     --> src/cpu.rs:1011:29
[INFO] [stdout]      |
[INFO] [stdout] 1011 |                         let new_value = self.sub(value);
[INFO] [stdout]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]     --> src/cpu.rs:1021:29
[INFO] [stdout]      |
[INFO] [stdout] 1021 |                         let new_value = self.sub(value);
[INFO] [stdout]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]     --> src/cpu.rs:1026:29
[INFO] [stdout]      |
[INFO] [stdout] 1026 |                         let new_value = self.sub(value);
[INFO] [stdout]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]     --> src/cpu.rs:1031:29
[INFO] [stdout]      |
[INFO] [stdout] 1031 |                         let new_value = self.sub(value);self.pc.wrapping_add(1)
[INFO] [stdout]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]     --> src/cpu.rs:1035:29
[INFO] [stdout]      |
[INFO] [stdout] 1035 |                         let new_value = self.sub(value);self.pc.wrapping_add(1)
[INFO] [stdout]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]     --> src/cpu.rs:1039:29
[INFO] [stdout]      |
[INFO] [stdout] 1039 |                         let new_value = self.sub(value);self.pc.wrapping_add(1)
[INFO] [stdout]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]     --> src/cpu.rs:1043:29
[INFO] [stdout]      |
[INFO] [stdout] 1043 |                         let new_value = self.sub(value);self.pc.wrapping_add(1)
[INFO] [stdout]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]     --> src/cpu.rs:1047:29
[INFO] [stdout]      |
[INFO] [stdout] 1047 |                         let new_value = self.sub(value);self.pc.wrapping_add(1)
[INFO] [stdout]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]     --> src/cpu.rs:1451:26
[INFO] [stdout]      |
[INFO] [stdout] 1451 |     fn set_af(&mut self, value: u16) {
[INFO] [stdout]      |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/instruction.rs:369:13
[INFO] [stdout]     |
[INFO] [stdout] 369 |             _ => None,
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/instruction.rs:369:13
[INFO] [stdout]     |
[INFO] [stdout] 269 |             0x00 => Some(Instruction::RLC(B)),
[INFO] [stdout]     |             ---- matches some of the same values
[INFO] [stdout] 270 |             0x01 => Some(Instruction::RLC(C)),
[INFO] [stdout]     |             ---- matches some of the same values
[INFO] [stdout] 271 |             0x02 => Some(Instruction::RLC(D)),
[INFO] [stdout]     |             ---- matches some of the same values
[INFO] [stdout] 272 |             0x03 => Some(Instruction::RLC(E)),
[INFO] [stdout]     |             ---- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 369 |             _ => None,
[INFO] [stdout]     |             ^ ...and 63 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filename`
[INFO] [stdout]   --> src/cartride.rs:22:24
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn load(&self, filename: &str) {
[INFO] [stdout]    |                        ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filename`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Frequency` is more private than the item `Timer::new`
[INFO] [stdout]   --> src/timer.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn new(frequency: Frequency) -> Timer {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `Timer::new` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Frequency` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/timer.rs:2:1
[INFO] [stdout]    |
[INFO] [stdout]  2 | enum Frequency {
[INFO] [stdout]    | ^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CPU` is never constructed
[INFO] [stdout]  --> src/cpu.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct CPU {
[INFO] [stdout]   |            ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Register` is never constructed
[INFO] [stdout]   --> src/cpu.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | struct Register {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]     --> src/cpu.rs:33:11
[INFO] [stdout]      |
[INFO] [stdout]   32 | impl CPU {
[INFO] [stdout]      | -------- methods in this implementation
[INFO] [stdout]   33 |    pub fn step(&mut self) {
[INFO] [stdout]      |           ^^^^
[INFO] [stdout] ...
[INFO] [stdout]   47 |     fn execute(&mut self, instruction: Instruction) -> u16 {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1121 |     fn add_hl(&mut self, value: u16) {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1131 |     fn pop(&mut self) -> u16 {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1140 |     fn push(&mut self, value: u16) {
[INFO] [stdout]      |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1147 |     fn and(&mut self, value: u8) -> u8 {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1155 |     fn jump(&self, jump: bool) -> u16 {
[INFO] [stdout]      |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1164 |     fn ccf(&mut self) {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1167 |     fn scf(&mut self) {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1170 |     fn rra(&mut self) {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1182 |     fn rr(&mut self, value: u8) -> u8 {
[INFO] [stdout]      |        ^^
[INFO] [stdout] ...
[INFO] [stdout] 1195 |     fn rla(&mut self) {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1207 |     fn rl(&mut self, value: u8) -> u8 {
[INFO] [stdout]      |        ^^
[INFO] [stdout] ...
[INFO] [stdout] 1220 |     fn rrca(&mut self) {
[INFO] [stdout]      |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1229 |     fn rrc(&mut self, value: u8) -> u8 {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1239 |     fn rrla(&mut self) {
[INFO] [stdout]      |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1249 |     fn rlc(&mut self, value: u8) -> u8 {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1260 |     fn cpl(&mut self) {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1265 |     fn bit(&mut self, bit: u8, value: u8)  {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1272 |     fn reset(&mut self, bit: u8, value: u8) -> u8 {
[INFO] [stdout]      |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1275 |     fn set(&mut self, bit: u8, value: u8) -> u8 {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1278 |     fn srl(&mut self, values: u8) -> u8 {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1287 |     fn sra(&mut self, values: u8) -> u8 {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1298 |     fn sla(&mut self, values: u8) -> u8 {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1309 |     fn dec16(&mut self, values: u16) -> u16 {
[INFO] [stdout]      |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1312 |     fn inc16(&mut self, values: u16) -> u16 {
[INFO] [stdout]      |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1316 |     fn or(&mut self, value: u8) -> u8 {
[INFO] [stdout]      |        ^^
[INFO] [stdout] ...
[INFO] [stdout] 1324 |     fn xor(&mut self, value: u8) -> u8 {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1332 |     fn dec8(&mut self, value: u8) -> u8 {
[INFO] [stdout]      |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1340 |     fn inc8(&mut self, value: u8) -> u8 {
[INFO] [stdout]      |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1348 |     fn adc(&mut self, value: u8) -> u8 {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1360 |     fn sbc(&mut self, value: u8) -> u8 {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1370 |     fn sub(&mut self, value: u8) -> u8 {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1378 |     fn add(&mut self, value: u8) -> u8 {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1387 |     fn swap(&mut self, value: u8) -> u8 {
[INFO] [stdout]      |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]     --> src/cpu.rs:1423:8
[INFO] [stdout]      |
[INFO] [stdout] 1422 | impl Register {
[INFO] [stdout]      | ------------- methods in this implementation
[INFO] [stdout] 1423 |     fn get_hl(&self) -> u16 {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1427 |     fn set_hl(&mut self, value: u16) {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1431 |     fn get_bc(&self) -> u16 {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1435 |     fn set_bc(&mut self, value: u16) {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1439 |     fn get_de(&self) -> u16 {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1443 |     fn set_de(&mut self, value: u16) {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1447 |     fn get_af(&self) -> u16 {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1451 |     fn set_af(&mut self, value: u16) {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VRAM_BEGIN` is never used
[INFO] [stdout]  --> src/bus.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const VRAM_BEGIN: usize = 0x8000;
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VRAM_END` is never used
[INFO] [stdout]  --> src/bus.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub const VRAM_END: usize = 0x9FFF;
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VRAM_SIZE` is never used
[INFO] [stdout]  --> src/bus.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const VRAM_SIZE: usize = VRAM_END - VRAM_BEGIN + 1;
[INFO] [stdout]   |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WRAM_BEGIN` is never used
[INFO] [stdout]  --> src/bus.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const WRAM_BEGIN: usize = 0xC000;
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WRAM_END` is never used
[INFO] [stdout]  --> src/bus.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const WRAM_END: usize = 0xCFFF;
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WRAM_SIZE` is never used
[INFO] [stdout]   --> src/bus.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const WRAM_SIZE: usize = WRAM_END - WRAM_BEGIN + 1;
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SWITCH_BEGIN` is never used
[INFO] [stdout]   --> src/bus.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const SWITCH_BEGIN: usize = 0xA000;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SWITCH_END` is never used
[INFO] [stdout]   --> src/bus.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub const SWITCH_END: usize = 0xBFFF;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SWITCH_SIZE` is never used
[INFO] [stdout]   --> src/bus.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub const SWITCH_SIZE: usize = SWITCH_END - SWITCH_BEGIN + 1;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OAM_BEGIN` is never used
[INFO] [stdout]   --> src/bus.rs:16:11
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub const OAM_BEGIN: usize = 0xFE00;
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OAM_END` is never used
[INFO] [stdout]   --> src/bus.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub const OAM_END: usize = 0xFE9F;
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OAM_SIZE` is never used
[INFO] [stdout]   --> src/bus.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const OAM_SIZE: usize = OAM_END - OAM_BEGIN + 1;
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IO_BEGIN` is never used
[INFO] [stdout]   --> src/bus.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const IO_BEGIN: usize = 0xFF00;
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IO_END` is never used
[INFO] [stdout]   --> src/bus.rs:21:11
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub const IO_END: usize = 0xFF7F;
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IO_SIZE` is never used
[INFO] [stdout]   --> src/bus.rs:22:11
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub const IO_SIZE: usize = IO_END - IO_BEGIN + 1;
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HRAM_BEGIN` is never used
[INFO] [stdout]   --> src/bus.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub const HRAM_BEGIN: usize = 0xFF80;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HRAM_END` is never used
[INFO] [stdout]   --> src/bus.rs:25:11
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub const HRAM_END: usize = 0xFFFE;
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HRAM_SIZE` is never used
[INFO] [stdout]   --> src/bus.rs:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub const HRAM_SIZE: usize = HRAM_END - HRAM_BEGIN + 1; //test
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MemoryBus` is never constructed
[INFO] [stdout]   --> src/bus.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct MemoryBus {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `update`, `read_byte`, and `write_byte` are never used
[INFO] [stdout]   --> src/bus.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl MemoryBus {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn update(&mut self, cycle: u8) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn read_byte(&self, address: u16) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn write_byte(&mut self, address: u16, value: u8) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `from_byte`, `from_byte_not_prefixed`, `from_byte_prefixed`, and `decode_prefix_target` are never used
[INFO] [stdout]    --> src/instruction.rs:2:12
[INFO] [stdout]     |
[INFO] [stdout]   1 | impl Instruction {
[INFO] [stdout]     | ---------------- associated functions in this implementation
[INFO] [stdout]   2 |     pub fn from_byte(byte: u8, prefix: bool) -> Option<Instruction> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]   9 |     pub fn from_byte_not_prefixed(byte: u8) -> Option<Instruction> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 265 |     pub fn from_byte_prefixed(byte: u8) -> Option<Instruction> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 373 |     fn decode_prefix_target(code: u8) -> PrefixTarget {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Instruction` is never used
[INFO] [stdout]    --> src/instruction.rs:388:10
[INFO] [stdout]     |
[INFO] [stdout] 388 | pub enum Instruction {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `StackTarget` is never used
[INFO] [stdout]    --> src/instruction.rs:429:10
[INFO] [stdout]     |
[INFO] [stdout] 429 | pub enum StackTarget {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ArithmeticTarget` is never used
[INFO] [stdout]    --> src/instruction.rs:436:10
[INFO] [stdout]     |
[INFO] [stdout] 436 | pub enum ArithmeticTarget {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PrefixTarget` is never used
[INFO] [stdout]    --> src/instruction.rs:448:10
[INFO] [stdout]     |
[INFO] [stdout] 448 | pub enum PrefixTarget {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `IncTarget` is never used
[INFO] [stdout]    --> src/instruction.rs:458:10
[INFO] [stdout]     |
[INFO] [stdout] 458 | pub enum IncTarget {
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ADDHLTarget` is never used
[INFO] [stdout]    --> src/instruction.rs:471:10
[INFO] [stdout]     |
[INFO] [stdout] 471 | pub enum ADDHLTarget {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `JumpTest` is never used
[INFO] [stdout]    --> src/instruction.rs:477:10
[INFO] [stdout]     |
[INFO] [stdout] 477 | pub enum JumpTest {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `WordByteTarget` is never used
[INFO] [stdout]    --> src/instruction.rs:484:10
[INFO] [stdout]     |
[INFO] [stdout] 484 | pub enum WordByteTarget {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `WordByteSource` is never used
[INFO] [stdout]    --> src/instruction.rs:488:10
[INFO] [stdout]     |
[INFO] [stdout] 488 | pub enum WordByteSource {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AFromIndirect` is never used
[INFO] [stdout]    --> src/instruction.rs:492:10
[INFO] [stdout]     |
[INFO] [stdout] 492 | pub enum AFromIndirect {
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `IndirectFromA` is never used
[INFO] [stdout]    --> src/instruction.rs:496:10
[INFO] [stdout]     |
[INFO] [stdout] 496 | pub enum IndirectFromA {
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AFromByteAddress` is never used
[INFO] [stdout]    --> src/instruction.rs:499:10
[INFO] [stdout]     |
[INFO] [stdout] 499 | pub enum AFromByteAddress {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ByteAddressFromA` is never used
[INFO] [stdout]    --> src/instruction.rs:505:10
[INFO] [stdout]     |
[INFO] [stdout] 505 | pub enum ByteAddressFromA {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LoadByteTarget` is never used
[INFO] [stdout]    --> src/instruction.rs:511:10
[INFO] [stdout]     |
[INFO] [stdout] 511 | pub enum LoadByteTarget {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LoadByteSource` is never used
[INFO] [stdout]    --> src/instruction.rs:514:10
[INFO] [stdout]     |
[INFO] [stdout] 514 | pub enum LoadByteSource {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LoadType` is never used
[INFO] [stdout]    --> src/instruction.rs:517:10
[INFO] [stdout]     |
[INFO] [stdout] 517 | pub enum LoadType {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cartridge` is never constructed
[INFO] [stdout]  --> src/cartride.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct Cartridge {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MbcType` is never used
[INFO] [stdout]   --> src/cartride.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum MbcType {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `load` is never used
[INFO] [stdout]   --> src/cartride.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl Cartridge {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] 22 |     pub fn load(&self, filename: &str) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Frequency` is never used
[INFO] [stdout]  --> src/timer.rs:2:6
[INFO] [stdout]   |
[INFO] [stdout] 2 | enum Frequency {
[INFO] [stdout]   |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `find_cycle` is never used
[INFO] [stdout]  --> src/timer.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | impl Frequency {
[INFO] [stdout]   | -------------- method in this implementation
[INFO] [stdout] 9 |     fn find_cycle(&self) -> usize {
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Timer` is never constructed
[INFO] [stdout]   --> src/timer.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Timer {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `update` are never used
[INFO] [stdout]   --> src/timer.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl Timer {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 26 |
[INFO] [stdout] 27 |     pub fn new(frequency: Frequency) -> Timer {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn update(&mut self, cycles: u8) -> bool {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.31s
[INFO] running `Command { std: "docker" "inspect" "f6ec0c86a4ff82357580b80f2c86f11ab11bc92f03f99191fea94511e0ebf117", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f6ec0c86a4ff82357580b80f2c86f11ab11bc92f03f99191fea94511e0ebf117", kill_on_drop: false }`
[INFO] [stdout] f6ec0c86a4ff82357580b80f2c86f11ab11bc92f03f99191fea94511e0ebf117
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 505d966716cad36d58cda117f9d613fa2863c10cb26aecdd61ae27d3ff26717b
[INFO] running `Command { std: "docker" "start" "-a" "505d966716cad36d58cda117f9d613fa2863c10cb26aecdd61ae27d3ff26717b", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `std::collections::hash_map::Values`
[INFO] [stderr]  --> src/cpu.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::collections::hash_map::Values;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ADDHLTarget`
[INFO] [stderr]  --> src/cpu.rs:2:39
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::instruction::{Instruction, ADDHLTarget, ArithmeticTarget, IncTarget, ByteAddressFromA, AFromByteAddress, IndirectFromA, AF...
[INFO] [stderr]   |                                       ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]     --> src/cpu.rs:1280:25
[INFO] [stderr]      |
[INFO] [stderr] 1280 |         let new_value = (values >> 1);
[INFO] [stderr]      |                         ^           ^
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]      |
[INFO] [stderr] 1280 -         let new_value = (values >> 1);
[INFO] [stderr] 1280 +         let new_value = values >> 1 ;
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]     --> src/cpu.rs:1290:29
[INFO] [stderr]      |
[INFO] [stderr] 1290 |         let mut new_value = (values >> 1);
[INFO] [stderr]      |                             ^           ^
[INFO] [stderr]      |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]      |
[INFO] [stderr] 1290 -         let mut new_value = (values >> 1);
[INFO] [stderr] 1290 +         let mut new_value = values >> 1 ;
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/cpu.rs:106:29
[INFO] [stderr]     |
[INFO] [stderr] 105 | ...                   WordByteSource::U16 | WordByteSource::SP => 3,
[INFO] [stderr]     |                       ---------------------------------------- matches all the relevant values
[INFO] [stderr] 106 | ...                   _=> 1
[INFO] [stderr]     |                       ^ no value can reach this
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `new_value`
[INFO] [stderr]    --> src/cpu.rs:772:29
[INFO] [stderr]     |
[INFO] [stderr] 772 |                         let new_value = self.or(value);
[INFO] [stderr]     |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `new_value`
[INFO] [stderr]     --> src/cpu.rs:1011:29
[INFO] [stderr]      |
[INFO] [stderr] 1011 |                         let new_value = self.sub(value);
[INFO] [stderr]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `new_value`
[INFO] [stderr]     --> src/cpu.rs:1021:29
[INFO] [stderr]      |
[INFO] [stderr] 1021 |                         let new_value = self.sub(value);
[INFO] [stderr]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `new_value`
[INFO] [stderr]     --> src/cpu.rs:1026:29
[INFO] [stderr]      |
[INFO] [stderr] 1026 |                         let new_value = self.sub(value);
[INFO] [stderr]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `new_value`
[INFO] [stderr]     --> src/cpu.rs:1031:29
[INFO] [stderr]      |
[INFO] [stderr] 1031 |                         let new_value = self.sub(value);self.pc.wrapping_add(1)
[INFO] [stderr]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `new_value`
[INFO] [stderr]     --> src/cpu.rs:1035:29
[INFO] [stderr]      |
[INFO] [stderr] 1035 |                         let new_value = self.sub(value);self.pc.wrapping_add(1)
[INFO] [stderr]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `new_value`
[INFO] [stderr]     --> src/cpu.rs:1039:29
[INFO] [stderr]      |
[INFO] [stderr] 1039 |                         let new_value = self.sub(value);self.pc.wrapping_add(1)
[INFO] [stderr]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `new_value`
[INFO] [stderr]     --> src/cpu.rs:1043:29
[INFO] [stderr]      |
[INFO] [stderr] 1043 |                         let new_value = self.sub(value);self.pc.wrapping_add(1)
[INFO] [stderr]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `new_value`
[INFO] [stderr]     --> src/cpu.rs:1047:29
[INFO] [stderr]      |
[INFO] [stderr] 1047 |                         let new_value = self.sub(value);self.pc.wrapping_add(1)
[INFO] [stderr]      |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `value`
[INFO] [stderr]     --> src/cpu.rs:1451:26
[INFO] [stderr]      |
[INFO] [stderr] 1451 |     fn set_af(&mut self, value: u16) {
[INFO] [stderr]      |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/instruction.rs:369:13
[INFO] [stderr]     |
[INFO] [stderr] 369 |             _ => None,
[INFO] [stderr]     |             ^ no value can reach this
[INFO] [stderr]     |
[INFO] [stderr] note: multiple earlier patterns match some of the same values
[INFO] [stderr]    --> src/instruction.rs:369:13
[INFO] [stderr]     |
[INFO] [stderr] 269 |             0x00 => Some(Instruction::RLC(B)),
[INFO] [stderr]     |             ---- matches some of the same values
[INFO] [stderr] 270 |             0x01 => Some(Instruction::RLC(C)),
[INFO] [stderr]     |             ---- matches some of the same values
[INFO] [stderr] 271 |             0x02 => Some(Instruction::RLC(D)),
[INFO] [stderr]     |             ---- matches some of the same values
[INFO] [stderr] 272 |             0x03 => Some(Instruction::RLC(E)),
[INFO] [stderr]     |             ---- matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr] 369 |             _ => None,
[INFO] [stderr]     |             ^ ...and 63 other patterns collectively make this unreachable
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `filename`
[INFO] [stderr]   --> src/cartride.rs:22:24
[INFO] [stderr]    |
[INFO] [stderr] 22 |     pub fn load(&self, filename: &str) {
[INFO] [stderr]    |                        ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filename`
[INFO] [stderr] 
[INFO] [stderr] warning: type `Frequency` is more private than the item `Timer::new`
[INFO] [stderr]   --> src/timer.rs:27:5
[INFO] [stderr]    |
[INFO] [stderr] 27 |     pub fn new(frequency: Frequency) -> Timer {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `Timer::new` is reachable at visibility `pub(crate)`
[INFO] [stderr]    |
[INFO] [stderr] note: but type `Frequency` is only usable at visibility `pub(self)`
[INFO] [stderr]   --> src/timer.rs:2:1
[INFO] [stderr]    |
[INFO] [stderr]  2 | enum Frequency {
[INFO] [stderr]    | ^^^^^^^^^^^^^^
[INFO] [stderr]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: struct `CPU` is never constructed
[INFO] [stderr]  --> src/cpu.rs:8:12
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub struct CPU {
[INFO] [stderr]   |            ^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Register` is never constructed
[INFO] [stderr]   --> src/cpu.rs:22:8
[INFO] [stderr]    |
[INFO] [stderr] 22 | struct Register {
[INFO] [stderr]    |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]     --> src/cpu.rs:33:11
[INFO] [stderr]      |
[INFO] [stderr]   32 | impl CPU {
[INFO] [stderr]      | -------- methods in this implementation
[INFO] [stderr]   33 |    pub fn step(&mut self) {
[INFO] [stderr]      |           ^^^^
[INFO] [stderr] ...
[INFO] [stderr]   47 |     fn execute(&mut self, instruction: Instruction) -> u16 {
[INFO] [stderr]      |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1121 |     fn add_hl(&mut self, value: u16) {
[INFO] [stderr]      |        ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1131 |     fn pop(&mut self) -> u16 {
[INFO] [stderr]      |        ^^^
[INFO] [stderr] ...
[INFO] [stderr] 1140 |     fn push(&mut self, value: u16) {
[INFO] [stderr]      |        ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1147 |     fn and(&mut self, value: u8) -> u8 {
[INFO] [stderr]      |        ^^^
[INFO] [stderr] ...
[INFO] [stderr] 1155 |     fn jump(&self, jump: bool) -> u16 {
[INFO] [stderr]      |        ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1164 |     fn ccf(&mut self) {
[INFO] [stderr]      |        ^^^
[INFO] [stderr] ...
[INFO] [stderr] 1167 |     fn scf(&mut self) {
[INFO] [stderr]      |        ^^^
[INFO] [stderr] ...
[INFO] [stderr] 1170 |     fn rra(&mut self) {
[INFO] [stderr]      |        ^^^
[INFO] [stderr] ...
[INFO] [stderr] 1182 |     fn rr(&mut self, value: u8) -> u8 {
[INFO] [stderr]      |        ^^
[INFO] [stderr] ...
[INFO] [stderr] 1195 |     fn rla(&mut self) {
[INFO] [stderr]      |        ^^^
[INFO] [stderr] ...
[INFO] [stderr] 1207 |     fn rl(&mut self, value: u8) -> u8 {
[INFO] [stderr]      |        ^^
[INFO] [stderr] ...
[INFO] [stderr] 1220 |     fn rrca(&mut self) {
[INFO] [stderr]      |        ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1229 |     fn rrc(&mut self, value: u8) -> u8 {
[INFO] [stderr]      |        ^^^
[INFO] [stderr] ...
[INFO] [stderr] 1239 |     fn rrla(&mut self) {
[INFO] [stderr]      |        ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1249 |     fn rlc(&mut self, value: u8) -> u8 {
[INFO] [stderr]      |        ^^^
[INFO] [stderr] ...
[INFO] [stderr] 1260 |     fn cpl(&mut self) {
[INFO] [stderr]      |        ^^^
[INFO] [stderr] ...
[INFO] [stderr] 1265 |     fn bit(&mut self, bit: u8, value: u8)  {
[INFO] [stderr]      |        ^^^
[INFO] [stderr] ...
[INFO] [stderr] 1272 |     fn reset(&mut self, bit: u8, value: u8) -> u8 {
[INFO] [stderr]      |        ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1275 |     fn set(&mut self, bit: u8, value: u8) -> u8 {
[INFO] [stderr]      |        ^^^
[INFO] [stderr] ...
[INFO] [stderr] 1278 |     fn srl(&mut self, values: u8) -> u8 {
[INFO] [stderr]      |        ^^^
[INFO] [stderr] ...
[INFO] [stderr] 1287 |     fn sra(&mut self, values: u8) -> u8 {
[INFO] [stderr]      |        ^^^
[INFO] [stderr] ...
[INFO] [stderr] 1298 |     fn sla(&mut self, values: u8) -> u8 {
[INFO] [stderr]      |        ^^^
[INFO] [stderr] ...
[INFO] [stderr] 1309 |     fn dec16(&mut self, values: u16) -> u16 {
[INFO] [stderr]      |        ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1312 |     fn inc16(&mut self, values: u16) -> u16 {
[INFO] [stderr]      |        ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1316 |     fn or(&mut self, value: u8) -> u8 {
[INFO] [stderr]      |        ^^
[INFO] [stderr] ...
[INFO] [stderr] 1324 |     fn xor(&mut self, value: u8) -> u8 {
[INFO] [stderr]      |        ^^^
[INFO] [stderr] ...
[INFO] [stderr] 1332 |     fn dec8(&mut self, value: u8) -> u8 {
[INFO] [stderr]      |        ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1340 |     fn inc8(&mut self, value: u8) -> u8 {
[INFO] [stderr]      |        ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1348 |     fn adc(&mut self, value: u8) -> u8 {
[INFO] [stderr]      |        ^^^
[INFO] [stderr] ...
[INFO] [stderr] 1360 |     fn sbc(&mut self, value: u8) -> u8 {
[INFO] [stderr]      |        ^^^
[INFO] [stderr] ...
[INFO] [stderr] 1370 |     fn sub(&mut self, value: u8) -> u8 {
[INFO] [stderr]      |        ^^^
[INFO] [stderr] ...
[INFO] [stderr] 1378 |     fn add(&mut self, value: u8) -> u8 {
[INFO] [stderr]      |        ^^^
[INFO] [stderr] ...
[INFO] [stderr] 1387 |     fn swap(&mut self, value: u8) -> u8 {
[INFO] [stderr]      |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]     --> src/cpu.rs:1423:8
[INFO] [stderr]      |
[INFO] [stderr] 1422 | impl Register {
[INFO] [stderr]      | ------------- methods in this implementation
[INFO] [stderr] 1423 |     fn get_hl(&self) -> u16 {
[INFO] [stderr]      |        ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1427 |     fn set_hl(&mut self, value: u16) {
[INFO] [stderr]      |        ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1431 |     fn get_bc(&self) -> u16 {
[INFO] [stderr]      |        ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1435 |     fn set_bc(&mut self, value: u16) {
[INFO] [stderr]      |        ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1439 |     fn get_de(&self) -> u16 {
[INFO] [stderr]      |        ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1443 |     fn set_de(&mut self, value: u16) {
[INFO] [stderr]      |        ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1447 |     fn get_af(&self) -> u16 {
[INFO] [stderr]      |        ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1451 |     fn set_af(&mut self, value: u16) {
[INFO] [stderr]      |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `VRAM_BEGIN` is never used
[INFO] [stderr]  --> src/bus.rs:4:11
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub const VRAM_BEGIN: usize = 0x8000;
[INFO] [stderr]   |           ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `VRAM_END` is never used
[INFO] [stderr]  --> src/bus.rs:5:11
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub const VRAM_END: usize = 0x9FFF;
[INFO] [stderr]   |           ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `VRAM_SIZE` is never used
[INFO] [stderr]  --> src/bus.rs:6:11
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub const VRAM_SIZE: usize = VRAM_END - VRAM_BEGIN + 1;
[INFO] [stderr]   |           ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WRAM_BEGIN` is never used
[INFO] [stderr]  --> src/bus.rs:8:11
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub const WRAM_BEGIN: usize = 0xC000;
[INFO] [stderr]   |           ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WRAM_END` is never used
[INFO] [stderr]  --> src/bus.rs:9:11
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub const WRAM_END: usize = 0xCFFF;
[INFO] [stderr]   |           ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WRAM_SIZE` is never used
[INFO] [stderr]   --> src/bus.rs:10:11
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub const WRAM_SIZE: usize = WRAM_END - WRAM_BEGIN + 1;
[INFO] [stderr]    |           ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SWITCH_BEGIN` is never used
[INFO] [stderr]   --> src/bus.rs:12:11
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub const SWITCH_BEGIN: usize = 0xA000;
[INFO] [stderr]    |           ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SWITCH_END` is never used
[INFO] [stderr]   --> src/bus.rs:13:11
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub const SWITCH_END: usize = 0xBFFF;
[INFO] [stderr]    |           ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SWITCH_SIZE` is never used
[INFO] [stderr]   --> src/bus.rs:14:11
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub const SWITCH_SIZE: usize = SWITCH_END - SWITCH_BEGIN + 1;
[INFO] [stderr]    |           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `OAM_BEGIN` is never used
[INFO] [stderr]   --> src/bus.rs:16:11
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub const OAM_BEGIN: usize = 0xFE00;
[INFO] [stderr]    |           ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `OAM_END` is never used
[INFO] [stderr]   --> src/bus.rs:17:11
[INFO] [stderr]    |
[INFO] [stderr] 17 | pub const OAM_END: usize = 0xFE9F;
[INFO] [stderr]    |           ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `OAM_SIZE` is never used
[INFO] [stderr]   --> src/bus.rs:18:11
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub const OAM_SIZE: usize = OAM_END - OAM_BEGIN + 1;
[INFO] [stderr]    |           ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `IO_BEGIN` is never used
[INFO] [stderr]   --> src/bus.rs:20:11
[INFO] [stderr]    |
[INFO] [stderr] 20 | pub const IO_BEGIN: usize = 0xFF00;
[INFO] [stderr]    |           ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `IO_END` is never used
[INFO] [stderr]   --> src/bus.rs:21:11
[INFO] [stderr]    |
[INFO] [stderr] 21 | pub const IO_END: usize = 0xFF7F;
[INFO] [stderr]    |           ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `IO_SIZE` is never used
[INFO] [stderr]   --> src/bus.rs:22:11
[INFO] [stderr]    |
[INFO] [stderr] 22 | pub const IO_SIZE: usize = IO_END - IO_BEGIN + 1;
[INFO] [stderr]    |           ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HRAM_BEGIN` is never used
[INFO] [stderr]   --> src/bus.rs:24:11
[INFO] [stderr]    |
[INFO] [stderr] 24 | pub const HRAM_BEGIN: usize = 0xFF80;
[INFO] [stderr]    |           ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HRAM_END` is never used
[INFO] [stderr]   --> src/bus.rs:25:11
[INFO] [stderr]    |
[INFO] [stderr] 25 | pub const HRAM_END: usize = 0xFFFE;
[INFO] [stderr]    |           ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HRAM_SIZE` is never used
[INFO] [stderr]   --> src/bus.rs:26:11
[INFO] [stderr]    |
[INFO] [stderr] 26 | pub const HRAM_SIZE: usize = HRAM_END - HRAM_BEGIN + 1; //test
[INFO] [stderr]    |           ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MemoryBus` is never constructed
[INFO] [stderr]   --> src/bus.rs:28:12
[INFO] [stderr]    |
[INFO] [stderr] 28 | pub struct MemoryBus {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `update`, `read_byte`, and `write_byte` are never used
[INFO] [stderr]   --> src/bus.rs:57:12
[INFO] [stderr]    |
[INFO] [stderr] 42 | impl MemoryBus {
[INFO] [stderr]    | -------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 57 |     pub fn update(&mut self, cycle: u8) {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 63 |     pub fn read_byte(&self, address: u16) -> u8 {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 78 |     pub fn write_byte(&mut self, address: u16, value: u8) {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `from_byte`, `from_byte_not_prefixed`, `from_byte_prefixed`, and `decode_prefix_target` are never used
[INFO] [stderr]    --> src/instruction.rs:2:12
[INFO] [stderr]     |
[INFO] [stderr]   1 | impl Instruction {
[INFO] [stderr]     | ---------------- associated functions in this implementation
[INFO] [stderr]   2 |     pub fn from_byte(byte: u8, prefix: bool) -> Option<Instruction> {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]   9 |     pub fn from_byte_not_prefixed(byte: u8) -> Option<Instruction> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 265 |     pub fn from_byte_prefixed(byte: u8) -> Option<Instruction> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 373 |     fn decode_prefix_target(code: u8) -> PrefixTarget {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Instruction` is never used
[INFO] [stderr]    --> src/instruction.rs:388:10
[INFO] [stderr]     |
[INFO] [stderr] 388 | pub enum Instruction {
[INFO] [stderr]     |          ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `StackTarget` is never used
[INFO] [stderr]    --> src/instruction.rs:429:10
[INFO] [stderr]     |
[INFO] [stderr] 429 | pub enum StackTarget {
[INFO] [stderr]     |          ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `ArithmeticTarget` is never used
[INFO] [stderr]    --> src/instruction.rs:436:10
[INFO] [stderr]     |
[INFO] [stderr] 436 | pub enum ArithmeticTarget {
[INFO] [stderr]     |          ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `PrefixTarget` is never used
[INFO] [stderr]    --> src/instruction.rs:448:10
[INFO] [stderr]     |
[INFO] [stderr] 448 | pub enum PrefixTarget {
[INFO] [stderr]     |          ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `IncTarget` is never used
[INFO] [stderr]    --> src/instruction.rs:458:10
[INFO] [stderr]     |
[INFO] [stderr] 458 | pub enum IncTarget {
[INFO] [stderr]     |          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `ADDHLTarget` is never used
[INFO] [stderr]    --> src/instruction.rs:471:10
[INFO] [stderr]     |
[INFO] [stderr] 471 | pub enum ADDHLTarget {
[INFO] [stderr]     |          ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `JumpTest` is never used
[INFO] [stderr]    --> src/instruction.rs:477:10
[INFO] [stderr]     |
[INFO] [stderr] 477 | pub enum JumpTest {
[INFO] [stderr]     |          ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `WordByteTarget` is never used
[INFO] [stderr]    --> src/instruction.rs:484:10
[INFO] [stderr]     |
[INFO] [stderr] 484 | pub enum WordByteTarget {
[INFO] [stderr]     |          ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `WordByteSource` is never used
[INFO] [stderr]    --> src/instruction.rs:488:10
[INFO] [stderr]     |
[INFO] [stderr] 488 | pub enum WordByteSource {
[INFO] [stderr]     |          ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `AFromIndirect` is never used
[INFO] [stderr]    --> src/instruction.rs:492:10
[INFO] [stderr]     |
[INFO] [stderr] 492 | pub enum AFromIndirect {
[INFO] [stderr]     |          ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `IndirectFromA` is never used
[INFO] [stderr]    --> src/instruction.rs:496:10
[INFO] [stderr]     |
[INFO] [stderr] 496 | pub enum IndirectFromA {
[INFO] [stderr]     |          ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `AFromByteAddress` is never used
[INFO] [stderr]    --> src/instruction.rs:499:10
[INFO] [stderr]     |
[INFO] [stderr] 499 | pub enum AFromByteAddress {
[INFO] [stderr]     |          ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `ByteAddressFromA` is never used
[INFO] [stderr]    --> src/instruction.rs:505:10
[INFO] [stderr]     |
[INFO] [stderr] 505 | pub enum ByteAddressFromA {
[INFO] [stderr]     |          ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `LoadByteTarget` is never used
[INFO] [stderr]    --> src/instruction.rs:511:10
[INFO] [stderr]     |
[INFO] [stderr] 511 | pub enum LoadByteTarget {
[INFO] [stderr]     |          ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `LoadByteSource` is never used
[INFO] [stderr]    --> src/instruction.rs:514:10
[INFO] [stderr]     |
[INFO] [stderr] 514 | pub enum LoadByteSource {
[INFO] [stderr]     |          ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `LoadType` is never used
[INFO] [stderr]    --> src/instruction.rs:517:10
[INFO] [stderr]     |
[INFO] [stderr] 517 | pub enum LoadType {
[INFO] [stderr]     |          ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Cartridge` is never constructed
[INFO] [stderr]  --> src/cartride.rs:1:12
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub struct Cartridge {
[INFO] [stderr]   |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `MbcType` is never used
[INFO] [stderr]   --> src/cartride.rs:13:10
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub enum MbcType {
[INFO] [stderr]    |          ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `load` is never used
[INFO] [stderr]   --> src/cartride.rs:22:12
[INFO] [stderr]    |
[INFO] [stderr] 21 | impl Cartridge {
[INFO] [stderr]    | -------------- method in this implementation
[INFO] [stderr] 22 |     pub fn load(&self, filename: &str) {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Frequency` is never used
[INFO] [stderr]  --> src/timer.rs:2:6
[INFO] [stderr]   |
[INFO] [stderr] 2 | enum Frequency {
[INFO] [stderr]   |      ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `find_cycle` is never used
[INFO] [stderr]  --> src/timer.rs:9:8
[INFO] [stderr]   |
[INFO] [stderr] 8 | impl Frequency {
[INFO] [stderr]   | -------------- method in this implementation
[INFO] [stderr] 9 |     fn find_cycle(&self) -> usize {
[INFO] [stderr]   |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Timer` is never constructed
[INFO] [stderr]   --> src/timer.rs:18:12
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub struct Timer {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `update` are never used
[INFO] [stderr]   --> src/timer.rs:27:12
[INFO] [stderr]    |
[INFO] [stderr] 25 | impl Timer {
[INFO] [stderr]    | ---------- associated items in this implementation
[INFO] [stderr] 26 |
[INFO] [stderr] 27 |     pub fn new(frequency: Frequency) -> Timer {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 36 |     pub fn update(&mut self, cycles: u8) -> bool {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `gb_emu` (bin "gb_emu" test) generated 66 warnings (run `cargo fix --bin "gb_emu" -p gb_emu --tests` to apply 15 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.65s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/gb_emu-62a41333adeec76f)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "505d966716cad36d58cda117f9d613fa2863c10cb26aecdd61ae27d3ff26717b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "505d966716cad36d58cda117f9d613fa2863c10cb26aecdd61ae27d3ff26717b", kill_on_drop: false }`
[INFO] [stdout] 505d966716cad36d58cda117f9d613fa2863c10cb26aecdd61ae27d3ff26717b
