[INFO] cloning repository https://github.com/david19kerrigan/nes [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/david19kerrigan/nes" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdavid19kerrigan%2Fnes", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdavid19kerrigan%2Fnes'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] a331f9410531ad7f04aa0d790377f6fd64ee3711 [INFO] checking david19kerrigan/nes against master#f8f6997469237299c1d60814c7b9828602a1f8e4 for pr-143808 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdavid19kerrigan%2Fnes" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/david19kerrigan/nes [INFO] finished tweaking git repo https://github.com/david19kerrigan/nes [INFO] tweaked toml for git repo https://github.com/david19kerrigan/nes written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/david19kerrigan/nes on toolchain f8f6997469237299c1d60814c7b9828602a1f8e4 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f8f6997469237299c1d60814c7b9828602a1f8e4" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/david19kerrigan/nes already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f8f6997469237299c1d60814c7b9828602a1f8e4" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded colors-transform v0.2.11 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+f8f6997469237299c1d60814c7b9828602a1f8e4" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 8834987ec20e5ce77b5854ebf1f4b2e68f569f7aa19c8d8ecdbd60fab3deccfe [INFO] running `Command { std: "docker" "start" "-a" "8834987ec20e5ce77b5854ebf1f4b2e68f569f7aa19c8d8ecdbd60fab3deccfe", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "8834987ec20e5ce77b5854ebf1f4b2e68f569f7aa19c8d8ecdbd60fab3deccfe", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8834987ec20e5ce77b5854ebf1f4b2e68f569f7aa19c8d8ecdbd60fab3deccfe", kill_on_drop: false }` [INFO] [stdout] 8834987ec20e5ce77b5854ebf1f4b2e68f569f7aa19c8d8ecdbd60fab3deccfe [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+f8f6997469237299c1d60814c7b9828602a1f8e4" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d6f5f571b4853e9c5b5bd70c6c616ac4aeb5e72f18c48396163f9cadde79c747 [INFO] running `Command { std: "docker" "start" "-a" "d6f5f571b4853e9c5b5bd70c6c616ac4aeb5e72f18c48396163f9cadde79c747", kill_on_drop: false }` [INFO] [stderr] Compiling version-compare v0.1.1 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling libc v0.2.151 [INFO] [stderr] Compiling serde v1.0.193 [INFO] [stderr] Compiling sdl2 v0.36.0 [INFO] [stderr] Checking memchr v2.6.4 [INFO] [stderr] Checking ryu v1.0.16 [INFO] [stderr] Checking lazy_static v1.4.0 [INFO] [stderr] Checking itoa v1.0.10 [INFO] [stderr] Checking bitflags v1.3.2 [INFO] [stderr] Checking colors-transform v0.2.11 [INFO] [stderr] Compiling sdl2-sys v0.36.0 [INFO] [stderr] Checking csv-core v0.1.11 [INFO] [stderr] Checking csv v1.3.0 [INFO] [stderr] Checking nes v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `Instant` [INFO] [stdout] --> src/cpu.rs:5:27 [INFO] [stdout] | [INFO] [stdout] 5 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `csv::StringRecord` [INFO] [stdout] --> src/cpu.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use csv::StringRecord; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Rgb` [INFO] [stdout] --> src/ppu.rs:5:46 [INFO] [stdout] | [INFO] [stdout] 5 | use colors_transform::{Color as ColorT, Hsl, Rgb}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::util::*` [INFO] [stdout] --> src/main.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::util::*; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `csv::Reader` [INFO] [stdout] --> src/main.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use csv::Reader; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Point` and `Rect` [INFO] [stdout] --> src/main.rs:17:18 [INFO] [stdout] | [INFO] [stdout] 17 | use sdl2::rect::{Point, Rect}; [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::render::Canvas` [INFO] [stdout] --> src/main.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | use sdl2::render::Canvas; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::video::Window` [INFO] [stdout] --> src/main.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | use sdl2::video::Window; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs::File` [INFO] [stdout] --> src/main.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use std::fs::File; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread::sleep` [INFO] [stdout] --> src/main.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | use std::thread::sleep; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/main.rs:76:44 [INFO] [stdout] | [INFO] [stdout] 76 | Keycode::K => input |= (1 << 0), // A [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 76 - Keycode::K => input |= (1 << 0), // A [INFO] [stdout] 76 + Keycode::K => input |= 1 << 0, // A [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/main.rs:77:44 [INFO] [stdout] | [INFO] [stdout] 77 | Keycode::J => input |= (1 << 1), // B [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 77 - Keycode::J => input |= (1 << 1), // B [INFO] [stdout] 77 + Keycode::J => input |= 1 << 1, // B [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/main.rs:78:44 [INFO] [stdout] | [INFO] [stdout] 78 | Keycode::B => input |= (1 << 2), // Select [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 78 - Keycode::B => input |= (1 << 2), // Select [INFO] [stdout] 78 + Keycode::B => input |= 1 << 2, // Select [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/main.rs:79:44 [INFO] [stdout] | [INFO] [stdout] 79 | Keycode::V => input |= (1 << 3), // Start [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 79 - Keycode::V => input |= (1 << 3), // Start [INFO] [stdout] 79 + Keycode::V => input |= 1 << 3, // Start [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/main.rs:80:44 [INFO] [stdout] | [INFO] [stdout] 80 | Keycode::W => input |= (1 << 4), // Up [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 80 - Keycode::W => input |= (1 << 4), // Up [INFO] [stdout] 80 + Keycode::W => input |= 1 << 4, // Up [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/main.rs:81:44 [INFO] [stdout] | [INFO] [stdout] 81 | Keycode::S => input |= (1 << 5), // Down [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 81 - Keycode::S => input |= (1 << 5), // Down [INFO] [stdout] 81 + Keycode::S => input |= 1 << 5, // Down [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/main.rs:82:44 [INFO] [stdout] | [INFO] [stdout] 82 | Keycode::A => input |= (1 << 6), // Left [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 82 - Keycode::A => input |= (1 << 6), // Left [INFO] [stdout] 82 + Keycode::A => input |= 1 << 6, // Left [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/main.rs:83:44 [INFO] [stdout] | [INFO] [stdout] 83 | Keycode::D => input |= (1 << 7), // Right [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 83 - Keycode::D => input |= (1 << 7), // Right [INFO] [stdout] 83 + Keycode::D => input |= 1 << 7, // Right [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Instant` [INFO] [stdout] --> src/cpu.rs:5:27 [INFO] [stdout] | [INFO] [stdout] 5 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `csv::StringRecord` [INFO] [stdout] --> src/cpu.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use csv::StringRecord; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Rgb` [INFO] [stdout] --> src/ppu.rs:5:46 [INFO] [stdout] | [INFO] [stdout] 5 | use colors_transform::{Color as ColorT, Hsl, Rgb}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::util::*` [INFO] [stdout] --> src/main.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::util::*; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `csv::Reader` [INFO] [stdout] --> src/main.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use csv::Reader; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Point` and `Rect` [INFO] [stdout] --> src/main.rs:17:18 [INFO] [stdout] | [INFO] [stdout] 17 | use sdl2::rect::{Point, Rect}; [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::render::Canvas` [INFO] [stdout] --> src/main.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | use sdl2::render::Canvas; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::video::Window` [INFO] [stdout] --> src/main.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | use sdl2::video::Window; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs::File` [INFO] [stdout] --> src/main.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use std::fs::File; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread::sleep` [INFO] [stdout] --> src/main.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | use std::thread::sleep; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/main.rs:76:44 [INFO] [stdout] | [INFO] [stdout] 76 | Keycode::K => input |= (1 << 0), // A [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 76 - Keycode::K => input |= (1 << 0), // A [INFO] [stdout] 76 + Keycode::K => input |= 1 << 0, // A [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/main.rs:77:44 [INFO] [stdout] | [INFO] [stdout] 77 | Keycode::J => input |= (1 << 1), // B [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 77 - Keycode::J => input |= (1 << 1), // B [INFO] [stdout] 77 + Keycode::J => input |= 1 << 1, // B [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/main.rs:78:44 [INFO] [stdout] | [INFO] [stdout] 78 | Keycode::B => input |= (1 << 2), // Select [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 78 - Keycode::B => input |= (1 << 2), // Select [INFO] [stdout] 78 + Keycode::B => input |= 1 << 2, // Select [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/main.rs:79:44 [INFO] [stdout] | [INFO] [stdout] 79 | Keycode::V => input |= (1 << 3), // Start [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 79 - Keycode::V => input |= (1 << 3), // Start [INFO] [stdout] 79 + Keycode::V => input |= 1 << 3, // Start [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/main.rs:80:44 [INFO] [stdout] | [INFO] [stdout] 80 | Keycode::W => input |= (1 << 4), // Up [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 80 - Keycode::W => input |= (1 << 4), // Up [INFO] [stdout] 80 + Keycode::W => input |= 1 << 4, // Up [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/main.rs:81:44 [INFO] [stdout] | [INFO] [stdout] 81 | Keycode::S => input |= (1 << 5), // Down [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 81 - Keycode::S => input |= (1 << 5), // Down [INFO] [stdout] 81 + Keycode::S => input |= 1 << 5, // Down [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/main.rs:82:44 [INFO] [stdout] | [INFO] [stdout] 82 | Keycode::A => input |= (1 << 6), // Left [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 82 - Keycode::A => input |= (1 << 6), // Left [INFO] [stdout] 82 + Keycode::A => input |= 1 << 6, // Left [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/main.rs:83:44 [INFO] [stdout] | [INFO] [stdout] 83 | Keycode::D => input |= (1 << 7), // Right [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 83 - Keycode::D => input |= (1 << 7), // Right [INFO] [stdout] 83 + Keycode::D => input |= 1 << 7, // Right [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `u_addr` [INFO] [stdout] --> src/bus.rs:127:13 [INFO] [stdout] | [INFO] [stdout] 127 | let u_addr = addr as usize; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_u_addr` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `high` [INFO] [stdout] --> src/bus.rs:188:13 [INFO] [stdout] | [INFO] [stdout] 188 | let high = self.cpu_read_16(pc + 2); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_high` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `u_addr` [INFO] [stdout] --> src/bus.rs:127:13 [INFO] [stdout] | [INFO] [stdout] 127 | let u_addr = addr as usize; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_u_addr` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `high` [INFO] [stdout] --> src/bus.rs:188:13 [INFO] [stdout] | [INFO] [stdout] 188 | let high = self.cpu_read_16(pc + 2); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_high` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/cpu.rs:280:13 [INFO] [stdout] | [INFO] [stdout] 280 | _ => panic!("{}", ERR_ADDR), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/cpu.rs:280:13 [INFO] [stdout] | [INFO] [stdout] 249 | Addressing::IMP | Addressing::ACC => {self.pc += 1; 0}, [INFO] [stdout] | --------------------------------- matches some of the same values [INFO] [stdout] 250 | Addressing::IMM => { self.pc += 2; self.pc - 1 }, [INFO] [stdout] | --------------- matches some of the same values [INFO] [stdout] 251 | Addressing::ZPG => { self.pc += 2; bus.read_single(self.pc) as u16 }, [INFO] [stdout] | --------------- matches some of the same values [INFO] [stdout] 252 | Addressing::ZPX => { self.pc += 2; bus.read_single(self.pc).wrapping_add(self.x) as u16 }, [INFO] [stdout] | --------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 280 | _ => panic!("{}", ERR_ADDR), [INFO] [stdout] | ^ ...and 8 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/cpu.rs:388:13 [INFO] [stdout] | [INFO] [stdout] 388 | _ => panic!("{}", ERR_OP), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/cpu.rs:388:13 [INFO] [stdout] | [INFO] [stdout] 287 | Instructions::ADC => { [INFO] [stdout] | ----------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 290 | Instructions::SBC => { [INFO] [stdout] | ----------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 293 | Instructions::AND | Instructions::EOR | Instructions::ORA => { [INFO] [stdout] | --------------------------------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 298 | Instructions::ASL | Instructions::LSR | Instructions::ROL | Instructions::ROR => { [INFO] [stdout] | ----------------------------------------------------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 388 | _ => panic!("{}", ERR_OP), [INFO] [stdout] | ^ ...and 28 other patterns collectively make this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/cpu.rs:280:13 [INFO] [stdout] | [INFO] [stdout] 280 | _ => panic!("{}", ERR_ADDR), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/cpu.rs:280:13 [INFO] [stdout] | [INFO] [stdout] 249 | Addressing::IMP | Addressing::ACC => {self.pc += 1; 0}, [INFO] [stdout] | --------------------------------- matches some of the same values [INFO] [stdout] 250 | Addressing::IMM => { self.pc += 2; self.pc - 1 }, [INFO] [stdout] | --------------- matches some of the same values [INFO] [stdout] 251 | Addressing::ZPG => { self.pc += 2; bus.read_single(self.pc) as u16 }, [INFO] [stdout] | --------------- matches some of the same values [INFO] [stdout] 252 | Addressing::ZPX => { self.pc += 2; bus.read_single(self.pc).wrapping_add(self.x) as u16 }, [INFO] [stdout] | --------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 280 | _ => panic!("{}", ERR_ADDR), [INFO] [stdout] | ^ ...and 8 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/cpu.rs:388:13 [INFO] [stdout] | [INFO] [stdout] 388 | _ => panic!("{}", ERR_OP), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/cpu.rs:388:13 [INFO] [stdout] | [INFO] [stdout] 287 | Instructions::ADC => { [INFO] [stdout] | ----------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 290 | Instructions::SBC => { [INFO] [stdout] | ----------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 293 | Instructions::AND | Instructions::EOR | Instructions::ORA => { [INFO] [stdout] | --------------------------------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 298 | Instructions::ASL | Instructions::LSR | Instructions::ROL | Instructions::ROR => { [INFO] [stdout] | ----------------------------------------------------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 388 | _ => panic!("{}", ERR_OP), [INFO] [stdout] | ^ ...and 28 other patterns collectively make this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sprite_0_draw` [INFO] [stdout] --> src/ppu.rs:241:17 [INFO] [stdout] | [INFO] [stdout] 241 | let mut sprite_0_draw = false; [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sprite_0_draw` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `background_draw` [INFO] [stdout] --> src/ppu.rs:242:17 [INFO] [stdout] | [INFO] [stdout] 242 | let mut background_draw = false; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_background_draw` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `flip_ver` [INFO] [stdout] --> src/ppu.rs:342:29 [INFO] [stdout] | [INFO] [stdout] 342 | let flip_ver = get_u8_bit(attr, 7) == 1; [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_flip_ver` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ppu.rs:241:13 [INFO] [stdout] | [INFO] [stdout] 241 | let mut sprite_0_draw = false; [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ppu.rs:242:13 [INFO] [stdout] | [INFO] [stdout] 242 | let mut background_draw = false; [INFO] [stdout] | ----^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `u` [INFO] [stdout] --> src/testing.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | let u = flags.chars().nth(2).unwrap().is_uppercase() as u8; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_u` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/testing.rs:66:51 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn check_vblank(&mut self, bus: &mut Bus, cpu: &mut Cpu) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sprite_0_draw` [INFO] [stdout] --> src/ppu.rs:241:17 [INFO] [stdout] | [INFO] [stdout] 241 | let mut sprite_0_draw = false; [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sprite_0_draw` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `background_draw` [INFO] [stdout] --> src/ppu.rs:242:17 [INFO] [stdout] | [INFO] [stdout] 242 | let mut background_draw = false; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_background_draw` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `flip_ver` [INFO] [stdout] --> src/ppu.rs:342:29 [INFO] [stdout] | [INFO] [stdout] 342 | let flip_ver = get_u8_bit(attr, 7) == 1; [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_flip_ver` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ppu.rs:241:13 [INFO] [stdout] | [INFO] [stdout] 241 | let mut sprite_0_draw = false; [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ppu.rs:242:13 [INFO] [stdout] | [INFO] [stdout] 242 | let mut background_draw = false; [INFO] [stdout] | ----^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `u` [INFO] [stdout] --> src/testing.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | let u = flags.chars().nth(2).unwrap().is_uppercase() as u8; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_u` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> src/util.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 58 | for n in 0..l - r { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p` [INFO] [stdout] --> src/main.rs:115:28 [INFO] [stdout] | [INFO] [stdout] 115 | let (temp, p, sp, a, x, y, addr) = cpu.load_instruction(&mut bus); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_p` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sp` [INFO] [stdout] --> src/main.rs:115:31 [INFO] [stdout] | [INFO] [stdout] 115 | let (temp, p, sp, a, x, y, addr) = cpu.load_instruction(&mut bus); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_sp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `a` [INFO] [stdout] --> src/main.rs:115:35 [INFO] [stdout] | [INFO] [stdout] 115 | let (temp, p, sp, a, x, y, addr) = cpu.load_instruction(&mut bus); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> src/main.rs:115:38 [INFO] [stdout] | [INFO] [stdout] 115 | let (temp, p, sp, a, x, y, addr) = cpu.load_instruction(&mut bus); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y` [INFO] [stdout] --> src/main.rs:115:41 [INFO] [stdout] | [INFO] [stdout] 115 | let (temp, p, sp, a, x, y, addr) = cpu.load_instruction(&mut bus); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> src/main.rs:115:44 [INFO] [stdout] | [INFO] [stdout] 115 | let (temp, p, sp, a, x, y, addr) = cpu.load_instruction(&mut bus); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `m` [INFO] [stdout] --> src/main.rs:121:17 [INFO] [stdout] | [INFO] [stdout] 121 | for m in 0..3 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_m` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/testing.rs:66:51 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn check_vblank(&mut self, bus: &mut Bus, cpu: &mut Cpu) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> src/util.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 58 | for n in 0..l - r { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p` [INFO] [stdout] --> src/main.rs:115:28 [INFO] [stdout] | [INFO] [stdout] 115 | let (temp, p, sp, a, x, y, addr) = cpu.load_instruction(&mut bus); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_p` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sp` [INFO] [stdout] --> src/main.rs:115:31 [INFO] [stdout] | [INFO] [stdout] 115 | let (temp, p, sp, a, x, y, addr) = cpu.load_instruction(&mut bus); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_sp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `a` [INFO] [stdout] --> src/main.rs:115:35 [INFO] [stdout] | [INFO] [stdout] 115 | let (temp, p, sp, a, x, y, addr) = cpu.load_instruction(&mut bus); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> src/main.rs:115:38 [INFO] [stdout] | [INFO] [stdout] 115 | let (temp, p, sp, a, x, y, addr) = cpu.load_instruction(&mut bus); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y` [INFO] [stdout] --> src/main.rs:115:41 [INFO] [stdout] | [INFO] [stdout] 115 | let (temp, p, sp, a, x, y, addr) = cpu.load_instruction(&mut bus); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> src/main.rs:115:44 [INFO] [stdout] | [INFO] [stdout] 115 | let (temp, p, sp, a, x, y, addr) = cpu.load_instruction(&mut bus); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `m` [INFO] [stdout] --> src/main.rs:121:17 [INFO] [stdout] | [INFO] [stdout] 121 | for m in 0..3 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_m` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `cpu_read_low_high` is never used [INFO] [stdout] --> src/bus.rs:110:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl Bus { [INFO] [stdout] | -------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn cpu_read_low_high(&mut self, low: u8, high: u8) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `stack` is never read [INFO] [stdout] --> src/cpu.rs:46:9 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct Cpu { [INFO] [stdout] | --- field in this struct [INFO] [stdout] ... [INFO] [stdout] 46 | pub stack: [u8; 256], [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `flag_negative` and `print_stack` are never used [INFO] [stdout] --> src/cpu.rs:206:12 [INFO] [stdout] | [INFO] [stdout] 50 | impl Cpu { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 206 | pub fn flag_negative(&mut self, negative: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 590 | pub fn print_stack(&mut self, bus: &mut Bus) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `nametable_addr`, `oam_addr`, `v`, `t`, and `x` are never read [INFO] [stdout] --> src/ppu.rs:127:5 [INFO] [stdout] | [INFO] [stdout] 123 | pub struct Ppu { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 127 | nametable_addr: u16, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 132 | pub oam_addr: u16, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 135 | v: u8, [INFO] [stdout] | ^ [INFO] [stdout] 136 | t: u8, [INFO] [stdout] | ^ [INFO] [stdout] 137 | x: u8, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LINE_P` is never used [INFO] [stdout] --> src/testing.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const LINE_P: usize = 6; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LINE_SP` is never used [INFO] [stdout] --> src/testing.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const LINE_SP: usize = 5; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LINE_A` is never used [INFO] [stdout] --> src/testing.rs:10:7 [INFO] [stdout] | [INFO] [stdout] 10 | const LINE_A: usize = 2; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LINE_X` is never used [INFO] [stdout] --> src/testing.rs:11:7 [INFO] [stdout] | [INFO] [stdout] 11 | const LINE_X: usize = 3; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LINE_Y` is never used [INFO] [stdout] --> src/testing.rs:12:7 [INFO] [stdout] | [INFO] [stdout] 12 | const LINE_Y: usize = 4; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LINE_PC` is never used [INFO] [stdout] --> src/testing.rs:13:7 [INFO] [stdout] | [INFO] [stdout] 13 | const LINE_PC: usize = 7; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_processor_flags` is never used [INFO] [stdout] --> src/testing.rs:28:4 [INFO] [stdout] | [INFO] [stdout] 28 | fn parse_processor_flags(flags: &str) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_attribute` is never used [INFO] [stdout] --> src/testing.rs:40:4 [INFO] [stdout] | [INFO] [stdout] 40 | fn check_attribute(is_equal: bool, name: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `my_vals` and `true_vals` are never read [INFO] [stdout] --> src/testing.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 46 | pub struct Testing { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 47 | my_vals: Vec, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 48 | true_vals: Vec, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `test_log` is never used [INFO] [stdout] --> src/testing.rs:84:12 [INFO] [stdout] | [INFO] [stdout] 55 | impl Testing { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn test_log(&mut self, cpu: &mut Cpu, ppu: &mut Ppu) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SCROLL` is never used [INFO] [stdout] --> src/util.rs:6:11 [INFO] [stdout] | [INFO] [stdout] 6 | pub const SCROLL: u16 = 0x2005; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/main.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | canvas.set_scale(3.0, 3.0); [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)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 49 | let _ = canvas.set_scale(3.0, 3.0); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `cpu_memory_size` should have an upper case name [INFO] [stdout] --> src/bus.rs:5:7 [INFO] [stdout] | [INFO] [stdout] 5 | const cpu_memory_size: usize = 0x10000; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_upper_case_globals)]` on by default [INFO] [stdout] help: convert the identifier to upper case [INFO] [stdout] | [INFO] [stdout] 5 - const cpu_memory_size: usize = 0x10000; [INFO] [stdout] 5 + const CPU_MEMORY_SIZE: usize = 0x10000; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ppu_memory_size` should have an upper case name [INFO] [stdout] --> src/bus.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | const ppu_memory_size: usize = 0x4000; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: convert the identifier to upper case [INFO] [stdout] | [INFO] [stdout] 6 - const ppu_memory_size: usize = 0x4000; [INFO] [stdout] 6 + const PPU_MEMORY_SIZE: usize = 0x4000; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `cpu_read_low_high` is never used [INFO] [stdout] --> src/bus.rs:110:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl Bus { [INFO] [stdout] | -------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn cpu_read_low_high(&mut self, low: u8, high: u8) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `stack` is never read [INFO] [stdout] --> src/cpu.rs:46:9 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct Cpu { [INFO] [stdout] | --- field in this struct [INFO] [stdout] ... [INFO] [stdout] 46 | pub stack: [u8; 256], [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `flag_negative` and `print_stack` are never used [INFO] [stdout] --> src/cpu.rs:206:12 [INFO] [stdout] | [INFO] [stdout] 50 | impl Cpu { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 206 | pub fn flag_negative(&mut self, negative: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 590 | pub fn print_stack(&mut self, bus: &mut Bus) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `nametable_addr`, `oam_addr`, `v`, `t`, and `x` are never read [INFO] [stdout] --> src/ppu.rs:127:5 [INFO] [stdout] | [INFO] [stdout] 123 | pub struct Ppu { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 127 | nametable_addr: u16, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 132 | pub oam_addr: u16, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 135 | v: u8, [INFO] [stdout] | ^ [INFO] [stdout] 136 | t: u8, [INFO] [stdout] | ^ [INFO] [stdout] 137 | x: u8, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LINE_P` is never used [INFO] [stdout] --> src/testing.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const LINE_P: usize = 6; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LINE_SP` is never used [INFO] [stdout] --> src/testing.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const LINE_SP: usize = 5; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LINE_A` is never used [INFO] [stdout] --> src/testing.rs:10:7 [INFO] [stdout] | [INFO] [stdout] 10 | const LINE_A: usize = 2; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LINE_X` is never used [INFO] [stdout] --> src/testing.rs:11:7 [INFO] [stdout] | [INFO] [stdout] 11 | const LINE_X: usize = 3; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LINE_Y` is never used [INFO] [stdout] --> src/testing.rs:12:7 [INFO] [stdout] | [INFO] [stdout] 12 | const LINE_Y: usize = 4; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LINE_PC` is never used [INFO] [stdout] --> src/testing.rs:13:7 [INFO] [stdout] | [INFO] [stdout] 13 | const LINE_PC: usize = 7; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_processor_flags` is never used [INFO] [stdout] --> src/testing.rs:28:4 [INFO] [stdout] | [INFO] [stdout] 28 | fn parse_processor_flags(flags: &str) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_attribute` is never used [INFO] [stdout] --> src/testing.rs:40:4 [INFO] [stdout] | [INFO] [stdout] 40 | fn check_attribute(is_equal: bool, name: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `my_vals` and `true_vals` are never read [INFO] [stdout] --> src/testing.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 46 | pub struct Testing { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 47 | my_vals: Vec, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 48 | true_vals: Vec, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `test_log` is never used [INFO] [stdout] --> src/testing.rs:84:12 [INFO] [stdout] | [INFO] [stdout] 55 | impl Testing { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn test_log(&mut self, cpu: &mut Cpu, ppu: &mut Ppu) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SCROLL` is never used [INFO] [stdout] --> src/util.rs:6:11 [INFO] [stdout] | [INFO] [stdout] 6 | pub const SCROLL: u16 = 0x2005; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/main.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | canvas.set_scale(3.0, 3.0); [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)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 49 | let _ = canvas.set_scale(3.0, 3.0); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `cpu_memory_size` should have an upper case name [INFO] [stdout] --> src/bus.rs:5:7 [INFO] [stdout] | [INFO] [stdout] 5 | const cpu_memory_size: usize = 0x10000; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_upper_case_globals)]` on by default [INFO] [stdout] help: convert the identifier to upper case [INFO] [stdout] | [INFO] [stdout] 5 - const cpu_memory_size: usize = 0x10000; [INFO] [stdout] 5 + const CPU_MEMORY_SIZE: usize = 0x10000; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ppu_memory_size` should have an upper case name [INFO] [stdout] --> src/bus.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | const ppu_memory_size: usize = 0x4000; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: convert the identifier to upper case [INFO] [stdout] | [INFO] [stdout] 6 - const ppu_memory_size: usize = 0x4000; [INFO] [stdout] 6 + const PPU_MEMORY_SIZE: usize = 0x4000; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `DEC` should have a snake case name [INFO] [stdout] --> src/bus.rs:192:12 [INFO] [stdout] | [INFO] [stdout] 192 | pub fn DEC(&mut self, addr: u16) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `dec` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `INC` should have a snake case name [INFO] [stdout] --> src/bus.rs:198:12 [INFO] [stdout] | [INFO] [stdout] 198 | pub fn INC(&mut self, addr: u16) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `inc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `Reset` should have a snake case name [INFO] [stdout] --> src/cpu.rs:76:12 [INFO] [stdout] | [INFO] [stdout] 76 | pub fn Reset(&mut self, bus: &mut Bus) { [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `reset` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `NMI` should have a snake case name [INFO] [stdout] --> src/cpu.rs:80:12 [INFO] [stdout] | [INFO] [stdout] 80 | pub fn NMI(&mut self, bus: &mut Bus) { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `nmi` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `BRK` should have a snake case name [INFO] [stdout] --> src/cpu.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn BRK(&mut self, bus: &mut Bus) { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `brk` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `JMP` should have a snake case name [INFO] [stdout] --> src/cpu.rs:93:12 [INFO] [stdout] | [INFO] [stdout] 93 | pub fn JMP(&mut self, bus: &mut Bus, addr: u16) { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `jmp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `PHP` should have a snake case name [INFO] [stdout] --> src/cpu.rs:97:12 [INFO] [stdout] | [INFO] [stdout] 97 | pub fn PHP(&mut self, bus: &mut Bus) { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `php` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `PLP` should have a snake case name [INFO] [stdout] --> src/cpu.rs:102:12 [INFO] [stdout] | [INFO] [stdout] 102 | pub fn PLP(&mut self, bus: &mut Bus) { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `plp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `ADC` should have a snake case name [INFO] [stdout] --> src/cpu.rs:113:12 [INFO] [stdout] | [INFO] [stdout] 113 | pub fn ADC(&mut self, b: u8, c: u8) { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `adc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `INX` should have a snake case name [INFO] [stdout] --> src/cpu.rs:152:12 [INFO] [stdout] | [INFO] [stdout] 152 | pub fn INX(&mut self) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `inx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `INY` should have a snake case name [INFO] [stdout] --> src/cpu.rs:157:12 [INFO] [stdout] | [INFO] [stdout] 157 | pub fn INY(&mut self) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `iny` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `DEX` should have a snake case name [INFO] [stdout] --> src/cpu.rs:162:12 [INFO] [stdout] | [INFO] [stdout] 162 | pub fn DEX(&mut self) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `dex` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `DEY` should have a snake case name [INFO] [stdout] --> src/cpu.rs:167:12 [INFO] [stdout] | [INFO] [stdout] 167 | pub fn DEY(&mut self) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `dey` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/ppu.rs:233:13 [INFO] [stdout] | [INFO] [stdout] 233 | canvas.draw_point(point); [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] 233 | let _ = canvas.draw_point(point); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `DEC` should have a snake case name [INFO] [stdout] --> src/bus.rs:192:12 [INFO] [stdout] | [INFO] [stdout] 192 | pub fn DEC(&mut self, addr: u16) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `dec` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `INC` should have a snake case name [INFO] [stdout] --> src/bus.rs:198:12 [INFO] [stdout] | [INFO] [stdout] 198 | pub fn INC(&mut self, addr: u16) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `inc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `Reset` should have a snake case name [INFO] [stdout] --> src/cpu.rs:76:12 [INFO] [stdout] | [INFO] [stdout] 76 | pub fn Reset(&mut self, bus: &mut Bus) { [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `reset` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `NMI` should have a snake case name [INFO] [stdout] --> src/cpu.rs:80:12 [INFO] [stdout] | [INFO] [stdout] 80 | pub fn NMI(&mut self, bus: &mut Bus) { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `nmi` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `BRK` should have a snake case name [INFO] [stdout] --> src/cpu.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn BRK(&mut self, bus: &mut Bus) { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `brk` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `JMP` should have a snake case name [INFO] [stdout] --> src/cpu.rs:93:12 [INFO] [stdout] | [INFO] [stdout] 93 | pub fn JMP(&mut self, bus: &mut Bus, addr: u16) { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `jmp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `PHP` should have a snake case name [INFO] [stdout] --> src/cpu.rs:97:12 [INFO] [stdout] | [INFO] [stdout] 97 | pub fn PHP(&mut self, bus: &mut Bus) { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `php` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `PLP` should have a snake case name [INFO] [stdout] --> src/cpu.rs:102:12 [INFO] [stdout] | [INFO] [stdout] 102 | pub fn PLP(&mut self, bus: &mut Bus) { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `plp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `ADC` should have a snake case name [INFO] [stdout] --> src/cpu.rs:113:12 [INFO] [stdout] | [INFO] [stdout] 113 | pub fn ADC(&mut self, b: u8, c: u8) { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `adc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `INX` should have a snake case name [INFO] [stdout] --> src/cpu.rs:152:12 [INFO] [stdout] | [INFO] [stdout] 152 | pub fn INX(&mut self) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `inx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `INY` should have a snake case name [INFO] [stdout] --> src/cpu.rs:157:12 [INFO] [stdout] | [INFO] [stdout] 157 | pub fn INY(&mut self) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `iny` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `DEX` should have a snake case name [INFO] [stdout] --> src/cpu.rs:162:12 [INFO] [stdout] | [INFO] [stdout] 162 | pub fn DEX(&mut self) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `dex` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `DEY` should have a snake case name [INFO] [stdout] --> src/cpu.rs:167:12 [INFO] [stdout] | [INFO] [stdout] 167 | pub fn DEY(&mut self) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `dey` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/ppu.rs:233:13 [INFO] [stdout] | [INFO] [stdout] 233 | canvas.draw_point(point); [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] 233 | let _ = canvas.draw_point(point); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.52s [INFO] running `Command { std: "docker" "inspect" "d6f5f571b4853e9c5b5bd70c6c616ac4aeb5e72f18c48396163f9cadde79c747", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d6f5f571b4853e9c5b5bd70c6c616ac4aeb5e72f18c48396163f9cadde79c747", kill_on_drop: false }` [INFO] [stdout] d6f5f571b4853e9c5b5bd70c6c616ac4aeb5e72f18c48396163f9cadde79c747