[INFO] cloning repository https://github.com/tjones879/RustiNES
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/tjones879/RustiNES" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftjones879%2FRustiNES", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftjones879%2FRustiNES'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 850c6cc3496026dbce2375125c9576f10d6935ff
[INFO] checking tjones879/RustiNES against 6e4b95ed0735c3bbfb308e6f158f479b4d14f1aa for pr-159356
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftjones879%2FRustiNES" "/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/tjones879/RustiNES
[INFO] finished tweaking git repo https://github.com/tjones879/RustiNES
[INFO] tweaked toml for git repo https://github.com/tjones879/RustiNES written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/tjones879/RustiNES on toolchain 6e4b95ed0735c3bbfb308e6f158f479b4d14f1aa
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+6e4b95ed0735c3bbfb308e6f158f479b4d14f1aa" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/tjones879/RustiNES 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" "+6e4b95ed0735c3bbfb308e6f158f479b4d14f1aa" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `nes` (manifest) generated 1 warning
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:c36f533e8924a726b63f9d01e781fa8c8c28c96d1d595403829afb31452ee0f5" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] d6e8d92c13235201a990b3cb2e5f66d7e7f10d1d12579aded5bda083e74a73f3
[INFO] running `Command { std: "docker" "start" "d6e8d92c13235201a990b3cb2e5f66d7e7f10d1d12579aded5bda083e74a73f3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d6e8d92c13235201a990b3cb2e5f66d7e7f10d1d12579aded5bda083e74a73f3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d6e8d92c13235201a990b3cb2e5f66d7e7f10d1d12579aded5bda083e74a73f3" "/opt/rustwide/cargo-home/bin/cargo" "+6e4b95ed0735c3bbfb308e6f158f479b4d14f1aa" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d6e8d92c13235201a990b3cb2e5f66d7e7f10d1d12579aded5bda083e74a73f3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d6e8d92c13235201a990b3cb2e5f66d7e7f10d1d12579aded5bda083e74a73f3" "/opt/rustwide/cargo-home/bin/cargo" "+6e4b95ed0735c3bbfb308e6f158f479b4d14f1aa" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `nes` (manifest) generated 1 warning
[INFO] [stderr]     Checking nes_cpu v0.1.0 (/opt/rustwide/workdir/nes-cpu)
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> nes-cpu/src/mem.rs:70:19
[INFO] [stdout]    |
[INFO] [stdout] 70 |             0x0000...0x1FFF => {
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> nes-cpu/src/mem.rs:74:19
[INFO] [stdout]    |
[INFO] [stdout] 74 |             0x2000...0x3FFF => {
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> nes-cpu/src/mem.rs:78:19
[INFO] [stdout]    |
[INFO] [stdout] 78 |             0x4000...0x4015 => {
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> nes-cpu/src/mem.rs:87:19
[INFO] [stdout]    |
[INFO] [stdout] 87 |             0x4020...0xFFFF => {
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> nes-cpu/src/mem.rs:99:19
[INFO] [stdout]    |
[INFO] [stdout] 99 |             0x0000...0x1FFF => {
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> nes-cpu/src/mem.rs:102:19
[INFO] [stdout]     |
[INFO] [stdout] 102 |             0x2000...0x3FFF => {
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> nes-cpu/src/mem.rs:105:19
[INFO] [stdout]     |
[INFO] [stdout] 105 |             0x4000...0x4015 => {
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> nes-cpu/src/mem.rs:114:19
[INFO] [stdout]     |
[INFO] [stdout] 114 |             0x4020...0xFFFF => {
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> nes-cpu/src/rom.rs:93:9
[INFO] [stdout]    |
[INFO] [stdout] 93 |         try!(util::read_to_buf(&mut header, r));
[INFO] [stdout]    |         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> nes-cpu/src/rom.rs:101:13
[INFO] [stdout]     |
[INFO] [stdout] 101 |             try!(util::read_to_buf(&mut prg_rom, r));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> nes-cpu/src/rom.rs:105:13
[INFO] [stdout]     |
[INFO] [stdout] 105 |             try!(util::read_to_buf(&mut chr_rom, r));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]  --> nes-cpu/src/util.rs:6:21
[INFO] [stdout]   |
[INFO] [stdout] 6 |         let count = try!(rd.read(&mut buf[total..]));
[INFO] [stdout]   |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]  --> nes-cpu/src/ppu.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::ops::Deref;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> nes-cpu/src/apu.rs:26:14
[INFO] [stdout]    |
[INFO] [stdout] 26 |             0...3 => {
[INFO] [stdout]    |              ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> nes-cpu/src/apu.rs:29:14
[INFO] [stdout]    |
[INFO] [stdout] 29 |             4...7 => {
[INFO] [stdout]    |              ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> nes-cpu/src/apu.rs:32:14
[INFO] [stdout]    |
[INFO] [stdout] 32 |             8...11 => {
[INFO] [stdout]    |              ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> nes-cpu/src/apu.rs:35:15
[INFO] [stdout]    |
[INFO] [stdout] 35 |             12...15 => {
[INFO] [stdout]    |               ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> nes-cpu/src/apu.rs:38:15
[INFO] [stdout]    |
[INFO] [stdout] 38 |             16...19 => {
[INFO] [stdout]    |               ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> nes-cpu/src/util.rs:3:49
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn read_to_buf(mut buf: &mut [u8], rd: &mut Read) -> io::Result<()> {
[INFO] [stdout]   |                                                 ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]   = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn read_to_buf(mut buf: &mut [u8], rd: &mut dyn Read) -> io::Result<()> {
[INFO] [stdout]   |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> nes-cpu/src/rom.rs:90:25
[INFO] [stdout]    |
[INFO] [stdout] 90 |     pub fn load(r: &mut Read) -> Result<Rom, RomError> {
[INFO] [stdout]    |                         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 90 |     pub fn load(r: &mut dyn Read) -> Result<Rom, RomError> {
[INFO] [stdout]    |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]   --> nes-cpu/src/cpu.rs:25:21
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn store(&self, cpu: &mut NesCpu<M>, _: u8) {
[INFO] [stdout]    |                     ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[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]    --> nes-cpu/src/cpu.rs:219:48
[INFO] [stdout]     |
[INFO] [stdout] 219 |     fn bpl<MODE: AddressingMode<M>>(&mut self, mode: MODE) {
[INFO] [stdout]     |                                                ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> nes-cpu/src/cpu.rs:557:24
[INFO] [stdout]     |
[INFO] [stdout] 557 |     fn push(&mut self, val: u8) {
[INFO] [stdout]     |                        ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> nes-cpu/src/util.rs:3:20
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn read_to_buf(mut buf: &mut [u8], rd: &mut Read) -> io::Result<()> {
[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 variable: `addr`
[INFO] [stdout]   --> nes-cpu/src/ppu.rs:21:25
[INFO] [stdout]    |
[INFO] [stdout] 21 |     fn loadb(&mut self, addr: u16) -> u8 {
[INFO] [stdout]    |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]   --> nes-cpu/src/ppu.rs:25:26
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn storeb(&mut self, addr: u16, val: u8) {
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]   --> nes-cpu/src/ppu.rs:25:37
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn storeb(&mut self, addr: u16, val: u8) {
[INFO] [stdout]    |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]   --> nes-cpu/src/ppu.rs:31:26
[INFO] [stdout]    |
[INFO] [stdout] 31 |     fn getReg(&mut self, addr: u16) -> u8 {
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]  --> nes-cpu/src/ioport.rs:8:25
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn loadb(&mut self, addr: u16) -> u8 {
[INFO] [stdout]   |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]   --> nes-cpu/src/ioport.rs:13:26
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn storeb(&mut self, addr: u16, val: u8) {
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]   --> nes-cpu/src/ioport.rs:13:37
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn storeb(&mut self, addr: u16, val: u8) {
[INFO] [stdout]    |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AddressingMode` is never used
[INFO] [stdout]  --> nes-cpu/src/cpu.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | trait AddressingMode<M: Mem> {
[INFO] [stdout]   |       ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AccumulatorAddressingMode` is never constructed
[INFO] [stdout]  --> nes-cpu/src/cpu.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct AccumulatorAddressingMode;
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ImmediateAddressingMode` is never constructed
[INFO] [stdout]   --> nes-cpu/src/cpu.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | struct ImmediateAddressingMode;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MemoryAddressingMode` is never constructed
[INFO] [stdout]   --> nes-cpu/src/cpu.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | struct MemoryAddressingMode {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decode_op` is never used
[INFO] [stdout]   --> nes-cpu/src/cpu.rs:53:4
[INFO] [stdout]    |
[INFO] [stdout] 53 | fn decode_op() {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `a`, `x`, `y`, `pc`, `sp`, and `status` are never read
[INFO] [stdout]   --> nes-cpu/src/cpu.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 57 | struct Registers {
[INFO] [stdout]    |        --------- fields in this struct
[INFO] [stdout] 58 |     // Accumulator
[INFO] [stdout] 59 |     a: u8,
[INFO] [stdout]    |     ^
[INFO] [stdout] 60 |     // Indexes
[INFO] [stdout] 61 |     x: u8,
[INFO] [stdout]    |     ^
[INFO] [stdout] 62 |     y: u8,
[INFO] [stdout]    |     ^
[INFO] [stdout] 63 |     // Program Counter
[INFO] [stdout] 64 |     pc: u16,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 65 |     // Stack pointer
[INFO] [stdout] 66 |     sp: u8,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 67 |     // Status Register
[INFO] [stdout] 68 |     status: u8
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Flags` is never used
[INFO] [stdout]   --> nes-cpu/src/cpu.rs:71:6
[INFO] [stdout]    |
[INFO] [stdout] 71 | enum Flags {
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `flag_set`, `save_flag`, `check_zero`, and `check_negative` are never used
[INFO] [stdout]   --> nes-cpu/src/cpu.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 80 | impl Registers {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] 81 |     pub fn flag_set(&self, flag: Flags) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub fn save_flag(&mut self, flag: Flags, state: bool) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93 |     pub fn check_zero(&mut self, value: u8) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97 |     pub fn check_negative(&mut self, value: u8) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `regs` is never read
[INFO] [stdout]    --> nes-cpu/src/cpu.rs:104:5
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub struct NesCpu<M: Mem> {
[INFO] [stdout]     |            ------ field in this struct
[INFO] [stdout] 103 |     clock: u64,
[INFO] [stdout] 104 |     regs: Registers,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MemRegType` is never used
[INFO] [stdout]    --> nes-cpu/src/cpu.rs:108:6
[INFO] [stdout]     |
[INFO] [stdout] 108 | enum MemRegType {
[INFO] [stdout]     |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> nes-cpu/src/cpu.rs:131:8
[INFO] [stdout]     |
[INFO] [stdout] 124 | impl<M: Mem> NesCpu<M> {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 131 |     fn load_pc_bump(&mut self) -> u8 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     fn loadw_pc_bump(&mut self) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     fn loadw_from_zp(&mut self, base: u16) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     fn adc<MODE: AddressingMode<M>>(&mut self, mode: MODE) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     fn and<MODE: AddressingMode<M>>(&mut self, mode: MODE) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     fn asl<MODE: AddressingMode<M>>(&mut self, mode: MODE) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |     fn bit<MODE: AddressingMode<M>>(&mut self, mode: MODE) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     fn try_branch(&mut self, flag: bool) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     fn bpl<MODE: AddressingMode<M>>(&mut self, mode: MODE) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     fn bmi(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     fn bvc(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 237 |     fn bvs(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     fn bcc(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     fn bcs(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 255 |     fn bne(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     fn beq(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 266 |     fn brk(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 271 |     fn cmp<MODE: AddressingMode<M>>(&mut self, mode: MODE) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 280 |     fn cpx<MODE: AddressingMode<M>>(&mut self, mode: MODE) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     fn cpy<MODE: AddressingMode<M>>(&mut self, mode: MODE) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 298 |     fn dec<MODE: AddressingMode<M>>(&mut self, mode: MODE) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 306 |     fn dex(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 314 |     fn dey(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 322 |     fn eor<MODE: AddressingMode<M>>(&mut self, mode: MODE) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 331 |     fn inc<MODE: AddressingMode<M>>(&mut self, mode: MODE) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 339 |     fn inx(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 347 |     fn iny(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 355 |     fn jmp(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 360 |     fn jsr(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 365 |     fn lda<MODE: AddressingMode<M>>(&mut self, mode: MODE) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 373 |     fn ldx<MODE: AddressingMode<M>>(&mut self, mode: MODE) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 381 |     fn ldy<MODE: AddressingMode<M>>(&mut self, mode: MODE) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 389 |     fn lsr<MODE: AddressingMode<M>>(&mut self, mode: MODE) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 398 |     fn nop(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 403 |     fn ora<MODE: AddressingMode<M>>(&mut self, mode: MODE) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 412 |     fn rol<MODE: AddressingMode<M>>(&mut self, mode: MODE) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 427 |     fn ror<MODE: AddressingMode<M>>(&mut self, mode: MODE) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 442 |     fn rti(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 447 |     fn rts(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 452 |     fn sbc(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 457 |     fn sta<MODE: AddressingMode<M>>(&mut self, mode: MODE) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 463 |     fn stx<MODE: AddressingMode<M>>(&mut self, mode: MODE) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 469 |     fn sty<MODE: AddressingMode<M>>(&mut self, mode: MODE) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 476 |     fn tax(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 484 |     fn txa(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 492 |     fn tay(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     fn tya(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 509 |     fn clc(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 514 |     fn sec(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 519 |     fn cli(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 524 |     fn sei(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 529 |     fn clv(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 534 |     fn cld(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 539 |     fn sed(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 545 |     fn txs(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 550 |     fn tsx(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 557 |     fn push(&mut self, val: u8) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 561 |     fn pop(&mut self) -> u8 {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 566 |     fn pha(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 572 |     fn pla(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 580 |     fn php(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 586 |     fn plp(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 592 |     fn accumulator(&mut self) -> AccumulatorAddressingMode {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 596 |     fn immediate(&mut self) -> ImmediateAddressingMode {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 600 |     fn zero_page(&mut self, zero_type: MemRegType) -> MemoryAddressingMode {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 616 |     fn absolute(&mut self, abs_type: MemRegType) -> MemoryAddressingMode {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 632 |     fn indirect(&mut self, ind_type: MemRegType) -> MemoryAddressingMode {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `zero` is never read
[INFO] [stdout]   --> nes-cpu/src/rom.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct INesHeader {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 46 |     zero: [u8; 5]
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `getReg` is never used
[INFO] [stdout]   --> nes-cpu/src/ppu.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl Ppu {
[INFO] [stdout]    | -------- method in this implementation
[INFO] [stdout] 31 |     fn getReg(&mut self, addr: u16) -> u8 {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `getReg` should have a snake case name
[INFO] [stdout]   --> nes-cpu/src/ppu.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 |     fn getReg(&mut self, addr: u16) -> u8 {
[INFO] [stdout]    |        ^^^^^^ help: convert the identifier to snake case: `get_reg`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `getMemLocation` should have a snake case name
[INFO] [stdout]   --> nes-cpu/src/apu.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn getMemLocation(&mut self, addr: usize) -> &mut u8 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `get_mem_location`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking nes v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.39s
[INFO] running `Command { std: "docker" "inspect" "d6e8d92c13235201a990b3cb2e5f66d7e7f10d1d12579aded5bda083e74a73f3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d6e8d92c13235201a990b3cb2e5f66d7e7f10d1d12579aded5bda083e74a73f3", kill_on_drop: false }`
[INFO] [stdout] d6e8d92c13235201a990b3cb2e5f66d7e7f10d1d12579aded5bda083e74a73f3
