[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 df1ae0f7dd168513de2d89beb2cb7a95d4fdc118 for pr-159343-retry
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdavid19kerrigan%2Fnes" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-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-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/david19kerrigan/nes on toolchain df1ae0f7dd168513de2d89beb2cb7a95d4fdc118
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+df1ae0f7dd168513de2d89beb2cb7a95d4fdc118" "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" "+df1ae0f7dd168513de2d89beb2cb7a95d4fdc118" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded colors-transform v0.2.11
[INFO] [stderr]   Downloaded proc-macro2 v1.0.71
[INFO] [stderr]   Downloaded sdl2 v0.36.0
[INFO] [stderr]   Downloaded sdl2-sys v0.36.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/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:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 296bb311b380276fdf9779f8a8df0aee3c1eae554bb531d80021416917bee836
[INFO] running `Command { std: "docker" "start" "296bb311b380276fdf9779f8a8df0aee3c1eae554bb531d80021416917bee836", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "296bb311b380276fdf9779f8a8df0aee3c1eae554bb531d80021416917bee836", 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" "296bb311b380276fdf9779f8a8df0aee3c1eae554bb531d80021416917bee836" "/opt/rustwide/cargo-home/bin/cargo" "+df1ae0f7dd168513de2d89beb2cb7a95d4fdc118" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "296bb311b380276fdf9779f8a8df0aee3c1eae554bb531d80021416917bee836", 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" "296bb311b380276fdf9779f8a8df0aee3c1eae554bb531d80021416917bee836" "/opt/rustwide/cargo-home/bin/cargo" "+df1ae0f7dd168513de2d89beb2cb7a95d4fdc118" "check" "--frozen" "--all" "--all-targets" "--message-format=json", 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 itoa v1.0.10
[INFO] [stderr]     Checking lazy_static v1.4.0
[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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) on by default
[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)]` (part of `#[warn(unused)]`) 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: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: 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)]` (part of `#[warn(unused)]`) on by default
[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)]` (part of `#[warn(unused)]`) 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: `sprite_0_draw`
[INFO] [stdout]    --> src/ppu.rs:241:13
[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:13
[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: 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: 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: `sprite_0_draw`
[INFO] [stdout]    --> src/ppu.rs:241:13
[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:13
[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: 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: `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: `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: `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: `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: `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]     |                                            ^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `ADDR`
[INFO] [stdout]     |
[INFO] [stdout] 115 -                 let (temp, p, sp, a, x, y, addr) = cpu.load_instruction(&mut bus);
[INFO] [stdout] 115 +                 let (temp, p, sp, a, x, y, util::ADDR) = cpu.load_instruction(&mut bus);
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 let (temp, p, sp, a, x, y, _addr) = cpu.load_instruction(&mut bus);
[INFO] [stdout]     |                                            +
[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: `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]     |                                            ^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `ADDR`
[INFO] [stdout]     |
[INFO] [stdout] 115 -                 let (temp, p, sp, a, x, y, addr) = cpu.load_instruction(&mut bus);
[INFO] [stdout] 115 +                 let (temp, p, sp, a, x, y, util::ADDR) = cpu.load_instruction(&mut bus);
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 let (temp, p, sp, a, x, y, _addr) = cpu.load_instruction(&mut bus);
[INFO] [stdout]     |                                            +
[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)]` (part of `#[warn(unused)]`) 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<u128>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 48 |     true_vals: Vec<u128>,
[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)]` (part of `#[warn(unused)]`) 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: 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)]` (part of `#[warn(unused)]`) 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: 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)]` (part of `#[warn(nonstandard_style)]`) 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: 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 `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: 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] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.72s
[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<u128>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 48 |     true_vals: Vec<u128>,
[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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(nonstandard_style)]`) 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)]` (part of `#[warn(nonstandard_style)]`) 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: 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)]` (part of `#[warn(nonstandard_style)]`) 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: 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 `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] running `Command { std: "docker" "inspect" "296bb311b380276fdf9779f8a8df0aee3c1eae554bb531d80021416917bee836", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "296bb311b380276fdf9779f8a8df0aee3c1eae554bb531d80021416917bee836", kill_on_drop: false }`
[INFO] [stdout] 296bb311b380276fdf9779f8a8df0aee3c1eae554bb531d80021416917bee836
