[INFO] cloning repository https://github.com/nosferatu500/Gameboy
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/nosferatu500/Gameboy" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnosferatu500%2FGameboy", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnosferatu500%2FGameboy'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] eadfc12fe26bdca17cbe6feeff58938d7ec952f7
[INFO] building nosferatu500/Gameboy against master#ad85bc524b1ad696e42061ad8338d382dffbdbe5 for pr-146237-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnosferatu500%2FGameboy" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/nosferatu500/Gameboy
[INFO] finished tweaking git repo https://github.com/nosferatu500/Gameboy
[INFO] tweaked toml for git repo https://github.com/nosferatu500/Gameboy written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/nosferatu500/Gameboy on toolchain ad85bc524b1ad696e42061ad8338d382dffbdbe5
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/nosferatu500/Gameboy 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" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "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]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rand v0.3.22
[INFO] [stderr]   Downloaded num-traits v0.2.2
[INFO] [stderr]   Downloaded num-integer v0.1.36
[INFO] [stderr]   Downloaded redox_termios v0.1.1
[INFO] [stderr]   Downloaded bitflags v0.7.0
[INFO] [stderr]   Downloaded strsim v0.7.0
[INFO] [stderr]   Downloaded num-iter v0.1.35
[INFO] [stderr]   Downloaded ansi_term v0.11.0
[INFO] [stderr]   Downloaded termion v1.5.1
[INFO] [stderr]   Downloaded redox_syscall v0.1.37
[INFO] [stderr]   Downloaded textwrap v0.9.0
[INFO] [stderr]   Downloaded atty v0.2.8
[INFO] [stderr]   Downloaded sdl2 v0.31.0
[INFO] [stderr]   Downloaded nom v1.2.4
[INFO] [stderr]   Downloaded unicode-width v0.1.4
[INFO] [stderr]   Downloaded vec_map v0.8.0
[INFO] [stderr]   Downloaded lazy_static v0.2.11
[INFO] [stderr]   Downloaded libc v0.2.40
[INFO] [stderr]   Downloaded sdl2-sys v0.31.0
[INFO] [stderr]   Downloaded clap v2.31.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 919a728e5afba3f8ad1181bc87d822ddb960a007b494aaedc1f67a58dea40a53
[INFO] running `Command { std: "docker" "start" "-a" "919a728e5afba3f8ad1181bc87d822ddb960a007b494aaedc1f67a58dea40a53", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "919a728e5afba3f8ad1181bc87d822ddb960a007b494aaedc1f67a58dea40a53", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "919a728e5afba3f8ad1181bc87d822ddb960a007b494aaedc1f67a58dea40a53", kill_on_drop: false }`
[INFO] [stdout] 919a728e5afba3f8ad1181bc87d822ddb960a007b494aaedc1f67a58dea40a53
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b32ca39c9434f89019a756397cb9f37aa9bd854f48ce91a4d1d45e50f67e38f7
[INFO] running `Command { std: "docker" "start" "-a" "b32ca39c9434f89019a756397cb9f37aa9bd854f48ce91a4d1d45e50f67e38f7", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]    Compiling libc v0.2.40
[INFO] [stderr]    Compiling cfg-if v0.1.2
[INFO] [stderr]    Compiling num-traits v0.2.2
[INFO] [stderr]    Compiling unicode-width v0.1.4
[INFO] [stderr]    Compiling strsim v0.7.0
[INFO] [stderr]    Compiling bitflags v0.7.0
[INFO] [stderr]    Compiling ansi_term v0.11.0
[INFO] [stderr]    Compiling bitflags v1.0.1
[INFO] [stderr]    Compiling vec_map v0.8.0
[INFO] [stderr]    Compiling lazy_static v0.2.11
[INFO] [stderr]    Compiling nom v1.2.4
[INFO] [stderr]    Compiling sdl2-sys v0.31.0
[INFO] [stderr]    Compiling textwrap v0.9.0
[INFO] [stderr]    Compiling num-integer v0.1.36
[INFO] [stderr]    Compiling rand v0.4.2
[INFO] [stderr]    Compiling atty v0.2.8
[INFO] [stderr]    Compiling clap v2.31.2
[INFO] [stderr]    Compiling num-iter v0.1.35
[INFO] [stderr]    Compiling num v0.1.42
[INFO] [stderr]    Compiling rand v0.3.22
[INFO] [stderr]    Compiling sdl2 v0.31.0
[INFO] [stderr]    Compiling gameboy v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/bus.rs:465:24
[INFO] [stdout]     |
[INFO] [stdout] 465 |                 0xFF08 ... 0xFF0E => {
[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/bus.rs:676:24
[INFO] [stdout]     |
[INFO] [stdout] 676 |                 0xFF27 ... 0xFF2F => {
[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/bus.rs:679:24
[INFO] [stdout]     |
[INFO] [stdout] 679 |                 0xFF30 ... 0xFF3F => {
[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 trailing semicolon
[INFO] [stdout]    --> src/cpu.rs:536:69
[INFO] [stdout]     |
[INFO] [stdout] 536 |                 self.register.flag.c = (self.register.a == 1) as u8;;
[INFO] [stdout]     |                                                                     ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/mbc/mbc1.rs:43:20
[INFO] [stdout]    |
[INFO] [stdout] 43 |             0x0000 ... 0x1FFF => {
[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/mbc/mbc1.rs:46:20
[INFO] [stdout]    |
[INFO] [stdout] 46 |             0x6000 ... 0x7FFF => { 
[INFO] [stdout]    |                    ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/mbc/mod.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 |     try!(check_checksum(&buf));
[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/mbc/mod.rs:62:14
[INFO] [stdout]    |
[INFO] [stdout] 62 |         0x01 ... 0x03 => mbc1::MBC1::new(buf).map(|v| Box::new(v) as Box<MBC>),
[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]   --> src/bus.rs:54:14
[INFO] [stdout]    |
[INFO] [stdout] 54 |     mbc: Box<::mbc::MBC+'static>,
[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] 54 |     mbc: Box<dyn (::mbc::MBC+'static)>,
[INFO] [stdout]    |              +++++                  +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/mbc/mod.rs:51:60
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub fn get_mbc<P: AsRef<Path>>(path: P) -> ::StrResult<Box<MBC+'static>> {
[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] 51 | pub fn get_mbc<P: AsRef<Path>>(path: P) -> ::StrResult<Box<dyn MBC+'static>> {
[INFO] [stdout]    |                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bus.rs:77:25
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn new(mbc: Box<::mbc::MBC+'static>) -> Bus {
[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] 77 |     pub fn new(mbc: Box<dyn (::mbc::MBC+'static)>) -> Bus {
[INFO] [stdout]    |                         +++++                  +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/debugger.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 74 |           panic!("{:x}", addr);
[INFO] [stdout]    |           -------------------- any code following this expression is unreachable
[INFO] [stdout] 75 | /         while self.cpu.get_pc() != addr {
[INFO] [stdout] 76 | |             self.cpu.update_ime();
[INFO] [stdout] 77 | |             self.cpu.run_next_instruction(false);
[INFO] [stdout] 78 | |         }
[INFO] [stdout]    | |_________^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/mbc/mod.rs:61:65
[INFO] [stdout]    |
[INFO] [stdout] 61 |         0x00 => mbc0::MBC0::new(buf).map(|v| Box::new(v) as 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] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 61 |         0x00 => mbc0::MBC0::new(buf).map(|v| Box::new(v) as Box<dyn MBC>),
[INFO] [stdout]    |                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/mbc/mod.rs:62:74
[INFO] [stdout]    |
[INFO] [stdout] 62 |         0x01 ... 0x03 => mbc1::MBC1::new(buf).map(|v| Box::new(v) as 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] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 62 |         0x01 ... 0x03 => mbc1::MBC1::new(buf).map(|v| Box::new(v) as Box<dyn MBC>),
[INFO] [stdout]    |                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/bus.rs:118:21
[INFO] [stdout]     |
[INFO] [stdout] 118 |         if let Some(offset) = map::VIDEO_RAM.contains(addr) {
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/bus.rs:120:25
[INFO] [stdout]     |
[INFO] [stdout] 120 |             if let Some(offset) = map::CHARACTER_DATA.contains(addr) {
[INFO] [stdout]     |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/bus.rs:124:25
[INFO] [stdout]     |
[INFO] [stdout] 124 |             if let Some(offset) = map::BG_DISPLAY_DATA_1.contains(addr) {
[INFO] [stdout]     |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/bus.rs:128:25
[INFO] [stdout]     |
[INFO] [stdout] 128 |             if let Some(offset) = map::BG_DISPLAY_DATA_2.contains(addr) {
[INFO] [stdout]     |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/bus.rs:161:21
[INFO] [stdout]     |
[INFO] [stdout] 161 |         if let Some(offset) = map::NOT_USABLE_1.contains(addr) {
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/bus.rs:165:21
[INFO] [stdout]     |
[INFO] [stdout] 165 |         if let Some(offset) = map::NOT_USABLE_2.contains(addr) {
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/bus.rs:169:21
[INFO] [stdout]     |
[INFO] [stdout] 169 |         if let Some(offset) = map::IO.contains(addr) {
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/bus.rs:383:21
[INFO] [stdout]     |
[INFO] [stdout] 383 |         if let Some(offset) = map::NOT_USABLE_1.contains(addr) {
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/bus.rs:387:21
[INFO] [stdout]     |
[INFO] [stdout] 387 |         if let Some(offset) = map::NOT_USABLE_2.contains(addr) {
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/bus.rs:391:21
[INFO] [stdout]     |
[INFO] [stdout] 391 |         if let Some(offset) = map::VIDEO_RAM.contains(addr) {
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/bus.rs:393:25
[INFO] [stdout]     |
[INFO] [stdout] 393 |             if let Some(offset) = map::CHARACTER_DATA.contains(addr) {
[INFO] [stdout]     |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/bus.rs:397:25
[INFO] [stdout]     |
[INFO] [stdout] 397 |             if let Some(offset) = map::BG_DISPLAY_DATA_1.contains(addr) {
[INFO] [stdout]     |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/bus.rs:401:25
[INFO] [stdout]     |
[INFO] [stdout] 401 |             if let Some(offset) = map::BG_DISPLAY_DATA_2.contains(addr) {
[INFO] [stdout]     |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/bus.rs:418:21
[INFO] [stdout]     |
[INFO] [stdout] 418 |         if let Some(offset) = map::IO.contains(addr) {
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nn`
[INFO] [stdout]    --> src/cpu.rs:250:13
[INFO] [stdout]     |
[INFO] [stdout] 250 |         let nn = (self.bus.load(self.current_pc + 2) as u16) << 8
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_nn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/cpu.rs:252:13
[INFO] [stdout]     |
[INFO] [stdout] 252 |         let n = self.bus.load(self.current_pc + 1);
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `black`
[INFO] [stdout]   --> src/main.rs:95:13
[INFO] [stdout]    |
[INFO] [stdout] 95 |         let black = sdl2::pixels::Color::RGB(0, 0, 0);
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_black`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_data` is never used
[INFO] [stdout]    --> src/bus.rs:847:12
[INFO] [stdout]     |
[INFO] [stdout] 836 | impl InterruptEnable {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 847 |     pub fn get_data(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cartrige_type` is never read
[INFO] [stdout]   --> src/cpu.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub struct Cpu {
[INFO] [stdout]    |            --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 21 |     cartrige_type: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_SPRITES` is never used
[INFO] [stdout]  --> src/gui.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub const MAX_SPRITES: u32 = 40;
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_LINE` is never used
[INFO] [stdout]  --> src/gui.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub const MAX_LINE: u32 = 10;
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OAM` is never constructed
[INFO] [stdout]   --> src/gui.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct OAM {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `bg_tile_map` and `color` are never read
[INFO] [stdout]   --> src/gui.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct Gui {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub bg_tile_map: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub color: Color,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EXTERNAL_CLOCK` is never used
[INFO] [stdout]  --> src/serial.rs:1:7
[INFO] [stdout]   |
[INFO] [stdout] 1 | const EXTERNAL_CLOCK: u32 = 500 * 1024;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INTERNAL_CLOCK` is never used
[INFO] [stdout]  --> src/serial.rs:2:7
[INFO] [stdout]   |
[INFO] [stdout] 2 | const INTERNAL_CLOCK: u32 = 8192;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `writeram` is never used
[INFO] [stdout]   --> src/mbc/mod.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub trait MBC {
[INFO] [stdout]    |           --- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 48 |     fn writeram(&mut self, address: u16, value: u8);
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.60s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: bitflags v0.7.0, nom v1.2.4
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "b32ca39c9434f89019a756397cb9f37aa9bd854f48ce91a4d1d45e50f67e38f7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b32ca39c9434f89019a756397cb9f37aa9bd854f48ce91a4d1d45e50f67e38f7", kill_on_drop: false }`
[INFO] [stdout] b32ca39c9434f89019a756397cb9f37aa9bd854f48ce91a4d1d45e50f67e38f7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f1a1e09c8437169234c46dde055ee1ca83bfa40a14ee1073593967a13cce93eb
[INFO] running `Command { std: "docker" "start" "-a" "f1a1e09c8437169234c46dde055ee1ca83bfa40a14ee1073593967a13cce93eb", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]    Compiling gameboy v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/bus.rs:465:24
[INFO] [stdout]     |
[INFO] [stdout] 465 |                 0xFF08 ... 0xFF0E => {
[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/bus.rs:676:24
[INFO] [stdout]     |
[INFO] [stdout] 676 |                 0xFF27 ... 0xFF2F => {
[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/bus.rs:679:24
[INFO] [stdout]     |
[INFO] [stdout] 679 |                 0xFF30 ... 0xFF3F => {
[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 trailing semicolon
[INFO] [stdout]    --> src/cpu.rs:536:69
[INFO] [stdout]     |
[INFO] [stdout] 536 |                 self.register.flag.c = (self.register.a == 1) as u8;;
[INFO] [stdout]     |                                                                     ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/mbc/mbc1.rs:43:20
[INFO] [stdout]    |
[INFO] [stdout] 43 |             0x0000 ... 0x1FFF => {
[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/mbc/mbc1.rs:46:20
[INFO] [stdout]    |
[INFO] [stdout] 46 |             0x6000 ... 0x7FFF => { 
[INFO] [stdout]    |                    ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/mbc/mod.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 |     try!(check_checksum(&buf));
[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/mbc/mod.rs:62:14
[INFO] [stdout]    |
[INFO] [stdout] 62 |         0x01 ... 0x03 => mbc1::MBC1::new(buf).map(|v| Box::new(v) as Box<MBC>),
[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]   --> src/bus.rs:54:14
[INFO] [stdout]    |
[INFO] [stdout] 54 |     mbc: Box<::mbc::MBC+'static>,
[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] 54 |     mbc: Box<dyn (::mbc::MBC+'static)>,
[INFO] [stdout]    |              +++++                  +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/mbc/mod.rs:51:60
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub fn get_mbc<P: AsRef<Path>>(path: P) -> ::StrResult<Box<MBC+'static>> {
[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] 51 | pub fn get_mbc<P: AsRef<Path>>(path: P) -> ::StrResult<Box<dyn MBC+'static>> {
[INFO] [stdout]    |                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bus.rs:77:25
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn new(mbc: Box<::mbc::MBC+'static>) -> Bus {
[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] 77 |     pub fn new(mbc: Box<dyn (::mbc::MBC+'static)>) -> Bus {
[INFO] [stdout]    |                         +++++                  +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/debugger.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 74 |           panic!("{:x}", addr);
[INFO] [stdout]    |           -------------------- any code following this expression is unreachable
[INFO] [stdout] 75 | /         while self.cpu.get_pc() != addr {
[INFO] [stdout] 76 | |             self.cpu.update_ime();
[INFO] [stdout] 77 | |             self.cpu.run_next_instruction(false);
[INFO] [stdout] 78 | |         }
[INFO] [stdout]    | |_________^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/mbc/mod.rs:61:65
[INFO] [stdout]    |
[INFO] [stdout] 61 |         0x00 => mbc0::MBC0::new(buf).map(|v| Box::new(v) as 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] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 61 |         0x00 => mbc0::MBC0::new(buf).map(|v| Box::new(v) as Box<dyn MBC>),
[INFO] [stdout]    |                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/mbc/mod.rs:62:74
[INFO] [stdout]    |
[INFO] [stdout] 62 |         0x01 ... 0x03 => mbc1::MBC1::new(buf).map(|v| Box::new(v) as 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] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 62 |         0x01 ... 0x03 => mbc1::MBC1::new(buf).map(|v| Box::new(v) as Box<dyn MBC>),
[INFO] [stdout]    |                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/bus.rs:118:21
[INFO] [stdout]     |
[INFO] [stdout] 118 |         if let Some(offset) = map::VIDEO_RAM.contains(addr) {
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/bus.rs:120:25
[INFO] [stdout]     |
[INFO] [stdout] 120 |             if let Some(offset) = map::CHARACTER_DATA.contains(addr) {
[INFO] [stdout]     |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/bus.rs:124:25
[INFO] [stdout]     |
[INFO] [stdout] 124 |             if let Some(offset) = map::BG_DISPLAY_DATA_1.contains(addr) {
[INFO] [stdout]     |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/bus.rs:128:25
[INFO] [stdout]     |
[INFO] [stdout] 128 |             if let Some(offset) = map::BG_DISPLAY_DATA_2.contains(addr) {
[INFO] [stdout]     |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/bus.rs:161:21
[INFO] [stdout]     |
[INFO] [stdout] 161 |         if let Some(offset) = map::NOT_USABLE_1.contains(addr) {
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/bus.rs:165:21
[INFO] [stdout]     |
[INFO] [stdout] 165 |         if let Some(offset) = map::NOT_USABLE_2.contains(addr) {
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/bus.rs:169:21
[INFO] [stdout]     |
[INFO] [stdout] 169 |         if let Some(offset) = map::IO.contains(addr) {
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/bus.rs:383:21
[INFO] [stdout]     |
[INFO] [stdout] 383 |         if let Some(offset) = map::NOT_USABLE_1.contains(addr) {
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/bus.rs:387:21
[INFO] [stdout]     |
[INFO] [stdout] 387 |         if let Some(offset) = map::NOT_USABLE_2.contains(addr) {
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/bus.rs:391:21
[INFO] [stdout]     |
[INFO] [stdout] 391 |         if let Some(offset) = map::VIDEO_RAM.contains(addr) {
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/bus.rs:393:25
[INFO] [stdout]     |
[INFO] [stdout] 393 |             if let Some(offset) = map::CHARACTER_DATA.contains(addr) {
[INFO] [stdout]     |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/bus.rs:397:25
[INFO] [stdout]     |
[INFO] [stdout] 397 |             if let Some(offset) = map::BG_DISPLAY_DATA_1.contains(addr) {
[INFO] [stdout]     |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/bus.rs:401:25
[INFO] [stdout]     |
[INFO] [stdout] 401 |             if let Some(offset) = map::BG_DISPLAY_DATA_2.contains(addr) {
[INFO] [stdout]     |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/bus.rs:418:21
[INFO] [stdout]     |
[INFO] [stdout] 418 |         if let Some(offset) = map::IO.contains(addr) {
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nn`
[INFO] [stdout]    --> src/cpu.rs:250:13
[INFO] [stdout]     |
[INFO] [stdout] 250 |         let nn = (self.bus.load(self.current_pc + 2) as u16) << 8
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_nn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/cpu.rs:252:13
[INFO] [stdout]     |
[INFO] [stdout] 252 |         let n = self.bus.load(self.current_pc + 1);
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `black`
[INFO] [stdout]   --> src/main.rs:95:13
[INFO] [stdout]    |
[INFO] [stdout] 95 |         let black = sdl2::pixels::Color::RGB(0, 0, 0);
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_black`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_data` is never used
[INFO] [stdout]    --> src/bus.rs:847:12
[INFO] [stdout]     |
[INFO] [stdout] 836 | impl InterruptEnable {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 847 |     pub fn get_data(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cartrige_type` is never read
[INFO] [stdout]   --> src/cpu.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub struct Cpu {
[INFO] [stdout]    |            --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 21 |     cartrige_type: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_SPRITES` is never used
[INFO] [stdout]  --> src/gui.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub const MAX_SPRITES: u32 = 40;
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_LINE` is never used
[INFO] [stdout]  --> src/gui.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub const MAX_LINE: u32 = 10;
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OAM` is never constructed
[INFO] [stdout]   --> src/gui.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct OAM {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `bg_tile_map` and `color` are never read
[INFO] [stdout]   --> src/gui.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct Gui {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub bg_tile_map: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub color: Color,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EXTERNAL_CLOCK` is never used
[INFO] [stdout]  --> src/serial.rs:1:7
[INFO] [stdout]   |
[INFO] [stdout] 1 | const EXTERNAL_CLOCK: u32 = 500 * 1024;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INTERNAL_CLOCK` is never used
[INFO] [stdout]  --> src/serial.rs:2:7
[INFO] [stdout]   |
[INFO] [stdout] 2 | const INTERNAL_CLOCK: u32 = 8192;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `writeram` is never used
[INFO] [stdout]   --> src/mbc/mod.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub trait MBC {
[INFO] [stdout]    |           --- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 48 |     fn writeram(&mut self, address: u16, value: u8);
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.70s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: bitflags v0.7.0, nom v1.2.4
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "f1a1e09c8437169234c46dde055ee1ca83bfa40a14ee1073593967a13cce93eb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f1a1e09c8437169234c46dde055ee1ca83bfa40a14ee1073593967a13cce93eb", kill_on_drop: false }`
[INFO] [stdout] f1a1e09c8437169234c46dde055ee1ca83bfa40a14ee1073593967a13cce93eb
