[INFO] cloning repository https://github.com/bokuweb/rustynes
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/bokuweb/rustynes" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbokuweb%2Frustynes", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbokuweb%2Frustynes'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] f213881554e20054c7ea7adafe511195c25f8cb7
[INFO] checking bokuweb/rustynes against master#ab26b175979ee7b2cb3302dce204b99df96f7efb for pr-157696
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbokuweb%2Frustynes" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-5-tc1/source/.cargo/config
[INFO] started tweaking git repo https://github.com/bokuweb/rustynes
[INFO] finished tweaking git repo https://github.com/bokuweb/rustynes
[INFO] tweaked toml for git repo https://github.com/bokuweb/rustynes written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/bokuweb/rustynes on toolchain ab26b175979ee7b2cb3302dce204b99df96f7efb
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ab26b175979ee7b2cb3302dce204b99df96f7efb" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/bokuweb/rustynes 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" "+ab26b175979ee7b2cb3302dce204b99df96f7efb" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `rustynes` (manifest) generated 1 warning
[INFO] [stderr] warning: standalone/Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `standalone` (manifest) generated 1 warning
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded lazy_static v0.2.8
[INFO] [stderr]   Downloaded libc v0.2.30
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 2805f98c22ed185b5304f19b9f3beb364d3c63da8e36ed24f022979b8d7dd3be
[INFO] running `Command { std: "docker" "start" "2805f98c22ed185b5304f19b9f3beb364d3c63da8e36ed24f022979b8d7dd3be", 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" "2805f98c22ed185b5304f19b9f3beb364d3c63da8e36ed24f022979b8d7dd3be" "/opt/rustwide/cargo-home/bin/cargo" "+ab26b175979ee7b2cb3302dce204b99df96f7efb" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2805f98c22ed185b5304f19b9f3beb364d3c63da8e36ed24f022979b8d7dd3be", 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" "2805f98c22ed185b5304f19b9f3beb364d3c63da8e36ed24f022979b8d7dd3be" "/opt/rustwide/cargo-home/bin/cargo" "+ab26b175979ee7b2cb3302dce204b99df96f7efb" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: standalone/Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `standalone` (manifest) generated 1 warning
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `rustynes` (manifest) generated 1 warning
[INFO] [stderr]     Checking libc v0.2.30
[INFO] [stderr]     Checking lazy_static v0.2.8
[INFO] [stderr]     Checking rustynes v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking rand_os v0.1.3
[INFO] [stderr]     Checking sdl2-sys v0.32.6
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/apu/mod.rs:81:17
[INFO] [stdout]    |
[INFO] [stdout] 81 |             0x00...0x03 => {
[INFO] [stdout]    |                 ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/apu/mod.rs:84:17
[INFO] [stdout]    |
[INFO] [stdout] 84 |             0x04...0x07 => {
[INFO] [stdout]    |                 ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/apu/mod.rs:87:17
[INFO] [stdout]    |
[INFO] [stdout] 87 |             0x08...0x0b => {
[INFO] [stdout]    |                 ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/apu/mod.rs:90:17
[INFO] [stdout]    |
[INFO] [stdout] 90 |             0x0c...0x0f => {
[INFO] [stdout]    |                 ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:58:19
[INFO] [stdout]    |
[INFO] [stdout] 58 |             0x0000...0x1FFF => self.work_ram.read(addr & 0x07FF),
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:59:19
[INFO] [stdout]    |
[INFO] [stdout] 59 |             0x2000...0x3FFF => self.ppu.read(addr - 0x2000),
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:62:19
[INFO] [stdout]    |
[INFO] [stdout] 62 |             0x4000...0x401F => self.apu.read(addr - 0x4000),
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:63:19
[INFO] [stdout]    |
[INFO] [stdout] 63 |             0x6000...0x7FFF => {
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:70:19
[INFO] [stdout]    |
[INFO] [stdout] 70 |             0x8000...0xBFFF => self.program_rom.read(addr - 0x8000),
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:71:19
[INFO] [stdout]    |
[INFO] [stdout] 71 |             0xC000...0xFFFF if self.program_rom.size() <= 0x4000 => {
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:74:19
[INFO] [stdout]    |
[INFO] [stdout] 74 |             0xC000...0xFFFF => self.program_rom.read(addr - 0x8000),
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:81:19
[INFO] [stdout]    |
[INFO] [stdout] 81 |             0x0000...0x1FFF => self.work_ram.write(addr & 0x07FF, data),
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:82:19
[INFO] [stdout]    |
[INFO] [stdout] 82 |             0x2000...0x3FFF => self.ppu.write(addr - 0x2000, data),
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:85:19
[INFO] [stdout]    |
[INFO] [stdout] 85 |             0x4000...0x401F => self.apu.write(addr - 0x4000, data),
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:86:19
[INFO] [stdout]    |
[INFO] [stdout] 86 |             0x6000...0x7FFF => {
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:92:19
[INFO] [stdout]    |
[INFO] [stdout] 92 |             0x8000...0xFFFF => {
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/nes/cpu/instructions.rs:556:15
[INFO] [stdout]     |
[INFO] [stdout] 556 |     bus.write((addr | 0x0100), data);
[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] 556 -     bus.write((addr | 0x0100), data);
[INFO] [stdout] 556 +     bus.write(addr | 0x0100 , data);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `Once::new()` function is now preferred
[INFO] [stdout]    --> src/nes/cpu/opecode.rs:98:1
[INFO] [stdout]     |
[INFO] [stdout]  98 | / lazy_static! {
[INFO] [stdout]  99 | |         
[INFO] [stdout] 100 | |         pub static ref MAP: HashMap<u8, Opecode> = {
[INFO] [stdout] ...   |
[INFO] [stdout] 359 | |         };        
[INFO] [stdout] 360 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `Once::new()` function is now preferred
[INFO] [stdout]    --> src/nes/cpu/opecode.rs:98:1
[INFO] [stdout]     |
[INFO] [stdout]  98 | / lazy_static! {
[INFO] [stdout]  99 | |         
[INFO] [stdout] 100 | |         pub static ref MAP: HashMap<u8, Opecode> = {
[INFO] [stdout] ...   |
[INFO] [stdout] 359 | |         };        
[INFO] [stdout] 360 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/apu/mod.rs:81:17
[INFO] [stdout]    |
[INFO] [stdout] 81 |             0x00...0x03 => {
[INFO] [stdout]    |                 ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/apu/mod.rs:84:17
[INFO] [stdout]    |
[INFO] [stdout] 84 |             0x04...0x07 => {
[INFO] [stdout]    |                 ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/apu/mod.rs:87:17
[INFO] [stdout]    |
[INFO] [stdout] 87 |             0x08...0x0b => {
[INFO] [stdout]    |                 ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/apu/mod.rs:90:17
[INFO] [stdout]    |
[INFO] [stdout] 90 |             0x0c...0x0f => {
[INFO] [stdout]    |                 ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:58:19
[INFO] [stdout]    |
[INFO] [stdout] 58 |             0x0000...0x1FFF => self.work_ram.read(addr & 0x07FF),
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:59:19
[INFO] [stdout]    |
[INFO] [stdout] 59 |             0x2000...0x3FFF => self.ppu.read(addr - 0x2000),
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:62:19
[INFO] [stdout]    |
[INFO] [stdout] 62 |             0x4000...0x401F => self.apu.read(addr - 0x4000),
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:63:19
[INFO] [stdout]    |
[INFO] [stdout] 63 |             0x6000...0x7FFF => {
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:70:19
[INFO] [stdout]    |
[INFO] [stdout] 70 |             0x8000...0xBFFF => self.program_rom.read(addr - 0x8000),
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:71:19
[INFO] [stdout]    |
[INFO] [stdout] 71 |             0xC000...0xFFFF if self.program_rom.size() <= 0x4000 => {
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:74:19
[INFO] [stdout]    |
[INFO] [stdout] 74 |             0xC000...0xFFFF => self.program_rom.read(addr - 0x8000),
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:81:19
[INFO] [stdout]    |
[INFO] [stdout] 81 |             0x0000...0x1FFF => self.work_ram.write(addr & 0x07FF, data),
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:82:19
[INFO] [stdout]    |
[INFO] [stdout] 82 |             0x2000...0x3FFF => self.ppu.write(addr - 0x2000, data),
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:85:19
[INFO] [stdout]    |
[INFO] [stdout] 85 |             0x4000...0x401F => self.apu.write(addr - 0x4000, data),
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:86:19
[INFO] [stdout]    |
[INFO] [stdout] 86 |             0x6000...0x7FFF => {
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:92:19
[INFO] [stdout]    |
[INFO] [stdout] 92 |             0x8000...0xFFFF => {
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/nes/cpu/instructions.rs:556:15
[INFO] [stdout]     |
[INFO] [stdout] 556 |     bus.write((addr | 0x0100), data);
[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] 556 -     bus.write((addr | 0x0100), data);
[INFO] [stdout] 556 +     bus.write(addr | 0x0100 , data);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking rand v0.6.5
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `Once::new()` function is now preferred
[INFO] [stdout]    --> src/nes/cpu/opecode.rs:98:1
[INFO] [stdout]     |
[INFO] [stdout]  98 | / lazy_static! {
[INFO] [stdout]  99 | |         
[INFO] [stdout] 100 | |         pub static ref MAP: HashMap<u8, Opecode> = {
[INFO] [stdout] ...   |
[INFO] [stdout] 359 | |         };        
[INFO] [stdout] 360 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `Once::new()` function is now preferred
[INFO] [stdout]    --> src/nes/cpu/opecode.rs:98:1
[INFO] [stdout]     |
[INFO] [stdout]  98 | / lazy_static! {
[INFO] [stdout]  99 | |         
[INFO] [stdout] 100 | |         pub static ref MAP: HashMap<u8, Opecode> = {
[INFO] [stdout] ...   |
[INFO] [stdout] 359 | |         };        
[INFO] [stdout] 360 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/nes/cpu/mod.rs:113:9
[INFO] [stdout]     |
[INFO] [stdout] 113 |         _ => panic!("{}", "Undefined opecode detected."),
[INFO] [stdout]     |         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/nes/cpu/mod.rs:113:9
[INFO] [stdout]     |
[INFO] [stdout]  35 |         Instruction::LDA => lda(operand, registers, bus),
[INFO] [stdout]     |         ---------------- matches some of the same values
[INFO] [stdout]  36 |         Instruction::LDX if code.mode == Addressing::Immediate => ldx_imm(operand, registers),
[INFO] [stdout]  37 |         Instruction::LDX => ldx(operand, registers, bus),
[INFO] [stdout]     |         ---------------- matches some of the same values
[INFO] [stdout]  38 |         Instruction::LDY if code.mode == Addressing::Immediate => ldy_imm(operand, registers),
[INFO] [stdout]  39 |         Instruction::LDY => ldy(operand, registers, bus),
[INFO] [stdout]     |         ---------------- matches some of the same values
[INFO] [stdout]  40 |         Instruction::STA => sta(operand, registers, bus),
[INFO] [stdout]     |         ---------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 113 |         _ => panic!("{}", "Undefined opecode detected."),
[INFO] [stdout]     |         ^ ...and 60 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: fields `divider_for_frequency` and `frequency` are never read
[INFO] [stdout]   --> src/nes/apu/noise.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct Noise {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     divider_for_frequency: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |     frequency: usize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Noise` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `enable` and `disable` are never used
[INFO] [stdout]   --> src/nes/apu/noise.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl Noise {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn enable(&mut self) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn disable(&mut self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `close_oscillator` is never used
[INFO] [stdout]   --> src/nes/apu/triangle.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 |     fn close_oscillator(index: usize);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_oscillator_pulse_width` is never used
[INFO] [stdout]   --> src/nes/apu/triangle.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn set_oscillator_pulse_width(index: usize, width: f32);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_negative`, `set_zero`, `get_reserved`, `get_break`, and `get_decimal` are never used
[INFO] [stdout]   --> src/nes/cpu_registers/mod.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub trait CpuRegisters {
[INFO] [stdout]    |           ------------ methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 52 |     fn set_negative(&mut self, v: bool) -> &mut Self;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     fn set_zero(&mut self, v: bool) -> &mut Self;
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     fn get_reserved(&self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 73 |
[INFO] [stdout] 74 |     fn get_break(&self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     fn get_decimal(&self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_background_masked` and `is_sprite_masked` are never used
[INFO] [stdout]   --> src/nes/ppu/registers/mod.rs:83:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub trait PpuRegisters {
[INFO] [stdout]    |           ------------ methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 83 |     fn is_background_masked(&self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 84 |
[INFO] [stdout] 85 |     fn is_sprite_masked(&self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset_addr` is never used
[INFO] [stdout]   --> src/nes/ppu/registers/oam.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Oam {
[INFO] [stdout]    | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn reset_addr(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/nes/cpu/mod.rs:113:9
[INFO] [stdout]     |
[INFO] [stdout] 113 |         _ => panic!("{}", "Undefined opecode detected."),
[INFO] [stdout]     |         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/nes/cpu/mod.rs:113:9
[INFO] [stdout]     |
[INFO] [stdout]  35 |         Instruction::LDA => lda(operand, registers, bus),
[INFO] [stdout]     |         ---------------- matches some of the same values
[INFO] [stdout]  36 |         Instruction::LDX if code.mode == Addressing::Immediate => ldx_imm(operand, registers),
[INFO] [stdout]  37 |         Instruction::LDX => ldx(operand, registers, bus),
[INFO] [stdout]     |         ---------------- matches some of the same values
[INFO] [stdout]  38 |         Instruction::LDY if code.mode == Addressing::Immediate => ldy_imm(operand, registers),
[INFO] [stdout]  39 |         Instruction::LDY => ldy(operand, registers, bus),
[INFO] [stdout]     |         ---------------- matches some of the same values
[INFO] [stdout]  40 |         Instruction::STA => sta(operand, registers, bus),
[INFO] [stdout]     |         ---------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 113 |         _ => panic!("{}", "Undefined opecode detected."),
[INFO] [stdout]     |         ^ ...and 60 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: fields `divider_for_frequency` and `frequency` are never read
[INFO] [stdout]   --> src/nes/apu/noise.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct Noise {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     divider_for_frequency: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |     frequency: usize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Noise` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `enable` and `disable` are never used
[INFO] [stdout]   --> src/nes/apu/noise.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl Noise {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn enable(&mut self) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn disable(&mut self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `close_oscillator` is never used
[INFO] [stdout]   --> src/nes/apu/triangle.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 |     fn close_oscillator(index: usize);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_oscillator_pulse_width` is never used
[INFO] [stdout]   --> src/nes/apu/triangle.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn set_oscillator_pulse_width(index: usize, width: f32);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_negative`, `set_zero`, `get_reserved`, `get_break`, and `get_decimal` are never used
[INFO] [stdout]   --> src/nes/cpu_registers/mod.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub trait CpuRegisters {
[INFO] [stdout]    |           ------------ methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 52 |     fn set_negative(&mut self, v: bool) -> &mut Self;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     fn set_zero(&mut self, v: bool) -> &mut Self;
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     fn get_reserved(&self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 73 |
[INFO] [stdout] 74 |     fn get_break(&self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     fn get_decimal(&self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_background_masked` and `is_sprite_masked` are never used
[INFO] [stdout]   --> src/nes/ppu/registers/mod.rs:83:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub trait PpuRegisters {
[INFO] [stdout]    |           ------------ methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 83 |     fn is_background_masked(&self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 84 |
[INFO] [stdout] 85 |     fn is_sprite_masked(&self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset_addr` is never used
[INFO] [stdout]   --> src/nes/ppu/registers/oam.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Oam {
[INFO] [stdout]    | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn reset_addr(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/apu/mod.rs:81:17
[INFO] [stdout]    |
[INFO] [stdout] 81 |             0x00...0x03 => {
[INFO] [stdout]    |                 ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/apu/mod.rs:84:17
[INFO] [stdout]    |
[INFO] [stdout] 84 |             0x04...0x07 => {
[INFO] [stdout]    |                 ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/apu/mod.rs:87:17
[INFO] [stdout]    |
[INFO] [stdout] 87 |             0x08...0x0b => {
[INFO] [stdout]    |                 ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/apu/mod.rs:90:17
[INFO] [stdout]    |
[INFO] [stdout] 90 |             0x0c...0x0f => {
[INFO] [stdout]    |                 ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:58:19
[INFO] [stdout]    |
[INFO] [stdout] 58 |             0x0000...0x1FFF => self.work_ram.read(addr & 0x07FF),
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:59:19
[INFO] [stdout]    |
[INFO] [stdout] 59 |             0x2000...0x3FFF => self.ppu.read(addr - 0x2000),
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:62:19
[INFO] [stdout]    |
[INFO] [stdout] 62 |             0x4000...0x401F => self.apu.read(addr - 0x4000),
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:63:19
[INFO] [stdout]    |
[INFO] [stdout] 63 |             0x6000...0x7FFF => {
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:70:19
[INFO] [stdout]    |
[INFO] [stdout] 70 |             0x8000...0xBFFF => self.program_rom.read(addr - 0x8000),
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:71:19
[INFO] [stdout]    |
[INFO] [stdout] 71 |             0xC000...0xFFFF if self.program_rom.size() <= 0x4000 => {
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:74:19
[INFO] [stdout]    |
[INFO] [stdout] 74 |             0xC000...0xFFFF => self.program_rom.read(addr - 0x8000),
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:81:19
[INFO] [stdout]    |
[INFO] [stdout] 81 |             0x0000...0x1FFF => self.work_ram.write(addr & 0x07FF, data),
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:82:19
[INFO] [stdout]    |
[INFO] [stdout] 82 |             0x2000...0x3FFF => self.ppu.write(addr - 0x2000, data),
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:85:19
[INFO] [stdout]    |
[INFO] [stdout] 85 |             0x4000...0x401F => self.apu.write(addr - 0x4000, data),
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:86:19
[INFO] [stdout]    |
[INFO] [stdout] 86 |             0x6000...0x7FFF => {
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:92:19
[INFO] [stdout]    |
[INFO] [stdout] 92 |             0x8000...0xFFFF => {
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/nes/cpu/instructions.rs:556:15
[INFO] [stdout]     |
[INFO] [stdout] 556 |     bus.write((addr | 0x0100), data);
[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] 556 -     bus.write((addr | 0x0100), data);
[INFO] [stdout] 556 +     bus.write(addr | 0x0100 , data);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::ppu::background`
[INFO] [stdout]   --> src/nes/mod.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub use self::ppu::background;
[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: `self::ppu::Tile`
[INFO] [stdout]   --> src/nes/mod.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub use self::ppu::Tile;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SpriteWithCtx`
[INFO] [stdout]   --> src/nes/mod.rs:19:45
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub use self::ppu::{Sprite, SpritePosition, SpriteWithCtx};
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/apu/mod.rs:81:17
[INFO] [stdout]    |
[INFO] [stdout] 81 |             0x00...0x03 => {
[INFO] [stdout]    |                 ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/apu/mod.rs:84:17
[INFO] [stdout]    |
[INFO] [stdout] 84 |             0x04...0x07 => {
[INFO] [stdout]    |                 ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/apu/mod.rs:87:17
[INFO] [stdout]    |
[INFO] [stdout] 87 |             0x08...0x0b => {
[INFO] [stdout]    |                 ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/apu/mod.rs:90:17
[INFO] [stdout]    |
[INFO] [stdout] 90 |             0x0c...0x0f => {
[INFO] [stdout]    |                 ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:58:19
[INFO] [stdout]    |
[INFO] [stdout] 58 |             0x0000...0x1FFF => self.work_ram.read(addr & 0x07FF),
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:59:19
[INFO] [stdout]    |
[INFO] [stdout] 59 |             0x2000...0x3FFF => self.ppu.read(addr - 0x2000),
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:62:19
[INFO] [stdout]    |
[INFO] [stdout] 62 |             0x4000...0x401F => self.apu.read(addr - 0x4000),
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:63:19
[INFO] [stdout]    |
[INFO] [stdout] 63 |             0x6000...0x7FFF => {
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:70:19
[INFO] [stdout]    |
[INFO] [stdout] 70 |             0x8000...0xBFFF => self.program_rom.read(addr - 0x8000),
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:71:19
[INFO] [stdout]    |
[INFO] [stdout] 71 |             0xC000...0xFFFF if self.program_rom.size() <= 0x4000 => {
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:74:19
[INFO] [stdout]    |
[INFO] [stdout] 74 |             0xC000...0xFFFF => self.program_rom.read(addr - 0x8000),
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:81:19
[INFO] [stdout]    |
[INFO] [stdout] 81 |             0x0000...0x1FFF => self.work_ram.write(addr & 0x07FF, data),
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:82:19
[INFO] [stdout]    |
[INFO] [stdout] 82 |             0x2000...0x3FFF => self.ppu.write(addr - 0x2000, data),
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:85:19
[INFO] [stdout]    |
[INFO] [stdout] 85 |             0x4000...0x401F => self.apu.write(addr - 0x4000, data),
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:86:19
[INFO] [stdout]    |
[INFO] [stdout] 86 |             0x6000...0x7FFF => {
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/nes/bus/cpu_bus.rs:92:19
[INFO] [stdout]    |
[INFO] [stdout] 92 |             0x8000...0xFFFF => {
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/nes/cpu/instructions.rs:556:15
[INFO] [stdout]     |
[INFO] [stdout] 556 |     bus.write((addr | 0x0100), data);
[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] 556 -     bus.write((addr | 0x0100), data);
[INFO] [stdout] 556 +     bus.write(addr | 0x0100 , data);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::ppu::background`
[INFO] [stdout]   --> src/nes/mod.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub use self::ppu::background;
[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: `self::ppu::Tile`
[INFO] [stdout]   --> src/nes/mod.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub use self::ppu::Tile;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SpriteWithCtx`
[INFO] [stdout]   --> src/nes/mod.rs:19:45
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub use self::ppu::{Sprite, SpritePosition, SpriteWithCtx};
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `Once::new()` function is now preferred
[INFO] [stdout]    --> src/nes/cpu/opecode.rs:98:1
[INFO] [stdout]     |
[INFO] [stdout]  98 | / lazy_static! {
[INFO] [stdout]  99 | |         
[INFO] [stdout] 100 | |         pub static ref MAP: HashMap<u8, Opecode> = {
[INFO] [stdout] ...   |
[INFO] [stdout] 359 | |         };        
[INFO] [stdout] 360 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `Once::new()` function is now preferred
[INFO] [stdout]    --> src/nes/cpu/opecode.rs:98:1
[INFO] [stdout]     |
[INFO] [stdout]  98 | / lazy_static! {
[INFO] [stdout]  99 | |         
[INFO] [stdout] 100 | |         pub static ref MAP: HashMap<u8, Opecode> = {
[INFO] [stdout] ...   |
[INFO] [stdout] 359 | |         };        
[INFO] [stdout] 360 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `Once::new()` function is now preferred
[INFO] [stdout]    --> src/nes/cpu/opecode.rs:98:1
[INFO] [stdout]     |
[INFO] [stdout]  98 | / lazy_static! {
[INFO] [stdout]  99 | |         
[INFO] [stdout] 100 | |         pub static ref MAP: HashMap<u8, Opecode> = {
[INFO] [stdout] ...   |
[INFO] [stdout] 359 | |         };        
[INFO] [stdout] 360 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `Once::new()` function is now preferred
[INFO] [stdout]    --> src/nes/cpu/opecode.rs:98:1
[INFO] [stdout]     |
[INFO] [stdout]  98 | / lazy_static! {
[INFO] [stdout]  99 | |         
[INFO] [stdout] 100 | |         pub static ref MAP: HashMap<u8, Opecode> = {
[INFO] [stdout] ...   |
[INFO] [stdout] 359 | |         };        
[INFO] [stdout] 360 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/nes/cpu/mod.rs:113:9
[INFO] [stdout]     |
[INFO] [stdout] 113 |         _ => panic!("{}", "Undefined opecode detected."),
[INFO] [stdout]     |         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/nes/cpu/mod.rs:113:9
[INFO] [stdout]     |
[INFO] [stdout]  35 |         Instruction::LDA => lda(operand, registers, bus),
[INFO] [stdout]     |         ---------------- matches some of the same values
[INFO] [stdout]  36 |         Instruction::LDX if code.mode == Addressing::Immediate => ldx_imm(operand, registers),
[INFO] [stdout]  37 |         Instruction::LDX => ldx(operand, registers, bus),
[INFO] [stdout]     |         ---------------- matches some of the same values
[INFO] [stdout]  38 |         Instruction::LDY if code.mode == Addressing::Immediate => ldy_imm(operand, registers),
[INFO] [stdout]  39 |         Instruction::LDY => ldy(operand, registers, bus),
[INFO] [stdout]     |         ---------------- matches some of the same values
[INFO] [stdout]  40 |         Instruction::STA => sta(operand, registers, bus),
[INFO] [stdout]     |         ---------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 113 |         _ => panic!("{}", "Undefined opecode detected."),
[INFO] [stdout]     |         ^ ...and 60 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: function `get_render_buf` is never used
[INFO] [stdout]   --> src/nes/mod.rs:89:8
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub fn get_render_buf(ctx: &mut Context) -> &Vec<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: fields `divider_for_frequency` and `frequency` are never read
[INFO] [stdout]   --> src/nes/apu/noise.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct Noise {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     divider_for_frequency: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |     frequency: usize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Noise` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `enable` and `disable` are never used
[INFO] [stdout]   --> src/nes/apu/noise.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl Noise {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn enable(&mut self) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn disable(&mut self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `close_oscillator` is never used
[INFO] [stdout]   --> src/nes/apu/triangle.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 |     fn close_oscillator(index: usize);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_oscillator_pulse_width` is never used
[INFO] [stdout]   --> src/nes/apu/triangle.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn set_oscillator_pulse_width(index: usize, width: f32);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_negative`, `set_zero`, `get_reserved`, `get_break`, and `get_decimal` are never used
[INFO] [stdout]   --> src/nes/cpu_registers/mod.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub trait CpuRegisters {
[INFO] [stdout]    |           ------------ methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 52 |     fn set_negative(&mut self, v: bool) -> &mut Self;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     fn set_zero(&mut self, v: bool) -> &mut Self;
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     fn get_reserved(&self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 73 |
[INFO] [stdout] 74 |     fn get_break(&self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     fn get_decimal(&self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `mapper` is never read
[INFO] [stdout]  --> src/nes/mmc/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct Mmc {
[INFO] [stdout]   |            --- field in this struct
[INFO] [stdout] 3 |     mapper: u8,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Mmc` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_bank` and `get_mapper` are never used
[INFO] [stdout]   --> src/nes/mmc/mod.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl Mmc {
[INFO] [stdout]    | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn get_bank(&self) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn get_mapper(&self) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_background_masked` and `is_sprite_masked` are never used
[INFO] [stdout]   --> src/nes/ppu/registers/mod.rs:83:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub trait PpuRegisters {
[INFO] [stdout]    |           ------------ methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 83 |     fn is_background_masked(&self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 84 |
[INFO] [stdout] 85 |     fn is_sprite_masked(&self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset_addr` is never used
[INFO] [stdout]   --> src/nes/ppu/registers/oam.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Oam {
[INFO] [stdout]    | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn reset_addr(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `offset_addr_by_sprite_table` is never read
[INFO] [stdout]   --> src/nes/ppu/sprite_utils.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct SpriteConfig {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub offset_addr_by_sprite_table: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SpriteConfig` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_buf` is never used
[INFO] [stdout]   --> src/nes/renderer/mod.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Renderer {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn get_buf(&self) -> &Vec<u8> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `eval` is never used
[INFO] [stdout]   --> src/externs/mod.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn eval(x: &str) -> i32 {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `emscripten_run_script_int` is never used
[INFO] [stdout]   --> src/externs/mod.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn emscripten_run_script_int(x: *const c_uchar) -> c_int;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking sdl2 v0.32.2
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/nes/cpu/mod.rs:113:9
[INFO] [stdout]     |
[INFO] [stdout] 113 |         _ => panic!("{}", "Undefined opecode detected."),
[INFO] [stdout]     |         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/nes/cpu/mod.rs:113:9
[INFO] [stdout]     |
[INFO] [stdout]  35 |         Instruction::LDA => lda(operand, registers, bus),
[INFO] [stdout]     |         ---------------- matches some of the same values
[INFO] [stdout]  36 |         Instruction::LDX if code.mode == Addressing::Immediate => ldx_imm(operand, registers),
[INFO] [stdout]  37 |         Instruction::LDX => ldx(operand, registers, bus),
[INFO] [stdout]     |         ---------------- matches some of the same values
[INFO] [stdout]  38 |         Instruction::LDY if code.mode == Addressing::Immediate => ldy_imm(operand, registers),
[INFO] [stdout]  39 |         Instruction::LDY => ldy(operand, registers, bus),
[INFO] [stdout]     |         ---------------- matches some of the same values
[INFO] [stdout]  40 |         Instruction::STA => sta(operand, registers, bus),
[INFO] [stdout]     |         ---------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 113 |         _ => panic!("{}", "Undefined opecode detected."),
[INFO] [stdout]     |         ^ ...and 60 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: function `get_render_buf` is never used
[INFO] [stdout]   --> src/nes/mod.rs:89:8
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub fn get_render_buf(ctx: &mut Context) -> &Vec<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: fields `divider_for_frequency` and `frequency` are never read
[INFO] [stdout]   --> src/nes/apu/noise.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct Noise {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     divider_for_frequency: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |     frequency: usize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Noise` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `enable` and `disable` are never used
[INFO] [stdout]   --> src/nes/apu/noise.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl Noise {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn enable(&mut self) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn disable(&mut self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `close_oscillator` is never used
[INFO] [stdout]   --> src/nes/apu/triangle.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 |     fn close_oscillator(index: usize);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_oscillator_pulse_width` is never used
[INFO] [stdout]   --> src/nes/apu/triangle.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn set_oscillator_pulse_width(index: usize, width: f32);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_negative`, `set_zero`, `get_reserved`, `get_break`, and `get_decimal` are never used
[INFO] [stdout]   --> src/nes/cpu_registers/mod.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub trait CpuRegisters {
[INFO] [stdout]    |           ------------ methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 52 |     fn set_negative(&mut self, v: bool) -> &mut Self;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     fn set_zero(&mut self, v: bool) -> &mut Self;
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     fn get_reserved(&self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 73 |
[INFO] [stdout] 74 |     fn get_break(&self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     fn get_decimal(&self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `mapper` is never read
[INFO] [stdout]  --> src/nes/mmc/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct Mmc {
[INFO] [stdout]   |            --- field in this struct
[INFO] [stdout] 3 |     mapper: u8,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Mmc` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_bank` and `get_mapper` are never used
[INFO] [stdout]   --> src/nes/mmc/mod.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl Mmc {
[INFO] [stdout]    | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn get_bank(&self) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn get_mapper(&self) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_background_masked` and `is_sprite_masked` are never used
[INFO] [stdout]   --> src/nes/ppu/registers/mod.rs:83:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub trait PpuRegisters {
[INFO] [stdout]    |           ------------ methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 83 |     fn is_background_masked(&self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 84 |
[INFO] [stdout] 85 |     fn is_sprite_masked(&self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset_addr` is never used
[INFO] [stdout]   --> src/nes/ppu/registers/oam.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Oam {
[INFO] [stdout]    | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn reset_addr(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `offset_addr_by_sprite_table` is never read
[INFO] [stdout]   --> src/nes/ppu/sprite_utils.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct SpriteConfig {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub offset_addr_by_sprite_table: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SpriteConfig` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_buf` is never used
[INFO] [stdout]   --> src/nes/renderer/mod.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Renderer {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn get_buf(&self) -> &Vec<u8> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `eval` is never used
[INFO] [stdout]   --> src/externs/mod.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn eval(x: &str) -> i32 {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `emscripten_run_script_int` is never used
[INFO] [stdout]   --> src/externs/mod.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn emscripten_run_script_int(x: *const c_uchar) -> c_int;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking standalone v0.1.0 (/opt/rustwide/workdir/standalone)
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> standalone/src/main.rs:185:20
[INFO] [stdout]     |
[INFO] [stdout] 185 |             panic!(err);
[INFO] [stdout]     |                    ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 185 |             panic!("{}", err);
[INFO] [stdout]     |                    +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 185 -             panic!(err);
[INFO] [stdout] 185 +             std::panic::panic_any(err);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> standalone/src/main.rs:185:20
[INFO] [stdout]     |
[INFO] [stdout] 185 |             panic!(err);
[INFO] [stdout]     |                    ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 185 |             panic!("{}", err);
[INFO] [stdout]     |                    +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 185 -             panic!(err);
[INFO] [stdout] 185 +             std::panic::panic_any(err);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.11s
[INFO] running `Command { std: "docker" "inspect" "2805f98c22ed185b5304f19b9f3beb364d3c63da8e36ed24f022979b8d7dd3be", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2805f98c22ed185b5304f19b9f3beb364d3c63da8e36ed24f022979b8d7dd3be", kill_on_drop: false }`
[INFO] [stdout] 2805f98c22ed185b5304f19b9f3beb364d3c63da8e36ed24f022979b8d7dd3be
