[INFO] cloning repository https://github.com/dacid44/nes_rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dacid44/nes_rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdacid44%2Fnes_rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdacid44%2Fnes_rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 9eea161ad102d59d47da65c5e441a0343e30b02c
[INFO] checking dacid44/nes_rs against try#b1f2594eac607c1f051534800237eeedb5590a49 for pr-139493-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdacid44%2Fnes_rs" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] [stderr] Updating files:  40% (67/164)
Updating files:  41% (68/164)
Updating files:  42% (69/164)
Updating files:  43% (71/164)
Updating files:  44% (73/164)
Updating files:  45% (74/164)
Updating files:  46% (76/164)
Updating files:  47% (78/164)
Updating files:  48% (79/164)
Updating files:  49% (81/164)
Updating files:  50% (82/164)
Updating files:  51% (84/164)
Updating files:  52% (86/164)
Updating files:  53% (87/164)
Updating files:  54% (89/164)
Updating files:  55% (91/164)
Updating files:  56% (92/164)
Updating files:  57% (94/164)
Updating files:  58% (96/164)
Updating files:  59% (97/164)
Updating files:  60% (99/164)
Updating files:  61% (101/164)
Updating files:  62% (102/164)
Updating files:  63% (104/164)
Updating files:  64% (105/164)
Updating files:  65% (107/164)
Updating files:  66% (109/164)
Updating files:  67% (110/164)
Updating files:  68% (112/164)
Updating files:  69% (114/164)
Updating files:  70% (115/164)
Updating files:  71% (117/164)
Updating files:  72% (119/164)
Updating files:  73% (120/164)
Updating files:  74% (122/164)
Updating files:  75% (123/164)
Updating files:  76% (125/164)
Updating files:  77% (127/164)
Updating files:  78% (128/164)
Updating files:  79% (130/164)
Updating files:  80% (132/164)
Updating files:  81% (133/164)
Updating files:  81% (134/164)
Updating files:  82% (135/164)
Updating files:  83% (137/164)
Updating files:  84% (138/164)
Updating files:  85% (140/164)
Updating files:  86% (142/164)
Updating files:  87% (143/164)
Updating files:  88% (145/164)
Updating files:  89% (146/164)
Updating files:  90% (148/164)
Updating files:  91% (150/164)
Updating files:  92% (151/164)
Updating files:  93% (153/164)
Updating files:  94% (155/164)
Updating files:  95% (156/164)
Updating files:  96% (158/164)
Updating files:  97% (160/164)
Updating files:  98% (161/164)
Updating files:  99% (163/164)
Updating files: 100% (164/164)
Updating files: 100% (164/164), done.
[INFO] started tweaking git repo https://github.com/dacid44/nes_rs
[INFO] finished tweaking git repo https://github.com/dacid44/nes_rs
[INFO] tweaked toml for git repo https://github.com/dacid44/nes_rs written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/dacid44/nes_rs on toolchain b1f2594eac607c1f051534800237eeedb5590a49
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b1f2594eac607c1f051534800237eeedb5590a49" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/dacid44/nes_rs 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" "+b1f2594eac607c1f051534800237eeedb5590a49" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+b1f2594eac607c1f051534800237eeedb5590a49" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] b6314a1b01648a6c27c135ec4dd53554baad7344ac48f3a7be79f91bb699e754
[INFO] running `Command { std: "docker" "start" "-a" "b6314a1b01648a6c27c135ec4dd53554baad7344ac48f3a7be79f91bb699e754", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b6314a1b01648a6c27c135ec4dd53554baad7344ac48f3a7be79f91bb699e754", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b6314a1b01648a6c27c135ec4dd53554baad7344ac48f3a7be79f91bb699e754", kill_on_drop: false }`
[INFO] [stdout] b6314a1b01648a6c27c135ec4dd53554baad7344ac48f3a7be79f91bb699e754
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+b1f2594eac607c1f051534800237eeedb5590a49" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6659a1500840aff18886dc02a3e756e5e4747c11d3f768aa942d7213107aede8
[INFO] running `Command { std: "docker" "start" "-a" "6659a1500840aff18886dc02a3e756e5e4747c11d3f768aa942d7213107aede8", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.79
[INFO] [stderr]    Compiling version-compare v0.1.1
[INFO] [stderr]    Compiling sdl2 v0.36.0
[INFO] [stderr]     Checking getrandom v0.2.12
[INFO] [stderr]    Compiling serde_json v1.0.115
[INFO] [stderr]     Checking spin_sleep v1.2.0
[INFO] [stderr]     Checking bitfield v0.14.0
[INFO] [stderr]     Checking either v1.10.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling sdl2-sys v0.36.0
[INFO] [stderr]     Checking rayon v1.10.0
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling quote v1.0.35
[INFO] [stderr]    Compiling syn v2.0.57
[INFO] [stderr]    Compiling serde_derive v1.0.197
[INFO] [stderr]    Compiling enum-map-derive v0.17.0
[INFO] [stderr]    Compiling enum_dispatch v0.3.13
[INFO] [stderr]     Checking enum-map v2.7.3
[INFO] [stderr]     Checking nes_rs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `enum_map`
[INFO] [stdout]  --> src/cpu.rs:7:16
[INFO] [stdout]   |
[INFO] [stdout] 7 | use enum_map::{enum_map, EnumMap};
[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: `array`
[INFO] [stdout]  --> src/ppu.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::{array, mem, ops::RangeInclusive};
[INFO] [stdout]   |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Bus`
[INFO] [stdout]   --> src/cpu.rs:10:18
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::bus::{Bus, CpuBus, FlatRam};
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Flags`
[INFO] [stdout]  --> src/ppu.rs:2:26
[INFO] [stdout]   |
[INFO] [stdout] 2 | use bitflags::{bitflags, Flags};
[INFO] [stdout]   |                          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]     --> src/cpu.rs:1080:23
[INFO] [stdout]      |
[INFO] [stdout] 1080 |     fn eor(&mut self, mode: AddressingMode, _cycle: u8) {
[INFO] [stdout]      |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]     --> src/cpu.rs:1112:23
[INFO] [stdout]      |
[INFO] [stdout] 1112 |     fn jsr(&mut self, mode: AddressingMode, cycle: u8) {
[INFO] [stdout]      |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]     --> src/cpu.rs:1133:23
[INFO] [stdout]      |
[INFO] [stdout] 1133 |     fn lda(&mut self, mode: AddressingMode, _cycle: u8) {
[INFO] [stdout]      |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]     --> src/cpu.rs:1141:23
[INFO] [stdout]      |
[INFO] [stdout] 1141 |     fn ldx(&mut self, mode: AddressingMode, _cycle: u8) {
[INFO] [stdout]      |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]     --> src/cpu.rs:1149:23
[INFO] [stdout]      |
[INFO] [stdout] 1149 |     fn ldy(&mut self, mode: AddressingMode, _cycle: u8) {
[INFO] [stdout]      |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hardcoded_addr`
[INFO] [stdout]   --> src/rom/uxrom.rs:42:21
[INFO] [stdout]    |
[INFO] [stdout] 42 |                 let hardcoded_addr = addr as usize - 0xC000 + (7 * 0x4000);
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hardcoded_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GAME_CODE` is never used
[INFO] [stdout]   --> src/main.rs:28:7
[INFO] [stdout]    |
[INFO] [stdout] 28 | const GAME_CODE: &[u8] = &[
[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 `TEST_CODE` is never used
[INFO] [stdout]   --> src/main.rs:51:7
[INFO] [stdout]    |
[INFO] [stdout] 51 | const TEST_CODE: &[u8] = include_bytes!("../roms/6502_functional_test.bin");
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `transform_color` is never used
[INFO] [stdout]    --> src/main.rs:205:4
[INFO] [stdout]     |
[INFO] [stdout] 205 | fn transform_color(byte: u8) -> Color {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_screen_state` is never used
[INFO] [stdout]    --> src/main.rs:219:4
[INFO] [stdout]     |
[INFO] [stdout] 219 | fn read_screen_state(cpu: &mut Cpu<impl CpuBus>, frame: &mut [u8; 32 * 32 * 3]) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `run_cycle` is never used
[INFO] [stdout]   --> src/bus.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait CpuBus: Bus {
[INFO] [stdout]    |           ------ method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 15 |     fn run_cycle(&mut self) {}
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `peek` is never used
[INFO] [stdout]   --> src/bus.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub trait Bus {
[INFO] [stdout]    |           --- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 24 |     fn peek(&self, addr: u16) -> Option<u8>;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FlatRam` is never constructed
[INFO] [stdout]   --> src/bus.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct FlatRam {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `load` are never used
[INFO] [stdout]   --> src/bus.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl FlatRam {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 33 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn load(&mut self, program: &[u8]) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MEMORY_SIZE` is never used
[INFO] [stdout]   --> src/cpu.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const MEMORY_SIZE: usize = 0x10000;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PROGRAM_START` is never used
[INFO] [stdout]   --> src/cpu.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub const PROGRAM_START: u16 = 0xC000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PROGRAM_START_LOC` is never used
[INFO] [stdout]   --> src/cpu.rs:16:11
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub const PROGRAM_START_LOC: u16 = 0xFFFC;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STACK_INIT` is never used
[INFO] [stdout]   --> src/cpu.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const STACK_INIT: u8 = 0xFF;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `load_and_run` and `load` are never used
[INFO] [stdout]   --> src/cpu.rs:78:12
[INFO] [stdout]    |
[INFO] [stdout] 77 | impl Cpu<FlatRam> {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] 78 |     pub fn load_and_run(&mut self, program: &[u8]) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn load(&mut self, program: &[u8]) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/cpu.rs:319:12
[INFO] [stdout]     |
[INFO] [stdout]  89 | impl<B: CpuBus> Cpu<B> {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 319 |     pub fn state_string(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 338 |     fn format_next_opcode(&self) -> (String, String) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 477 |     pub fn trace(&self) -> String {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 506 |     pub fn run(&mut self) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 514 |     pub fn run_instruction(&mut self) -> ControlFlow<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 626 |     fn stack_push_u16(&mut self, data: u16) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 632 |     fn stack_pull_u16(&mut self) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NONE` is never used
[INFO] [stdout]   --> src/ppu.rs:47:15
[INFO] [stdout]    |
[INFO] [stdout] 47 |         const NONE: Option<(usize, RangeInclusive<u8>)> = None;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `HORIZONTAL_BITS` is never used
[INFO] [stdout]    --> src/ppu.rs:484:11
[INFO] [stdout]     |
[INFO] [stdout] 483 | impl Registers {
[INFO] [stdout]     | -------------- associated constant in this implementation
[INFO] [stdout] 484 |     const HORIZONTAL_BITS: u16 = 0b0000100_00011111;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mirror_vram_addr` is never used
[INFO] [stdout]    --> src/ppu.rs:809:4
[INFO] [stdout]     |
[INFO] [stdout] 809 | fn mirror_vram_addr(addr: u16, mirroring: Mirroring) -> u16 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `nametable_offset` is never used
[INFO] [stdout]    --> src/ppu.rs:844:8
[INFO] [stdout]     |
[INFO] [stdout] 835 | impl ControlRegister {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 844 |     fn nametable_offset(&self) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/cpu.rs:1378:5
[INFO] [stdout]      |
[INFO] [stdout] 1376 | #[derive(PartialEq, Eq)]
[INFO] [stdout]      |          --------- in this derive macro expansion
[INFO] [stdout] 1377 | struct Opcode<B> {
[INFO] [stdout] 1378 |     instruction: fn(&mut Cpu<B>, AddressingMode, u8),
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]      = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking serde v1.0.197
[INFO] [stdout] warning: unused imports: `cell::RefCell` and `rc::Rc`
[INFO] [stdout]  --> src/cpu/tom_harte_cpu_tests.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{cell::RefCell, fs::File, rc::Rc};
[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: `enum_map`
[INFO] [stdout]  --> src/cpu.rs:7:16
[INFO] [stdout]   |
[INFO] [stdout] 7 | use enum_map::{enum_map, EnumMap};
[INFO] [stdout]   |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `array`
[INFO] [stdout]  --> src/ppu.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::{array, mem, ops::RangeInclusive};
[INFO] [stdout]   |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bitflags::Flags`
[INFO] [stdout]     --> src/cpu.rs:1534:9
[INFO] [stdout]      |
[INFO] [stdout] 1534 |     use bitflags::Flags;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Flags`
[INFO] [stdout]  --> src/ppu.rs:2:26
[INFO] [stdout]   |
[INFO] [stdout] 2 | use bitflags::{bitflags, Flags};
[INFO] [stdout]   |                          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]     --> src/cpu.rs:1080:23
[INFO] [stdout]      |
[INFO] [stdout] 1080 |     fn eor(&mut self, mode: AddressingMode, _cycle: u8) {
[INFO] [stdout]      |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]     --> src/cpu.rs:1112:23
[INFO] [stdout]      |
[INFO] [stdout] 1112 |     fn jsr(&mut self, mode: AddressingMode, cycle: u8) {
[INFO] [stdout]      |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]     --> src/cpu.rs:1133:23
[INFO] [stdout]      |
[INFO] [stdout] 1133 |     fn lda(&mut self, mode: AddressingMode, _cycle: u8) {
[INFO] [stdout]      |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]     --> src/cpu.rs:1141:23
[INFO] [stdout]      |
[INFO] [stdout] 1141 |     fn ldx(&mut self, mode: AddressingMode, _cycle: u8) {
[INFO] [stdout]      |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]     --> src/cpu.rs:1149:23
[INFO] [stdout]      |
[INFO] [stdout] 1149 |     fn ldy(&mut self, mode: AddressingMode, _cycle: u8) {
[INFO] [stdout]      |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hardcoded_addr`
[INFO] [stdout]   --> src/rom/uxrom.rs:42:21
[INFO] [stdout]    |
[INFO] [stdout] 42 |                 let hardcoded_addr = addr as usize - 0xC000 + (7 * 0x4000);
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hardcoded_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GAME_CODE` is never used
[INFO] [stdout]   --> src/main.rs:28:7
[INFO] [stdout]    |
[INFO] [stdout] 28 | const GAME_CODE: &[u8] = &[
[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 `TEST_CODE` is never used
[INFO] [stdout]   --> src/main.rs:51:7
[INFO] [stdout]    |
[INFO] [stdout] 51 | const TEST_CODE: &[u8] = include_bytes!("../roms/6502_functional_test.bin");
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `transform_color` is never used
[INFO] [stdout]    --> src/main.rs:205:4
[INFO] [stdout]     |
[INFO] [stdout] 205 | fn transform_color(byte: u8) -> Color {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_screen_state` is never used
[INFO] [stdout]    --> src/main.rs:219:4
[INFO] [stdout]     |
[INFO] [stdout] 219 | fn read_screen_state(cpu: &mut Cpu<impl CpuBus>, frame: &mut [u8; 32 * 32 * 3]) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `run_cycle` is never used
[INFO] [stdout]   --> src/bus.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait CpuBus: Bus {
[INFO] [stdout]    |           ------ method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 15 |     fn run_cycle(&mut self) {}
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MEMORY_SIZE` is never used
[INFO] [stdout]   --> src/cpu.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const MEMORY_SIZE: usize = 0x10000;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STACK_INIT` is never used
[INFO] [stdout]   --> src/cpu.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const STACK_INIT: u8 = 0xFF;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `load_and_run` is never used
[INFO] [stdout]   --> src/cpu.rs:78:12
[INFO] [stdout]    |
[INFO] [stdout] 77 | impl Cpu<FlatRam> {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] 78 |     pub fn load_and_run(&mut self, program: &[u8]) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `state_string`, `format_next_opcode`, `trace`, and `stack_push_u16` are never used
[INFO] [stdout]    --> src/cpu.rs:319:12
[INFO] [stdout]     |
[INFO] [stdout]  89 | impl<B: CpuBus> Cpu<B> {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 319 |     pub fn state_string(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 338 |     fn format_next_opcode(&self) -> (String, String) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 477 |     pub fn trace(&self) -> String {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 626 |     fn stack_push_u16(&mut self, data: u16) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NONE` is never used
[INFO] [stdout]   --> src/ppu.rs:47:15
[INFO] [stdout]    |
[INFO] [stdout] 47 |         const NONE: Option<(usize, RangeInclusive<u8>)> = None;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `HORIZONTAL_BITS` is never used
[INFO] [stdout]    --> src/ppu.rs:484:11
[INFO] [stdout]     |
[INFO] [stdout] 483 | impl Registers {
[INFO] [stdout]     | -------------- associated constant in this implementation
[INFO] [stdout] 484 |     const HORIZONTAL_BITS: u16 = 0b0000100_00011111;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mirror_vram_addr` is never used
[INFO] [stdout]    --> src/ppu.rs:809:4
[INFO] [stdout]     |
[INFO] [stdout] 809 | fn mirror_vram_addr(addr: u16, mirroring: Mirroring) -> u16 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `nametable_offset` is never used
[INFO] [stdout]    --> src/ppu.rs:844:8
[INFO] [stdout]     |
[INFO] [stdout] 835 | impl ControlRegister {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 844 |     fn nametable_offset(&self) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]     --> src/cpu.rs:1378:5
[INFO] [stdout]      |
[INFO] [stdout] 1376 | #[derive(PartialEq, Eq)]
[INFO] [stdout]      |          --------- in this derive macro expansion
[INFO] [stdout] 1377 | struct Opcode<B> {
[INFO] [stdout] 1378 |     instruction: fn(&mut Cpu<B>, AddressingMode, u8),
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: the address of the same function can vary between different codegen units
[INFO] [stdout]      = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]      = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]      = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `ControlFlow` that must be used
[INFO] [stdout]   --> src/cpu/tom_harte_cpu_tests.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 55 |         cpu.run_instruction();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[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] 55 |         let _ = cpu.run_instruction();
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 20.35s
[INFO] running `Command { std: "docker" "inspect" "6659a1500840aff18886dc02a3e756e5e4747c11d3f768aa942d7213107aede8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6659a1500840aff18886dc02a3e756e5e4747c11d3f768aa942d7213107aede8", kill_on_drop: false }`
[INFO] [stdout] 6659a1500840aff18886dc02a3e756e5e4747c11d3f768aa942d7213107aede8
