[INFO] cloning repository https://github.com/kjl56/gbemu
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/kjl56/gbemu" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkjl56%2Fgbemu", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkjl56%2Fgbemu'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 1964fe6a7feb5bd68edbf99f3ac3cbdcf1353e67
[INFO] testing kjl56/gbemu against try#33835004928d3bf65db4d4712e1330766263b0bd for pr-155739-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkjl56%2Fgbemu" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/kjl56/gbemu
[INFO] finished tweaking git repo https://github.com/kjl56/gbemu
[INFO] tweaked toml for git repo https://github.com/kjl56/gbemu written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/kjl56/gbemu on toolchain 33835004928d3bf65db4d4712e1330766263b0bd
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/kjl56/gbemu 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" "+33835004928d3bf65db4d4712e1330766263b0bd" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] b2ec11d6667ddf0555ce1ecdf4bd3d9e749e81225d9ae8332439a08e49662cbb
[INFO] running `Command { std: "docker" "start" "-a" "b2ec11d6667ddf0555ce1ecdf4bd3d9e749e81225d9ae8332439a08e49662cbb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b2ec11d6667ddf0555ce1ecdf4bd3d9e749e81225d9ae8332439a08e49662cbb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b2ec11d6667ddf0555ce1ecdf4bd3d9e749e81225d9ae8332439a08e49662cbb", kill_on_drop: false }`
[INFO] [stdout] b2ec11d6667ddf0555ce1ecdf4bd3d9e749e81225d9ae8332439a08e49662cbb
[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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b43908c4ec78c8a567c56233b7fb3156fa6ec1a48810530be050e454457f0c75
[INFO] running `Command { std: "docker" "start" "-a" "b43908c4ec78c8a567c56233b7fb3156fa6ec1a48810530be050e454457f0c75", kill_on_drop: false }`
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]    Compiling version-compare v0.1.1
[INFO] [stderr]    Compiling libc v0.2.159
[INFO] [stderr]    Compiling sdl2 v0.37.0
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]    Compiling sdl2-sys v0.37.0
[INFO] [stderr]    Compiling gbemu v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]   --> src/cpu/cpu.rs:89:64
[INFO] [stdout]    |
[INFO] [stdout] 89 |         VBlank => {self.pc = 0x40; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1))},
[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] 89 -         VBlank => {self.pc = 0x40; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1))},
[INFO] [stdout] 89 +         VBlank => {self.pc = 0x40; self.bus.write_byte(0xFF0F, self.bus.read_byte(0xFF0F) - 0b1)},
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]   --> src/cpu/cpu.rs:90:61
[INFO] [stdout]    |
[INFO] [stdout] 90 |         LCD => {self.pc = 0x48; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b10))},
[INFO] [stdout]    |                                                             ^                                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 90 -         LCD => {self.pc = 0x48; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b10))},
[INFO] [stdout] 90 +         LCD => {self.pc = 0x48; self.bus.write_byte(0xFF0F, self.bus.read_byte(0xFF0F) - 0b10)},
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]   --> src/cpu/cpu.rs:91:63
[INFO] [stdout]    |
[INFO] [stdout] 91 |         Timer => {self.pc = 0x50; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b100))},
[INFO] [stdout]    |                                                               ^                                  ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 91 -         Timer => {self.pc = 0x50; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b100))},
[INFO] [stdout] 91 +         Timer => {self.pc = 0x50; self.bus.write_byte(0xFF0F, self.bus.read_byte(0xFF0F) - 0b100)},
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]   --> src/cpu/cpu.rs:92:64
[INFO] [stdout]    |
[INFO] [stdout] 92 |         Serial => {self.pc = 0x58; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1000))},
[INFO] [stdout]    |                                                                ^                                   ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 92 -         Serial => {self.pc = 0x58; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1000))},
[INFO] [stdout] 92 +         Serial => {self.pc = 0x58; self.bus.write_byte(0xFF0F, self.bus.read_byte(0xFF0F) - 0b1000)},
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]   --> src/cpu/cpu.rs:93:64
[INFO] [stdout]    |
[INFO] [stdout] 93 |         Joypad => {self.pc = 0x60; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b10000))},
[INFO] [stdout]    |                                                                ^                                    ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 93 -         Joypad => {self.pc = 0x60; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b10000))},
[INFO] [stdout] 93 +         Joypad => {self.pc = 0x60; self.bus.write_byte(0xFF0F, self.bus.read_byte(0xFF0F) - 0b10000)},
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu/cpu.rs:633:25
[INFO] [stdout]     |
[INFO] [stdout] 633 |           flags.carry = ((0b1 & (*register >> 7)) != 0);
[INFO] [stdout]     |                         ^                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 633 -           flags.carry = ((0b1 & (*register >> 7)) != 0);
[INFO] [stdout] 633 +           flags.carry = (0b1 & (*register >> 7)) != 0;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu/cpu.rs:635:24
[INFO] [stdout]     |
[INFO] [stdout] 635 |           flags.zero = (*register == 0);
[INFO] [stdout]     |                        ^              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 635 -           flags.zero = (*register == 0);
[INFO] [stdout] 635 +           flags.zero = *register == 0;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu/cpu.rs:653:25
[INFO] [stdout]     |
[INFO] [stdout] 653 |           flags.carry = ((0b1 & *register) != 0);
[INFO] [stdout]     |                         ^                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 653 -           flags.carry = ((0b1 & *register) != 0);
[INFO] [stdout] 653 +           flags.carry = (0b1 & *register) != 0;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu/cpu.rs:654:20
[INFO] [stdout]     |
[INFO] [stdout] 654 |           let b7 = (0b1 & (*register >> 7));
[INFO] [stdout]     |                    ^                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 654 -           let b7 = (0b1 & (*register >> 7));
[INFO] [stdout] 654 +           let b7 = 0b1 & (*register >> 7);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/cpu/cpu.rs:656:14
[INFO] [stdout]     |
[INFO] [stdout] 656 |           if (b7 != 0) {*register += 0b10000000;}
[INFO] [stdout]     |              ^       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 656 -           if (b7 != 0) {*register += 0b10000000;}
[INFO] [stdout] 656 +           if b7 != 0 {*register += 0b10000000;}
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu/cpu.rs:657:24
[INFO] [stdout]     |
[INFO] [stdout] 657 |           flags.zero = (*register == 0);
[INFO] [stdout]     |                        ^              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 657 -           flags.zero = (*register == 0);
[INFO] [stdout] 657 +           flags.zero = *register == 0;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu/cpu.rs:675:25
[INFO] [stdout]     |
[INFO] [stdout] 675 |           flags.carry = ((0b1 & *register) != 0);
[INFO] [stdout]     |                         ^                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 675 -           flags.carry = ((0b1 & *register) != 0);
[INFO] [stdout] 675 +           flags.carry = (0b1 & *register) != 0;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu/cpu.rs:677:24
[INFO] [stdout]     |
[INFO] [stdout] 677 |           flags.zero = (*register == 0);
[INFO] [stdout]     |                        ^              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 677 -           flags.zero = (*register == 0);
[INFO] [stdout] 677 +           flags.zero = *register == 0;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu/cpu.rs:750:24
[INFO] [stdout]     |
[INFO] [stdout] 750 |           flags.zero = ( 0 == match testbit {
[INFO] [stdout]     |                        ^^
[INFO] [stdout] ...
[INFO] [stdout] 759 |           } );
[INFO] [stdout]     |            ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 750 ~           flags.zero = 0 == match testbit {
[INFO] [stdout] 751 |             TestBit::Zero => 0b1 & *register,
[INFO] [stdout] ...
[INFO] [stdout] 758 |             TestBit::Seven => 0b1 & (*register >> 7),
[INFO] [stdout] 759 ~           };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu/cpu.rs:907:30
[INFO] [stdout]     |
[INFO] [stdout] 907 |     self.registers.f.carry = (did_overflow | did_overflow2);
[INFO] [stdout]     |                              ^                            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 907 -     self.registers.f.carry = (did_overflow | did_overflow2);
[INFO] [stdout] 907 +     self.registers.f.carry = did_overflow | did_overflow2;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu/cpu.rs:934:30
[INFO] [stdout]     |
[INFO] [stdout] 934 |     self.registers.f.carry = (did_overflow | did_overflow2);
[INFO] [stdout]     |                              ^                            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 934 -     self.registers.f.carry = (did_overflow | did_overflow2);
[INFO] [stdout] 934 +     self.registers.f.carry = did_overflow | did_overflow2;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu/cpu.rs:939:14
[INFO] [stdout]     |
[INFO] [stdout] 939 |     let b7 = (0b1 & (*register >> 7));
[INFO] [stdout]     |              ^                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 939 -     let b7 = (0b1 & (*register >> 7));
[INFO] [stdout] 939 +     let b7 = 0b1 & (*register >> 7);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu/cpu.rs:941:19
[INFO] [stdout]     |
[INFO] [stdout] 941 |     flags.carry = (b7 != 0);
[INFO] [stdout]     |                   ^       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 941 -     flags.carry = (b7 != 0);
[INFO] [stdout] 941 +     flags.carry = b7 != 0;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu/cpu.rs:950:14
[INFO] [stdout]     |
[INFO] [stdout] 950 |     let b0 = (0b1 & *register);
[INFO] [stdout]     |              ^               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 950 -     let b0 = (0b1 & *register);
[INFO] [stdout] 950 +     let b0 = 0b1 & *register;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu/cpu.rs:952:19
[INFO] [stdout]     |
[INFO] [stdout] 952 |     flags.carry = (b0 != 0);
[INFO] [stdout]     |                   ^       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 952 -     flags.carry = (b0 != 0);
[INFO] [stdout] 952 +     flags.carry = b0 != 0;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/cpu/cpu.rs:954:8
[INFO] [stdout]     |
[INFO] [stdout] 954 |     if (b7 != 0) {*register += 0b10000000}
[INFO] [stdout]     |        ^       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 954 -     if (b7 != 0) {*register += 0b10000000}
[INFO] [stdout] 954 +     if b7 != 0 {*register += 0b10000000}
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu/cpu.rs:955:18
[INFO] [stdout]     |
[INFO] [stdout] 955 |     flags.zero = (*register == 0);
[INFO] [stdout]     |                  ^              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 955 -     flags.zero = (*register == 0);
[INFO] [stdout] 955 +     flags.zero = *register == 0;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::rect::Rect`
[INFO] [stdout]  --> src/gpu/gpu.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use sdl2::rect::Rect;
[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: `sdl2::render::Canvas`
[INFO] [stdout]  --> src/gpu/gpu.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use sdl2::render::Canvas;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/gpu/gpu.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout] 212 |         if ((self.LY >= objectTop) & (self.LY < objectBottom)) {
[INFO] [stdout]     |            ^                                                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 212 -         if ((self.LY >= objectTop) & (self.LY < objectBottom)) {
[INFO] [stdout] 212 +         if (self.LY >= objectTop) & (self.LY < objectBottom) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/gpu/gpu.rs:359:30
[INFO] [stdout]     |
[INFO] [stdout] 359 |     let mapstart: usize = if (self.LCDC.three) {0x9C00 - VRAM_BEGIN} else {0x9800 - VRAM_BEGIN};
[INFO] [stdout]     |                              ^               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 359 -     let mapstart: usize = if (self.LCDC.three) {0x9C00 - VRAM_BEGIN} else {0x9800 - VRAM_BEGIN};
[INFO] [stdout] 359 +     let mapstart: usize = if self.LCDC.three {0x9C00 - VRAM_BEGIN} else {0x9800 - VRAM_BEGIN};
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::pixels::Color`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use sdl2::pixels::Color;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::rect::Point`
[INFO] [stdout]   --> src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use sdl2::rect::Point;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]   --> src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::time::Duration;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/cpu/cpu.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 89 |         VBlank => {self.pc = 0x40; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1))},
[INFO] [stdout]    |         ------ matches any value
[INFO] [stdout] 90 |         LCD => {self.pc = 0x48; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b10))},
[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: unreachable pattern
[INFO] [stdout]   --> src/cpu/cpu.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 89 |         VBlank => {self.pc = 0x40; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1))},
[INFO] [stdout]    |         ------ matches any value
[INFO] [stdout] 90 |         LCD => {self.pc = 0x48; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b10))},
[INFO] [stdout] 91 |         Timer => {self.pc = 0x50; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b100))},
[INFO] [stdout]    |         ^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/cpu/cpu.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 89 |         VBlank => {self.pc = 0x40; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1))},
[INFO] [stdout]    |         ------ matches any value
[INFO] [stdout] ...
[INFO] [stdout] 92 |         Serial => {self.pc = 0x58; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1000))},
[INFO] [stdout]    |         ^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/cpu/cpu.rs:93:9
[INFO] [stdout]    |
[INFO] [stdout] 89 |         VBlank => {self.pc = 0x40; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1))},
[INFO] [stdout]    |         ------ matches any value
[INFO] [stdout] ...
[INFO] [stdout] 93 |         Joypad => {self.pc = 0x60; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b10000))},
[INFO] [stdout]    |         ^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `VBlank`
[INFO] [stdout]   --> src/cpu/cpu.rs:89:9
[INFO] [stdout]    |
[INFO] [stdout] 89 |         VBlank => {self.pc = 0x40; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1))},
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_VBlank`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `LCD`
[INFO] [stdout]   --> src/cpu/cpu.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 90 |         LCD => {self.pc = 0x48; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b10))},
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_LCD`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Timer`
[INFO] [stdout]   --> src/cpu/cpu.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 91 |         Timer => {self.pc = 0x50; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b100))},
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_Timer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Serial`
[INFO] [stdout]   --> src/cpu/cpu.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |         Serial => {self.pc = 0x58; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1000))},
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_Serial`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Joypad`
[INFO] [stdout]   --> src/cpu/cpu.rs:93:9
[INFO] [stdout]    |
[INFO] [stdout] 93 |         Joypad => {self.pc = 0x60; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b10000))},
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_Joypad`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/cpu/cpu.rs:885:7
[INFO] [stdout]     |
[INFO] [stdout] 885 |       _ => { panic!("todo: Instruction: {:?} not yet implemented", instruction) }
[INFO] [stdout]     |       ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/cpu/cpu.rs:885:7
[INFO] [stdout]     |
[INFO] [stdout] 138 |       Instruction::ADD(target, source) => {
[INFO] [stdout]     |       -------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 177 |       Instruction::ADC(target, source) => {
[INFO] [stdout]     |       -------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 191 |       Instruction::SUB(target, source) => {
[INFO] [stdout]     |       -------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 205 |       Instruction::SBC(target, source) => {
[INFO] [stdout]     |       -------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 885 |       _ => { panic!("todo: Instruction: {:?} not yet implemented", instruction) }
[INFO] [stdout]     |       ^ ...and 40 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]    --> src/cpu/cpu.rs:167:29
[INFO] [stdout]     |
[INFO] [stdout] 167 |             let (new_value, did_overflow) = self.sp.overflowing_add_signed(value);
[INFO] [stdout]     |                             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> src/cpu/cpu.rs:177:24
[INFO] [stdout]     |
[INFO] [stdout] 177 |       Instruction::ADC(target, source) => {
[INFO] [stdout]     |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> src/cpu/cpu.rs:191:24
[INFO] [stdout]     |
[INFO] [stdout] 191 |       Instruction::SUB(target, source) => {
[INFO] [stdout]     |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> src/cpu/cpu.rs:205:24
[INFO] [stdout]     |
[INFO] [stdout] 205 |       Instruction::SBC(target, source) => {
[INFO] [stdout]     |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> src/cpu/cpu.rs:219:24
[INFO] [stdout]     |
[INFO] [stdout] 219 |       Instruction::AND(target, source) => {
[INFO] [stdout]     |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> src/cpu/cpu.rs:250:24
[INFO] [stdout]     |
[INFO] [stdout] 250 |       Instruction::XOR(target, source) => {
[INFO] [stdout]     |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> src/cpu/cpu.rs:281:23
[INFO] [stdout]     |
[INFO] [stdout] 281 |       Instruction::OR(target, source) => {
[INFO] [stdout]     |                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> src/cpu/cpu.rs:312:23
[INFO] [stdout]     |
[INFO] [stdout] 312 |       Instruction::CP(target, source) => {
[INFO] [stdout]     |                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/cpu/cpu.rs:314:39
[INFO] [stdout]     |
[INFO] [stdout] 314 |           ArithmeticSource::A => {let val = self.subtract(self.registers.a); self.pc.wrapping_add(1)},
[INFO] [stdout]     |                                       ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/cpu/cpu.rs:315:39
[INFO] [stdout]     |
[INFO] [stdout] 315 |           ArithmeticSource::B => {let val = self.subtract(self.registers.b); self.pc.wrapping_add(1)},
[INFO] [stdout]     |                                       ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/cpu/cpu.rs:316:39
[INFO] [stdout]     |
[INFO] [stdout] 316 |           ArithmeticSource::C => {let val = self.subtract(self.registers.c); self.pc.wrapping_add(1)},
[INFO] [stdout]     |                                       ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/cpu/cpu.rs:317:39
[INFO] [stdout]     |
[INFO] [stdout] 317 |           ArithmeticSource::D => {let val = self.subtract(self.registers.d); self.pc.wrapping_add(1)},
[INFO] [stdout]     |                                       ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/cpu/cpu.rs:318:39
[INFO] [stdout]     |
[INFO] [stdout] 318 |           ArithmeticSource::E => {let val = self.subtract(self.registers.e); self.pc.wrapping_add(1)},
[INFO] [stdout]     |                                       ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/cpu/cpu.rs:319:39
[INFO] [stdout]     |
[INFO] [stdout] 319 |           ArithmeticSource::H => {let val = self.subtract(self.registers.h); self.pc.wrapping_add(1)},
[INFO] [stdout]     |                                       ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/cpu/cpu.rs:320:39
[INFO] [stdout]     |
[INFO] [stdout] 320 |           ArithmeticSource::L => {let val = self.subtract(self.registers.l); self.pc.wrapping_add(1)},
[INFO] [stdout]     |                                       ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/cpu/cpu.rs:321:40
[INFO] [stdout]     |
[INFO] [stdout] 321 |           ArithmeticSource::HL => {let val = self.subtract(self.bus.read_byte(self.registers.get_hl())); self.pc.wrapping_add(1)},
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/cpu/cpu.rs:322:40
[INFO] [stdout]     |
[INFO] [stdout] 322 |           ArithmeticSource::D8 => {let val = self.subtract(self.read_next_byte()); self.pc.wrapping_add(2)},
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> src/cpu/cpu.rs:344:29
[INFO] [stdout]     |
[INFO] [stdout] 344 |       Instruction::JR(test, target) => {
[INFO] [stdout]     |                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `source`
[INFO] [stdout]    --> src/cpu/cpu.rs:482:34
[INFO] [stdout]     |
[INFO] [stdout] 482 |           LoadType::Byte(target, source) => {
[INFO] [stdout]     |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_source`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> src/cpu/cpu.rs:825:31
[INFO] [stdout]     |
[INFO] [stdout] 825 |       Instruction::CALL(test, target) => {
[INFO] [stdout]     |                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/cpu/instructions.rs:385:7
[INFO] [stdout]     |
[INFO] [stdout] 385 |       _ => /*todo: add mapping for rest of instructions*/ 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/cpu/instructions.rs:385:7
[INFO] [stdout]     |
[INFO] [stdout] 129 |       0x00 => Some(Instruction::RLC(RotateTarget::B)),
[INFO] [stdout]     |       ---- matches some of the same values
[INFO] [stdout] 130 |       0x01 => Some(Instruction::RLC(RotateTarget::C)),
[INFO] [stdout]     |       ---- matches some of the same values
[INFO] [stdout] 131 |       0x02 => Some(Instruction::RLC(RotateTarget::D)),
[INFO] [stdout]     |       ---- matches some of the same values
[INFO] [stdout] 132 |       0x03 => Some(Instruction::RLC(RotateTarget::E)),
[INFO] [stdout]     |       ---- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 385 |       _ => /*todo: add mapping for rest of instructions*/ None
[INFO] [stdout]     |       ^ ...and 252 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/gpu/gpu.rs:469:9
[INFO] [stdout]     |
[INFO] [stdout] 469 |     let result = self.canvas.with_texture_canvas(&mut texture, |texture_canvas| {
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mcycles`
[INFO] [stdout]   --> src/main.rs:65:11
[INFO] [stdout]    |
[INFO] [stdout] 65 |       for mcycles in 0..17556 {
[INFO] [stdout]    |           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mcycles`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VRAM_SIZE` is never used
[INFO] [stdout]   --> src/memory/membus.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const VRAM_SIZE: usize = VRAM_END - VRAM_BEGIN + 1;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Three` is never constructed
[INFO] [stdout]   --> src/gpu/gpu.rs:46:3
[INFO] [stdout]    |
[INFO] [stdout] 42 | enum PPUMode {
[INFO] [stdout]    |      ------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 46 |   Three,
[INFO] [stdout]    |   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `None` is never constructed
[INFO] [stdout]   --> src/gpu/gpu.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 50 | enum TilePixelValue {
[INFO] [stdout]    |      -------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 55 |     None,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TilePixelValue` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `empty_tile` is never used
[INFO] [stdout]   --> src/gpu/gpu.rs:62:4
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn empty_tile() -> Tile {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `color`, `palette`, `sprite_priority`, and `background_priority` are never read
[INFO] [stdout]   --> src/gpu/gpu.rs:88:3
[INFO] [stdout]    |
[INFO] [stdout] 87 | struct FIFOPixel {
[INFO] [stdout]    |        --------- fields in this struct
[INFO] [stdout] 88 |   color: TilePixelValue,
[INFO] [stdout]    |   ^^^^^
[INFO] [stdout] 89 |   palette: u8,
[INFO] [stdout]    |   ^^^^^^^
[INFO] [stdout] 90 |   sprite_priority: u8,
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^
[INFO] [stdout] 91 |   background_priority: bool,
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `STAT` is never constructed
[INFO] [stdout]    --> src/gpu/gpu.rs:141:8
[INFO] [stdout]     |
[INFO] [stdout] 141 | struct STAT { //LCD STATus, io register 0xFF41
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `background_FIFO`, `object_FIFO`, and `i` are never read
[INFO] [stdout]    --> src/gpu/gpu.rs:161:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub struct GPU<'a>{
[INFO] [stdout]     |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 161 |     background_FIFO: VecDeque<FIFOPixel>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 162 |     object_FIFO: VecDeque<FIFOPixel>,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 163 |     i: u8,
[INFO] [stdout]     |     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/cpu/cpu.rs:31:25
[INFO] [stdout]    |
[INFO] [stdout] 31 |   pub fn new(sdlcanvas: &mut sdl2::render::WindowCanvas) -> CPU {
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^     ^^^ the same lifetime is hidden here
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 31 |   pub fn new(sdlcanvas: &mut sdl2::render::WindowCanvas) -> CPU<'_> {
[INFO] [stdout]    |                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/cpu/cpu.rs:77:7
[INFO] [stdout]    |
[INFO] [stdout] 77 |       writeln!(self.logfile, "{}", cpustate);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 77 |       let _ = writeln!(self.logfile, "{}", cpustate);
[INFO] [stdout]    |       +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `VBlank` should have a snake case name
[INFO] [stdout]   --> src/cpu/cpu.rs:89:9
[INFO] [stdout]    |
[INFO] [stdout] 89 |         VBlank => {self.pc = 0x40; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1))},
[INFO] [stdout]    |         ^^^^^^ help: convert the identifier to snake case: `vblank`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `LCD` should have a snake case name
[INFO] [stdout]   --> src/cpu/cpu.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 90 |         LCD => {self.pc = 0x48; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b10))},
[INFO] [stdout]    |         ^^^ help: convert the identifier to snake case: `lcd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Timer` should have a snake case name
[INFO] [stdout]   --> src/cpu/cpu.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 91 |         Timer => {self.pc = 0x50; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b100))},
[INFO] [stdout]    |         ^^^^^ help: convert the identifier to snake case: `timer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Serial` should have a snake case name
[INFO] [stdout]   --> src/cpu/cpu.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |         Serial => {self.pc = 0x58; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1000))},
[INFO] [stdout]    |         ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `serial`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Joypad` should have a snake case name
[INFO] [stdout]   --> src/cpu/cpu.rs:93:9
[INFO] [stdout]    |
[INFO] [stdout] 93 |         Joypad => {self.pc = 0x60; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b10000))},
[INFO] [stdout]    |         ^^^^^^ help: convert the identifier to snake case: `joypad`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/memory/membus.rs:37:25
[INFO] [stdout]    |
[INFO] [stdout] 37 |   pub fn new(sdlcanvas: &mut sdl2::render::WindowCanvas) -> MemoryBus {
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 37 |   pub fn new(sdlcanvas: &mut sdl2::render::WindowCanvas) -> MemoryBus<'_> {
[INFO] [stdout]    |                                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `LCDC` should have a snake case name
[INFO] [stdout]    --> src/gpu/gpu.rs:151:9
[INFO] [stdout]     |
[INFO] [stdout] 151 |     pub LCDC: LCDC, //io register 0xFF40
[INFO] [stdout]     |         ^^^^ help: convert the identifier to snake case: `lcdc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `SCY` should have a snake case name
[INFO] [stdout]    --> src/gpu/gpu.rs:152:9
[INFO] [stdout]     |
[INFO] [stdout] 152 |     pub SCY: u8, //background viewport y position, io register 0xFF42
[INFO] [stdout]     |         ^^^ help: convert the identifier to snake case (notice the capitalization): `scy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `SCX` should have a snake case name
[INFO] [stdout]    --> src/gpu/gpu.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |     pub SCX: u8, //background viewport x position, io register 0xFF43
[INFO] [stdout]     |         ^^^ help: convert the identifier to snake case (notice the capitalization): `scx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `LY` should have a snake case name
[INFO] [stdout]    --> src/gpu/gpu.rs:154:9
[INFO] [stdout]     |
[INFO] [stdout] 154 |     pub LY: u8,  //LCD Y coordinate, io register 0xFF44 (read-only for cpu)
[INFO] [stdout]     |         ^^ help: convert the identifier to snake case: `ly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `LYC` should have a snake case name
[INFO] [stdout]    --> src/gpu/gpu.rs:155:9
[INFO] [stdout]     |
[INFO] [stdout] 155 |     pub LYC: u8, //LY Compare, io register 0xFF45, constantly compared to LY, when equal sets related flag in STAT and (if enabled)...
[INFO] [stdout]     |         ^^^ help: convert the identifier to snake case: `lyc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `LX` should have a snake case name
[INFO] [stdout]    --> src/gpu/gpu.rs:156:5
[INFO] [stdout]     |
[INFO] [stdout] 156 |     LX : u8,
[INFO] [stdout]     |     ^^ help: convert the identifier to snake case: `lx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `WY` should have a snake case name
[INFO] [stdout]    --> src/gpu/gpu.rs:157:9
[INFO] [stdout]     |
[INFO] [stdout] 157 |     pub WY: u8, //window Y coordinate, io register 0xFF4A
[INFO] [stdout]     |         ^^ help: convert the identifier to snake case (notice the capitalization): `wy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `WX` should have a snake case name
[INFO] [stdout]    --> src/gpu/gpu.rs:158:9
[INFO] [stdout]     |
[INFO] [stdout] 158 |     pub WX: u8, //window X coordinate + 7, io register 0xFF4B
[INFO] [stdout]     |         ^^ help: convert the identifier to snake case (notice the capitalization): `wx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `background_FIFO` should have a snake case name
[INFO] [stdout]    --> src/gpu/gpu.rs:161:5
[INFO] [stdout]     |
[INFO] [stdout] 161 |     background_FIFO: VecDeque<FIFOPixel>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `background_fifo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `object_FIFO` should have a snake case name
[INFO] [stdout]    --> src/gpu/gpu.rs:162:5
[INFO] [stdout]     |
[INFO] [stdout] 162 |     object_FIFO: VecDeque<FIFOPixel>,
[INFO] [stdout]     |     ^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `object_fifo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/gpu/gpu.rs:167:25
[INFO] [stdout]     |
[INFO] [stdout] 167 |   pub fn new(sdlcanvas: &mut sdl2::render::WindowCanvas) -> GPU {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^     ^^^ the same lifetime is hidden here
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 167 |   pub fn new(sdlcanvas: &mut sdl2::render::WindowCanvas) -> GPU<'_> {
[INFO] [stdout]     |                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `objectTop` should have a snake case name
[INFO] [stdout]    --> src/gpu/gpu.rs:210:13
[INFO] [stdout]     |
[INFO] [stdout] 210 |         let objectTop = object.ycoord;
[INFO] [stdout]     |             ^^^^^^^^^ help: convert the identifier to snake case: `object_top`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `objectBottom` should have a snake case name
[INFO] [stdout]    --> src/gpu/gpu.rs:211:13
[INFO] [stdout]     |
[INFO] [stdout] 211 |         let objectBottom = object.ycoord + (if self.LCDC.two {16} else {8});
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: convert the identifier to snake case: `object_bottom`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/gpu/gpu.rs:475:11
[INFO] [stdout]     |
[INFO] [stdout] 475 |           texture_canvas.draw_point(Point::new(lx.into(),ly.into()));
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 475 |           let _ = texture_canvas.draw_point(Point::new(lx.into(),ly.into()));
[INFO] [stdout]     |           +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/gpu/gpu.rs:481:5
[INFO] [stdout]     |
[INFO] [stdout] 481 |     self.canvas.copy(&texture, None, None);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 481 |     let _ = self.canvas.copy(&texture, None, None);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `setIndex` should have a snake case name
[INFO] [stdout]    --> src/gpu/gpu.rs:560:9
[INFO] [stdout]     |
[INFO] [stdout] 560 |     let setIndex = index / 4;
[INFO] [stdout]     |         ^^^^^^^^ help: convert the identifier to snake case: `set_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.96s
[INFO] running `Command { std: "docker" "inspect" "b43908c4ec78c8a567c56233b7fb3156fa6ec1a48810530be050e454457f0c75", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b43908c4ec78c8a567c56233b7fb3156fa6ec1a48810530be050e454457f0c75", kill_on_drop: false }`
[INFO] [stdout] b43908c4ec78c8a567c56233b7fb3156fa6ec1a48810530be050e454457f0c75
[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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b958dbf0a7b057ee8d284c705f2a8e78987a171c4a2189aa818b825720120aed
[INFO] running `Command { std: "docker" "start" "-a" "b958dbf0a7b057ee8d284c705f2a8e78987a171c4a2189aa818b825720120aed", kill_on_drop: false }`
[INFO] [stderr]    Compiling gbemu v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]   --> src/cpu/cpu.rs:89:64
[INFO] [stdout]    |
[INFO] [stdout] 89 |         VBlank => {self.pc = 0x40; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1))},
[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] 89 -         VBlank => {self.pc = 0x40; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1))},
[INFO] [stdout] 89 +         VBlank => {self.pc = 0x40; self.bus.write_byte(0xFF0F, self.bus.read_byte(0xFF0F) - 0b1)},
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]   --> src/cpu/cpu.rs:90:61
[INFO] [stdout]    |
[INFO] [stdout] 90 |         LCD => {self.pc = 0x48; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b10))},
[INFO] [stdout]    |                                                             ^                                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 90 -         LCD => {self.pc = 0x48; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b10))},
[INFO] [stdout] 90 +         LCD => {self.pc = 0x48; self.bus.write_byte(0xFF0F, self.bus.read_byte(0xFF0F) - 0b10)},
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]   --> src/cpu/cpu.rs:91:63
[INFO] [stdout]    |
[INFO] [stdout] 91 |         Timer => {self.pc = 0x50; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b100))},
[INFO] [stdout]    |                                                               ^                                  ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 91 -         Timer => {self.pc = 0x50; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b100))},
[INFO] [stdout] 91 +         Timer => {self.pc = 0x50; self.bus.write_byte(0xFF0F, self.bus.read_byte(0xFF0F) - 0b100)},
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]   --> src/cpu/cpu.rs:92:64
[INFO] [stdout]    |
[INFO] [stdout] 92 |         Serial => {self.pc = 0x58; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1000))},
[INFO] [stdout]    |                                                                ^                                   ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 92 -         Serial => {self.pc = 0x58; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1000))},
[INFO] [stdout] 92 +         Serial => {self.pc = 0x58; self.bus.write_byte(0xFF0F, self.bus.read_byte(0xFF0F) - 0b1000)},
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]   --> src/cpu/cpu.rs:93:64
[INFO] [stdout]    |
[INFO] [stdout] 93 |         Joypad => {self.pc = 0x60; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b10000))},
[INFO] [stdout]    |                                                                ^                                    ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 93 -         Joypad => {self.pc = 0x60; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b10000))},
[INFO] [stdout] 93 +         Joypad => {self.pc = 0x60; self.bus.write_byte(0xFF0F, self.bus.read_byte(0xFF0F) - 0b10000)},
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu/cpu.rs:633:25
[INFO] [stdout]     |
[INFO] [stdout] 633 |           flags.carry = ((0b1 & (*register >> 7)) != 0);
[INFO] [stdout]     |                         ^                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 633 -           flags.carry = ((0b1 & (*register >> 7)) != 0);
[INFO] [stdout] 633 +           flags.carry = (0b1 & (*register >> 7)) != 0;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu/cpu.rs:635:24
[INFO] [stdout]     |
[INFO] [stdout] 635 |           flags.zero = (*register == 0);
[INFO] [stdout]     |                        ^              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 635 -           flags.zero = (*register == 0);
[INFO] [stdout] 635 +           flags.zero = *register == 0;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu/cpu.rs:653:25
[INFO] [stdout]     |
[INFO] [stdout] 653 |           flags.carry = ((0b1 & *register) != 0);
[INFO] [stdout]     |                         ^                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 653 -           flags.carry = ((0b1 & *register) != 0);
[INFO] [stdout] 653 +           flags.carry = (0b1 & *register) != 0;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu/cpu.rs:654:20
[INFO] [stdout]     |
[INFO] [stdout] 654 |           let b7 = (0b1 & (*register >> 7));
[INFO] [stdout]     |                    ^                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 654 -           let b7 = (0b1 & (*register >> 7));
[INFO] [stdout] 654 +           let b7 = 0b1 & (*register >> 7);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/cpu/cpu.rs:656:14
[INFO] [stdout]     |
[INFO] [stdout] 656 |           if (b7 != 0) {*register += 0b10000000;}
[INFO] [stdout]     |              ^       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 656 -           if (b7 != 0) {*register += 0b10000000;}
[INFO] [stdout] 656 +           if b7 != 0 {*register += 0b10000000;}
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu/cpu.rs:657:24
[INFO] [stdout]     |
[INFO] [stdout] 657 |           flags.zero = (*register == 0);
[INFO] [stdout]     |                        ^              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 657 -           flags.zero = (*register == 0);
[INFO] [stdout] 657 +           flags.zero = *register == 0;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu/cpu.rs:675:25
[INFO] [stdout]     |
[INFO] [stdout] 675 |           flags.carry = ((0b1 & *register) != 0);
[INFO] [stdout]     |                         ^                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 675 -           flags.carry = ((0b1 & *register) != 0);
[INFO] [stdout] 675 +           flags.carry = (0b1 & *register) != 0;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu/cpu.rs:677:24
[INFO] [stdout]     |
[INFO] [stdout] 677 |           flags.zero = (*register == 0);
[INFO] [stdout]     |                        ^              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 677 -           flags.zero = (*register == 0);
[INFO] [stdout] 677 +           flags.zero = *register == 0;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu/cpu.rs:750:24
[INFO] [stdout]     |
[INFO] [stdout] 750 |           flags.zero = ( 0 == match testbit {
[INFO] [stdout]     |                        ^^
[INFO] [stdout] ...
[INFO] [stdout] 759 |           } );
[INFO] [stdout]     |            ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 750 ~           flags.zero = 0 == match testbit {
[INFO] [stdout] 751 |             TestBit::Zero => 0b1 & *register,
[INFO] [stdout] ...
[INFO] [stdout] 758 |             TestBit::Seven => 0b1 & (*register >> 7),
[INFO] [stdout] 759 ~           };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu/cpu.rs:907:30
[INFO] [stdout]     |
[INFO] [stdout] 907 |     self.registers.f.carry = (did_overflow | did_overflow2);
[INFO] [stdout]     |                              ^                            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 907 -     self.registers.f.carry = (did_overflow | did_overflow2);
[INFO] [stdout] 907 +     self.registers.f.carry = did_overflow | did_overflow2;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu/cpu.rs:934:30
[INFO] [stdout]     |
[INFO] [stdout] 934 |     self.registers.f.carry = (did_overflow | did_overflow2);
[INFO] [stdout]     |                              ^                            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 934 -     self.registers.f.carry = (did_overflow | did_overflow2);
[INFO] [stdout] 934 +     self.registers.f.carry = did_overflow | did_overflow2;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu/cpu.rs:939:14
[INFO] [stdout]     |
[INFO] [stdout] 939 |     let b7 = (0b1 & (*register >> 7));
[INFO] [stdout]     |              ^                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 939 -     let b7 = (0b1 & (*register >> 7));
[INFO] [stdout] 939 +     let b7 = 0b1 & (*register >> 7);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu/cpu.rs:941:19
[INFO] [stdout]     |
[INFO] [stdout] 941 |     flags.carry = (b7 != 0);
[INFO] [stdout]     |                   ^       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 941 -     flags.carry = (b7 != 0);
[INFO] [stdout] 941 +     flags.carry = b7 != 0;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu/cpu.rs:950:14
[INFO] [stdout]     |
[INFO] [stdout] 950 |     let b0 = (0b1 & *register);
[INFO] [stdout]     |              ^               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 950 -     let b0 = (0b1 & *register);
[INFO] [stdout] 950 +     let b0 = 0b1 & *register;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu/cpu.rs:952:19
[INFO] [stdout]     |
[INFO] [stdout] 952 |     flags.carry = (b0 != 0);
[INFO] [stdout]     |                   ^       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 952 -     flags.carry = (b0 != 0);
[INFO] [stdout] 952 +     flags.carry = b0 != 0;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/cpu/cpu.rs:954:8
[INFO] [stdout]     |
[INFO] [stdout] 954 |     if (b7 != 0) {*register += 0b10000000}
[INFO] [stdout]     |        ^       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 954 -     if (b7 != 0) {*register += 0b10000000}
[INFO] [stdout] 954 +     if b7 != 0 {*register += 0b10000000}
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu/cpu.rs:955:18
[INFO] [stdout]     |
[INFO] [stdout] 955 |     flags.zero = (*register == 0);
[INFO] [stdout]     |                  ^              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 955 -     flags.zero = (*register == 0);
[INFO] [stdout] 955 +     flags.zero = *register == 0;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::rect::Rect`
[INFO] [stdout]  --> src/gpu/gpu.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use sdl2::rect::Rect;
[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: `sdl2::render::Canvas`
[INFO] [stdout]  --> src/gpu/gpu.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use sdl2::render::Canvas;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/gpu/gpu.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout] 212 |         if ((self.LY >= objectTop) & (self.LY < objectBottom)) {
[INFO] [stdout]     |            ^                                                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 212 -         if ((self.LY >= objectTop) & (self.LY < objectBottom)) {
[INFO] [stdout] 212 +         if (self.LY >= objectTop) & (self.LY < objectBottom) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/gpu/gpu.rs:359:30
[INFO] [stdout]     |
[INFO] [stdout] 359 |     let mapstart: usize = if (self.LCDC.three) {0x9C00 - VRAM_BEGIN} else {0x9800 - VRAM_BEGIN};
[INFO] [stdout]     |                              ^               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 359 -     let mapstart: usize = if (self.LCDC.three) {0x9C00 - VRAM_BEGIN} else {0x9800 - VRAM_BEGIN};
[INFO] [stdout] 359 +     let mapstart: usize = if self.LCDC.three {0x9C00 - VRAM_BEGIN} else {0x9800 - VRAM_BEGIN};
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::pixels::Color`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use sdl2::pixels::Color;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::rect::Point`
[INFO] [stdout]   --> src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use sdl2::rect::Point;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]   --> src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::time::Duration;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/cpu/cpu.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 89 |         VBlank => {self.pc = 0x40; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1))},
[INFO] [stdout]    |         ------ matches any value
[INFO] [stdout] 90 |         LCD => {self.pc = 0x48; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b10))},
[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: unreachable pattern
[INFO] [stdout]   --> src/cpu/cpu.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 89 |         VBlank => {self.pc = 0x40; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1))},
[INFO] [stdout]    |         ------ matches any value
[INFO] [stdout] 90 |         LCD => {self.pc = 0x48; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b10))},
[INFO] [stdout] 91 |         Timer => {self.pc = 0x50; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b100))},
[INFO] [stdout]    |         ^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/cpu/cpu.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 89 |         VBlank => {self.pc = 0x40; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1))},
[INFO] [stdout]    |         ------ matches any value
[INFO] [stdout] ...
[INFO] [stdout] 92 |         Serial => {self.pc = 0x58; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1000))},
[INFO] [stdout]    |         ^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/cpu/cpu.rs:93:9
[INFO] [stdout]    |
[INFO] [stdout] 89 |         VBlank => {self.pc = 0x40; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1))},
[INFO] [stdout]    |         ------ matches any value
[INFO] [stdout] ...
[INFO] [stdout] 93 |         Joypad => {self.pc = 0x60; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b10000))},
[INFO] [stdout]    |         ^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `VBlank`
[INFO] [stdout]   --> src/cpu/cpu.rs:89:9
[INFO] [stdout]    |
[INFO] [stdout] 89 |         VBlank => {self.pc = 0x40; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1))},
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_VBlank`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `LCD`
[INFO] [stdout]   --> src/cpu/cpu.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 90 |         LCD => {self.pc = 0x48; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b10))},
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_LCD`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Timer`
[INFO] [stdout]   --> src/cpu/cpu.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 91 |         Timer => {self.pc = 0x50; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b100))},
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_Timer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Serial`
[INFO] [stdout]   --> src/cpu/cpu.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |         Serial => {self.pc = 0x58; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1000))},
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_Serial`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `Joypad`
[INFO] [stdout]   --> src/cpu/cpu.rs:93:9
[INFO] [stdout]    |
[INFO] [stdout] 93 |         Joypad => {self.pc = 0x60; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b10000))},
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_Joypad`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/cpu/cpu.rs:885:7
[INFO] [stdout]     |
[INFO] [stdout] 885 |       _ => { panic!("todo: Instruction: {:?} not yet implemented", instruction) }
[INFO] [stdout]     |       ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/cpu/cpu.rs:885:7
[INFO] [stdout]     |
[INFO] [stdout] 138 |       Instruction::ADD(target, source) => {
[INFO] [stdout]     |       -------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 177 |       Instruction::ADC(target, source) => {
[INFO] [stdout]     |       -------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 191 |       Instruction::SUB(target, source) => {
[INFO] [stdout]     |       -------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 205 |       Instruction::SBC(target, source) => {
[INFO] [stdout]     |       -------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 885 |       _ => { panic!("todo: Instruction: {:?} not yet implemented", instruction) }
[INFO] [stdout]     |       ^ ...and 40 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `did_overflow`
[INFO] [stdout]    --> src/cpu/cpu.rs:167:29
[INFO] [stdout]     |
[INFO] [stdout] 167 |             let (new_value, did_overflow) = self.sp.overflowing_add_signed(value);
[INFO] [stdout]     |                             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> src/cpu/cpu.rs:177:24
[INFO] [stdout]     |
[INFO] [stdout] 177 |       Instruction::ADC(target, source) => {
[INFO] [stdout]     |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> src/cpu/cpu.rs:191:24
[INFO] [stdout]     |
[INFO] [stdout] 191 |       Instruction::SUB(target, source) => {
[INFO] [stdout]     |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> src/cpu/cpu.rs:205:24
[INFO] [stdout]     |
[INFO] [stdout] 205 |       Instruction::SBC(target, source) => {
[INFO] [stdout]     |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> src/cpu/cpu.rs:219:24
[INFO] [stdout]     |
[INFO] [stdout] 219 |       Instruction::AND(target, source) => {
[INFO] [stdout]     |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> src/cpu/cpu.rs:250:24
[INFO] [stdout]     |
[INFO] [stdout] 250 |       Instruction::XOR(target, source) => {
[INFO] [stdout]     |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> src/cpu/cpu.rs:281:23
[INFO] [stdout]     |
[INFO] [stdout] 281 |       Instruction::OR(target, source) => {
[INFO] [stdout]     |                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> src/cpu/cpu.rs:312:23
[INFO] [stdout]     |
[INFO] [stdout] 312 |       Instruction::CP(target, source) => {
[INFO] [stdout]     |                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/cpu/cpu.rs:314:39
[INFO] [stdout]     |
[INFO] [stdout] 314 |           ArithmeticSource::A => {let val = self.subtract(self.registers.a); self.pc.wrapping_add(1)},
[INFO] [stdout]     |                                       ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/cpu/cpu.rs:315:39
[INFO] [stdout]     |
[INFO] [stdout] 315 |           ArithmeticSource::B => {let val = self.subtract(self.registers.b); self.pc.wrapping_add(1)},
[INFO] [stdout]     |                                       ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/cpu/cpu.rs:316:39
[INFO] [stdout]     |
[INFO] [stdout] 316 |           ArithmeticSource::C => {let val = self.subtract(self.registers.c); self.pc.wrapping_add(1)},
[INFO] [stdout]     |                                       ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/cpu/cpu.rs:317:39
[INFO] [stdout]     |
[INFO] [stdout] 317 |           ArithmeticSource::D => {let val = self.subtract(self.registers.d); self.pc.wrapping_add(1)},
[INFO] [stdout]     |                                       ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/cpu/cpu.rs:318:39
[INFO] [stdout]     |
[INFO] [stdout] 318 |           ArithmeticSource::E => {let val = self.subtract(self.registers.e); self.pc.wrapping_add(1)},
[INFO] [stdout]     |                                       ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/cpu/cpu.rs:319:39
[INFO] [stdout]     |
[INFO] [stdout] 319 |           ArithmeticSource::H => {let val = self.subtract(self.registers.h); self.pc.wrapping_add(1)},
[INFO] [stdout]     |                                       ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/cpu/cpu.rs:320:39
[INFO] [stdout]     |
[INFO] [stdout] 320 |           ArithmeticSource::L => {let val = self.subtract(self.registers.l); self.pc.wrapping_add(1)},
[INFO] [stdout]     |                                       ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/cpu/cpu.rs:321:40
[INFO] [stdout]     |
[INFO] [stdout] 321 |           ArithmeticSource::HL => {let val = self.subtract(self.bus.read_byte(self.registers.get_hl())); self.pc.wrapping_add(1)},
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/cpu/cpu.rs:322:40
[INFO] [stdout]     |
[INFO] [stdout] 322 |           ArithmeticSource::D8 => {let val = self.subtract(self.read_next_byte()); self.pc.wrapping_add(2)},
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> src/cpu/cpu.rs:344:29
[INFO] [stdout]     |
[INFO] [stdout] 344 |       Instruction::JR(test, target) => {
[INFO] [stdout]     |                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `source`
[INFO] [stdout]    --> src/cpu/cpu.rs:482:34
[INFO] [stdout]     |
[INFO] [stdout] 482 |           LoadType::Byte(target, source) => {
[INFO] [stdout]     |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_source`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> src/cpu/cpu.rs:825:31
[INFO] [stdout]     |
[INFO] [stdout] 825 |       Instruction::CALL(test, target) => {
[INFO] [stdout]     |                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/cpu/instructions.rs:385:7
[INFO] [stdout]     |
[INFO] [stdout] 385 |       _ => /*todo: add mapping for rest of instructions*/ 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/cpu/instructions.rs:385:7
[INFO] [stdout]     |
[INFO] [stdout] 129 |       0x00 => Some(Instruction::RLC(RotateTarget::B)),
[INFO] [stdout]     |       ---- matches some of the same values
[INFO] [stdout] 130 |       0x01 => Some(Instruction::RLC(RotateTarget::C)),
[INFO] [stdout]     |       ---- matches some of the same values
[INFO] [stdout] 131 |       0x02 => Some(Instruction::RLC(RotateTarget::D)),
[INFO] [stdout]     |       ---- matches some of the same values
[INFO] [stdout] 132 |       0x03 => Some(Instruction::RLC(RotateTarget::E)),
[INFO] [stdout]     |       ---- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 385 |       _ => /*todo: add mapping for rest of instructions*/ None
[INFO] [stdout]     |       ^ ...and 252 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/gpu/gpu.rs:469:9
[INFO] [stdout]     |
[INFO] [stdout] 469 |     let result = self.canvas.with_texture_canvas(&mut texture, |texture_canvas| {
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mcycles`
[INFO] [stdout]   --> src/main.rs:65:11
[INFO] [stdout]    |
[INFO] [stdout] 65 |       for mcycles in 0..17556 {
[INFO] [stdout]    |           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mcycles`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VRAM_SIZE` is never used
[INFO] [stdout]   --> src/memory/membus.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const VRAM_SIZE: usize = VRAM_END - VRAM_BEGIN + 1;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Three` is never constructed
[INFO] [stdout]   --> src/gpu/gpu.rs:46:3
[INFO] [stdout]    |
[INFO] [stdout] 42 | enum PPUMode {
[INFO] [stdout]    |      ------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 46 |   Three,
[INFO] [stdout]    |   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `None` is never constructed
[INFO] [stdout]   --> src/gpu/gpu.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 50 | enum TilePixelValue {
[INFO] [stdout]    |      -------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 55 |     None,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TilePixelValue` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `empty_tile` is never used
[INFO] [stdout]   --> src/gpu/gpu.rs:62:4
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn empty_tile() -> Tile {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `color`, `palette`, `sprite_priority`, and `background_priority` are never read
[INFO] [stdout]   --> src/gpu/gpu.rs:88:3
[INFO] [stdout]    |
[INFO] [stdout] 87 | struct FIFOPixel {
[INFO] [stdout]    |        --------- fields in this struct
[INFO] [stdout] 88 |   color: TilePixelValue,
[INFO] [stdout]    |   ^^^^^
[INFO] [stdout] 89 |   palette: u8,
[INFO] [stdout]    |   ^^^^^^^
[INFO] [stdout] 90 |   sprite_priority: u8,
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^
[INFO] [stdout] 91 |   background_priority: bool,
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `STAT` is never constructed
[INFO] [stdout]    --> src/gpu/gpu.rs:141:8
[INFO] [stdout]     |
[INFO] [stdout] 141 | struct STAT { //LCD STATus, io register 0xFF41
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `background_FIFO`, `object_FIFO`, and `i` are never read
[INFO] [stdout]    --> src/gpu/gpu.rs:161:5
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub struct GPU<'a>{
[INFO] [stdout]     |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 161 |     background_FIFO: VecDeque<FIFOPixel>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 162 |     object_FIFO: VecDeque<FIFOPixel>,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 163 |     i: u8,
[INFO] [stdout]     |     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/cpu/cpu.rs:31:25
[INFO] [stdout]    |
[INFO] [stdout] 31 |   pub fn new(sdlcanvas: &mut sdl2::render::WindowCanvas) -> CPU {
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^     ^^^ the same lifetime is hidden here
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 31 |   pub fn new(sdlcanvas: &mut sdl2::render::WindowCanvas) -> CPU<'_> {
[INFO] [stdout]    |                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/cpu/cpu.rs:77:7
[INFO] [stdout]    |
[INFO] [stdout] 77 |       writeln!(self.logfile, "{}", cpustate);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 77 |       let _ = writeln!(self.logfile, "{}", cpustate);
[INFO] [stdout]    |       +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `VBlank` should have a snake case name
[INFO] [stdout]   --> src/cpu/cpu.rs:89:9
[INFO] [stdout]    |
[INFO] [stdout] 89 |         VBlank => {self.pc = 0x40; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1))},
[INFO] [stdout]    |         ^^^^^^ help: convert the identifier to snake case: `vblank`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `LCD` should have a snake case name
[INFO] [stdout]   --> src/cpu/cpu.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 90 |         LCD => {self.pc = 0x48; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b10))},
[INFO] [stdout]    |         ^^^ help: convert the identifier to snake case: `lcd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Timer` should have a snake case name
[INFO] [stdout]   --> src/cpu/cpu.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 91 |         Timer => {self.pc = 0x50; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b100))},
[INFO] [stdout]    |         ^^^^^ help: convert the identifier to snake case: `timer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Serial` should have a snake case name
[INFO] [stdout]   --> src/cpu/cpu.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |         Serial => {self.pc = 0x58; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1000))},
[INFO] [stdout]    |         ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `serial`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Joypad` should have a snake case name
[INFO] [stdout]   --> src/cpu/cpu.rs:93:9
[INFO] [stdout]    |
[INFO] [stdout] 93 |         Joypad => {self.pc = 0x60; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b10000))},
[INFO] [stdout]    |         ^^^^^^ help: convert the identifier to snake case: `joypad`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/memory/membus.rs:37:25
[INFO] [stdout]    |
[INFO] [stdout] 37 |   pub fn new(sdlcanvas: &mut sdl2::render::WindowCanvas) -> MemoryBus {
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 37 |   pub fn new(sdlcanvas: &mut sdl2::render::WindowCanvas) -> MemoryBus<'_> {
[INFO] [stdout]    |                                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `LCDC` should have a snake case name
[INFO] [stdout]    --> src/gpu/gpu.rs:151:9
[INFO] [stdout]     |
[INFO] [stdout] 151 |     pub LCDC: LCDC, //io register 0xFF40
[INFO] [stdout]     |         ^^^^ help: convert the identifier to snake case: `lcdc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `SCY` should have a snake case name
[INFO] [stdout]    --> src/gpu/gpu.rs:152:9
[INFO] [stdout]     |
[INFO] [stdout] 152 |     pub SCY: u8, //background viewport y position, io register 0xFF42
[INFO] [stdout]     |         ^^^ help: convert the identifier to snake case (notice the capitalization): `scy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `SCX` should have a snake case name
[INFO] [stdout]    --> src/gpu/gpu.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |     pub SCX: u8, //background viewport x position, io register 0xFF43
[INFO] [stdout]     |         ^^^ help: convert the identifier to snake case (notice the capitalization): `scx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `LY` should have a snake case name
[INFO] [stdout]    --> src/gpu/gpu.rs:154:9
[INFO] [stdout]     |
[INFO] [stdout] 154 |     pub LY: u8,  //LCD Y coordinate, io register 0xFF44 (read-only for cpu)
[INFO] [stdout]     |         ^^ help: convert the identifier to snake case: `ly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `LYC` should have a snake case name
[INFO] [stdout]    --> src/gpu/gpu.rs:155:9
[INFO] [stdout]     |
[INFO] [stdout] 155 |     pub LYC: u8, //LY Compare, io register 0xFF45, constantly compared to LY, when equal sets related flag in STAT and (if enabled)...
[INFO] [stdout]     |         ^^^ help: convert the identifier to snake case: `lyc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `LX` should have a snake case name
[INFO] [stdout]    --> src/gpu/gpu.rs:156:5
[INFO] [stdout]     |
[INFO] [stdout] 156 |     LX : u8,
[INFO] [stdout]     |     ^^ help: convert the identifier to snake case: `lx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `WY` should have a snake case name
[INFO] [stdout]    --> src/gpu/gpu.rs:157:9
[INFO] [stdout]     |
[INFO] [stdout] 157 |     pub WY: u8, //window Y coordinate, io register 0xFF4A
[INFO] [stdout]     |         ^^ help: convert the identifier to snake case (notice the capitalization): `wy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `WX` should have a snake case name
[INFO] [stdout]    --> src/gpu/gpu.rs:158:9
[INFO] [stdout]     |
[INFO] [stdout] 158 |     pub WX: u8, //window X coordinate + 7, io register 0xFF4B
[INFO] [stdout]     |         ^^ help: convert the identifier to snake case (notice the capitalization): `wx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `background_FIFO` should have a snake case name
[INFO] [stdout]    --> src/gpu/gpu.rs:161:5
[INFO] [stdout]     |
[INFO] [stdout] 161 |     background_FIFO: VecDeque<FIFOPixel>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `background_fifo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `object_FIFO` should have a snake case name
[INFO] [stdout]    --> src/gpu/gpu.rs:162:5
[INFO] [stdout]     |
[INFO] [stdout] 162 |     object_FIFO: VecDeque<FIFOPixel>,
[INFO] [stdout]     |     ^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `object_fifo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/gpu/gpu.rs:167:25
[INFO] [stdout]     |
[INFO] [stdout] 167 |   pub fn new(sdlcanvas: &mut sdl2::render::WindowCanvas) -> GPU {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^     ^^^ the same lifetime is hidden here
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 167 |   pub fn new(sdlcanvas: &mut sdl2::render::WindowCanvas) -> GPU<'_> {
[INFO] [stdout]     |                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `objectTop` should have a snake case name
[INFO] [stdout]    --> src/gpu/gpu.rs:210:13
[INFO] [stdout]     |
[INFO] [stdout] 210 |         let objectTop = object.ycoord;
[INFO] [stdout]     |             ^^^^^^^^^ help: convert the identifier to snake case: `object_top`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `objectBottom` should have a snake case name
[INFO] [stdout]    --> src/gpu/gpu.rs:211:13
[INFO] [stdout]     |
[INFO] [stdout] 211 |         let objectBottom = object.ycoord + (if self.LCDC.two {16} else {8});
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: convert the identifier to snake case: `object_bottom`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/gpu/gpu.rs:475:11
[INFO] [stdout]     |
[INFO] [stdout] 475 |           texture_canvas.draw_point(Point::new(lx.into(),ly.into()));
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 475 |           let _ = texture_canvas.draw_point(Point::new(lx.into(),ly.into()));
[INFO] [stdout]     |           +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/gpu/gpu.rs:481:5
[INFO] [stdout]     |
[INFO] [stdout] 481 |     self.canvas.copy(&texture, None, None);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 481 |     let _ = self.canvas.copy(&texture, None, None);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `setIndex` should have a snake case name
[INFO] [stdout]    --> src/gpu/gpu.rs:560:9
[INFO] [stdout]     |
[INFO] [stdout] 560 |     let setIndex = index / 4;
[INFO] [stdout]     |         ^^^^^^^^ help: convert the identifier to snake case: `set_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.74s
[INFO] running `Command { std: "docker" "inspect" "b958dbf0a7b057ee8d284c705f2a8e78987a171c4a2189aa818b825720120aed", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b958dbf0a7b057ee8d284c705f2a8e78987a171c4a2189aa818b825720120aed", kill_on_drop: false }`
[INFO] [stdout] b958dbf0a7b057ee8d284c705f2a8e78987a171c4a2189aa818b825720120aed
[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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] dfdd5178df0c00e2244d0dc3d35463db76d7f5bb247eb8d50a6f149b7eebd35b
[INFO] running `Command { std: "docker" "start" "-a" "dfdd5178df0c00e2244d0dc3d35463db76d7f5bb247eb8d50a6f149b7eebd35b", kill_on_drop: false }`
[INFO] [stderr] warning: unnecessary parentheses around method argument
[INFO] [stderr]   --> src/cpu/cpu.rs:89:64
[INFO] [stderr]    |
[INFO] [stderr] 89 |         VBlank => {self.pc = 0x40; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1))},
[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] 89 -         VBlank => {self.pc = 0x40; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1))},
[INFO] [stderr] 89 +         VBlank => {self.pc = 0x40; self.bus.write_byte(0xFF0F, self.bus.read_byte(0xFF0F) - 0b1)},
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around method argument
[INFO] [stderr]   --> src/cpu/cpu.rs:90:61
[INFO] [stderr]    |
[INFO] [stderr] 90 |         LCD => {self.pc = 0x48; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b10))},
[INFO] [stderr]    |                                                             ^                                 ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 90 -         LCD => {self.pc = 0x48; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b10))},
[INFO] [stderr] 90 +         LCD => {self.pc = 0x48; self.bus.write_byte(0xFF0F, self.bus.read_byte(0xFF0F) - 0b10)},
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around method argument
[INFO] [stderr]   --> src/cpu/cpu.rs:91:63
[INFO] [stderr]    |
[INFO] [stderr] 91 |         Timer => {self.pc = 0x50; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b100))},
[INFO] [stderr]    |                                                               ^                                  ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 91 -         Timer => {self.pc = 0x50; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b100))},
[INFO] [stderr] 91 +         Timer => {self.pc = 0x50; self.bus.write_byte(0xFF0F, self.bus.read_byte(0xFF0F) - 0b100)},
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around method argument
[INFO] [stderr]   --> src/cpu/cpu.rs:92:64
[INFO] [stderr]    |
[INFO] [stderr] 92 |         Serial => {self.pc = 0x58; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1000))},
[INFO] [stderr]    |                                                                ^                                   ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 92 -         Serial => {self.pc = 0x58; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1000))},
[INFO] [stderr] 92 +         Serial => {self.pc = 0x58; self.bus.write_byte(0xFF0F, self.bus.read_byte(0xFF0F) - 0b1000)},
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around method argument
[INFO] [stderr]   --> src/cpu/cpu.rs:93:64
[INFO] [stderr]    |
[INFO] [stderr] 93 |         Joypad => {self.pc = 0x60; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b10000))},
[INFO] [stderr]    |                                                                ^                                    ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 93 -         Joypad => {self.pc = 0x60; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b10000))},
[INFO] [stderr] 93 +         Joypad => {self.pc = 0x60; self.bus.write_byte(0xFF0F, self.bus.read_byte(0xFF0F) - 0b10000)},
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/cpu/cpu.rs:633:25
[INFO] [stderr]     |
[INFO] [stderr] 633 |           flags.carry = ((0b1 & (*register >> 7)) != 0);
[INFO] [stderr]     |                         ^                             ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 633 -           flags.carry = ((0b1 & (*register >> 7)) != 0);
[INFO] [stderr] 633 +           flags.carry = (0b1 & (*register >> 7)) != 0;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/cpu/cpu.rs:635:24
[INFO] [stderr]     |
[INFO] [stderr] 635 |           flags.zero = (*register == 0);
[INFO] [stderr]     |                        ^              ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 635 -           flags.zero = (*register == 0);
[INFO] [stderr] 635 +           flags.zero = *register == 0;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/cpu/cpu.rs:653:25
[INFO] [stderr]     |
[INFO] [stderr] 653 |           flags.carry = ((0b1 & *register) != 0);
[INFO] [stderr]     |                         ^                      ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 653 -           flags.carry = ((0b1 & *register) != 0);
[INFO] [stderr] 653 +           flags.carry = (0b1 & *register) != 0;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/cpu/cpu.rs:654:20
[INFO] [stderr]     |
[INFO] [stderr] 654 |           let b7 = (0b1 & (*register >> 7));
[INFO] [stderr]     |                    ^                      ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 654 -           let b7 = (0b1 & (*register >> 7));
[INFO] [stderr] 654 +           let b7 = 0b1 & (*register >> 7);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/cpu/cpu.rs:656:14
[INFO] [stderr]     |
[INFO] [stderr] 656 |           if (b7 != 0) {*register += 0b10000000;}
[INFO] [stderr]     |              ^       ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 656 -           if (b7 != 0) {*register += 0b10000000;}
[INFO] [stderr] 656 +           if b7 != 0 {*register += 0b10000000;}
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/cpu/cpu.rs:657:24
[INFO] [stderr]     |
[INFO] [stderr] 657 |           flags.zero = (*register == 0);
[INFO] [stderr]     |                        ^              ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 657 -           flags.zero = (*register == 0);
[INFO] [stderr] 657 +           flags.zero = *register == 0;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/cpu/cpu.rs:675:25
[INFO] [stderr]     |
[INFO] [stderr] 675 |           flags.carry = ((0b1 & *register) != 0);
[INFO] [stderr]     |                         ^                      ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 675 -           flags.carry = ((0b1 & *register) != 0);
[INFO] [stderr] 675 +           flags.carry = (0b1 & *register) != 0;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/cpu/cpu.rs:677:24
[INFO] [stderr]     |
[INFO] [stderr] 677 |           flags.zero = (*register == 0);
[INFO] [stderr]     |                        ^              ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 677 -           flags.zero = (*register == 0);
[INFO] [stderr] 677 +           flags.zero = *register == 0;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/cpu/cpu.rs:750:24
[INFO] [stderr]     |
[INFO] [stderr] 750 |           flags.zero = ( 0 == match testbit {
[INFO] [stderr]     |                        ^^
[INFO] [stderr] ...
[INFO] [stderr] 759 |           } );
[INFO] [stderr]     |            ^^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 750 ~           flags.zero = 0 == match testbit {
[INFO] [stderr] 751 |             TestBit::Zero => 0b1 & *register,
[INFO] [stderr] ...
[INFO] [stderr] 758 |             TestBit::Seven => 0b1 & (*register >> 7),
[INFO] [stderr] 759 ~           };
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/cpu/cpu.rs:907:30
[INFO] [stderr]     |
[INFO] [stderr] 907 |     self.registers.f.carry = (did_overflow | did_overflow2);
[INFO] [stderr]     |                              ^                            ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 907 -     self.registers.f.carry = (did_overflow | did_overflow2);
[INFO] [stderr] 907 +     self.registers.f.carry = did_overflow | did_overflow2;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/cpu/cpu.rs:934:30
[INFO] [stderr]     |
[INFO] [stderr] 934 |     self.registers.f.carry = (did_overflow | did_overflow2);
[INFO] [stderr]     |                              ^                            ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 934 -     self.registers.f.carry = (did_overflow | did_overflow2);
[INFO] [stderr] 934 +     self.registers.f.carry = did_overflow | did_overflow2;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/cpu/cpu.rs:939:14
[INFO] [stderr]     |
[INFO] [stderr] 939 |     let b7 = (0b1 & (*register >> 7));
[INFO] [stderr]     |              ^                      ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 939 -     let b7 = (0b1 & (*register >> 7));
[INFO] [stderr] 939 +     let b7 = 0b1 & (*register >> 7);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/cpu/cpu.rs:941:19
[INFO] [stderr]     |
[INFO] [stderr] 941 |     flags.carry = (b7 != 0);
[INFO] [stderr]     |                   ^       ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 941 -     flags.carry = (b7 != 0);
[INFO] [stderr] 941 +     flags.carry = b7 != 0;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/cpu/cpu.rs:950:14
[INFO] [stderr]     |
[INFO] [stderr] 950 |     let b0 = (0b1 & *register);
[INFO] [stderr]     |              ^               ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 950 -     let b0 = (0b1 & *register);
[INFO] [stderr] 950 +     let b0 = 0b1 & *register;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/cpu/cpu.rs:952:19
[INFO] [stderr]     |
[INFO] [stderr] 952 |     flags.carry = (b0 != 0);
[INFO] [stderr]     |                   ^       ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 952 -     flags.carry = (b0 != 0);
[INFO] [stderr] 952 +     flags.carry = b0 != 0;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/cpu/cpu.rs:954:8
[INFO] [stderr]     |
[INFO] [stderr] 954 |     if (b7 != 0) {*register += 0b10000000}
[INFO] [stderr]     |        ^       ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 954 -     if (b7 != 0) {*register += 0b10000000}
[INFO] [stderr] 954 +     if b7 != 0 {*register += 0b10000000}
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/cpu/cpu.rs:955:18
[INFO] [stderr]     |
[INFO] [stderr] 955 |     flags.zero = (*register == 0);
[INFO] [stderr]     |                  ^              ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 955 -     flags.zero = (*register == 0);
[INFO] [stderr] 955 +     flags.zero = *register == 0;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `sdl2::rect::Rect`
[INFO] [stderr]  --> src/gpu/gpu.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use sdl2::rect::Rect;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `sdl2::render::Canvas`
[INFO] [stderr]  --> src/gpu/gpu.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use sdl2::render::Canvas;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/gpu/gpu.rs:212:12
[INFO] [stderr]     |
[INFO] [stderr] 212 |         if ((self.LY >= objectTop) & (self.LY < objectBottom)) {
[INFO] [stderr]     |            ^                                                 ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 212 -         if ((self.LY >= objectTop) & (self.LY < objectBottom)) {
[INFO] [stderr] 212 +         if (self.LY >= objectTop) & (self.LY < objectBottom) {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/gpu/gpu.rs:359:30
[INFO] [stderr]     |
[INFO] [stderr] 359 |     let mapstart: usize = if (self.LCDC.three) {0x9C00 - VRAM_BEGIN} else {0x9800 - VRAM_BEGIN};
[INFO] [stderr]     |                              ^               ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 359 -     let mapstart: usize = if (self.LCDC.three) {0x9C00 - VRAM_BEGIN} else {0x9800 - VRAM_BEGIN};
[INFO] [stderr] 359 +     let mapstart: usize = if self.LCDC.three {0x9C00 - VRAM_BEGIN} else {0x9800 - VRAM_BEGIN};
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `sdl2::pixels::Color`
[INFO] [stderr]   --> src/main.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 12 | use sdl2::pixels::Color;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `sdl2::rect::Point`
[INFO] [stderr]   --> src/main.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 13 | use sdl2::rect::Point;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::time::Duration`
[INFO] [stderr]   --> src/main.rs:16:5
[INFO] [stderr]    |
[INFO] [stderr] 16 | use std::time::Duration;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]   --> src/cpu/cpu.rs:90:9
[INFO] [stderr]    |
[INFO] [stderr] 89 |         VBlank => {self.pc = 0x40; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1))},
[INFO] [stderr]    |         ------ matches any value
[INFO] [stderr] 90 |         LCD => {self.pc = 0x48; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b10))},
[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: unreachable pattern
[INFO] [stderr]   --> src/cpu/cpu.rs:91:9
[INFO] [stderr]    |
[INFO] [stderr] 89 |         VBlank => {self.pc = 0x40; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1))},
[INFO] [stderr]    |         ------ matches any value
[INFO] [stderr] 90 |         LCD => {self.pc = 0x48; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b10))},
[INFO] [stderr] 91 |         Timer => {self.pc = 0x50; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b100))},
[INFO] [stderr]    |         ^^^^^ no value can reach this
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]   --> src/cpu/cpu.rs:92:9
[INFO] [stderr]    |
[INFO] [stderr] 89 |         VBlank => {self.pc = 0x40; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1))},
[INFO] [stderr]    |         ------ matches any value
[INFO] [stderr] ...
[INFO] [stderr] 92 |         Serial => {self.pc = 0x58; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1000))},
[INFO] [stderr]    |         ^^^^^^ no value can reach this
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]   --> src/cpu/cpu.rs:93:9
[INFO] [stderr]    |
[INFO] [stderr] 89 |         VBlank => {self.pc = 0x40; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1))},
[INFO] [stderr]    |         ------ matches any value
[INFO] [stderr] ...
[INFO] [stderr] 93 |         Joypad => {self.pc = 0x60; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b10000))},
[INFO] [stderr]    |         ^^^^^^ no value can reach this
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `VBlank`
[INFO] [stderr]   --> src/cpu/cpu.rs:89:9
[INFO] [stderr]    |
[INFO] [stderr] 89 |         VBlank => {self.pc = 0x40; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1))},
[INFO] [stderr]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_VBlank`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `LCD`
[INFO] [stderr]   --> src/cpu/cpu.rs:90:9
[INFO] [stderr]    |
[INFO] [stderr] 90 |         LCD => {self.pc = 0x48; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b10))},
[INFO] [stderr]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_LCD`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `Timer`
[INFO] [stderr]   --> src/cpu/cpu.rs:91:9
[INFO] [stderr]    |
[INFO] [stderr] 91 |         Timer => {self.pc = 0x50; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b100))},
[INFO] [stderr]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_Timer`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `Serial`
[INFO] [stderr]   --> src/cpu/cpu.rs:92:9
[INFO] [stderr]    |
[INFO] [stderr] 92 |         Serial => {self.pc = 0x58; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1000))},
[INFO] [stderr]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_Serial`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `Joypad`
[INFO] [stderr]   --> src/cpu/cpu.rs:93:9
[INFO] [stderr]    |
[INFO] [stderr] 93 |         Joypad => {self.pc = 0x60; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b10000))},
[INFO] [stderr]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_Joypad`
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/cpu/cpu.rs:885:7
[INFO] [stderr]     |
[INFO] [stderr] 885 |       _ => { panic!("todo: Instruction: {:?} not yet implemented", instruction) }
[INFO] [stderr]     |       ^ no value can reach this
[INFO] [stderr]     |
[INFO] [stderr] note: multiple earlier patterns match some of the same values
[INFO] [stderr]    --> src/cpu/cpu.rs:885:7
[INFO] [stderr]     |
[INFO] [stderr] 138 |       Instruction::ADD(target, source) => {
[INFO] [stderr]     |       -------------------------------- matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr] 177 |       Instruction::ADC(target, source) => {
[INFO] [stderr]     |       -------------------------------- matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr] 191 |       Instruction::SUB(target, source) => {
[INFO] [stderr]     |       -------------------------------- matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr] 205 |       Instruction::SBC(target, source) => {
[INFO] [stderr]     |       -------------------------------- matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr] 885 |       _ => { panic!("todo: Instruction: {:?} not yet implemented", instruction) }
[INFO] [stderr]     |       ^ ...and 40 other patterns collectively make this unreachable
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `did_overflow`
[INFO] [stderr]    --> src/cpu/cpu.rs:167:29
[INFO] [stderr]     |
[INFO] [stderr] 167 |             let (new_value, did_overflow) = self.sp.overflowing_add_signed(value);
[INFO] [stderr]     |                             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_did_overflow`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `target`
[INFO] [stderr]    --> src/cpu/cpu.rs:177:24
[INFO] [stderr]     |
[INFO] [stderr] 177 |       Instruction::ADC(target, source) => {
[INFO] [stderr]     |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `target`
[INFO] [stderr]    --> src/cpu/cpu.rs:191:24
[INFO] [stderr]     |
[INFO] [stderr] 191 |       Instruction::SUB(target, source) => {
[INFO] [stderr]     |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `target`
[INFO] [stderr]    --> src/cpu/cpu.rs:205:24
[INFO] [stderr]     |
[INFO] [stderr] 205 |       Instruction::SBC(target, source) => {
[INFO] [stderr]     |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `target`
[INFO] [stderr]    --> src/cpu/cpu.rs:219:24
[INFO] [stderr]     |
[INFO] [stderr] 219 |       Instruction::AND(target, source) => {
[INFO] [stderr]     |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `target`
[INFO] [stderr]    --> src/cpu/cpu.rs:250:24
[INFO] [stderr]     |
[INFO] [stderr] 250 |       Instruction::XOR(target, source) => {
[INFO] [stderr]     |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `target`
[INFO] [stderr]    --> src/cpu/cpu.rs:281:23
[INFO] [stderr]     |
[INFO] [stderr] 281 |       Instruction::OR(target, source) => {
[INFO] [stderr]     |                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `target`
[INFO] [stderr]    --> src/cpu/cpu.rs:312:23
[INFO] [stderr]     |
[INFO] [stderr] 312 |       Instruction::CP(target, source) => {
[INFO] [stderr]     |                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `val`
[INFO] [stderr]    --> src/cpu/cpu.rs:314:39
[INFO] [stderr]     |
[INFO] [stderr] 314 |           ArithmeticSource::A => {let val = self.subtract(self.registers.a); self.pc.wrapping_add(1)},
[INFO] [stderr]     |                                       ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `val`
[INFO] [stderr]    --> src/cpu/cpu.rs:315:39
[INFO] [stderr]     |
[INFO] [stderr] 315 |           ArithmeticSource::B => {let val = self.subtract(self.registers.b); self.pc.wrapping_add(1)},
[INFO] [stderr]     |                                       ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `val`
[INFO] [stderr]    --> src/cpu/cpu.rs:316:39
[INFO] [stderr]     |
[INFO] [stderr] 316 |           ArithmeticSource::C => {let val = self.subtract(self.registers.c); self.pc.wrapping_add(1)},
[INFO] [stderr]     |                                       ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `val`
[INFO] [stderr]    --> src/cpu/cpu.rs:317:39
[INFO] [stderr]     |
[INFO] [stderr] 317 |           ArithmeticSource::D => {let val = self.subtract(self.registers.d); self.pc.wrapping_add(1)},
[INFO] [stderr]     |                                       ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `val`
[INFO] [stderr]    --> src/cpu/cpu.rs:318:39
[INFO] [stderr]     |
[INFO] [stderr] 318 |           ArithmeticSource::E => {let val = self.subtract(self.registers.e); self.pc.wrapping_add(1)},
[INFO] [stderr]     |                                       ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `val`
[INFO] [stderr]    --> src/cpu/cpu.rs:319:39
[INFO] [stderr]     |
[INFO] [stderr] 319 |           ArithmeticSource::H => {let val = self.subtract(self.registers.h); self.pc.wrapping_add(1)},
[INFO] [stderr]     |                                       ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `val`
[INFO] [stderr]    --> src/cpu/cpu.rs:320:39
[INFO] [stderr]     |
[INFO] [stderr] 320 |           ArithmeticSource::L => {let val = self.subtract(self.registers.l); self.pc.wrapping_add(1)},
[INFO] [stderr]     |                                       ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `val`
[INFO] [stderr]    --> src/cpu/cpu.rs:321:40
[INFO] [stderr]     |
[INFO] [stderr] 321 |           ArithmeticSource::HL => {let val = self.subtract(self.bus.read_byte(self.registers.get_hl())); self.pc.wrapping_add(1)},
[INFO] [stderr]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `val`
[INFO] [stderr]    --> src/cpu/cpu.rs:322:40
[INFO] [stderr]     |
[INFO] [stderr] 322 |           ArithmeticSource::D8 => {let val = self.subtract(self.read_next_byte()); self.pc.wrapping_add(2)},
[INFO] [stderr]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `target`
[INFO] [stderr]    --> src/cpu/cpu.rs:344:29
[INFO] [stderr]     |
[INFO] [stderr] 344 |       Instruction::JR(test, target) => {
[INFO] [stderr]     |                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `source`
[INFO] [stderr]    --> src/cpu/cpu.rs:482:34
[INFO] [stderr]     |
[INFO] [stderr] 482 |           LoadType::Byte(target, source) => {
[INFO] [stderr]     |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_source`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `target`
[INFO] [stderr]    --> src/cpu/cpu.rs:825:31
[INFO] [stderr]     |
[INFO] [stderr] 825 |       Instruction::CALL(test, target) => {
[INFO] [stderr]     |                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/cpu/instructions.rs:385:7
[INFO] [stderr]     |
[INFO] [stderr] 385 |       _ => /*todo: add mapping for rest of instructions*/ 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/cpu/instructions.rs:385:7
[INFO] [stderr]     |
[INFO] [stderr] 129 |       0x00 => Some(Instruction::RLC(RotateTarget::B)),
[INFO] [stderr]     |       ---- matches some of the same values
[INFO] [stderr] 130 |       0x01 => Some(Instruction::RLC(RotateTarget::C)),
[INFO] [stderr]     |       ---- matches some of the same values
[INFO] [stderr] 131 |       0x02 => Some(Instruction::RLC(RotateTarget::D)),
[INFO] [stderr]     |       ---- matches some of the same values
[INFO] [stderr] 132 |       0x03 => Some(Instruction::RLC(RotateTarget::E)),
[INFO] [stderr]     |       ---- matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr] 385 |       _ => /*todo: add mapping for rest of instructions*/ None
[INFO] [stderr]     |       ^ ...and 252 other patterns collectively make this unreachable
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `result`
[INFO] [stderr]    --> src/gpu/gpu.rs:469:9
[INFO] [stderr]     |
[INFO] [stderr] 469 |     let result = self.canvas.with_texture_canvas(&mut texture, |texture_canvas| {
[INFO] [stderr]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `mcycles`
[INFO] [stderr]   --> src/main.rs:65:11
[INFO] [stderr]    |
[INFO] [stderr] 65 |       for mcycles in 0..17556 {
[INFO] [stderr]    |           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mcycles`
[INFO] [stderr] 
[INFO] [stderr] warning: constant `VRAM_SIZE` is never used
[INFO] [stderr]   --> src/memory/membus.rs:10:7
[INFO] [stderr]    |
[INFO] [stderr] 10 | const VRAM_SIZE: usize = VRAM_END - VRAM_BEGIN + 1;
[INFO] [stderr]    |       ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variant `Three` is never constructed
[INFO] [stderr]   --> src/gpu/gpu.rs:46:3
[INFO] [stderr]    |
[INFO] [stderr] 42 | enum PPUMode {
[INFO] [stderr]    |      ------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 46 |   Three,
[INFO] [stderr]    |   ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `None` is never constructed
[INFO] [stderr]   --> src/gpu/gpu.rs:55:5
[INFO] [stderr]    |
[INFO] [stderr] 50 | enum TilePixelValue {
[INFO] [stderr]    |      -------------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 55 |     None,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `TilePixelValue` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: function `empty_tile` is never used
[INFO] [stderr]   --> src/gpu/gpu.rs:62:4
[INFO] [stderr]    |
[INFO] [stderr] 62 | fn empty_tile() -> Tile {
[INFO] [stderr]    |    ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `color`, `palette`, `sprite_priority`, and `background_priority` are never read
[INFO] [stderr]   --> src/gpu/gpu.rs:88:3
[INFO] [stderr]    |
[INFO] [stderr] 87 | struct FIFOPixel {
[INFO] [stderr]    |        --------- fields in this struct
[INFO] [stderr] 88 |   color: TilePixelValue,
[INFO] [stderr]    |   ^^^^^
[INFO] [stderr] 89 |   palette: u8,
[INFO] [stderr]    |   ^^^^^^^
[INFO] [stderr] 90 |   sprite_priority: u8,
[INFO] [stderr]    |   ^^^^^^^^^^^^^^^
[INFO] [stderr] 91 |   background_priority: bool,
[INFO] [stderr]    |   ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `STAT` is never constructed
[INFO] [stderr]    --> src/gpu/gpu.rs:141:8
[INFO] [stderr]     |
[INFO] [stderr] 141 | struct STAT { //LCD STATus, io register 0xFF41
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `background_FIFO`, `object_FIFO`, and `i` are never read
[INFO] [stderr]    --> src/gpu/gpu.rs:161:5
[INFO] [stderr]     |
[INFO] [stderr] 145 | pub struct GPU<'a>{
[INFO] [stderr]     |            --- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 161 |     background_FIFO: VecDeque<FIFOPixel>,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 162 |     object_FIFO: VecDeque<FIFOPixel>,
[INFO] [stderr]     |     ^^^^^^^^^^^
[INFO] [stderr] 163 |     i: u8,
[INFO] [stderr]     |     ^
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/cpu/cpu.rs:31:25
[INFO] [stderr]    |
[INFO] [stderr] 31 |   pub fn new(sdlcanvas: &mut sdl2::render::WindowCanvas) -> CPU {
[INFO] [stderr]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^     ^^^ the same lifetime is hidden here
[INFO] [stderr]    |                         |
[INFO] [stderr]    |                         the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 31 |   pub fn new(sdlcanvas: &mut sdl2::render::WindowCanvas) -> CPU<'_> {
[INFO] [stderr]    |                                                                ++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/cpu/cpu.rs:77:7
[INFO] [stderr]    |
[INFO] [stderr] 77 |       writeln!(self.logfile, "{}", cpustate);
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 77 |       let _ = writeln!(self.logfile, "{}", cpustate);
[INFO] [stderr]    |       +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: variable `VBlank` should have a snake case name
[INFO] [stderr]   --> src/cpu/cpu.rs:89:9
[INFO] [stderr]    |
[INFO] [stderr] 89 |         VBlank => {self.pc = 0x40; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1))},
[INFO] [stderr]    |         ^^^^^^ help: convert the identifier to snake case: `vblank`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `LCD` should have a snake case name
[INFO] [stderr]   --> src/cpu/cpu.rs:90:9
[INFO] [stderr]    |
[INFO] [stderr] 90 |         LCD => {self.pc = 0x48; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b10))},
[INFO] [stderr]    |         ^^^ help: convert the identifier to snake case: `lcd`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `Timer` should have a snake case name
[INFO] [stderr]   --> src/cpu/cpu.rs:91:9
[INFO] [stderr]    |
[INFO] [stderr] 91 |         Timer => {self.pc = 0x50; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b100))},
[INFO] [stderr]    |         ^^^^^ help: convert the identifier to snake case: `timer`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `Serial` should have a snake case name
[INFO] [stderr]   --> src/cpu/cpu.rs:92:9
[INFO] [stderr]    |
[INFO] [stderr] 92 |         Serial => {self.pc = 0x58; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b1000))},
[INFO] [stderr]    |         ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `serial`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `Joypad` should have a snake case name
[INFO] [stderr]   --> src/cpu/cpu.rs:93:9
[INFO] [stderr]    |
[INFO] [stderr] 93 |         Joypad => {self.pc = 0x60; self.bus.write_byte(0xFF0F, (self.bus.read_byte(0xFF0F) - 0b10000))},
[INFO] [stderr]    |         ^^^^^^ help: convert the identifier to snake case: `joypad`
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/memory/membus.rs:37:25
[INFO] [stderr]    |
[INFO] [stderr] 37 |   pub fn new(sdlcanvas: &mut sdl2::render::WindowCanvas) -> MemoryBus {
[INFO] [stderr]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                         |
[INFO] [stderr]    |                         the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 37 |   pub fn new(sdlcanvas: &mut sdl2::render::WindowCanvas) -> MemoryBus<'_> {
[INFO] [stderr]    |                                                                      ++++
[INFO] [stderr] 
[INFO] [stderr] warning: structure field `LCDC` should have a snake case name
[INFO] [stderr]    --> src/gpu/gpu.rs:151:9
[INFO] [stderr]     |
[INFO] [stderr] 151 |     pub LCDC: LCDC, //io register 0xFF40
[INFO] [stderr]     |         ^^^^ help: convert the identifier to snake case: `lcdc`
[INFO] [stderr] 
[INFO] [stderr] warning: structure field `SCY` should have a snake case name
[INFO] [stderr]    --> src/gpu/gpu.rs:152:9
[INFO] [stderr]     |
[INFO] [stderr] 152 |     pub SCY: u8, //background viewport y position, io register 0xFF42
[INFO] [stderr]     |         ^^^ help: convert the identifier to snake case (notice the capitalization): `scy`
[INFO] [stderr] 
[INFO] [stderr] warning: structure field `SCX` should have a snake case name
[INFO] [stderr]    --> src/gpu/gpu.rs:153:9
[INFO] [stderr]     |
[INFO] [stderr] 153 |     pub SCX: u8, //background viewport x position, io register 0xFF43
[INFO] [stderr]     |         ^^^ help: convert the identifier to snake case (notice the capitalization): `scx`
[INFO] [stderr] 
[INFO] [stderr] warning: structure field `LY` should have a snake case name
[INFO] [stderr]    --> src/gpu/gpu.rs:154:9
[INFO] [stderr]     |
[INFO] [stderr] 154 |     pub LY: u8,  //LCD Y coordinate, io register 0xFF44 (read-only for cpu)
[INFO] [stderr]     |         ^^ help: convert the identifier to snake case: `ly`
[INFO] [stderr] 
[INFO] [stderr] warning: structure field `LYC` should have a snake case name
[INFO] [stderr]    --> src/gpu/gpu.rs:155:9
[INFO] [stderr]     |
[INFO] [stderr] 155 |     pub LYC: u8, //LY Compare, io register 0xFF45, constantly compared to LY, when equal sets related flag in STAT and (if enabled)...
[INFO] [stderr]     |         ^^^ help: convert the identifier to snake case: `lyc`
[INFO] [stderr] 
[INFO] [stderr] warning: structure field `LX` should have a snake case name
[INFO] [stderr]    --> src/gpu/gpu.rs:156:5
[INFO] [stderr]     |
[INFO] [stderr] 156 |     LX : u8,
[INFO] [stderr]     |     ^^ help: convert the identifier to snake case: `lx`
[INFO] [stderr] 
[INFO] [stderr] warning: structure field `WY` should have a snake case name
[INFO] [stderr]    --> src/gpu/gpu.rs:157:9
[INFO] [stderr]     |
[INFO] [stderr] 157 |     pub WY: u8, //window Y coordinate, io register 0xFF4A
[INFO] [stderr]     |         ^^ help: convert the identifier to snake case (notice the capitalization): `wy`
[INFO] [stderr] 
[INFO] [stderr] warning: structure field `WX` should have a snake case name
[INFO] [stderr]    --> src/gpu/gpu.rs:158:9
[INFO] [stderr]     |
[INFO] [stderr] 158 |     pub WX: u8, //window X coordinate + 7, io register 0xFF4B
[INFO] [stderr]     |         ^^ help: convert the identifier to snake case (notice the capitalization): `wx`
[INFO] [stderr] 
[INFO] [stderr] warning: structure field `background_FIFO` should have a snake case name
[INFO] [stderr]    --> src/gpu/gpu.rs:161:5
[INFO] [stderr]     |
[INFO] [stderr] 161 |     background_FIFO: VecDeque<FIFOPixel>,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `background_fifo`
[INFO] [stderr] 
[INFO] [stderr] warning: structure field `object_FIFO` should have a snake case name
[INFO] [stderr]    --> src/gpu/gpu.rs:162:5
[INFO] [stderr]     |
[INFO] [stderr] 162 |     object_FIFO: VecDeque<FIFOPixel>,
[INFO] [stderr]     |     ^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `object_fifo`
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/gpu/gpu.rs:167:25
[INFO] [stderr]     |
[INFO] [stderr] 167 |   pub fn new(sdlcanvas: &mut sdl2::render::WindowCanvas) -> GPU {
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^     ^^^ the same lifetime is hidden here
[INFO] [stderr]     |                         |
[INFO] [stderr]     |                         the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 167 |   pub fn new(sdlcanvas: &mut sdl2::render::WindowCanvas) -> GPU<'_> {
[INFO] [stderr]     |                                                                ++++
[INFO] [stderr] 
[INFO] [stderr] warning: variable `objectTop` should have a snake case name
[INFO] [stderr]    --> src/gpu/gpu.rs:210:13
[INFO] [stderr]     |
[INFO] [stderr] 210 |         let objectTop = object.ycoord;
[INFO] [stderr]     |             ^^^^^^^^^ help: convert the identifier to snake case: `object_top`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `objectBottom` should have a snake case name
[INFO] [stderr]    --> src/gpu/gpu.rs:211:13
[INFO] [stderr]     |
[INFO] [stderr] 211 |         let objectBottom = object.ycoord + (if self.LCDC.two {16} else {8});
[INFO] [stderr]     |             ^^^^^^^^^^^^ help: convert the identifier to snake case: `object_bottom`
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/gpu/gpu.rs:475:11
[INFO] [stderr]     |
[INFO] [stderr] 475 |           texture_canvas.draw_point(Point::new(lx.into(),ly.into()));
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stderr]     |
[INFO] [stdout] running 0 tests
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stderr]     |
[INFO] [stdout] 
[INFO] [stderr] 475 |           let _ = texture_canvas.draw_point(Point::new(lx.into(),ly.into()));
[INFO] [stderr]     |           +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/gpu/gpu.rs:481:5
[INFO] [stderr]     |
[INFO] [stderr] 481 |     self.canvas.copy(&texture, None, None);
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 481 |     let _ = self.canvas.copy(&texture, None, None);
[INFO] [stderr]     |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: variable `setIndex` should have a snake case name
[INFO] [stderr]    --> src/gpu/gpu.rs:560:9
[INFO] [stderr]     |
[INFO] [stderr] 560 |     let setIndex = index / 4;
[INFO] [stderr]     |         ^^^^^^^^ help: convert the identifier to snake case: `set_index`
[INFO] [stderr] 
[INFO] [stderr] warning: `gbemu` (bin "gbemu" test) generated 93 warnings (run `cargo fix --bin "gbemu" -p gbemu --tests` to apply 59 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.11s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/gbemu-64800b4f797811b8)
[INFO] running `Command { std: "docker" "inspect" "dfdd5178df0c00e2244d0dc3d35463db76d7f5bb247eb8d50a6f149b7eebd35b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dfdd5178df0c00e2244d0dc3d35463db76d7f5bb247eb8d50a6f149b7eebd35b", kill_on_drop: false }`
[INFO] [stdout] dfdd5178df0c00e2244d0dc3d35463db76d7f5bb247eb8d50a6f149b7eebd35b
