[INFO] cloning repository https://github.com/sorakoro/nes-emu
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/sorakoro/nes-emu" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsorakoro%2Fnes-emu", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsorakoro%2Fnes-emu'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 3fc1bfe12c0336a992269842409787eaa1d263a7
[INFO] checking sorakoro/nes-emu against try#59a256151e578f525a26127f2c3e3a6c7e2982ca for pr-149291-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsorakoro%2Fnes-emu" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/sorakoro/nes-emu
[INFO] finished tweaking git repo https://github.com/sorakoro/nes-emu
[INFO] tweaked toml for git repo https://github.com/sorakoro/nes-emu written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/sorakoro/nes-emu on toolchain 59a256151e578f525a26127f2c3e3a6c7e2982ca
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+59a256151e578f525a26127f2c3e3a6c7e2982ca" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/sorakoro/nes-emu 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" "+59a256151e578f525a26127f2c3e3a6c7e2982ca" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:94a0c148923f5b2b52a63ef0eeb1882ad339ab61bce784c8077cbe41c61feb6c" "/opt/rustwide/cargo-home/bin/cargo" "+59a256151e578f525a26127f2c3e3a6c7e2982ca" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 3f9532bc8ed96c1f96b4bddd0731de0561763affd7b530d151420c2946f79973
[INFO] running `Command { std: "docker" "start" "-a" "3f9532bc8ed96c1f96b4bddd0731de0561763affd7b530d151420c2946f79973", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3f9532bc8ed96c1f96b4bddd0731de0561763affd7b530d151420c2946f79973", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3f9532bc8ed96c1f96b4bddd0731de0561763affd7b530d151420c2946f79973", kill_on_drop: false }`
[INFO] [stdout] 3f9532bc8ed96c1f96b4bddd0731de0561763affd7b530d151420c2946f79973
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:94a0c148923f5b2b52a63ef0eeb1882ad339ab61bce784c8077cbe41c61feb6c" "/opt/rustwide/cargo-home/bin/cargo" "+59a256151e578f525a26127f2c3e3a6c7e2982ca" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e36cc33020f82d4479ab01fa21c2becac8a869db67cd0a86a8d9f354c3c80958
[INFO] running `Command { std: "docker" "start" "-a" "e36cc33020f82d4479ab01fa21c2becac8a869db67cd0a86a8d9f354c3c80958", kill_on_drop: false }`
[INFO] [stderr]     Checking nes-emu v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/ppu.rs:63:36
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub fn write_to_oam(&mut self, value: u8) {
[INFO] [stdout]    |                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/ppu.rs:63:36
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub fn write_to_oam(&mut self, value: u8) {
[INFO] [stdout]    |                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Bus` is never constructed
[INFO] [stdout]  --> src/bus.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Bus {
[INFO] [stdout]   |            ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `write`, and `read` are never used
[INFO] [stdout]   --> src/bus.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl Bus {
[INFO] [stdout]    | -------- associated items in this implementation
[INFO] [stdout] 10 |     pub fn new(cart: Cartridge, ppu: PPU) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn write(&mut self, addr: u16, value: u8) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn read(&mut self, addr: u16) -> u8 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NES_HEADER_SIZE` is never used
[INFO] [stdout]  --> src/cart.rs:1:7
[INFO] [stdout]   |
[INFO] [stdout] 1 | const NES_HEADER_SIZE: usize = 0x0010;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NES_TAG` is never used
[INFO] [stdout]  --> src/cart.rs:2:7
[INFO] [stdout]   |
[INFO] [stdout] 2 | const NES_TAG: [u8; 4] = [0x4E, 0x45, 0x53, 0x1A];
[INFO] [stdout]   |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Bus` is never constructed
[INFO] [stdout]  --> src/bus.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Bus {
[INFO] [stdout]   |            ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PROGRAM_ROM_PAGE_SIZE` is never used
[INFO] [stdout]  --> src/cart.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | const PROGRAM_ROM_PAGE_SIZE: usize = 0x4000;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `write`, and `read` are never used
[INFO] [stdout]   --> src/bus.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl Bus {
[INFO] [stdout]    | -------- associated items in this implementation
[INFO] [stdout] 10 |     pub fn new(cart: Cartridge, ppu: PPU) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn write(&mut self, addr: u16, value: u8) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn read(&mut self, addr: u16) -> u8 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NES_HEADER_SIZE` is never used
[INFO] [stdout]  --> src/cart.rs:1:7
[INFO] [stdout]   |
[INFO] [stdout] 1 | const NES_HEADER_SIZE: usize = 0x0010;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CHARACTER_ROM_PAGE_SIZE` is never used
[INFO] [stdout]  --> src/cart.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const CHARACTER_ROM_PAGE_SIZE: usize = 0x2000;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NES_TAG` is never used
[INFO] [stdout]  --> src/cart.rs:2:7
[INFO] [stdout]   |
[INFO] [stdout] 2 | const NES_TAG: [u8; 4] = [0x4E, 0x45, 0x53, 0x1A];
[INFO] [stdout]   |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cartridge` is never constructed
[INFO] [stdout]  --> src/cart.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Cartridge {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PROGRAM_ROM_PAGE_SIZE` is never used
[INFO] [stdout]  --> src/cart.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | const PROGRAM_ROM_PAGE_SIZE: usize = 0x4000;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CHARACTER_ROM_PAGE_SIZE` is never used
[INFO] [stdout]  --> src/cart.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const CHARACTER_ROM_PAGE_SIZE: usize = 0x2000;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `read_program_rom` are never used
[INFO] [stdout]   --> src/cart.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Cartridge {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 14 |     fn new(raw: &Vec<u8>) -> Result<Cartridge, String> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn read_program_rom(&self, mut addr: u16) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cartridge` is never constructed
[INFO] [stdout]  --> src/cart.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Cartridge {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PPU` is never constructed
[INFO] [stdout]  --> src/ppu.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct PPU {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `read_program_rom` are never used
[INFO] [stdout]   --> src/cart.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Cartridge {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 14 |     fn new(raw: &Vec<u8>) -> Result<Cartridge, String> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn read_program_rom(&self, mut addr: u16) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PPU` is never constructed
[INFO] [stdout]  --> src/ppu.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct PPU {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/ppu.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl PPU {
[INFO] [stdout]    | -------- associated items in this implementation
[INFO] [stdout] 17 |     const CYCLES_PER_SCANLINE: usize = 341;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 18 |
[INFO] [stdout] 19 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn run(&mut self, cycles: usize) -> bool {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn write_to_ctrl(&mut self, value: u8) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn write_to_mask(&mut self, value: u8) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn read_from_status(&self) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn write_to_vram_addr(&mut self, value: u8) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn write_to_oam_addr(&mut self, addr: u8) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn write_to_oam(&mut self, value: u8) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn write_to_vram(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub fn read_from_oam(&mut self) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub fn read_from_vram(&mut self) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AddrRegister` is never constructed
[INFO] [stdout]  --> src/ppu/registers/addr.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct AddrRegister {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `read`, `write`, `increment`, `reset_latch`, and `set` are never used
[INFO] [stdout]   --> src/ppu/registers/addr.rs:7:12
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl AddrRegister {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout]  7 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub fn read(&self) -> u16 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn write(&mut self, value: u8) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn increment(&mut self, value: u8) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn reset_latch(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     fn set(&mut self, value: u16) {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/ppu.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl PPU {
[INFO] [stdout]    | -------- associated items in this implementation
[INFO] [stdout] 17 |     const CYCLES_PER_SCANLINE: usize = 341;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 18 |
[INFO] [stdout] 19 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn run(&mut self, cycles: usize) -> bool {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn write_to_ctrl(&mut self, value: u8) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn write_to_mask(&mut self, value: u8) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn read_from_status(&self) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn write_to_vram_addr(&mut self, value: u8) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn write_to_oam_addr(&mut self, addr: u8) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn write_to_oam(&mut self, value: u8) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn write_to_vram(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub fn read_from_oam(&mut self) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub fn read_from_vram(&mut self) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CtrlRegister` is never constructed
[INFO] [stdout]  --> src/ppu/registers/ctrl.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct CtrlRegister {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AddrRegister` is never constructed
[INFO] [stdout]  --> src/ppu/registers/addr.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct AddrRegister {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/ppu/registers/ctrl.rs:6:11
[INFO] [stdout]    |
[INFO] [stdout]  5 | impl CtrlRegister {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout]  6 |     const BASE_NAMETABLE_ADDR_0: u8 = 0b0000_0000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  7 |     const BASE_NAMETABLE_ADDR_1: u8 = 0b0000_0001;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  8 |     const BASE_NAMETABLE_ADDR_2: u8 = 0b0000_0010;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  9 |     const BASE_NAMETABLE_ADDR_3: u8 = 0b0000_0011;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 10 |     const VRAM_ADDR_INCREMENT: u8 = 0b0000_0100;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     const SPRITE_PATTERN_TABLE_ADDR: u8 = 0b0000_1000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 12 |     const BACKGROUND_PATTERN_TABLE_ADDR: u8 = 0b0001_0000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     const SPRITE_SIZE: u8 = 0b0010_0000;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 14 |     const VBLANK_NMI_ENABLE: u8 = 0b1000_0000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 15 |
[INFO] [stdout] 16 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn write(&mut self, value: u8) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn vram_addr_increment(&self) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn generate_vblank_nmi(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MaskRegister` is never constructed
[INFO] [stdout]  --> src/ppu/registers/mask.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct MaskRegister {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `read`, `write`, `increment`, `reset_latch`, and `set` are never used
[INFO] [stdout]   --> src/ppu/registers/addr.rs:7:12
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl AddrRegister {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout]  7 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub fn read(&self) -> u16 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn write(&mut self, value: u8) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn increment(&mut self, value: u8) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn reset_latch(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     fn set(&mut self, value: u16) {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/ppu/registers/mask.rs:6:11
[INFO] [stdout]    |
[INFO] [stdout]  5 | impl MaskRegister {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout]  6 |     const GREYSCALE: u8 = 0b0000_0000;
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout]  7 |     const SHOW_BACKGROUND_IN_LEFTMOST_8_PIXELS_OF_SCREEN: u8 = 0b0000_0010;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  8 |     const SHOW_SPRITES_IN_LEFTMOST_8_PIXELS_OF_SCREEN: u8 = 0b0000_0100;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  9 |     const ENABLE_BACKGROUND_RENDERING: u8 = 0b0000_1000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 10 |     const ENABLE_SPRITE_RENDERING: u8 = 0b0001_0000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     const EMPHASIZE_RED: u8 = 0b0010_0000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 12 |     const EMPHASIZE_GREEN: u8 = 0b0100_0000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     const EMPHASIZE_BLUE: u8 = 0b1000_0000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 14 |
[INFO] [stdout] 15 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn write(&mut self, value: u8) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CtrlRegister` is never constructed
[INFO] [stdout]  --> src/ppu/registers/ctrl.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct CtrlRegister {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OAMRegister` is never constructed
[INFO] [stdout]  --> src/ppu/registers/oam.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct OAMRegister {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `write` are never used
[INFO] [stdout]   --> src/ppu/registers/oam.rs:6:12
[INFO] [stdout]    |
[INFO] [stdout]  5 | impl OAMRegister {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout]  6 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 10 |     pub fn write(&mut self, value: u8) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StatusRegister` is never constructed
[INFO] [stdout]  --> src/ppu/registers/status.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct StatusRegister {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `PPU_OPEN_BUS`, `SPRITE_OVERFLOW_FLAG`, `SPRITE_ZERO_HIT_FLAG`, `VBLANK_FLAG`, `new`, and `read` are never used
[INFO] [stdout]   --> src/ppu/registers/status.rs:6:11
[INFO] [stdout]    |
[INFO] [stdout]  5 | impl StatusRegister {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout]  6 |     const PPU_OPEN_BUS: u8 = 0b0001_1111;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout]  7 |     const SPRITE_OVERFLOW_FLAG: u8 = 0b0010_0000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  8 |     const SPRITE_ZERO_HIT_FLAG: u8 = 0b0100_0000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  9 |     const VBLANK_FLAG: u8 = 0b1000_0000;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 10 |
[INFO] [stdout] 11 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub fn read(&self) -> u8 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/ppu/registers/ctrl.rs:6:11
[INFO] [stdout]    |
[INFO] [stdout]  5 | impl CtrlRegister {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout]  6 |     const BASE_NAMETABLE_ADDR_0: u8 = 0b0000_0000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  7 |     const BASE_NAMETABLE_ADDR_1: u8 = 0b0000_0001;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  8 |     const BASE_NAMETABLE_ADDR_2: u8 = 0b0000_0010;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  9 |     const BASE_NAMETABLE_ADDR_3: u8 = 0b0000_0011;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 10 |     const VRAM_ADDR_INCREMENT: u8 = 0b0000_0100;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     const SPRITE_PATTERN_TABLE_ADDR: u8 = 0b0000_1000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 12 |     const BACKGROUND_PATTERN_TABLE_ADDR: u8 = 0b0001_0000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     const SPRITE_SIZE: u8 = 0b0010_0000;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 14 |     const VBLANK_NMI_ENABLE: u8 = 0b1000_0000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 15 |
[INFO] [stdout] 16 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn write(&mut self, value: u8) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn vram_addr_increment(&self) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn generate_vblank_nmi(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MaskRegister` is never constructed
[INFO] [stdout]  --> src/ppu/registers/mask.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct MaskRegister {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/ppu/registers/mask.rs:6:11
[INFO] [stdout]    |
[INFO] [stdout]  5 | impl MaskRegister {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout]  6 |     const GREYSCALE: u8 = 0b0000_0000;
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout]  7 |     const SHOW_BACKGROUND_IN_LEFTMOST_8_PIXELS_OF_SCREEN: u8 = 0b0000_0010;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  8 |     const SHOW_SPRITES_IN_LEFTMOST_8_PIXELS_OF_SCREEN: u8 = 0b0000_0100;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  9 |     const ENABLE_BACKGROUND_RENDERING: u8 = 0b0000_1000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 10 |     const ENABLE_SPRITE_RENDERING: u8 = 0b0001_0000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     const EMPHASIZE_RED: u8 = 0b0010_0000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 12 |     const EMPHASIZE_GREEN: u8 = 0b0100_0000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     const EMPHASIZE_BLUE: u8 = 0b1000_0000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 14 |
[INFO] [stdout] 15 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn write(&mut self, value: u8) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OAMRegister` is never constructed
[INFO] [stdout]  --> src/ppu/registers/oam.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct OAMRegister {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `write` are never used
[INFO] [stdout]   --> src/ppu/registers/oam.rs:6:12
[INFO] [stdout]    |
[INFO] [stdout]  5 | impl OAMRegister {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout]  6 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 10 |     pub fn write(&mut self, value: u8) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StatusRegister` is never constructed
[INFO] [stdout]  --> src/ppu/registers/status.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct StatusRegister {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `PPU_OPEN_BUS`, `SPRITE_OVERFLOW_FLAG`, `SPRITE_ZERO_HIT_FLAG`, `VBLANK_FLAG`, `new`, and `read` are never used
[INFO] [stdout]   --> src/ppu/registers/status.rs:6:11
[INFO] [stdout]    |
[INFO] [stdout]  5 | impl StatusRegister {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout]  6 |     const PPU_OPEN_BUS: u8 = 0b0001_1111;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout]  7 |     const SPRITE_OVERFLOW_FLAG: u8 = 0b0010_0000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  8 |     const SPRITE_ZERO_HIT_FLAG: u8 = 0b0100_0000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  9 |     const VBLANK_FLAG: u8 = 0b1000_0000;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 10 |
[INFO] [stdout] 11 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub fn read(&self) -> u8 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.06s
[INFO] running `Command { std: "docker" "inspect" "e36cc33020f82d4479ab01fa21c2becac8a869db67cd0a86a8d9f354c3c80958", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e36cc33020f82d4479ab01fa21c2becac8a869db67cd0a86a8d9f354c3c80958", kill_on_drop: false }`
[INFO] [stdout] e36cc33020f82d4479ab01fa21c2becac8a869db67cd0a86a8d9f354c3c80958
