[INFO] cloning repository https://github.com/stianeklund/NES
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/stianeklund/NES" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fstianeklund%2FNES", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fstianeklund%2FNES'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e0a0b3ceef3faaa704226e5705c21a63ad483998
[INFO] checking stianeklund/NES against master#bca37a20bd376ce3fd138e7cdee7fe704e0f8814 for pr-139493-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fstianeklund%2FNES" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/stianeklund/NES
[INFO] finished tweaking git repo https://github.com/stianeklund/NES
[INFO] tweaked toml for git repo https://github.com/stianeklund/NES written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/stianeklund/NES on toolchain bca37a20bd376ce3fd138e7cdee7fe704e0f8814
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/stianeklund/NES 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" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded user32-sys v0.1.3
[INFO] [stderr]   Downloaded minifb v0.10.7
[INFO] [stderr]   Downloaded gdi32-sys v0.1.2
[INFO] [stderr]   Downloaded x11-dl v2.14.0
[INFO] [stderr]   Downloaded flexi_logger v0.14.8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e3b7db493c4bd91f24e3ba02c2b77c1f8f0e1b312bafd9b19771e483c803cdd7
[INFO] running `Command { std: "docker" "start" "-a" "e3b7db493c4bd91f24e3ba02c2b77c1f8f0e1b312bafd9b19771e483c803cdd7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e3b7db493c4bd91f24e3ba02c2b77c1f8f0e1b312bafd9b19771e483c803cdd7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e3b7db493c4bd91f24e3ba02c2b77c1f8f0e1b312bafd9b19771e483c803cdd7", kill_on_drop: false }`
[INFO] [stdout] e3b7db493c4bd91f24e3ba02c2b77c1f8f0e1b312bafd9b19771e483c803cdd7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3d2641659c61502c91863ca0d1fda2ca9abbbe6bae864ce0e80120090e74d85a
[INFO] running `Command { std: "docker" "start" "-a" "3d2641659c61502c91863ca0d1fda2ca9abbbe6bae864ce0e80120090e74d85a", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v1.0.0
[INFO] [stderr]    Compiling libc v0.2.69
[INFO] [stderr]    Compiling memchr v2.3.3
[INFO] [stderr]    Compiling pkg-config v0.3.17
[INFO] [stderr]    Compiling cc v1.0.50
[INFO] [stderr]    Compiling log v0.4.8
[INFO] [stderr]     Checking lazy_static v1.4.0
[INFO] [stderr]     Checking regex-syntax v0.6.17
[INFO] [stderr]     Checking cfg-if v0.1.10
[INFO] [stderr]     Checking lazy_static v0.2.11
[INFO] [stderr]     Checking yansi v0.5.0
[INFO] [stderr]     Checking glob v0.3.0
[INFO] [stderr]     Checking thread_local v1.0.1
[INFO] [stderr]    Compiling num-traits v0.2.11
[INFO] [stderr]    Compiling num-integer v0.1.42
[INFO] [stderr]    Compiling x11-dl v2.14.0
[INFO] [stderr]    Compiling minifb v0.10.7
[INFO] [stderr]     Checking time v0.1.43
[INFO] [stderr]     Checking aho-corasick v0.7.10
[INFO] [stderr]     Checking regex v1.3.7
[INFO] [stderr]     Checking chrono v0.4.11
[INFO] [stderr]     Checking flexi_logger v0.14.8
[INFO] [stderr]     Checking nes v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `minifb`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use minifb;
[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: `FrameBuffer`
[INFO] [stdout]  --> src/cpu.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::ppu::{FrameBuffer, Ppu};
[INFO] [stdout]   |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error` and `warn`
[INFO] [stdout]  --> src/cpu.rs:7:18
[INFO] [stdout]   |
[INFO] [stdout] 7 | use log::{debug, error, info, warn};
[INFO] [stdout]   |                  ^^^^^        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ExecutionContext`
[INFO] [stdout]  --> src/interconnect.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::cpu::{ExecutionContext, Registers};
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::ppu::Ppu`
[INFO] [stdout]  --> src/interconnect.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::ppu::Ppu;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Cartridge` and `RomHeader`
[INFO] [stdout]  --> src/memory.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::rom::{Cartridge, RomHeader};
[INFO] [stdout]   |                  ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UpperHex`
[INFO] [stdout]  --> src/memory.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::fmt::{LowerHex, UpperHex};
[INFO] [stdout]   |                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::cpu::StatusRegister`
[INFO] [stdout]  --> src/opcode.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::cpu::StatusRegister;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Scale`
[INFO] [stdout]  --> src/ppu.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use minifb::{Scale, Window, WindowOptions};
[INFO] [stdout]   |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Interconnect`
[INFO] [stdout]  --> src/ppu.rs:5:27
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::interconnect::{Interconnect, MemoryMapper};
[INFO] [stdout]   |                           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::memory::Ram`
[INFO] [stdout]  --> src/rom.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::memory::Ram;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Error`
[INFO] [stdout]  --> src/rom.rs:5:15
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io::{Error, Result};
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RangeTo` and `Range`
[INFO] [stdout]  --> src/rom.rs:7:16
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::ops::{Range, RangeTo};
[INFO] [stdout]   |                ^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LogTarget` and `opt_format`
[INFO] [stdout]   --> src/main.rs:17:36
[INFO] [stdout]    |
[INFO] [stdout] 17 | use flexi_logger::{default_format, opt_format, LogTarget, Logger};
[INFO] [stdout]    |                                    ^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Interconnect`
[INFO] [stdout]   --> src/main.rs:18:20
[INFO] [stdout]    |
[INFO] [stdout] 18 | use interconnect::{Interconnect, MemoryMapper};
[INFO] [stdout]    |                    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug`, `error`, and `info`
[INFO] [stdout]   --> src/main.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | use log::{debug, error, info, warn};
[INFO] [stdout]    |           ^^^^^  ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Read`
[INFO] [stdout]   --> src/main.rs:21:21
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::io::{self, Read};
[INFO] [stdout]    |                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `minifb`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use minifb;
[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: `FrameBuffer`
[INFO] [stdout]  --> src/cpu.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::ppu::{FrameBuffer, Ppu};
[INFO] [stdout]   |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error` and `warn`
[INFO] [stdout]  --> src/cpu.rs:7:18
[INFO] [stdout]   |
[INFO] [stdout] 7 | use log::{debug, error, info, warn};
[INFO] [stdout]   |                  ^^^^^        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ExecutionContext`
[INFO] [stdout]  --> src/interconnect.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::cpu::{ExecutionContext, Registers};
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::ppu::Ppu`
[INFO] [stdout]  --> src/interconnect.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::ppu::Ppu;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Cartridge` and `RomHeader`
[INFO] [stdout]  --> src/memory.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::rom::{Cartridge, RomHeader};
[INFO] [stdout]   |                  ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UpperHex`
[INFO] [stdout]  --> src/memory.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::fmt::{LowerHex, UpperHex};
[INFO] [stdout]   |                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::cpu::StatusRegister`
[INFO] [stdout]  --> src/opcode.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::cpu::StatusRegister;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Scale`
[INFO] [stdout]  --> src/ppu.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use minifb::{Scale, Window, WindowOptions};
[INFO] [stdout]   |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Interconnect`
[INFO] [stdout]  --> src/ppu.rs:5:27
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::interconnect::{Interconnect, MemoryMapper};
[INFO] [stdout]   |                           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::memory::Ram`
[INFO] [stdout]  --> src/rom.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::memory::Ram;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Error`
[INFO] [stdout]  --> src/rom.rs:5:15
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io::{Error, Result};
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RangeTo` and `Range`
[INFO] [stdout]  --> src/rom.rs:7:16
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::ops::{Range, RangeTo};
[INFO] [stdout]   |                ^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LogTarget` and `opt_format`
[INFO] [stdout]   --> src/main.rs:17:36
[INFO] [stdout]    |
[INFO] [stdout] 17 | use flexi_logger::{default_format, opt_format, LogTarget, Logger};
[INFO] [stdout]    |                                    ^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Interconnect`
[INFO] [stdout]   --> src/main.rs:18:20
[INFO] [stdout]    |
[INFO] [stdout] 18 | use interconnect::{Interconnect, MemoryMapper};
[INFO] [stdout]    |                    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug`, `error`, and `info`
[INFO] [stdout]   --> src/main.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | use log::{debug, error, info, warn};
[INFO] [stdout]    |           ^^^^^  ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Read`
[INFO] [stdout]   --> src/main.rs:21:21
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::io::{self, Read};
[INFO] [stdout]    |                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/opcode.rs:121:13
[INFO] [stdout]     |
[INFO] [stdout]  60 |             0x64 => "*NOP",
[INFO] [stdout]     |             ---- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 121 |             0x64 => "DOP",
[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: variable does not need to be mutable
[INFO] [stdout]   --> src/ppu.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let mut window = Window::new(
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `mem` is never read
[INFO] [stdout]  --> src/apu.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct Apu {
[INFO] [stdout]   |            --- field in this struct
[INFO] [stdout] 8 |     pub mem: Vec<u8>,
[INFO] [stdout]   |         ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Apu` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `status` and `cycles` are never read
[INFO] [stdout]   --> src/apu.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Registers {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 21 |     status: u8,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 22 |     frame_counter: u8,
[INFO] [stdout] 23 |     cycles: u8,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Registers` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `imm16`, `brk`, `cli`, `hlt`, and `sloa` are never used
[INFO] [stdout]    --> src/cpu.rs:217:8
[INFO] [stdout]     |
[INFO] [stdout] 164 | impl ExecutionContext {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 217 |     fn imm16(&self) -> AddressMode<u16> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 659 |     fn brk(&mut self) -> AddressMode<u16> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 692 |     fn cli(&mut self, mode: AddressMode<u16>) -> AddressMode<u16> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 773 |     fn hlt(&self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 943 |     fn sloa(&mut self, value: AddressMode<u16>) -> AddressMode<u16> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `byte`, `address`, and `lookup` are never read
[INFO] [stdout]   --> src/interconnect.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct AddressMatch {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 18 |     byte: u8,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 19 |     address: u16,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 20 |     lookup: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Interconnect` is never constructed
[INFO] [stdout]   --> src/interconnect.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct Interconnect {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `default` is never used
[INFO] [stdout]   --> src/interconnect.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 58 | impl Interconnect {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 59 |     pub fn default() -> Box<Interconnect> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Register` is never used
[INFO] [stdout]   --> src/opcode.rs:20:10
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub enum Register {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `default` is never used
[INFO] [stdout]   --> src/opcode.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl Instruction {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 43 |     pub fn default() -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/ppu.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Ppu {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub addr: Vec<u16>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 14 |     pub reg: Registers,
[INFO] [stdout] 15 |     pub cycle: u8,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 16 |     pub scanline: u8,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 17 |     pub nametable: Vec<u8>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 18 |     pub attribute_table: Vec<u8>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 19 |     pub vblank: bool,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 20 |     pub buffer: Vec<u16>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FrameBuffer` is never constructed
[INFO] [stdout]   --> src/ppu.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct FrameBuffer {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `new` is never used
[INFO] [stdout]   --> src/ppu.rs:39:8
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub fn new() -> FrameBuffer {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PpuDataBus` is never constructed
[INFO] [stdout]    --> src/ppu.rs:108:12
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub struct PpuDataBus {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/rom.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct RomHeader {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 31 |     pub magic: [u8; 4],
[INFO] [stdout] 32 |     sram: u8,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 33 |     pub prg_rom_page_size: usize,
[INFO] [stdout] 34 |     pub chr_rom_page_size: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 35 |     pub flags_6: u8,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 36 |     flags_7: u8,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 37 |     pub prg_ram_page_size: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 38 |     pub chr_ram_page_size: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 39 |     flags_9: u8,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 40 |     flags_10: u8,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 41 |     pub zero: [u8; 5],
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RomHeader` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `chr` and `rom` are never read
[INFO] [stdout]    --> src/rom.rs:103:9
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub struct Cartridge {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub chr: Vec<u8>,      // Copy of the games pattern table ROM or RAM for save states.
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 104 |     pub rom: Vec<u8>,      // Temporary copy of ROM contents
[INFO] [stdout]     |         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Cartridge` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `mask_addr`, `retrieve_mapper_id`, and `read_rom` are never used
[INFO] [stdout]    --> src/rom.rs:118:8
[INFO] [stdout]     |
[INFO] [stdout] 108 | impl Cartridge {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 118 |     fn mask_addr(&self, addr: u16) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn retrieve_mapper_id(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub fn read_rom(&mut self, file: &str) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/opcode.rs:121:13
[INFO] [stdout]     |
[INFO] [stdout]  60 |             0x64 => "*NOP",
[INFO] [stdout]     |             ---- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 121 |             0x64 => "DOP",
[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: variable does not need to be mutable
[INFO] [stdout]   --> src/ppu.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let mut window = Window::new(
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/ppu.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 | /         writeln!(
[INFO] [stdout] 137 | |             f,
[INFO] [stdout] 138 | |             "{}\t{}\t{}\t{}\t{}\t{}{}",
[INFO] [stdout] 139 | |             "CTRL", "MASK", "OAM", "DATA", "SCROLL", "ADDR\t", "DMA\t"
[INFO] [stdout] 140 | |         );
[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] 136 |         let _ = writeln!(
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `mem` is never read
[INFO] [stdout]  --> src/apu.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct Apu {
[INFO] [stdout]   |            --- field in this struct
[INFO] [stdout] 8 |     pub mem: Vec<u8>,
[INFO] [stdout]   |         ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Apu` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `status` and `cycles` are never read
[INFO] [stdout]   --> src/apu.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Registers {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 21 |     status: u8,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 22 |     frame_counter: u8,
[INFO] [stdout] 23 |     cycles: u8,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Registers` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `imm16`, `brk`, `cli`, `hlt`, and `sloa` are never used
[INFO] [stdout]    --> src/cpu.rs:217:8
[INFO] [stdout]     |
[INFO] [stdout] 164 | impl ExecutionContext {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 217 |     fn imm16(&self) -> AddressMode<u16> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 659 |     fn brk(&mut self) -> AddressMode<u16> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 692 |     fn cli(&mut self, mode: AddressMode<u16>) -> AddressMode<u16> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 773 |     fn hlt(&self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 943 |     fn sloa(&mut self, value: AddressMode<u16>) -> AddressMode<u16> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `byte`, `address`, and `lookup` are never read
[INFO] [stdout]   --> src/interconnect.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct AddressMatch {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 18 |     byte: u8,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 19 |     address: u16,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 20 |     lookup: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Interconnect` is never constructed
[INFO] [stdout]   --> src/interconnect.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct Interconnect {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `default` is never used
[INFO] [stdout]   --> src/interconnect.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 58 | impl Interconnect {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 59 |     pub fn default() -> Box<Interconnect> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Register` is never used
[INFO] [stdout]   --> src/opcode.rs:20:10
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub enum Register {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `default` is never used
[INFO] [stdout]   --> src/opcode.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl Instruction {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 43 |     pub fn default() -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/ppu.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Ppu {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub addr: Vec<u16>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 14 |     pub reg: Registers,
[INFO] [stdout] 15 |     pub cycle: u8,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 16 |     pub scanline: u8,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 17 |     pub nametable: Vec<u8>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 18 |     pub attribute_table: Vec<u8>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 19 |     pub vblank: bool,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 20 |     pub buffer: Vec<u16>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FrameBuffer` is never constructed
[INFO] [stdout]   --> src/ppu.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct FrameBuffer {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `new` is never used
[INFO] [stdout]   --> src/ppu.rs:39:8
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub fn new() -> FrameBuffer {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PpuDataBus` is never constructed
[INFO] [stdout]    --> src/ppu.rs:108:12
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub struct PpuDataBus {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/rom.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct RomHeader {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 31 |     pub magic: [u8; 4],
[INFO] [stdout] 32 |     sram: u8,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 33 |     pub prg_rom_page_size: usize,
[INFO] [stdout] 34 |     pub chr_rom_page_size: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 35 |     pub flags_6: u8,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 36 |     flags_7: u8,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 37 |     pub prg_ram_page_size: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 38 |     pub chr_ram_page_size: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 39 |     flags_9: u8,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 40 |     flags_10: u8,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 41 |     pub zero: [u8; 5],
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RomHeader` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `chr` and `rom` are never read
[INFO] [stdout]    --> src/rom.rs:103:9
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub struct Cartridge {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub chr: Vec<u8>,      // Copy of the games pattern table ROM or RAM for save states.
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 104 |     pub rom: Vec<u8>,      // Temporary copy of ROM contents
[INFO] [stdout]     |         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Cartridge` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `mask_addr`, `retrieve_mapper_id`, and `read_rom` are never used
[INFO] [stdout]    --> src/rom.rs:118:8
[INFO] [stdout]     |
[INFO] [stdout] 108 | impl Cartridge {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 118 |     fn mask_addr(&self, addr: u16) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn retrieve_mapper_id(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub fn read_rom(&mut self, file: &str) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/ppu.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 | /         writeln!(
[INFO] [stdout] 137 | |             f,
[INFO] [stdout] 138 | |             "{}\t{}\t{}\t{}\t{}\t{}{}",
[INFO] [stdout] 139 | |             "CTRL", "MASK", "OAM", "DATA", "SCROLL", "ADDR\t", "DMA\t"
[INFO] [stdout] 140 | |         );
[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] 136 |         let _ = writeln!(
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.49s
[INFO] running `Command { std: "docker" "inspect" "3d2641659c61502c91863ca0d1fda2ca9abbbe6bae864ce0e80120090e74d85a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3d2641659c61502c91863ca0d1fda2ca9abbbe6bae864ce0e80120090e74d85a", kill_on_drop: false }`
[INFO] [stdout] 3d2641659c61502c91863ca0d1fda2ca9abbbe6bae864ce0e80120090e74d85a
