[INFO] cloning repository https://github.com/theonly112/rsgb
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/theonly112/rsgb" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftheonly112%2Frsgb", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftheonly112%2Frsgb'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 4007f54dad15eef80ddfbb22f8fad724ced578a8
[INFO] checking theonly112/rsgb against try#0cb362313295507a2f4321c0e30cea0168f2fe71 for pr-138961-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftheonly112%2Frsgb" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/theonly112/rsgb
[INFO] finished tweaking git repo https://github.com/theonly112/rsgb
[INFO] tweaked toml for git repo https://github.com/theonly112/rsgb written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/theonly112/rsgb on toolchain 0cb362313295507a2f4321c0e30cea0168f2fe71
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0cb362313295507a2f4321c0e30cea0168f2fe71" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/theonly112/rsgb 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" "+0cb362313295507a2f4321c0e30cea0168f2fe71" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] checking theonly112/rsgb against try#0cb362313295507a2f4321c0e30cea0168f2fe71 for pr-138961-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftheonly112%2Frsgb" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/theonly112/rsgb
[INFO] finished tweaking git repo https://github.com/theonly112/rsgb
[INFO] tweaked toml for git repo https://github.com/theonly112/rsgb written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/theonly112/rsgb on toolchain 0cb362313295507a2f4321c0e30cea0168f2fe71
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0cb362313295507a2f4321c0e30cea0168f2fe71" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/theonly112/rsgb 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" "+0cb362313295507a2f4321c0e30cea0168f2fe71" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded sdl2 v0.27.3
[INFO] [stderr]   Downloaded libc v0.2.19
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+0cb362313295507a2f4321c0e30cea0168f2fe71" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f07b4ab58f06b5b40fd496714ad12c0c199ccd5d536bce72bee5d5868f6b365f
[INFO] running `Command { std: "docker" "start" "-a" "f07b4ab58f06b5b40fd496714ad12c0c199ccd5d536bce72bee5d5868f6b365f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f07b4ab58f06b5b40fd496714ad12c0c199ccd5d536bce72bee5d5868f6b365f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f07b4ab58f06b5b40fd496714ad12c0c199ccd5d536bce72bee5d5868f6b365f", kill_on_drop: false }`
[INFO] [stdout] f07b4ab58f06b5b40fd496714ad12c0c199ccd5d536bce72bee5d5868f6b365f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+0cb362313295507a2f4321c0e30cea0168f2fe71" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4001943186bbcce45dd433c6c9b3f43ec784252fd5a00533bbfdd03a155b276f
[INFO] running `Command { std: "docker" "start" "-a" "4001943186bbcce45dd433c6c9b3f43ec784252fd5a00533bbfdd03a155b276f", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]     Checking libc v0.2.19
[INFO] [stderr]    Compiling sdl2-sys v0.27.2
[INFO] [stderr]     Checking lazy_static v0.2.2
[INFO] [stderr]     Checking bitflags v0.7.0
[INFO] [stderr]     Checking num v0.1.36
[INFO] [stderr]     Checking rand v0.3.15
[INFO] [stderr]     Checking time v0.1.36
[INFO] [stderr]     Checking sdl2 v0.27.3
[INFO] [stderr]     Checking rsgb v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/gb/catridge.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |         try!(file.read_to_end(&mut buff));
[INFO] [stdout]    |         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/gb/catridge.rs:16:24
[INFO] [stdout]    |
[INFO] [stdout] 16 |         let mut file = try!(File::open(path));
[INFO] [stdout]    |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]     --> src/gb/cpu.rs:1586:27
[INFO] [stdout]      |
[INFO] [stdout] 1586 |         self.zero_flag_u8((value & bit));
[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] 1586 -         self.zero_flag_u8((value & bit));
[INFO] [stdout] 1586 +         self.zero_flag_u8(value & bit );
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]     --> src/gb/cpu.rs:1614:18
[INFO] [stdout]      |
[INFO] [stdout] 1614 |         self.bit((1 << bit), val);
[INFO] [stdout]      |                  ^        ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1614 -         self.bit((1 << bit), val);
[INFO] [stdout] 1614 +         self.bit(1 << bit , val);
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/gb/mmu.rs:130:19
[INFO] [stdout]     |
[INFO] [stdout] 130 |             0x0000...0x7FFF => self.mbc.read_u8(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]     = 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/gb/mmu.rs:131:19
[INFO] [stdout]     |
[INFO] [stdout] 131 |             0xA000...0xBFFF => self.mbc.read_u8(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]    --> src/gb/mmu.rs:132:19
[INFO] [stdout]     |
[INFO] [stdout] 132 |             0x8000...0x9FFF => self.vram[(addr - 0x8000) as usize],
[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/gb/mmu.rs:133:19
[INFO] [stdout]     |
[INFO] [stdout] 133 |             0xC000...0xDFFF => self.wram[(addr - 0xC000) as usize],
[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/gb/mmu.rs:134:19
[INFO] [stdout]     |
[INFO] [stdout] 134 |             0xE000...0xFDFF => self.wram[(addr - 0xE000) as usize],
[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/gb/mmu.rs:135:19
[INFO] [stdout]     |
[INFO] [stdout] 135 |             0xFE00...0xFEFF => self.oam[(addr - 0xFE00) as usize],
[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/gb/mmu.rs:144:19
[INFO] [stdout]     |
[INFO] [stdout] 144 |             0xFF80...0xFFFE => self.hram[(addr - 0xff80) as usize],
[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/gb/mmu.rs:145:19
[INFO] [stdout]     |
[INFO] [stdout] 145 |             0xFF00...0xFF7F => self.io[(addr - 0xff00) as usize],
[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/gb/mmu.rs:156:19
[INFO] [stdout]     |
[INFO] [stdout] 156 |             0x0000...0x7FFF => self.mbc.write_u8(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]    --> src/gb/mmu.rs:157:19
[INFO] [stdout]     |
[INFO] [stdout] 157 |             0x8000...0x9FFF => self.vram_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]    --> src/gb/mmu.rs:158:19
[INFO] [stdout]     |
[INFO] [stdout] 158 |             0xA000...0xBFFF => self.mbc.write_u8(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]    --> src/gb/mmu.rs:159:19
[INFO] [stdout]     |
[INFO] [stdout] 159 |             0xC000...0xDFFF => self.wram[(addr - 0xC000) as usize] = 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]    --> src/gb/mmu.rs:160:19
[INFO] [stdout]     |
[INFO] [stdout] 160 |             0xE000...0xFDFF => self.wram[(addr - 0xE000) as usize] = 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]    --> src/gb/mmu.rs:161:19
[INFO] [stdout]     |
[INFO] [stdout] 161 |             0xFE00...0xFEFF => self.oam[(addr - 0xfe00) as usize] = 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: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/gb/catridge.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |         try!(file.read_to_end(&mut buff));
[INFO] [stdout]    |         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/gb/mmu.rs:162:19
[INFO] [stdout]     |
[INFO] [stdout] 162 |             0xFF80...0xFFFE => self.hram[(addr - 0xff80) as usize] = 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]    --> src/gb/mmu.rs:172:19
[INFO] [stdout]     |
[INFO] [stdout] 172 |             0xFF00...0xFF7F => {
[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/gb/mmu.rs:204:19
[INFO] [stdout]     |
[INFO] [stdout] 204 |             0x0000...0x3fff => self.cart.rom[addr as usize],
[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: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/gb/catridge.rs:16:24
[INFO] [stdout]    |
[INFO] [stdout] 16 |         let mut file = try!(File::open(path));
[INFO] [stdout]    |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/gb/mmu.rs:205:19
[INFO] [stdout]     |
[INFO] [stdout] 205 |             0x4000...0x7fff => self.cart.rom[((addr - 0x4000) as usize + 0x4000 * self.rom_bank)],
[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 index expression
[INFO] [stdout]    --> src/gb/mmu.rs:205:46
[INFO] [stdout]     |
[INFO] [stdout] 205 |             0x4000...0x7fff => self.cart.rom[((addr - 0x4000) as usize + 0x4000 * self.rom_bank)],
[INFO] [stdout]     |                                              ^                                                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 205 -             0x4000...0x7fff => self.cart.rom[((addr - 0x4000) as usize + 0x4000 * self.rom_bank)],
[INFO] [stdout] 205 +             0x4000...0x7fff => self.cart.rom[(addr - 0x4000) as usize + 0x4000 * self.rom_bank ],
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]     --> src/gb/cpu.rs:1586:27
[INFO] [stdout]      |
[INFO] [stdout] 1586 |         self.zero_flag_u8((value & bit));
[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] 1586 -         self.zero_flag_u8((value & bit));
[INFO] [stdout] 1586 +         self.zero_flag_u8(value & bit );
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]     --> src/gb/cpu.rs:1614:18
[INFO] [stdout]      |
[INFO] [stdout] 1614 |         self.bit((1 << bit), val);
[INFO] [stdout]      |                  ^        ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1614 -         self.bit((1 << bit), val);
[INFO] [stdout] 1614 +         self.bit(1 << bit , val);
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/gb/mmu.rs:130:19
[INFO] [stdout]     |
[INFO] [stdout] 130 |             0x0000...0x7FFF => self.mbc.read_u8(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]     = 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/gb/mmu.rs:131:19
[INFO] [stdout]     |
[INFO] [stdout] 131 |             0xA000...0xBFFF => self.mbc.read_u8(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]    --> src/gb/mmu.rs:132:19
[INFO] [stdout]     |
[INFO] [stdout] 132 |             0x8000...0x9FFF => self.vram[(addr - 0x8000) as usize],
[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/gb/mmu.rs:133:19
[INFO] [stdout]     |
[INFO] [stdout] 133 |             0xC000...0xDFFF => self.wram[(addr - 0xC000) as usize],
[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/gb/mmu.rs:134:19
[INFO] [stdout]     |
[INFO] [stdout] 134 |             0xE000...0xFDFF => self.wram[(addr - 0xE000) as usize],
[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/gb/mmu.rs:135:19
[INFO] [stdout]     |
[INFO] [stdout] 135 |             0xFE00...0xFEFF => self.oam[(addr - 0xFE00) as usize],
[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/gb/mmu.rs:144:19
[INFO] [stdout]     |
[INFO] [stdout] 144 |             0xFF80...0xFFFE => self.hram[(addr - 0xff80) as usize],
[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/gb/mmu.rs:145:19
[INFO] [stdout]     |
[INFO] [stdout] 145 |             0xFF00...0xFF7F => self.io[(addr - 0xff00) as usize],
[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/gb/mmu.rs:156:19
[INFO] [stdout]     |
[INFO] [stdout] 156 |             0x0000...0x7FFF => self.mbc.write_u8(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]    --> src/gb/mmu.rs:206:19
[INFO] [stdout]     |
[INFO] [stdout] 206 |             0xA000...0xbfff => self.ram[self.ram_bank][(addr - 0xa000) as usize],
[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/gb/mmu.rs:157:19
[INFO] [stdout]     |
[INFO] [stdout] 157 |             0x8000...0x9FFF => self.vram_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]    --> src/gb/mmu.rs:158:19
[INFO] [stdout]     |
[INFO] [stdout] 158 |             0xA000...0xBFFF => self.mbc.write_u8(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]    --> src/gb/mmu.rs:212:19
[INFO] [stdout]     |
[INFO] [stdout] 212 |             0x2000...0x3fff => {
[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/gb/mmu.rs:159:19
[INFO] [stdout]     |
[INFO] [stdout] 159 |             0xC000...0xDFFF => self.wram[(addr - 0xC000) as usize] = 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]    --> src/gb/mmu.rs:215:19
[INFO] [stdout]     |
[INFO] [stdout] 215 |             0x4000...0x5fff => {
[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/gb/mmu.rs:160:19
[INFO] [stdout]     |
[INFO] [stdout] 160 |             0xE000...0xFDFF => self.wram[(addr - 0xE000) as usize] = 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]    --> src/gb/mmu.rs:161:19
[INFO] [stdout]     |
[INFO] [stdout] 161 |             0xFE00...0xFEFF => self.oam[(addr - 0xfe00) as usize] = 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]    --> src/gb/mmu.rs:223:19
[INFO] [stdout]     |
[INFO] [stdout] 223 |             0x6000...0x7fff => self.ram_mode = value == 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]    --> src/gb/mmu.rs:162:19
[INFO] [stdout]     |
[INFO] [stdout] 162 |             0xFF80...0xFFFE => self.hram[(addr - 0xff80) as usize] = 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]    --> src/gb/mmu.rs:224:19
[INFO] [stdout]     |
[INFO] [stdout] 224 |             0xa000...0xbfff => self.ram[self.ram_bank][(addr - 0xa000) as usize] = value,
[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/gb/mmu.rs:172:19
[INFO] [stdout]     |
[INFO] [stdout] 172 |             0xFF00...0xFF7F => {
[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/gb/mmu.rs:204:19
[INFO] [stdout]     |
[INFO] [stdout] 204 |             0x0000...0x3fff => self.cart.rom[addr as usize],
[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/gb/mmu.rs:249:19
[INFO] [stdout]     |
[INFO] [stdout] 249 |             0x0000...0x7fff => self.cart.rom[addr as usize],
[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/gb/mmu.rs:205:19
[INFO] [stdout]     |
[INFO] [stdout] 205 |             0x4000...0x7fff => self.cart.rom[((addr - 0x4000) as usize + 0x4000 * self.rom_bank)],
[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/gb/mmu.rs:250:19
[INFO] [stdout]     |
[INFO] [stdout] 250 |             0xa000...0xbfff => self.ram[(addr - 0xa000) as usize],
[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 index expression
[INFO] [stdout]    --> src/gb/mmu.rs:205:46
[INFO] [stdout]     |
[INFO] [stdout] 205 |             0x4000...0x7fff => self.cart.rom[((addr - 0x4000) as usize + 0x4000 * self.rom_bank)],
[INFO] [stdout]     |                                              ^                                                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 205 -             0x4000...0x7fff => self.cart.rom[((addr - 0x4000) as usize + 0x4000 * self.rom_bank)],
[INFO] [stdout] 205 +             0x4000...0x7fff => self.cart.rom[(addr - 0x4000) as usize + 0x4000 * self.rom_bank ],
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/gb/mmu.rs:256:19
[INFO] [stdout]     |
[INFO] [stdout] 256 |             0xA000...0xBFFF => self.ram[(addr - 0xA000) as usize] = value,
[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/gb/mmu.rs:206:19
[INFO] [stdout]     |
[INFO] [stdout] 206 |             0xA000...0xbfff => self.ram[self.ram_bank][(addr - 0xa000) as usize],
[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 assigned value
[INFO] [stdout]   --> src/gb/interrupts.rs:20:24
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const VBLANK: u8 = (1 << 0);
[INFO] [stdout]    |                        ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 20 - pub const VBLANK: u8 = (1 << 0);
[INFO] [stdout] 20 + pub const VBLANK: u8 = 1 << 0 ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/gb/interrupts.rs:21:21
[INFO] [stdout]    |
[INFO] [stdout] 21 | const LCDSTAT: u8 = (1 << 1);
[INFO] [stdout]    |                     ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 21 - const LCDSTAT: u8 = (1 << 1);
[INFO] [stdout] 21 + const LCDSTAT: u8 = 1 << 1 ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/gb/interrupts.rs:22:19
[INFO] [stdout]    |
[INFO] [stdout] 22 | const TIMER: u8 = (1 << 2);
[INFO] [stdout]    |                   ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 22 - const TIMER: u8 = (1 << 2);
[INFO] [stdout] 22 + const TIMER: u8 = 1 << 2 ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/gb/interrupts.rs:23:20
[INFO] [stdout]    |
[INFO] [stdout] 23 | const SERIAL: u8 = (1 << 3);
[INFO] [stdout]    |                    ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 23 - const SERIAL: u8 = (1 << 3);
[INFO] [stdout] 23 + const SERIAL: u8 = 1 << 3 ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/gb/interrupts.rs:24:20
[INFO] [stdout]    |
[INFO] [stdout] 24 | const JOYPAD: u8 = (1 << 4);
[INFO] [stdout]    |                    ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 24 - const JOYPAD: u8 = (1 << 4);
[INFO] [stdout] 24 + const JOYPAD: u8 = 1 << 4 ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/gb/mmu.rs:212:19
[INFO] [stdout]     |
[INFO] [stdout] 212 |             0x2000...0x3fff => {
[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/gb/mmu.rs:215:19
[INFO] [stdout]     |
[INFO] [stdout] 215 |             0x4000...0x5fff => {
[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/gb/mmu.rs:223:19
[INFO] [stdout]     |
[INFO] [stdout] 223 |             0x6000...0x7fff => self.ram_mode = value == 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]    --> src/gb/mmu.rs:224:19
[INFO] [stdout]     |
[INFO] [stdout] 224 |             0xa000...0xbfff => self.ram[self.ram_bank][(addr - 0xa000) as usize] = value,
[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/gb/mmu.rs:249:19
[INFO] [stdout]     |
[INFO] [stdout] 249 |             0x0000...0x7fff => self.cart.rom[addr as usize],
[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/gb/mmu.rs:250:19
[INFO] [stdout]     |
[INFO] [stdout] 250 |             0xa000...0xbfff => self.ram[(addr - 0xa000) as usize],
[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/gb/mmu.rs:256:19
[INFO] [stdout]     |
[INFO] [stdout] 256 |             0xA000...0xBFFF => self.ram[(addr - 0xA000) as usize] = value,
[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 assigned value
[INFO] [stdout]   --> src/gb/interrupts.rs:20:24
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const VBLANK: u8 = (1 << 0);
[INFO] [stdout]    |                        ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 20 - pub const VBLANK: u8 = (1 << 0);
[INFO] [stdout] 20 + pub const VBLANK: u8 = 1 << 0 ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/gb/interrupts.rs:21:21
[INFO] [stdout]    |
[INFO] [stdout] 21 | const LCDSTAT: u8 = (1 << 1);
[INFO] [stdout]    |                     ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 21 - const LCDSTAT: u8 = (1 << 1);
[INFO] [stdout] 21 + const LCDSTAT: u8 = 1 << 1 ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/gb/interrupts.rs:22:19
[INFO] [stdout]    |
[INFO] [stdout] 22 | const TIMER: u8 = (1 << 2);
[INFO] [stdout]    |                   ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 22 - const TIMER: u8 = (1 << 2);
[INFO] [stdout] 22 + const TIMER: u8 = 1 << 2 ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/gb/interrupts.rs:23:20
[INFO] [stdout]    |
[INFO] [stdout] 23 | const SERIAL: u8 = (1 << 3);
[INFO] [stdout]    |                    ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 23 - const SERIAL: u8 = (1 << 3);
[INFO] [stdout] 23 + const SERIAL: u8 = 1 << 3 ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/gb/interrupts.rs:24:20
[INFO] [stdout]    |
[INFO] [stdout] 24 | const JOYPAD: u8 = (1 << 4);
[INFO] [stdout]    |                    ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 24 - const JOYPAD: u8 = (1 << 4);
[INFO] [stdout] 24 + const JOYPAD: u8 = 1 << 4 ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/gb/mmu.rs:22:14
[INFO] [stdout]    |
[INFO] [stdout] 22 |     mbc: Box<Mbc>,
[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] 22 |     mbc: Box<dyn Mbc>,
[INFO] [stdout]    |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/gb/mmu.rs:22:14
[INFO] [stdout]    |
[INFO] [stdout] 22 |     mbc: Box<Mbc>,
[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] 22 |     mbc: Box<dyn Mbc>,
[INFO] [stdout]    |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/gb/mmu.rs:27:22
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let mbc: Box<Mbc> = match cart.cartirge_type {
[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] 27 |         let mbc: Box<dyn Mbc> = match cart.cartirge_type {
[INFO] [stdout]    |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/gb/mmu.rs:27:22
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let mbc: Box<Mbc> = match cart.cartirge_type {
[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] 27 |         let mbc: Box<dyn Mbc> = match cart.cartirge_type {
[INFO] [stdout]    |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/gb/cpu.rs:294:13
[INFO] [stdout]     |
[INFO] [stdout] 294 |             _ => {
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/gb/cpu.rs:294:13
[INFO] [stdout]     |
[INFO] [stdout]  38 |             0x00 => self.nop(),
[INFO] [stdout]     |             ---- matches some of the same values
[INFO] [stdout]  39 |             0x01 => self.ld_r16_nn(Reg16::BC),
[INFO] [stdout]     |             ---- matches some of the same values
[INFO] [stdout]  40 |             0x02 => self.ld_r16_ptr_r8(Reg16::BC, Reg8::A),
[INFO] [stdout]     |             ---- matches some of the same values
[INFO] [stdout]  41 |             0x03 => self.inc_r16(Reg16::BC),
[INFO] [stdout]     |             ---- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 294 |             _ => {
[INFO] [stdout]     |             ^ ...and 252 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/gb/cpu.rs:294:13
[INFO] [stdout]     |
[INFO] [stdout] 294 |             _ => {
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/gb/cpu.rs:294:13
[INFO] [stdout]     |
[INFO] [stdout]  38 |             0x00 => self.nop(),
[INFO] [stdout]     |             ---- matches some of the same values
[INFO] [stdout]  39 |             0x01 => self.ld_r16_nn(Reg16::BC),
[INFO] [stdout]     |             ---- matches some of the same values
[INFO] [stdout]  40 |             0x02 => self.ld_r16_ptr_r8(Reg16::BC, Reg8::A),
[INFO] [stdout]     |             ---- matches some of the same values
[INFO] [stdout]  41 |             0x03 => self.inc_r16(Reg16::BC),
[INFO] [stdout]     |             ---- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 294 |             _ => {
[INFO] [stdout]     |             ^ ...and 252 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> src/gb/cpu.rs:1554:13
[INFO] [stdout]      |
[INFO] [stdout] 1554 |             _ => {
[INFO] [stdout]      |             ^ no value can reach this
[INFO] [stdout]      |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]     --> src/gb/cpu.rs:1554:13
[INFO] [stdout]      |
[INFO] [stdout] 1298 |             0x00 => self.rlc_r8(Reg8::B),
[INFO] [stdout]      |             ---- matches some of the same values
[INFO] [stdout] 1299 |             0x01 => self.rlc_r8(Reg8::C),
[INFO] [stdout]      |             ---- matches some of the same values
[INFO] [stdout] 1300 |             0x02 => self.rlc_r8(Reg8::D),
[INFO] [stdout]      |             ---- matches some of the same values
[INFO] [stdout] 1301 |             0x03 => self.rlc_r8(Reg8::E),
[INFO] [stdout]      |             ---- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 1554 |             _ => {
[INFO] [stdout]      |             ^ ...and 252 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> src/gb/cpu.rs:1554:13
[INFO] [stdout]      |
[INFO] [stdout] 1554 |             _ => {
[INFO] [stdout]      |             ^ no value can reach this
[INFO] [stdout]      |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]     --> src/gb/cpu.rs:1554:13
[INFO] [stdout]      |
[INFO] [stdout] 1298 |             0x00 => self.rlc_r8(Reg8::B),
[INFO] [stdout]      |             ---- matches some of the same values
[INFO] [stdout] 1299 |             0x01 => self.rlc_r8(Reg8::C),
[INFO] [stdout]      |             ---- matches some of the same values
[INFO] [stdout] 1300 |             0x02 => self.rlc_r8(Reg8::D),
[INFO] [stdout]      |             ---- matches some of the same values
[INFO] [stdout] 1301 |             0x03 => self.rlc_r8(Reg8::E),
[INFO] [stdout]      |             ---- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 1554 |             _ => {
[INFO] [stdout]      |             ^ ...and 252 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/gb/mmu.rs:146:13
[INFO] [stdout]     |
[INFO] [stdout] 146 |             _ => panic!("invalid addr"),
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/gb/mmu.rs:146:13
[INFO] [stdout]     |
[INFO] [stdout] 130 |             0x0000...0x7FFF => self.mbc.read_u8(addr),
[INFO] [stdout]     |             --------------- matches some of the same values
[INFO] [stdout] 131 |             0xA000...0xBFFF => self.mbc.read_u8(addr),
[INFO] [stdout]     |             --------------- matches some of the same values
[INFO] [stdout] 132 |             0x8000...0x9FFF => self.vram[(addr - 0x8000) as usize],
[INFO] [stdout]     |             --------------- matches some of the same values
[INFO] [stdout] 133 |             0xC000...0xDFFF => self.wram[(addr - 0xC000) as usize],
[INFO] [stdout]     |             --------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 146 |             _ => panic!("invalid addr"),
[INFO] [stdout]     |             ^ ...and 12 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/gb/mmu.rs:179:13
[INFO] [stdout]     |
[INFO] [stdout] 179 |             _ => panic!("Not implemented"),
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/gb/mmu.rs:179:13
[INFO] [stdout]     |
[INFO] [stdout] 156 |             0x0000...0x7FFF => self.mbc.write_u8(addr, val),
[INFO] [stdout]     |             --------------- matches some of the same values
[INFO] [stdout] 157 |             0x8000...0x9FFF => self.vram_write(addr, val),
[INFO] [stdout]     |             --------------- matches some of the same values
[INFO] [stdout] 158 |             0xA000...0xBFFF => self.mbc.write_u8(addr, val),
[INFO] [stdout]     |             --------------- matches some of the same values
[INFO] [stdout] 159 |             0xC000...0xDFFF => self.wram[(addr - 0xC000) as usize] = val,
[INFO] [stdout]     |             --------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 179 |             _ => panic!("Not implemented"),
[INFO] [stdout]     |             ^ ...and 14 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/gb/mmu.rs:146:13
[INFO] [stdout]     |
[INFO] [stdout] 146 |             _ => panic!("invalid addr"),
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/gb/mmu.rs:146:13
[INFO] [stdout]     |
[INFO] [stdout] 130 |             0x0000...0x7FFF => self.mbc.read_u8(addr),
[INFO] [stdout]     |             --------------- matches some of the same values
[INFO] [stdout] 131 |             0xA000...0xBFFF => self.mbc.read_u8(addr),
[INFO] [stdout]     |             --------------- matches some of the same values
[INFO] [stdout] 132 |             0x8000...0x9FFF => self.vram[(addr - 0x8000) as usize],
[INFO] [stdout]     |             --------------- matches some of the same values
[INFO] [stdout] 133 |             0xC000...0xDFFF => self.wram[(addr - 0xC000) as usize],
[INFO] [stdout]     |             --------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 146 |             _ => panic!("invalid addr"),
[INFO] [stdout]     |             ^ ...and 12 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/gb/mmu.rs:179:13
[INFO] [stdout]     |
[INFO] [stdout] 179 |             _ => panic!("Not implemented"),
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/gb/mmu.rs:179:13
[INFO] [stdout]     |
[INFO] [stdout] 156 |             0x0000...0x7FFF => self.mbc.write_u8(addr, val),
[INFO] [stdout]     |             --------------- matches some of the same values
[INFO] [stdout] 157 |             0x8000...0x9FFF => self.vram_write(addr, val),
[INFO] [stdout]     |             --------------- matches some of the same values
[INFO] [stdout] 158 |             0xA000...0xBFFF => self.mbc.write_u8(addr, val),
[INFO] [stdout]     |             --------------- matches some of the same values
[INFO] [stdout] 159 |             0xC000...0xDFFF => self.wram[(addr - 0xC000) as usize] = val,
[INFO] [stdout]     |             --------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 179 |             _ => panic!("Not implemented"),
[INFO] [stdout]     |             ^ ...and 14 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mmu`
[INFO] [stdout]    --> src/gb/gpu.rs:219:13
[INFO] [stdout]     |
[INFO] [stdout] 219 |         let ref mmu = self.mmu.as_ref().unwrap().borrow_mut();
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mmu`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tiles`
[INFO] [stdout]    --> src/gb/gpu.rs:220:13
[INFO] [stdout]     |
[INFO] [stdout] 220 |         let tiles = self.status.window_tilemap();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_tiles`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `map`
[INFO] [stdout]    --> src/gb/gpu.rs:221:13
[INFO] [stdout]     |
[INFO] [stdout] 221 |         let map = self.status.bg_tilemap();
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tileY`
[INFO] [stdout]    --> src/gb/gpu.rs:223:13
[INFO] [stdout]     |
[INFO] [stdout] 223 |         let tileY = self.status.wy / 8;
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_tileY`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tileYOffset`
[INFO] [stdout]    --> src/gb/gpu.rs:224:13
[INFO] [stdout]     |
[INFO] [stdout] 224 |         let tileYOffset = self.status.wy % 8;
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tileYOffset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pixel_offset` is never read
[INFO] [stdout]    --> src/gb/gpu.rs:314:37
[INFO] [stdout]     |
[INFO] [stdout] 314 |         let mut pixel_offset: u16 = self.status.ly as u16 * 160;
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pixel_offset` is never read
[INFO] [stdout]    --> src/gb/gpu.rs:329:17
[INFO] [stdout]     |
[INFO] [stdout] 329 |                 pixel_offset += 1;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `tile` is never read
[INFO] [stdout]    --> src/gb/gpu.rs:318:28
[INFO] [stdout]     |
[INFO] [stdout] 318 |         let mut tile: u8 = 0;
[INFO] [stdout]     |                            ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mmu`
[INFO] [stdout]    --> src/gb/gpu.rs:219:13
[INFO] [stdout]     |
[INFO] [stdout] 219 |         let ref mmu = self.mmu.as_ref().unwrap().borrow_mut();
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mmu`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tiles`
[INFO] [stdout]    --> src/gb/gpu.rs:220:13
[INFO] [stdout]     |
[INFO] [stdout] 220 |         let tiles = self.status.window_tilemap();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_tiles`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/gb/interrupts.rs:100:37
[INFO] [stdout]     |
[INFO] [stdout] 100 |     pub fn handle_vblank(&mut self, mut display: &mut SdlDisplay) {
[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: unused variable: `map`
[INFO] [stdout]    --> src/gb/gpu.rs:221:13
[INFO] [stdout]     |
[INFO] [stdout] 221 |         let map = self.status.bg_tilemap();
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tileY`
[INFO] [stdout]    --> src/gb/gpu.rs:223:13
[INFO] [stdout]     |
[INFO] [stdout] 223 |         let tileY = self.status.wy / 8;
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_tileY`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tileYOffset`
[INFO] [stdout]    --> src/gb/gpu.rs:224:13
[INFO] [stdout]     |
[INFO] [stdout] 224 |         let tileYOffset = self.status.wy % 8;
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tileYOffset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pixel_offset` is never read
[INFO] [stdout]    --> src/gb/gpu.rs:314:37
[INFO] [stdout]     |
[INFO] [stdout] 314 |         let mut pixel_offset: u16 = self.status.ly as u16 * 160;
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pixel_offset` is never read
[INFO] [stdout]    --> src/gb/gpu.rs:329:17
[INFO] [stdout]     |
[INFO] [stdout] 329 |                 pixel_offset += 1;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `tile` is never read
[INFO] [stdout]    --> src/gb/gpu.rs:318:28
[INFO] [stdout]     |
[INFO] [stdout] 318 |         let mut tile: u8 = 0;
[INFO] [stdout]     |                            ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/gb/interrupts.rs:100:37
[INFO] [stdout]     |
[INFO] [stdout] 100 |     pub fn handle_vblank(&mut self, mut display: &mut SdlDisplay) {
[INFO] [stdout]     |                                     ----^^^^^^^
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `tileY` should have a snake case name
[INFO] [stdout]    --> src/gb/gpu.rs:223:13
[INFO] [stdout]     |
[INFO] [stdout] 223 |         let tileY = self.status.wy / 8;
[INFO] [stdout]     |             ^^^^^ help: convert the identifier to snake case: `tile_y`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `tileYOffset` should have a snake case name
[INFO] [stdout]    --> src/gb/gpu.rs:224:13
[INFO] [stdout]     |
[INFO] [stdout] 224 |         let tileYOffset = self.status.wy % 8;
[INFO] [stdout]     |             ^^^^^^^^^^^ help: convert the identifier to snake case: `tile_yoffset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `tileY` should have a snake case name
[INFO] [stdout]    --> src/gb/gpu.rs:223:13
[INFO] [stdout]     |
[INFO] [stdout] 223 |         let tileY = self.status.wy / 8;
[INFO] [stdout]     |             ^^^^^ help: convert the identifier to snake case: `tile_y`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `tileYOffset` should have a snake case name
[INFO] [stdout]    --> src/gb/gpu.rs:224:13
[INFO] [stdout]     |
[INFO] [stdout] 224 |         let tileYOffset = self.status.wy % 8;
[INFO] [stdout]     |             ^^^^^^^^^^^ help: convert the identifier to snake case: `tile_yoffset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.02s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: bitflags v0.7.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
[INFO] running `Command { std: "docker" "inspect" "4001943186bbcce45dd433c6c9b3f43ec784252fd5a00533bbfdd03a155b276f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4001943186bbcce45dd433c6c9b3f43ec784252fd5a00533bbfdd03a155b276f", kill_on_drop: false }`
[INFO] [stdout] 4001943186bbcce45dd433c6c9b3f43ec784252fd5a00533bbfdd03a155b276f
