[INFO] cloning repository https://github.com/ykafia/Nes-Emulator-Rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ykafia/Nes-Emulator-Rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fykafia%2FNes-Emulator-Rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fykafia%2FNes-Emulator-Rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] def58b375147cf7e153bed0fcf9167ba6bf8d22c
[INFO] checking ykafia/Nes-Emulator-Rust against master#bca37a20bd376ce3fd138e7cdee7fe704e0f8814 for pr-139493-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fykafia%2FNes-Emulator-Rust" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ykafia/Nes-Emulator-Rust
[INFO] finished tweaking git repo https://github.com/ykafia/Nes-Emulator-Rust
[INFO] tweaked toml for git repo https://github.com/ykafia/Nes-Emulator-Rust written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ykafia/Nes-Emulator-Rust on toolchain bca37a20bd376ce3fd138e7cdee7fe704e0f8814
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ykafia/Nes-Emulator-Rust already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded modular-bitfield v0.6.0
[INFO] [stderr]   Downloaded clicolors-control v1.0.1
[INFO] [stderr]   Downloaded modular-bitfield-impl v0.6.0
[INFO] [stderr]   Downloaded console v0.9.0
[INFO] [stderr]   Downloaded proc-macro2 v1.0.3
[INFO] [stderr]   Downloaded unicode-segmentation v1.3.0
[INFO] [stderr]   Downloaded syn v1.0.5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] db5a9b71e0d7525fc1382a71f76a81cb032559d4771f00a18df98b82847937f6
[INFO] running `Command { std: "docker" "start" "-a" "db5a9b71e0d7525fc1382a71f76a81cb032559d4771f00a18df98b82847937f6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "db5a9b71e0d7525fc1382a71f76a81cb032559d4771f00a18df98b82847937f6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "db5a9b71e0d7525fc1382a71f76a81cb032559d4771f00a18df98b82847937f6", kill_on_drop: false }`
[INFO] [stdout] db5a9b71e0d7525fc1382a71f76a81cb032559d4771f00a18df98b82847937f6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2af5959f9f61aeb1e406cb05daee6a5cd8e305d870e0aebd5479c5cc173b3e36
[INFO] running `Command { std: "docker" "start" "-a" "2af5959f9f61aeb1e406cb05daee6a5cd8e305d870e0aebd5479c5cc173b3e36", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.3
[INFO] [stderr]    Compiling unicode-xid v0.2.0
[INFO] [stderr]    Compiling libc v0.2.65
[INFO] [stderr]    Compiling syn v1.0.5
[INFO] [stderr]    Compiling unicode-segmentation v1.3.0
[INFO] [stderr]     Checking regex-syntax v0.6.12
[INFO] [stderr]     Checking unicode-width v0.1.6
[INFO] [stderr]    Compiling heck v0.3.1
[INFO] [stderr]     Checking termios v0.3.1
[INFO] [stderr]     Checking clicolors-control v1.0.1
[INFO] [stderr]    Compiling quote v1.0.2
[INFO] [stderr]     Checking regex v1.3.1
[INFO] [stderr]     Checking console v0.9.0
[INFO] [stderr]    Compiling modular-bitfield-impl v0.6.0
[INFO] [stderr]     Checking modular-bitfield v0.6.0
[INFO] [stderr]     Checking rustnes v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `self::instruction_generator::get_lookup_list`
[INFO] [stdout]  --> src/components/mod.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub use self::instruction_generator::get_lookup_list;
[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: `convert::TryInto`
[INFO] [stdout]  --> src/components/cartridge.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{convert::TryInto, fmt, ops::{Index, IndexMut}};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BaseByte` and `Convert`
[INFO] [stdout]  --> src/utils/mod.rs:1:28
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub use self::byte_types::{BaseByte, Convert};
[INFO] [stdout]   |                            ^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::instruction_generator::get_lookup_list`
[INFO] [stdout]  --> src/components/mod.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub use self::instruction_generator::get_lookup_list;
[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: `convert::TryInto`
[INFO] [stdout]  --> src/components/cartridge.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{convert::TryInto, fmt, ops::{Index, IndexMut}};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BaseByte` and `Convert`
[INFO] [stdout]  --> src/utils/mod.rs:1:28
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub use self::byte_types::{BaseByte, Convert};
[INFO] [stdout]   |                            ^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `read_only`
[INFO] [stdout]   --> src/components/nes.rs:84:39
[INFO] [stdout]    |
[INFO] [stdout] 84 |     fn ppu_read(&mut self, addr: u16, read_only: bool) -> u8 {
[INFO] [stdout]    |                                       ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_read_only`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]   --> src/components/mapper.rs:54:26
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn mapper_001(&self, src: Source, addr: u16) -> Option<usize> {
[INFO] [stdout]    |                          ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]   --> src/components/mapper.rs:54:39
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn mapper_001(&self, src: Source, addr: u16) -> Option<usize> {
[INFO] [stdout]    |                                       ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nb_bank`
[INFO] [stdout]   --> src/components/cartridge.rs:52:13
[INFO] [stdout]    |
[INFO] [stdout] 52 |         let nb_bank = self.header.nb_prg_banks as usize;
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nb_bank`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nb_bank2`
[INFO] [stdout]   --> src/components/cartridge.rs:53:13
[INFO] [stdout]    |
[INFO] [stdout] 53 |         let nb_bank2 = self.header.nb_chr_banks as usize;
[INFO] [stdout]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nb_bank2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `reset`, `interupt_req`, and `non_maskable_interupt_req` are never used
[INFO] [stdout]   --> src/components/cpu.rs:93:8
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub trait CPUFunctions {
[INFO] [stdout]    |           ------------ methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 93 |     fn reset(&mut self, nes: &mut NesData);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 94 |     fn power(&mut self, nes: &mut NesData);
[INFO] [stdout] 95 |     fn interupt_req(&mut self, nes: &mut NesData);
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 96 |     fn non_maskable_interupt_req(&mut self, nes: &mut NesData);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `ppu` and `clock_counter` are never read
[INFO] [stdout]   --> src/components/nes.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub struct NesData {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub ppu : PPU,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 15 |     /// Clock counter
[INFO] [stdout] 16 |     pub clock_counter : u128,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `ppu_write` and `ppu_read` are never used
[INFO] [stdout]   --> src/components/nes.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub trait DataActions {
[INFO] [stdout]    |           ----------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 22 |     fn ppu_write(&mut self, addr: u16, data: u8);
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 23 |     fn ppu_read(&mut self, addr: u16, read_only: bool) -> u8;
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `insert_cartridge`, `reset_memory`, and `clock` are never used
[INFO] [stdout]   --> src/components/nes.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl NesData {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn insert_cartridge(&mut self, cartridge: Vec<u8>) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn reset_memory(&mut self) {}
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 41 |     pub fn clock(&mut self) {}
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `names`, `pattern`, `pallette`, and `oam` are never read
[INFO] [stdout]   --> src/components/ppu.rs:9:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct PPU {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout]  8 |     /// Ram data, from 0x2000 to 0x2FFF
[INFO] [stdout]  9 |     pub names: [[u8; 0x0400];2],
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 10 |     /// Pattern data, from 0x0000 to 0x1FFF
[INFO] [stdout] 11 |     pub pattern: [u8; 0x2000],
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 12 |     /// Pallette data, from 0x3000 to 0x3FFF
[INFO] [stdout] 13 |     pub pallette: [u8; 0x0020],
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 14 |     /// Object attribute memory, should be shared with the cpu
[INFO] [stdout] 15 |     pub oam: [u8; 256],
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `nb_chr_banks` is never read
[INFO] [stdout]  --> src/components/mapper.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Mapper {
[INFO] [stdout]   |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 6 |     pub nb_chr_banks: usize,
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/components/mapper.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Mapper {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 15 |     pub fn new(header: Header) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `flags_8`, `flags_9`, `flags_10`, and `padding` are never read
[INFO] [stdout]   --> src/components/cartridge.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Header {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub flags_8 : u8,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 29 |     /// TV System, rarely used
[INFO] [stdout] 30 |     pub flags_9 : u8,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 31 |     /// TV System, PRG RAM presence, rarely used
[INFO] [stdout] 32 |     pub flags_10 : u8,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 33 |     /// Empty padding, used to store names of hackers
[INFO] [stdout] 34 |     pub padding : [u8;5],
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Header` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ppu_write` is never used
[INFO] [stdout]   --> src/components/cartridge.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl Cartridge {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn ppu_write(&mut self, addr : u16, data : u8) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_metroid` is never used
[INFO] [stdout]    --> src/test/mod.rs:104:4
[INFO] [stdout]     |
[INFO] [stdout] 104 | fn load_metroid() -> Vec<u8> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Convert` is never used
[INFO] [stdout]   --> src/utils/byte_types.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub trait Convert {
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `sub_overflow` is never used
[INFO] [stdout]   --> src/utils/traits.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub trait OverflowOp<T> {
[INFO] [stdout]    |           ---------- method in this trait
[INFO] [stdout] 48 |     fn add_overflow(&self, value: T) -> T;
[INFO] [stdout] 49 |     fn sub_overflow(&self, value: T) -> T;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `InBetween` is never used
[INFO] [stdout]   --> src/utils/traits.rs:66:11
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub trait InBetween<T> {
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `read_only`
[INFO] [stdout]   --> src/components/nes.rs:84:39
[INFO] [stdout]    |
[INFO] [stdout] 84 |     fn ppu_read(&mut self, addr: u16, read_only: bool) -> u8 {
[INFO] [stdout]    |                                       ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_read_only`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]   --> src/components/mapper.rs:54:26
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn mapper_001(&self, src: Source, addr: u16) -> Option<usize> {
[INFO] [stdout]    |                          ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]   --> src/components/mapper.rs:54:39
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn mapper_001(&self, src: Source, addr: u16) -> Option<usize> {
[INFO] [stdout]    |                                       ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nb_bank`
[INFO] [stdout]   --> src/components/cartridge.rs:52:13
[INFO] [stdout]    |
[INFO] [stdout] 52 |         let nb_bank = self.header.nb_prg_banks as usize;
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nb_bank`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nb_bank2`
[INFO] [stdout]   --> src/components/cartridge.rs:53:13
[INFO] [stdout]    |
[INFO] [stdout] 53 |         let nb_bank2 = self.header.nb_chr_banks as usize;
[INFO] [stdout]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nb_bank2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `reset`, `interupt_req`, and `non_maskable_interupt_req` are never used
[INFO] [stdout]   --> src/components/cpu.rs:93:8
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub trait CPUFunctions {
[INFO] [stdout]    |           ------------ methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 93 |     fn reset(&mut self, nes: &mut NesData);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 94 |     fn power(&mut self, nes: &mut NesData);
[INFO] [stdout] 95 |     fn interupt_req(&mut self, nes: &mut NesData);
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 96 |     fn non_maskable_interupt_req(&mut self, nes: &mut NesData);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `ppu` and `clock_counter` are never read
[INFO] [stdout]   --> src/components/nes.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub struct NesData {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub ppu : PPU,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 15 |     /// Clock counter
[INFO] [stdout] 16 |     pub clock_counter : u128,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `ppu_write` and `ppu_read` are never used
[INFO] [stdout]   --> src/components/nes.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub trait DataActions {
[INFO] [stdout]    |           ----------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 22 |     fn ppu_write(&mut self, addr: u16, data: u8);
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 23 |     fn ppu_read(&mut self, addr: u16, read_only: bool) -> u8;
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `insert_cartridge`, `reset_memory`, and `clock` are never used
[INFO] [stdout]   --> src/components/nes.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl NesData {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn insert_cartridge(&mut self, cartridge: Vec<u8>) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn reset_memory(&mut self) {}
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 41 |     pub fn clock(&mut self) {}
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `names`, `pattern`, `pallette`, and `oam` are never read
[INFO] [stdout]   --> src/components/ppu.rs:9:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct PPU {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout]  8 |     /// Ram data, from 0x2000 to 0x2FFF
[INFO] [stdout]  9 |     pub names: [[u8; 0x0400];2],
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 10 |     /// Pattern data, from 0x0000 to 0x1FFF
[INFO] [stdout] 11 |     pub pattern: [u8; 0x2000],
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 12 |     /// Pallette data, from 0x3000 to 0x3FFF
[INFO] [stdout] 13 |     pub pallette: [u8; 0x0020],
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 14 |     /// Object attribute memory, should be shared with the cpu
[INFO] [stdout] 15 |     pub oam: [u8; 256],
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `nb_chr_banks` is never read
[INFO] [stdout]  --> src/components/mapper.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Mapper {
[INFO] [stdout]   |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 6 |     pub nb_chr_banks: usize,
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PPU` is never constructed
[INFO] [stdout]   --> src/components/mapper.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub enum Source {
[INFO] [stdout]    |          ------ variant in this enum
[INFO] [stdout] 10 |     CPU,
[INFO] [stdout] 11 |     PPU,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/components/mapper.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Mapper {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 15 |     pub fn new(header: Header) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `header` and `chr_memory` are never read
[INFO] [stdout]   --> src/components/cartridge.rs:9:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct Cartridge{
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout]  9 |     pub header : Header,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 10 |     pub prg_memory : Vec<u8>,
[INFO] [stdout] 11 |     pub chr_memory : Vec<u8>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `flags_8`, `flags_9`, `flags_10`, and `padding` are never read
[INFO] [stdout]   --> src/components/cartridge.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Header {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub flags_8 : u8,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 29 |     /// TV System, rarely used
[INFO] [stdout] 30 |     pub flags_9 : u8,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 31 |     /// TV System, PRG RAM presence, rarely used
[INFO] [stdout] 32 |     pub flags_10 : u8,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 33 |     /// Empty padding, used to store names of hackers
[INFO] [stdout] 34 |     pub padding : [u8;5],
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Header` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `load`, `ppu_read`, and `ppu_write` are never used
[INFO] [stdout]   --> src/components/cartridge.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl Cartridge {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn load(&mut self, data : Vec<u8>){
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn ppu_read(&self, addr : u16) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn ppu_write(&mut self, addr : u16, data : u8) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `has_trainer` are never used
[INFO] [stdout]    --> src/components/cartridge.rs:100:12
[INFO] [stdout]     |
[INFO] [stdout]  99 | impl Header {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] 100 |     pub fn new(data : &[u8]) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn has_trainer(&self) -> bool{
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_mario` is never used
[INFO] [stdout]   --> src/test/mod.rs:98:4
[INFO] [stdout]    |
[INFO] [stdout] 98 | fn load_mario() -> Vec<u8> {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_metroid` is never used
[INFO] [stdout]    --> src/test/mod.rs:104:4
[INFO] [stdout]     |
[INFO] [stdout] 104 | fn load_metroid() -> Vec<u8> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Convert` is never used
[INFO] [stdout]   --> src/utils/byte_types.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub trait Convert {
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `sub_overflow` is never used
[INFO] [stdout]   --> src/utils/traits.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub trait OverflowOp<T> {
[INFO] [stdout]    |           ---------- method in this trait
[INFO] [stdout] 48 |     fn add_overflow(&self, value: T) -> T;
[INFO] [stdout] 49 |     fn sub_overflow(&self, value: T) -> T;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `InBetween` is never used
[INFO] [stdout]   --> src/utils/traits.rs:66:11
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub trait InBetween<T> {
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.32s
[INFO] running `Command { std: "docker" "inspect" "2af5959f9f61aeb1e406cb05daee6a5cd8e305d870e0aebd5479c5cc173b3e36", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2af5959f9f61aeb1e406cb05daee6a5cd8e305d870e0aebd5479c5cc173b3e36", kill_on_drop: false }`
[INFO] [stdout] 2af5959f9f61aeb1e406cb05daee6a5cd8e305d870e0aebd5479c5cc173b3e36
