[INFO] cloning repository https://github.com/jtharris/nes_play
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jtharris/nes_play" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjtharris%2Fnes_play", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjtharris%2Fnes_play'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c8da5eef9b4cf0d61de57a2c374a2ed64ac9724b
[INFO] checking jtharris/nes_play against try#4f260f0f20b3133d20cfb50353c0221943af5796+rustflags=-Dunmustuse_in_always_ok for pr-148577
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjtharris%2Fnes_play" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/jtharris/nes_play
[INFO] finished tweaking git repo https://github.com/jtharris/nes_play
[INFO] tweaked toml for git repo https://github.com/jtharris/nes_play written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/jtharris/nes_play on toolchain 4f260f0f20b3133d20cfb50353c0221943af5796
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/jtharris/nes_play 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" "+4f260f0f20b3133d20cfb50353c0221943af5796" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 33334771bd4b037e8fc65ab40130068966c8fd01c01a2bb299fdef4c8da31d2d
[INFO] running `Command { std: "docker" "start" "-a" "33334771bd4b037e8fc65ab40130068966c8fd01c01a2bb299fdef4c8da31d2d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "33334771bd4b037e8fc65ab40130068966c8fd01c01a2bb299fdef4c8da31d2d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "33334771bd4b037e8fc65ab40130068966c8fd01c01a2bb299fdef4c8da31d2d", kill_on_drop: false }`
[INFO] [stdout] 33334771bd4b037e8fc65ab40130068966c8fd01c01a2bb299fdef4c8da31d2d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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 -Dunmustuse_in_always_ok" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6ad45067e572c249d203436b7d87893c60a41944a76811f89994a2e776419da1
[INFO] running `Command { std: "docker" "start" "-a" "6ad45067e572c249d203436b7d87893c60a41944a76811f89994a2e776419da1", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.104
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking clap v2.33.3
[INFO] [stderr]     Checking nes_play v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `write`
[INFO] [stdout]  --> src/cpu.rs:2:27
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fmt::{Formatter, write};
[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: `format`
[INFO] [stdout]  --> src/instructions/bcs.rs:1:25
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::{Display, format, Formatter};
[INFO] [stdout]   |                         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Display` and `Formatter`
[INFO] [stdout]  --> src/instructions/factory.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::{Display, Formatter};
[INFO] [stdout]   |                ^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::convert::TryInto`
[INFO] [stdout]  --> src/commands.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::convert::TryInto;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `INes2Header`
[INFO] [stdout]  --> src/commands.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::rom::{INes2Header, INesRom};
[INFO] [stdout]   |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::instructions::factory::generate_instruction`
[INFO] [stdout]  --> src/commands.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::instructions::factory::generate_instruction;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `write`
[INFO] [stdout]  --> src/cpu.rs:2:27
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fmt::{Formatter, write};
[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: `crate::cpu::StatusFlag`
[INFO] [stdout]    --> src/cpu.rs:350:9
[INFO] [stdout]     |
[INFO] [stdout] 350 |     use crate::cpu::StatusFlag;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `format`
[INFO] [stdout]  --> src/instructions/bcs.rs:1:25
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::{Display, format, Formatter};
[INFO] [stdout]   |                         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/instructions/cmp.rs:107:43
[INFO] [stdout]     |
[INFO] [stdout] 107 |         CMP::new(Immediate(0xFF)).execute((&mut cpu));
[INFO] [stdout]     |                                           ^        ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 107 -         CMP::new(Immediate(0xFF)).execute((&mut cpu));
[INFO] [stdout] 107 +         CMP::new(Immediate(0xFF)).execute(&mut cpu );
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/instructions/cmp.rs:121:43
[INFO] [stdout]     |
[INFO] [stdout] 121 |         CMP::new(Immediate(0x41)).execute((&mut cpu));
[INFO] [stdout]     |                                           ^        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 121 -         CMP::new(Immediate(0x41)).execute((&mut cpu));
[INFO] [stdout] 121 +         CMP::new(Immediate(0x41)).execute(&mut cpu );
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Display` and `Formatter`
[INFO] [stdout]  --> src/instructions/factory.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::{Display, Formatter};
[INFO] [stdout]   |                ^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::instructions::jmp::JumpAddressMode::Absolute`
[INFO] [stdout]   --> src/instructions/lax.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |     use crate::instructions::jmp::JumpAddressMode::Absolute;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::cpu::AddressingMode::IndirectX`
[INFO] [stdout]   --> src/instructions/sre.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 |     use crate::cpu::AddressingMode::IndirectX;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::convert::TryInto`
[INFO] [stdout]  --> src/commands.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::convert::TryInto;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `INes2Header`
[INFO] [stdout]  --> src/commands.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::rom::{INes2Header, INesRom};
[INFO] [stdout]   |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::instructions::factory::generate_instruction`
[INFO] [stdout]  --> src/commands.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::instructions::factory::generate_instruction;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `base`
[INFO] [stdout]    --> src/cpu.rs:103:40
[INFO] [stdout]     |
[INFO] [stdout] 103 |             &AddressingMode::AbsoluteX(base) => 4,
[INFO] [stdout]     |                                        ^^^^ help: if this is intentional, prefix it with an underscore: `_base`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `base`
[INFO] [stdout]    --> src/cpu.rs:104:40
[INFO] [stdout]     |
[INFO] [stdout] 104 |             &AddressingMode::AbsoluteY(base) => 4,
[INFO] [stdout]     |                                        ^^^^ help: if this is intentional, prefix it with an underscore: `_base`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `address`
[INFO] [stdout]    --> src/cpu.rs:106:40
[INFO] [stdout]     |
[INFO] [stdout] 106 |             &AddressingMode::IndirectY(address) => 5,
[INFO] [stdout]     |                                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `cycle` is assigned to, but never used
[INFO] [stdout]    --> src/cpu.rs:183:13
[INFO] [stdout]     |
[INFO] [stdout] 183 |         let mut cycle: usize = 4;  // TODO:  Make this configurable?
[INFO] [stdout]     |             ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_cycle` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `cycle` is never read
[INFO] [stdout]    --> src/cpu.rs:213:21
[INFO] [stdout]     |
[INFO] [stdout] 213 |                     cycle += new_cycles as usize;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]    --> src/cpu.rs:336:28
[INFO] [stdout]     |
[INFO] [stdout] 336 |     fn debug_string(&self, cpu: &CPU) -> String {
[INFO] [stdout]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/commands.rs:52:13
[INFO] [stdout]    |
[INFO] [stdout] 52 |         let mut log = File::create(&self.log_filename);
[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: associated items `empty` and `write_mem16` are never used
[INFO] [stdout]    --> src/cpu.rs:19:12
[INFO] [stdout]     |
[INFO] [stdout]  18 | impl CPU {
[INFO] [stdout]     | -------- associated items in this implementation
[INFO] [stdout]  19 |     pub fn empty() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub fn write_mem16(&mut self, addr: u16, data: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Mirroring` is never used
[INFO] [stdout]   --> src/rom.rs:15:6
[INFO] [stdout]    |
[INFO] [stdout] 15 | enum Mirroring {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `mirroring` is never used
[INFO] [stdout]   --> src/rom.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl INes2Header {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 63 |     fn mirroring(&self) -> Mirroring {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ppu_register_address` is never used
[INFO] [stdout]   --> src/bus.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn ppu_register_address(addr: u16) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `empty` and `write_mem16` are never used
[INFO] [stdout]   --> src/bus.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl Bus {
[INFO] [stdout]    | -------- associated items in this implementation
[INFO] [stdout] 28 |     pub fn empty() -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn write_mem16(&mut self, addr: u16, data: u16) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/cpu.rs:189:13
[INFO] [stdout]     |
[INFO] [stdout] 189 |             write!(log, "{:04X}  ", pc);
[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] 189 |             let _ = write!(log, "{:04X}  ", pc);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/cpu.rs:190:13
[INFO] [stdout]     |
[INFO] [stdout] 190 | /             match &instruction {
[INFO] [stdout] 191 | |                 Some(inst) => write!(log, "{:<8} ", inst.bytes_string()),
[INFO] [stdout] 192 | |                 None => write!(log, "       ")
[INFO] [stdout] 193 | |             };
[INFO] [stdout]     | |_____________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 190 |             let _ = match &instruction {
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/cpu.rs:195:13
[INFO] [stdout]     |
[INFO] [stdout] 195 | /             match &instruction {
[INFO] [stdout] 196 | |                 Some(inst) => {
[INFO] [stdout] 197 | |                     if inst.illegal() {
[INFO] [stdout] 198 | |                         write!(log, "*{:<32}", inst.debug_string(&self))
[INFO] [stdout] ...   |
[INFO] [stdout] 203 | |                 None => write!(log, "{:<25}", "No Instruction")
[INFO] [stdout] 204 | |             };
[INFO] [stdout]     | |_____________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 195 |             let _ = match &instruction {
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/cpu.rs:205:13
[INFO] [stdout]     |
[INFO] [stdout] 205 | /             write!(log, "A:{:02X} X:{:02X} Y:{:02X} P:{:02X} SP:{:02X} ",
[INFO] [stdout] 206 | |                    self.accumulator, self.index_register_x, self.index_register_y,
[INFO] [stdout] 207 | |                    self.processor_status, self.stack_pointer);
[INFO] [stdout]     | |_____________________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 205 |             let _ = write!(log, "A:{:02X} X:{:02X} Y:{:02X} P:{:02X} SP:{:02X} ",
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/cpu.rs:219:13
[INFO] [stdout]     |
[INFO] [stdout] 219 |             writeln!(log);
[INFO] [stdout]     |             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 219 |             let _ = writeln!(log);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<String, Infallible>
[INFO] [stdout]   --> src/commands.rs:18:30
[INFO] [stdout]    |
[INFO] [stdout] 18 |         Info { rom_filename: file.parse().unwrap() }
[INFO] [stdout]    |                              ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-D unmustuse-in-always-ok`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<String, Infallible>
[INFO] [stdout]   --> src/commands.rs:39:27
[INFO] [stdout]    |
[INFO] [stdout] 39 |             rom_filename: rom_file.parse().unwrap(),
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<String, Infallible>
[INFO] [stdout]   --> src/commands.rs:40:27
[INFO] [stdout]    |
[INFO] [stdout] 40 |             log_filename: log_file.parse().unwrap()
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `nes_play` (bin "nes_play") due to 3 previous errors; 23 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused variable: `base`
[INFO] [stdout]    --> src/cpu.rs:103:40
[INFO] [stdout]     |
[INFO] [stdout] 103 |             &AddressingMode::AbsoluteX(base) => 4,
[INFO] [stdout]     |                                        ^^^^ help: if this is intentional, prefix it with an underscore: `_base`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `base`
[INFO] [stdout]    --> src/cpu.rs:104:40
[INFO] [stdout]     |
[INFO] [stdout] 104 |             &AddressingMode::AbsoluteY(base) => 4,
[INFO] [stdout]     |                                        ^^^^ help: if this is intentional, prefix it with an underscore: `_base`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `address`
[INFO] [stdout]    --> src/cpu.rs:106:40
[INFO] [stdout]     |
[INFO] [stdout] 106 |             &AddressingMode::IndirectY(address) => 5,
[INFO] [stdout]     |                                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `cycle` is assigned to, but never used
[INFO] [stdout]    --> src/cpu.rs:183:13
[INFO] [stdout]     |
[INFO] [stdout] 183 |         let mut cycle: usize = 4;  // TODO:  Make this configurable?
[INFO] [stdout]     |             ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_cycle` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `cycle` is never read
[INFO] [stdout]    --> src/cpu.rs:213:21
[INFO] [stdout]     |
[INFO] [stdout] 213 |                     cycle += new_cycles as usize;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]    --> src/cpu.rs:336:28
[INFO] [stdout]     |
[INFO] [stdout] 336 |     fn debug_string(&self, cpu: &CPU) -> String {
[INFO] [stdout]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/commands.rs:52:13
[INFO] [stdout]    |
[INFO] [stdout] 52 |         let mut log = File::create(&self.log_filename);
[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: enum `Mirroring` is never used
[INFO] [stdout]   --> src/rom.rs:15:6
[INFO] [stdout]    |
[INFO] [stdout] 15 | enum Mirroring {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `mirroring` is never used
[INFO] [stdout]   --> src/rom.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl INes2Header {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 63 |     fn mirroring(&self) -> Mirroring {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ppu_register_address` is never used
[INFO] [stdout]   --> src/bus.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn ppu_register_address(addr: u16) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/cpu.rs:189:13
[INFO] [stdout]     |
[INFO] [stdout] 189 |             write!(log, "{:04X}  ", pc);
[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] 189 |             let _ = write!(log, "{:04X}  ", pc);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/cpu.rs:190:13
[INFO] [stdout]     |
[INFO] [stdout] 190 | /             match &instruction {
[INFO] [stdout] 191 | |                 Some(inst) => write!(log, "{:<8} ", inst.bytes_string()),
[INFO] [stdout] 192 | |                 None => write!(log, "       ")
[INFO] [stdout] 193 | |             };
[INFO] [stdout]     | |_____________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 190 |             let _ = match &instruction {
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/cpu.rs:195:13
[INFO] [stdout]     |
[INFO] [stdout] 195 | /             match &instruction {
[INFO] [stdout] 196 | |                 Some(inst) => {
[INFO] [stdout] 197 | |                     if inst.illegal() {
[INFO] [stdout] 198 | |                         write!(log, "*{:<32}", inst.debug_string(&self))
[INFO] [stdout] ...   |
[INFO] [stdout] 203 | |                 None => write!(log, "{:<25}", "No Instruction")
[INFO] [stdout] 204 | |             };
[INFO] [stdout]     | |_____________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 195 |             let _ = match &instruction {
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/cpu.rs:205:13
[INFO] [stdout]     |
[INFO] [stdout] 205 | /             write!(log, "A:{:02X} X:{:02X} Y:{:02X} P:{:02X} SP:{:02X} ",
[INFO] [stdout] 206 | |                    self.accumulator, self.index_register_x, self.index_register_y,
[INFO] [stdout] 207 | |                    self.processor_status, self.stack_pointer);
[INFO] [stdout]     | |_____________________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 205 |             let _ = write!(log, "A:{:02X} X:{:02X} Y:{:02X} P:{:02X} SP:{:02X} ",
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/cpu.rs:219:13
[INFO] [stdout]     |
[INFO] [stdout] 219 |             writeln!(log);
[INFO] [stdout]     |             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 219 |             let _ = writeln!(log);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<String, Infallible>
[INFO] [stdout]   --> src/commands.rs:18:30
[INFO] [stdout]    |
[INFO] [stdout] 18 |         Info { rom_filename: file.parse().unwrap() }
[INFO] [stdout]    |                              ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-D unmustuse-in-always-ok`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<String, Infallible>
[INFO] [stdout]   --> src/commands.rs:39:27
[INFO] [stdout]    |
[INFO] [stdout] 39 |             rom_filename: rom_file.parse().unwrap(),
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<String, Infallible>
[INFO] [stdout]   --> src/commands.rs:40:27
[INFO] [stdout]    |
[INFO] [stdout] 40 |             log_filename: log_file.parse().unwrap()
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `nes_play` (bin "nes_play" test) due to 3 previous errors; 26 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "6ad45067e572c249d203436b7d87893c60a41944a76811f89994a2e776419da1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6ad45067e572c249d203436b7d87893c60a41944a76811f89994a2e776419da1", kill_on_drop: false }`
[INFO] [stdout] 6ad45067e572c249d203436b7d87893c60a41944a76811f89994a2e776419da1
