[INFO] cloning repository https://github.com/ddholmes/enniesse
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ddholmes/enniesse" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fddholmes%2Fenniesse", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fddholmes%2Fenniesse'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 60d3b691e3af51712a1bbac27216659e0a314874
[INFO] checking ddholmes/enniesse against master#bca37a20bd376ce3fd138e7cdee7fe704e0f8814 for pr-139493-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fddholmes%2Fenniesse" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ddholmes/enniesse
[INFO] finished tweaking git repo https://github.com/ddholmes/enniesse
[INFO] tweaked toml for git repo https://github.com/ddholmes/enniesse written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ddholmes/enniesse on toolchain bca37a20bd376ce3fd138e7cdee7fe704e0f8814
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ddholmes/enniesse already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: /workspace/builds/worker-7-tc1/source/enniesse-core/Cargo.toml: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr] warning: /workspace/builds/worker-7-tc1/source/enniesse-cli/Cargo.toml: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded memchr v2.1.1
[INFO] [stderr]   Downloaded user32-sys v0.1.3
[INFO] [stderr]   Downloaded minifb v0.11.1
[INFO] [stderr]   Downloaded ucd-util v0.1.2
[INFO] [stderr]   Downloaded rand v0.3.22
[INFO] [stderr]   Downloaded cc v1.0.25
[INFO] [stderr]   Downloaded aho-corasick v0.6.9
[INFO] [stderr]   Downloaded gdi32-sys v0.1.2
[INFO] [stderr]   Downloaded x11-dl v2.14.0
[INFO] [stderr]   Downloaded sdl2 v0.31.0
[INFO] [stderr]   Downloaded rand v0.4.3
[INFO] [stderr]   Downloaded regex-syntax v0.5.6
[INFO] [stderr]   Downloaded regex v0.2.11
[INFO] [stderr]   Downloaded libc v0.2.43
[INFO] [stderr]   Downloaded sdl2-sys v0.31.0
[INFO] [stderr]   Downloaded orbclient v0.3.17
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c4648c4a3d1fc6391664f85920f75841f0616b6727a04479d8bcde7c5e6d5234
[INFO] running `Command { std: "docker" "start" "-a" "c4648c4a3d1fc6391664f85920f75841f0616b6727a04479d8bcde7c5e6d5234", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c4648c4a3d1fc6391664f85920f75841f0616b6727a04479d8bcde7c5e6d5234", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c4648c4a3d1fc6391664f85920f75841f0616b6727a04479d8bcde7c5e6d5234", kill_on_drop: false }`
[INFO] [stdout] c4648c4a3d1fc6391664f85920f75841f0616b6727a04479d8bcde7c5e6d5234
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f2f195b28d0ab9e6e81324e4e5d7d9082a995c902f161ec1d417312765defa9b
[INFO] running `Command { std: "docker" "start" "-a" "f2f195b28d0ab9e6e81324e4e5d7d9082a995c902f161ec1d417312765defa9b", kill_on_drop: false }`
[INFO] [stderr] warning: /opt/rustwide/workdir/enniesse-cli/Cargo.toml: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr] warning: /opt/rustwide/workdir/enniesse-core/Cargo.toml: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]     Checking libc v0.2.43
[INFO] [stderr]    Compiling memchr v2.1.1
[INFO] [stderr]    Compiling pkg-config v0.3.14
[INFO] [stderr]    Compiling cc v1.0.25
[INFO] [stderr]     Checking cfg-if v0.1.6
[INFO] [stderr]     Checking lazy_static v0.2.11
[INFO] [stderr]     Checking ucd-util v0.1.2
[INFO] [stderr]     Checking lazy_static v1.2.0
[INFO] [stderr]    Compiling regex v0.2.11
[INFO] [stderr]     Checking utf8-ranges v1.0.2
[INFO] [stderr]     Checking enniesse-core v0.1.0 (/opt/rustwide/workdir/enniesse-core)
[INFO] [stderr]     Checking regex-syntax v0.5.6
[INFO] [stderr]     Checking thread_local v0.3.6
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> enniesse-core/src/apu.rs:258:26
[INFO] [stdout]     |
[INFO] [stdout] 258 |             PULSE1_START ... PULSE1_END => 0, // write only
[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]    --> enniesse-core/src/apu.rs:259:26
[INFO] [stdout]     |
[INFO] [stdout] 259 |             PULSE2_START ... PULSE2_END => 0, // write only
[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]    --> enniesse-core/src/apu.rs:260:28
[INFO] [stdout]     |
[INFO] [stdout] 260 |             TRIANGLE_START ... TRIANGLE_END => 0, // write only
[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]    --> enniesse-core/src/apu.rs:261:25
[INFO] [stdout]     |
[INFO] [stdout] 261 |             NOISE_START ... NOISE_END => 0, // write only
[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]    --> enniesse-core/src/apu.rs:262:23
[INFO] [stdout]     |
[INFO] [stdout] 262 |             DMC_START ... DMC_END => 0, // write only
[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]    --> enniesse-core/src/apu.rs:270:26
[INFO] [stdout]     |
[INFO] [stdout] 270 |             PULSE1_START ... PULSE1_END => self.pulse1.write(addr, val),
[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]    --> enniesse-core/src/apu.rs:271:26
[INFO] [stdout]     |
[INFO] [stdout] 271 |             PULSE2_START ... PULSE2_END => self.pulse2.write(addr, val),
[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]    --> enniesse-core/src/apu.rs:272:28
[INFO] [stdout]     |
[INFO] [stdout] 272 |             TRIANGLE_START ... TRIANGLE_END => self.triangle.write(addr, val),
[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]    --> enniesse-core/src/apu.rs:273:25
[INFO] [stdout]     |
[INFO] [stdout] 273 |             NOISE_START ... NOISE_END => self.noise.write(addr, val),
[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]    --> enniesse-core/src/apu.rs:274:23
[INFO] [stdout]     |
[INFO] [stdout] 274 |             DMC_START ... DMC_END => self.dmc.write(addr, val),
[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]    --> enniesse-core/src/ppu.rs:638:44
[INFO] [stdout]     |
[INFO] [stdout] 638 |             (Mirroring::Horizontal, 0x0000 ... 0x07ff) => nametable_addr & !0x400,
[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]    --> enniesse-core/src/ppu.rs:639:44
[INFO] [stdout]     |
[INFO] [stdout] 639 |             (Mirroring::Horizontal, 0x0800 ... 0x0fff) => nametable_addr - 0x400,
[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]    --> enniesse-core/src/ppu.rs:640:42
[INFO] [stdout]     |
[INFO] [stdout] 640 |             (Mirroring::Vertical, 0x0000 ... 0x07ff) => nametable_addr,
[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]    --> enniesse-core/src/ppu.rs:641:42
[INFO] [stdout]     |
[INFO] [stdout] 641 |             (Mirroring::Vertical, 0x0800 ... 0x0fff) => nametable_addr & !(1 << 11),
[INFO] [stdout]     |                                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> enniesse-core/src/ppu.rs:654:26
[INFO] [stdout]     |
[INFO] [stdout] 654 |             MAPPER_START ... MAPPER_END => self.mapper.borrow_mut().load_byte_chr(addr),
[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]    --> enniesse-core/src/ppu.rs:655:29
[INFO] [stdout]     |
[INFO] [stdout] 655 |             NAMETABLE_START ... NAMETABLE_END => {
[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]    --> enniesse-core/src/ppu.rs:659:27
[INFO] [stdout]     |
[INFO] [stdout] 659 |             PALETTE_START ... PALETTE_END => {
[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]    --> enniesse-core/src/ppu.rs:668:20
[INFO] [stdout]     |
[INFO] [stdout] 668 |             0x4000 ... 0x7fff => self.nametable[addr as usize & (PPU_RAM_SIZE - 1)],
[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]    --> enniesse-core/src/ppu.rs:676:26
[INFO] [stdout]     |
[INFO] [stdout] 676 |             MAPPER_START ... MAPPER_END => {
[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]    --> enniesse-core/src/ppu.rs:679:29
[INFO] [stdout]     |
[INFO] [stdout] 679 |             NAMETABLE_START ... NAMETABLE_END => {
[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]    --> enniesse-core/src/ppu.rs:686:27
[INFO] [stdout]     |
[INFO] [stdout] 686 |             PALETTE_START ... PALETTE_END => {
[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]    --> enniesse-core/src/ppu.rs:697:20
[INFO] [stdout]     |
[INFO] [stdout] 697 |             0x4000 ... 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]   --> enniesse-core/src/memory.rs:73:23
[INFO] [stdout]    |
[INFO] [stdout] 73 |             RAM_START ... RAM_END => self.ram.load_byte(addr),
[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]   --> enniesse-core/src/memory.rs:74:27
[INFO] [stdout]    |
[INFO] [stdout] 74 |             PPU_REG_START ... PPU_REG_END => self.ppu.load_byte(addr),
[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]   --> enniesse-core/src/memory.rs:75:27
[INFO] [stdout]    |
[INFO] [stdout] 75 |             APU_REG_START ... APU_REG_END => self.apu.load_byte(addr),
[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]   --> enniesse-core/src/memory.rs:79:31
[INFO] [stdout]    |
[INFO] [stdout] 79 |             CART_MAPPER_START ... CART_MAPPER_END => self.mapper.borrow_mut().load_byte_prg(addr),
[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]   --> enniesse-core/src/memory.rs:86:23
[INFO] [stdout]    |
[INFO] [stdout] 86 |             RAM_START ... RAM_END => self.ram.store_byte(addr, val),
[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]   --> enniesse-core/src/memory.rs:87:27
[INFO] [stdout]    |
[INFO] [stdout] 87 |             PPU_REG_START ... PPU_REG_END => self.ppu.store_byte(addr, val),
[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]   --> enniesse-core/src/memory.rs:88:27
[INFO] [stdout]    |
[INFO] [stdout] 88 |             APU_REG_START ... APU_REG_END => self.apu.store_byte(addr, val),
[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]   --> enniesse-core/src/memory.rs:95:31
[INFO] [stdout]    |
[INFO] [stdout] 95 |             CART_MAPPER_START ... CART_MAPPER_END => self.mapper.borrow_mut().store_byte_prg(addr, val),
[INFO] [stdout]    |                               ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> enniesse-core/src/apu.rs:60:28
[INFO] [stdout]    |
[INFO] [stdout] 60 |     mapper: Rc<RefCell<Box<Mapper>>>,
[INFO] [stdout]    |                            ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 60 |     mapper: Rc<RefCell<Box<dyn Mapper>>>,
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> enniesse-core/src/ppu.rs:617:28
[INFO] [stdout]     |
[INFO] [stdout] 617 |     mapper: Rc<RefCell<Box<Mapper>>>,
[INFO] [stdout]     |                            ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 617 |     mapper: Rc<RefCell<Box<dyn Mapper>>>,
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> enniesse-core/src/memory.rs:46:32
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub mapper: Rc<RefCell<Box<Mapper>>>,
[INFO] [stdout]    |                                ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub mapper: Rc<RefCell<Box<dyn Mapper>>>,
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> enniesse-core/src/mapper.rs:12:42
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn load_mapper(rom: Box<Rom>) -> Box<Mapper> {
[INFO] [stdout]    |                                          ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn load_mapper(rom: Box<Rom>) -> Box<dyn Mapper> {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> enniesse-core/src/apu.rs:64:39
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub fn new(mapper: Rc<RefCell<Box<Mapper>>>) -> Apu {
[INFO] [stdout]    |                                       ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub fn new(mapper: Rc<RefCell<Box<dyn Mapper>>>) -> Apu {
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> enniesse-core/src/ppu.rs:88:39
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub fn new(mapper: Rc<RefCell<Box<Mapper>>>) -> Ppu {
[INFO] [stdout]    |                                       ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub fn new(mapper: Rc<RefCell<Box<dyn Mapper>>>) -> Ppu {
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> enniesse-core/src/ppu.rs:624:35
[INFO] [stdout]     |
[INFO] [stdout] 624 |     fn new(mapper: Rc<RefCell<Box<Mapper>>>) -> Vram {
[INFO] [stdout]     |                                   ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 624 |     fn new(mapper: Rc<RefCell<Box<dyn Mapper>>>) -> Vram {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking time v0.1.40
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> enniesse-core/src/apu.rs:370:13
[INFO] [stdout]     |
[INFO] [stdout] 370 |         let mut change = self.timer.period >> self.sweep_shift;
[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: constant `PULSE_SEQUENCE` is never used
[INFO] [stdout]   --> enniesse-core/src/apu.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const PULSE_SEQUENCE: [[u8; 8]; 4] = [
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TRIANGLE_SEQUENCE` is never used
[INFO] [stdout]   --> enniesse-core/src/apu.rs:31:7
[INFO] [stdout]    |
[INFO] [stdout] 31 | const TRIANGLE_SEQUENCE: [u8; 32] = [
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `mapper` is never read
[INFO] [stdout]   --> enniesse-core/src/apu.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct Apu {
[INFO] [stdout]    |            --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 60 |     mapper: Rc<RefCell<Box<Mapper>>>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `step_pulse`, `step_triangle`, `step_noise`, `step_dmc`, `step_dmc_memory_reader`, and `step_dmc_output` are never used
[INFO] [stdout]    --> enniesse-core/src/apu.rs:149:8
[INFO] [stdout]     |
[INFO] [stdout]  63 | impl Apu {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 149 |     fn step_pulse(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     fn step_triangle(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     fn step_noise(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     fn step_dmc(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     fn step_dmc_memory_reader(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     fn step_dmc_output(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `channel`, `sweep_reload`, and `sweep_counter` are never read
[INFO] [stdout]    --> enniesse-core/src/apu.rs:283:5
[INFO] [stdout]     |
[INFO] [stdout] 282 | struct PulseChannel {
[INFO] [stdout]     |        ------------ fields in this struct
[INFO] [stdout] 283 |     channel: u8,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 292 |     sweep_reload: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 293 |     sweep_counter: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clock_sweep`, `sweep_timer`, and `output` are never used
[INFO] [stdout]    --> enniesse-core/src/apu.rs:353:8
[INFO] [stdout]     |
[INFO] [stdout] 298 | impl PulseChannel {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 353 |     fn clock_sweep(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 369 |     fn sweep_timer(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 383 |     fn output(&self) -> u8 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `linear_counter` and `sequence_index` are never read
[INFO] [stdout]    --> enniesse-core/src/apu.rs:399:5
[INFO] [stdout]     |
[INFO] [stdout] 396 | struct TriangleChannel {
[INFO] [stdout]     |        --------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 399 |     linear_counter: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 404 |     sequence_index: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `step_linear_counter` and `output` are never used
[INFO] [stdout]    --> enniesse-core/src/apu.rs:435:8
[INFO] [stdout]     |
[INFO] [stdout] 407 | impl TriangleChannel {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 435 |     fn step_linear_counter(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 447 |     fn output(&self) -> u8 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `shift_register` is never read
[INFO] [stdout]    --> enniesse-core/src/apu.rs:462:5
[INFO] [stdout]     |
[INFO] [stdout] 456 | struct NoiseChannel {
[INFO] [stdout]     |        ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 462 |     shift_register: u16,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `output` is never used
[INFO] [stdout]    --> enniesse-core/src/apu.rs:503:8
[INFO] [stdout]     |
[INFO] [stdout] 465 | impl NoiseChannel {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 503 |     fn output(&self) -> u8 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sample_buffer`, `output_shift_register`, and `output_bits_remaining` are never read
[INFO] [stdout]    --> enniesse-core/src/apu.rs:521:5
[INFO] [stdout]     |
[INFO] [stdout] 515 | struct DmcChannel {
[INFO] [stdout]     |        ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 521 |     sample_buffer: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 525 |     output_shift_register: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 526 |     output_bits_remaining: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `output` is never used
[INFO] [stdout]    --> enniesse-core/src/apu.rs:562:8
[INFO] [stdout]     |
[INFO] [stdout] 530 | impl DmcChannel {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 562 |     fn output(&self) -> u8 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `divider_counter` and `decay_level` are never read
[INFO] [stdout]    --> enniesse-core/src/apu.rs:572:5
[INFO] [stdout]     |
[INFO] [stdout] 568 | struct Envelope {
[INFO] [stdout]     |        -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 572 |     divider_counter: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 573 |     constant_volume: u8,
[INFO] [stdout] 574 |     decay_level: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clock` and `volume` are never used
[INFO] [stdout]    --> enniesse-core/src/apu.rs:584:8
[INFO] [stdout]     |
[INFO] [stdout] 577 | impl Envelope {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 584 |     fn clock(&mut self) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 602 |     fn volume(&self) -> u8 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clock` is never used
[INFO] [stdout]    --> enniesse-core/src/apu.rs:618:8
[INFO] [stdout]     |
[INFO] [stdout] 617 | impl LengthCounter {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] 618 |     fn clock(&mut self) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `tick` is never used
[INFO] [stdout]    --> enniesse-core/src/apu.rs:637:8
[INFO] [stdout]     |
[INFO] [stdout] 635 | impl Timer {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] 636 |     // returns true if the timer should generate a clock
[INFO] [stdout] 637 |     fn tick(&mut self) -> bool {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling x11-dl v2.14.0
[INFO] [stderr]    Compiling minifb v0.11.1
[INFO] [stderr]     Checking aho-corasick v0.6.9
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> enniesse-core/src/apu.rs:258:26
[INFO] [stdout]     |
[INFO] [stdout] 258 |             PULSE1_START ... PULSE1_END => 0, // write only
[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]    --> enniesse-core/src/apu.rs:259:26
[INFO] [stdout]     |
[INFO] [stdout] 259 |             PULSE2_START ... PULSE2_END => 0, // write only
[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]    --> enniesse-core/src/apu.rs:260:28
[INFO] [stdout]     |
[INFO] [stdout] 260 |             TRIANGLE_START ... TRIANGLE_END => 0, // write only
[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]    --> enniesse-core/src/apu.rs:261:25
[INFO] [stdout]     |
[INFO] [stdout] 261 |             NOISE_START ... NOISE_END => 0, // write only
[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]    --> enniesse-core/src/apu.rs:262:23
[INFO] [stdout]     |
[INFO] [stdout] 262 |             DMC_START ... DMC_END => 0, // write only
[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]    --> enniesse-core/src/apu.rs:270:26
[INFO] [stdout]     |
[INFO] [stdout] 270 |             PULSE1_START ... PULSE1_END => self.pulse1.write(addr, val),
[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]    --> enniesse-core/src/apu.rs:271:26
[INFO] [stdout]     |
[INFO] [stdout] 271 |             PULSE2_START ... PULSE2_END => self.pulse2.write(addr, val),
[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]    --> enniesse-core/src/apu.rs:272:28
[INFO] [stdout]     |
[INFO] [stdout] 272 |             TRIANGLE_START ... TRIANGLE_END => self.triangle.write(addr, val),
[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]    --> enniesse-core/src/apu.rs:273:25
[INFO] [stdout]     |
[INFO] [stdout] 273 |             NOISE_START ... NOISE_END => self.noise.write(addr, val),
[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]    --> enniesse-core/src/apu.rs:274:23
[INFO] [stdout]     |
[INFO] [stdout] 274 |             DMC_START ... DMC_END => self.dmc.write(addr, val),
[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]    --> enniesse-core/src/ppu.rs:638:44
[INFO] [stdout]     |
[INFO] [stdout] 638 |             (Mirroring::Horizontal, 0x0000 ... 0x07ff) => nametable_addr & !0x400,
[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]    --> enniesse-core/src/ppu.rs:639:44
[INFO] [stdout]     |
[INFO] [stdout] 639 |             (Mirroring::Horizontal, 0x0800 ... 0x0fff) => nametable_addr - 0x400,
[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]    --> enniesse-core/src/ppu.rs:640:42
[INFO] [stdout]     |
[INFO] [stdout] 640 |             (Mirroring::Vertical, 0x0000 ... 0x07ff) => nametable_addr,
[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]    --> enniesse-core/src/ppu.rs:641:42
[INFO] [stdout]     |
[INFO] [stdout] 641 |             (Mirroring::Vertical, 0x0800 ... 0x0fff) => nametable_addr & !(1 << 11),
[INFO] [stdout]     |                                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> enniesse-core/src/ppu.rs:654:26
[INFO] [stdout]     |
[INFO] [stdout] 654 |             MAPPER_START ... MAPPER_END => self.mapper.borrow_mut().load_byte_chr(addr),
[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]    --> enniesse-core/src/ppu.rs:655:29
[INFO] [stdout]     |
[INFO] [stdout] 655 |             NAMETABLE_START ... NAMETABLE_END => {
[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]    --> enniesse-core/src/ppu.rs:659:27
[INFO] [stdout]     |
[INFO] [stdout] 659 |             PALETTE_START ... PALETTE_END => {
[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]    --> enniesse-core/src/ppu.rs:668:20
[INFO] [stdout]     |
[INFO] [stdout] 668 |             0x4000 ... 0x7fff => self.nametable[addr as usize & (PPU_RAM_SIZE - 1)],
[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]    --> enniesse-core/src/ppu.rs:676:26
[INFO] [stdout]     |
[INFO] [stdout] 676 |             MAPPER_START ... MAPPER_END => {
[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]    --> enniesse-core/src/ppu.rs:679:29
[INFO] [stdout]     |
[INFO] [stdout] 679 |             NAMETABLE_START ... NAMETABLE_END => {
[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]    --> enniesse-core/src/ppu.rs:686:27
[INFO] [stdout]     |
[INFO] [stdout] 686 |             PALETTE_START ... PALETTE_END => {
[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]    --> enniesse-core/src/ppu.rs:697:20
[INFO] [stdout]     |
[INFO] [stdout] 697 |             0x4000 ... 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]   --> enniesse-core/src/memory.rs:73:23
[INFO] [stdout]    |
[INFO] [stdout] 73 |             RAM_START ... RAM_END => self.ram.load_byte(addr),
[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]   --> enniesse-core/src/memory.rs:74:27
[INFO] [stdout]    |
[INFO] [stdout] 74 |             PPU_REG_START ... PPU_REG_END => self.ppu.load_byte(addr),
[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]   --> enniesse-core/src/memory.rs:75:27
[INFO] [stdout]    |
[INFO] [stdout] 75 |             APU_REG_START ... APU_REG_END => self.apu.load_byte(addr),
[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]   --> enniesse-core/src/memory.rs:79:31
[INFO] [stdout]    |
[INFO] [stdout] 79 |             CART_MAPPER_START ... CART_MAPPER_END => self.mapper.borrow_mut().load_byte_prg(addr),
[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]   --> enniesse-core/src/memory.rs:86:23
[INFO] [stdout]    |
[INFO] [stdout] 86 |             RAM_START ... RAM_END => self.ram.store_byte(addr, val),
[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]   --> enniesse-core/src/memory.rs:87:27
[INFO] [stdout]    |
[INFO] [stdout] 87 |             PPU_REG_START ... PPU_REG_END => self.ppu.store_byte(addr, val),
[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]   --> enniesse-core/src/memory.rs:88:27
[INFO] [stdout]    |
[INFO] [stdout] 88 |             APU_REG_START ... APU_REG_END => self.apu.store_byte(addr, val),
[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]   --> enniesse-core/src/memory.rs:95:31
[INFO] [stdout]    |
[INFO] [stdout] 95 |             CART_MAPPER_START ... CART_MAPPER_END => self.mapper.borrow_mut().store_byte_prg(addr, val),
[INFO] [stdout]    |                               ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> enniesse-core/src/apu.rs:60:28
[INFO] [stdout]    |
[INFO] [stdout] 60 |     mapper: Rc<RefCell<Box<Mapper>>>,
[INFO] [stdout]    |                            ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 60 |     mapper: Rc<RefCell<Box<dyn Mapper>>>,
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> enniesse-core/src/ppu.rs:617:28
[INFO] [stdout]     |
[INFO] [stdout] 617 |     mapper: Rc<RefCell<Box<Mapper>>>,
[INFO] [stdout]     |                            ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 617 |     mapper: Rc<RefCell<Box<dyn Mapper>>>,
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> enniesse-core/src/memory.rs:46:32
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub mapper: Rc<RefCell<Box<Mapper>>>,
[INFO] [stdout]    |                                ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub mapper: Rc<RefCell<Box<dyn Mapper>>>,
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> enniesse-core/src/mapper.rs:12:42
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn load_mapper(rom: Box<Rom>) -> Box<Mapper> {
[INFO] [stdout]    |                                          ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn load_mapper(rom: Box<Rom>) -> Box<dyn Mapper> {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> enniesse-core/src/apu.rs:64:39
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub fn new(mapper: Rc<RefCell<Box<Mapper>>>) -> Apu {
[INFO] [stdout]    |                                       ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub fn new(mapper: Rc<RefCell<Box<dyn Mapper>>>) -> Apu {
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> enniesse-core/src/ppu.rs:88:39
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub fn new(mapper: Rc<RefCell<Box<Mapper>>>) -> Ppu {
[INFO] [stdout]    |                                       ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub fn new(mapper: Rc<RefCell<Box<dyn Mapper>>>) -> Ppu {
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> enniesse-core/src/ppu.rs:624:35
[INFO] [stdout]     |
[INFO] [stdout] 624 |     fn new(mapper: Rc<RefCell<Box<Mapper>>>) -> Vram {
[INFO] [stdout]     |                                   ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 624 |     fn new(mapper: Rc<RefCell<Box<dyn Mapper>>>) -> Vram {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> enniesse-core/src/apu.rs:370:13
[INFO] [stdout]     |
[INFO] [stdout] 370 |         let mut change = self.timer.period >> self.sweep_shift;
[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: constant `PULSE_SEQUENCE` is never used
[INFO] [stdout]   --> enniesse-core/src/apu.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const PULSE_SEQUENCE: [[u8; 8]; 4] = [
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TRIANGLE_SEQUENCE` is never used
[INFO] [stdout]   --> enniesse-core/src/apu.rs:31:7
[INFO] [stdout]    |
[INFO] [stdout] 31 | const TRIANGLE_SEQUENCE: [u8; 32] = [
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `mapper` is never read
[INFO] [stdout]   --> enniesse-core/src/apu.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct Apu {
[INFO] [stdout]    |            --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 60 |     mapper: Rc<RefCell<Box<Mapper>>>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `step_pulse`, `step_triangle`, `step_noise`, `step_dmc`, `step_dmc_memory_reader`, and `step_dmc_output` are never used
[INFO] [stdout]    --> enniesse-core/src/apu.rs:149:8
[INFO] [stdout]     |
[INFO] [stdout]  63 | impl Apu {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 149 |     fn step_pulse(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     fn step_triangle(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     fn step_noise(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     fn step_dmc(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     fn step_dmc_memory_reader(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     fn step_dmc_output(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `channel`, `sweep_reload`, and `sweep_counter` are never read
[INFO] [stdout]    --> enniesse-core/src/apu.rs:283:5
[INFO] [stdout]     |
[INFO] [stdout] 282 | struct PulseChannel {
[INFO] [stdout]     |        ------------ fields in this struct
[INFO] [stdout] 283 |     channel: u8,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 292 |     sweep_reload: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 293 |     sweep_counter: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clock_sweep`, `sweep_timer`, and `output` are never used
[INFO] [stdout]    --> enniesse-core/src/apu.rs:353:8
[INFO] [stdout]     |
[INFO] [stdout] 298 | impl PulseChannel {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 353 |     fn clock_sweep(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 369 |     fn sweep_timer(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 383 |     fn output(&self) -> u8 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `linear_counter` and `sequence_index` are never read
[INFO] [stdout]    --> enniesse-core/src/apu.rs:399:5
[INFO] [stdout]     |
[INFO] [stdout] 396 | struct TriangleChannel {
[INFO] [stdout]     |        --------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 399 |     linear_counter: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 404 |     sequence_index: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `step_linear_counter` and `output` are never used
[INFO] [stdout]    --> enniesse-core/src/apu.rs:435:8
[INFO] [stdout]     |
[INFO] [stdout] 407 | impl TriangleChannel {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 435 |     fn step_linear_counter(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 447 |     fn output(&self) -> u8 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `shift_register` is never read
[INFO] [stdout]    --> enniesse-core/src/apu.rs:462:5
[INFO] [stdout]     |
[INFO] [stdout] 456 | struct NoiseChannel {
[INFO] [stdout]     |        ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 462 |     shift_register: u16,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `output` is never used
[INFO] [stdout]    --> enniesse-core/src/apu.rs:503:8
[INFO] [stdout]     |
[INFO] [stdout] 465 | impl NoiseChannel {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 503 |     fn output(&self) -> u8 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sample_buffer`, `output_shift_register`, and `output_bits_remaining` are never read
[INFO] [stdout]    --> enniesse-core/src/apu.rs:521:5
[INFO] [stdout]     |
[INFO] [stdout] 515 | struct DmcChannel {
[INFO] [stdout]     |        ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 521 |     sample_buffer: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 525 |     output_shift_register: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 526 |     output_bits_remaining: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `output` is never used
[INFO] [stdout]    --> enniesse-core/src/apu.rs:562:8
[INFO] [stdout]     |
[INFO] [stdout] 530 | impl DmcChannel {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 562 |     fn output(&self) -> u8 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `divider_counter` and `decay_level` are never read
[INFO] [stdout]    --> enniesse-core/src/apu.rs:572:5
[INFO] [stdout]     |
[INFO] [stdout] 568 | struct Envelope {
[INFO] [stdout]     |        -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 572 |     divider_counter: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 573 |     constant_volume: u8,
[INFO] [stdout] 574 |     decay_level: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clock` and `volume` are never used
[INFO] [stdout]    --> enniesse-core/src/apu.rs:584:8
[INFO] [stdout]     |
[INFO] [stdout] 577 | impl Envelope {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 584 |     fn clock(&mut self) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 602 |     fn volume(&self) -> u8 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clock` is never used
[INFO] [stdout]    --> enniesse-core/src/apu.rs:618:8
[INFO] [stdout]     |
[INFO] [stdout] 617 | impl LengthCounter {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] 618 |     fn clock(&mut self) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `tick` is never used
[INFO] [stdout]    --> enniesse-core/src/apu.rs:637:8
[INFO] [stdout]     |
[INFO] [stdout] 635 | impl Timer {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] 636 |     // returns true if the timer should generate a clock
[INFO] [stdout] 637 |     fn tick(&mut self) -> bool {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking enniesse v0.1.0 (/opt/rustwide/workdir/enniesse-cli)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.55s
[INFO] running `Command { std: "docker" "inspect" "f2f195b28d0ab9e6e81324e4e5d7d9082a995c902f161ec1d417312765defa9b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f2f195b28d0ab9e6e81324e4e5d7d9082a995c902f161ec1d417312765defa9b", kill_on_drop: false }`
[INFO] [stdout] f2f195b28d0ab9e6e81324e4e5d7d9082a995c902f161ec1d417312765defa9b
