[INFO] updating cached repository https://github.com/jomag/rustboy
[INFO] running `"git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "-c" "remote.origin.fetch=refs/heads/*:refs/heads/*" "fetch" "origin" "--force" "--prune"`
[INFO] running `"git" "rev-parse" "HEAD"`
[INFO] [stdout] b47dce9de6c8cf4d6145b5df7d27eebcc27f6536
[INFO] checking jomag/rustboy against master#209b2be09fcaff937480d1fbbe8b31646e361c7a for pr-70917
[INFO] running `"git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjomag%2Frustboy" "/workspace/builds/worker-12/source"`
[INFO] [stderr] Cloning into '/workspace/builds/worker-12/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/jomag/rustboy on toolchain 209b2be09fcaff937480d1fbbe8b31646e361c7a
[INFO] running `"/workspace/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "read-manifest" "--manifest-path" "Cargo.toml"`
[INFO] started tweaking git repo https://github.com/jomag/rustboy
[INFO] finished tweaking git repo https://github.com/jomag/rustboy
[INFO] tweaked toml for git repo https://github.com/jomag/rustboy written to /workspace/builds/worker-12/source/Cargo.toml
[INFO] crate git repo https://github.com/jomag/rustboy already has a lockfile, it will not be regenerated
[INFO] running `"/workspace/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "fetch" "--locked" "--manifest-path" "Cargo.toml"`
[INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "check" "--frozen" "--all" "--all-targets"`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] 7851a8f17911541fd4d21b2655c8a040e6c9d1da3ff44e5cbabb4c3d7f98274f
[INFO] running `"docker" "start" "-a" "7851a8f17911541fd4d21b2655c8a040e6c9d1da3ff44e5cbabb4c3d7f98274f"`
[INFO] [stderr]    Compiling sdl2-sys v0.32.5
[INFO] [stderr]     Checking nix v0.11.0
[INFO] [stderr]     Checking png v0.14.0
[INFO] [stderr]     Checking clap v2.32.0
[INFO] [stderr]     Checking sdl2 v0.32.1
[INFO] [stderr]     Checking ctrlc v3.1.1
[INFO] [stderr]     Checking rustboy v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr] warning: `#[macro_escape]` is a deprecated synonym for `#[macro_use]`
[INFO] [stderr]   --> src/main.rs:23:1
[INFO] [stderr]    |
[INFO] [stderr] 23 | #[macro_escape]
[INFO] [stderr]    | ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] error[E0428]: the name `buttons` is defined multiple times
[INFO] [stderr]   --> src/main.rs:39:1
[INFO] [stderr]    |
[INFO] [stderr] 27 | mod buttons;
[INFO] [stderr]    | ------------ previous definition of the module `buttons` here
[INFO] [stderr] ...
[INFO] [stderr] 39 | mod buttons;
[INFO] [stderr]    | ^^^^^^^^^^^^ `buttons` redefined here
[INFO] [stderr]    |
[INFO] [stderr]    = note: `buttons` must be defined only once in the type namespace of this module
[INFO] [stderr] 
[INFO] [stderr] error[E0252]: the name `Buttons` is defined multiple times
[INFO] [stderr]   --> src/mmu.rs:17:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use buttons::Buttons;
[INFO] [stderr]    |     ---------------- previous import of the type `Buttons` here
[INFO] [stderr] ...
[INFO] [stderr] 17 | use buttons::Buttons;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^ `Buttons` reimported here
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Buttons` must be defined only once in the type namespace of this module
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::env`
[INFO] [stderr]  --> src/main.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use std::env;
[INFO] [stderr]   |     ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::str::FromStr`
[INFO] [stderr]   --> src/main.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 12 | use std::str::FromStr;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `AudioQueue`
[INFO] [stderr]   --> src/main.rs:16:34
[INFO] [stderr]    |
[INFO] [stderr] 16 | use sdl2::audio::{AudioCallback, AudioQueue, AudioSpecDesired};
[INFO] [stderr]    |                                  ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `print_registers`
[INFO] [stderr]  --> src/macros.rs:2:13
[INFO] [stderr]   |
[INFO] [stderr] 2 | use debug::{print_registers};
[INFO] [stderr]   |             ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `AudioCallback`, `AudioQueue`, `AudioSpecDesired`
[INFO] [stderr]   --> src/apu.rs:10:19
[INFO] [stderr]    |
[INFO] [stderr] 10 | use sdl2::audio::{AudioCallback, AudioQueue, AudioSpecDesired};
[INFO] [stderr]    |                   ^^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `sdl2::init`
[INFO] [stderr]   --> src/apu.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | use sdl2::init;
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::collections::VecDeque`
[INFO] [stderr]   --> src/apu.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 12 | use std::collections::VecDeque;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::thread::sleep`
[INFO] [stderr]   --> src/apu.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 13 | use std::thread::sleep;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::time::Duration`
[INFO] [stderr]   --> src/apu.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 14 | use std::time::Duration;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/apu.rs:239:19
[INFO] [stderr]     |
[INFO] [stderr] 239 |             0xFF10...0xFF14 => self.s1.read_reg(address),
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/apu.rs:240:19
[INFO] [stderr]     |
[INFO] [stderr] 240 |             0xFF15...0xFF19 => self.s2.read_reg(address),
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/apu.rs:251:19
[INFO] [stderr]     |
[INFO] [stderr] 251 |             0xFF10...0xFF14 => self.s1.write_reg(address - 0xFF10, value),
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/apu.rs:252:19
[INFO] [stderr]     |
[INFO] [stderr] 252 |             0xFF15...0xFF19 => self.s2.write_reg(address - 0xFF15, value),
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `sdl2::render::Texture`
[INFO] [stderr]  --> src/lcd.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use sdl2::render::Texture;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `mmu::ansi_term::Colour::Blue`
[INFO] [stderr]  --> src/mmu.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use mmu::ansi_term::Colour::Blue;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `buttons::Buttons`
[INFO] [stderr]   --> src/mmu.rs:17:5
[INFO] [stderr]    |
[INFO] [stderr] 17 | use buttons::Buttons;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `debug::print_registers`
[INFO] [stderr]   --> src/mmu.rs:20:5
[INFO] [stderr]    |
[INFO] [stderr] 20 | use debug::print_registers;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/mmu.rs:82:24
[INFO] [stderr]    |
[INFO] [stderr] 82 |     pub cartridge: Box<Cartridge>,
[INFO] [stderr]    |                        ^^^^^^^^^ help: use `dyn`: `dyn Cartridge`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:231:19
[INFO] [stderr]     |
[INFO] [stderr] 231 |             0x0000...0x00FF => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:238:19
[INFO] [stderr]     |
[INFO] [stderr] 238 |             0x0100...0x3FFF => self.cartridge.read(addr),
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:239:19
[INFO] [stderr]     |
[INFO] [stderr] 239 |             0x4000...0x7FFF => self.cartridge.read(addr), // self.romx[(addr - 0x4000) as usize],
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:240:19
[INFO] [stderr]     |
[INFO] [stderr] 240 |             0x8000...0x9FFF => self.lcd.read_display_ram(addr),
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:241:19
[INFO] [stderr]     |
[INFO] [stderr] 241 |             0xA000...0xBFFF => self.external_ram[(addr - 0xA000) as usize],
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:242:19
[INFO] [stderr]     |
[INFO] [stderr] 242 |             0xC000...0xCFFF => self.ram[(addr - 0xC000) as usize], // RAM
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:243:19
[INFO] [stderr]     |
[INFO] [stderr] 243 |             0xD000...0xDFFF => self.ram[(addr - 0xC000) as usize], // RAM (switchable on GBC)
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:244:19
[INFO] [stderr]     |
[INFO] [stderr] 244 |             0xE000...0xFDFF => self.ram[(addr - 0xE000) as usize], // RAM echo
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:245:19
[INFO] [stderr]     |
[INFO] [stderr] 245 |             0xFE00...0xFE9F => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:253:19
[INFO] [stderr]     |
[INFO] [stderr] 253 |             0xFEA0...0xFEFF => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:277:19
[INFO] [stderr]     |
[INFO] [stderr] 277 |             0xFF10...0xFF26 => self.apu.read_reg(addr),
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:280:19
[INFO] [stderr]     |
[INFO] [stderr] 280 |             0xFF00...0xFF7F => self.io_reg[(addr - 0xFF00) as usize],
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:282:19
[INFO] [stderr]     |
[INFO] [stderr] 282 |             0xFF80...0xFFFE => self.internal_ram[(addr - 0xFF80) as usize],
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:322:19
[INFO] [stderr]     |
[INFO] [stderr] 322 |             0x0000...0x3FFF => self.cartridge.write(addr, value),
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:323:19
[INFO] [stderr]     |
[INFO] [stderr] 323 |             0x4000...0x7FFF => self.cartridge.write(addr, value),
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:324:19
[INFO] [stderr]     |
[INFO] [stderr] 324 |             0x8000...0x9FFF => self.lcd.write_display_ram(addr, value),
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:325:19
[INFO] [stderr]     |
[INFO] [stderr] 325 |             0xA000...0xBFFF => self.external_ram[(addr - 0xA000) as usize] = value,
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:326:19
[INFO] [stderr]     |
[INFO] [stderr] 326 |             0xC000...0xCFFF => self.ram[(addr - 0xC000) as usize] = value,
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:327:19
[INFO] [stderr]     |
[INFO] [stderr] 327 |             0xD000...0xDFFF => self.ram[(addr - 0xC000) as usize] = value,
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:328:19
[INFO] [stderr]     |
[INFO] [stderr] 328 |             0xE000...0xFDFF => self.ram[(addr - 0xE000) as usize] = value,
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:329:19
[INFO] [stderr]     |
[INFO] [stderr] 329 |             0xFE00...0xFE9F => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:335:19
[INFO] [stderr]     |
[INFO] [stderr] 335 |             0xFEA0...0xFEFF => {}
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:338:19
[INFO] [stderr]     |
[INFO] [stderr] 338 |             0xFF10...0xFF26 => self.apu.write_reg(addr, value),
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:344:19
[INFO] [stderr]     |
[INFO] [stderr] 344 |             0xFF30...0xFF3F => {}
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:384:19
[INFO] [stderr]     |
[INFO] [stderr] 384 |             0xFF00...0xFF7F => self.io_reg[(addr - 0xFF00) as usize] = value,
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:385:19
[INFO] [stderr]     |
[INFO] [stderr] 385 |             0xFF80...0xFFFE => self.internal_ram[(addr - 0xFF80) as usize] = value,
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]   --> src/cartridge.rs:43:19
[INFO] [stderr]    |
[INFO] [stderr] 43 |             0x2000...0x3FFF => self.rom_offset = (value as usize) * 0x4000,
[INFO] [stderr]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/cartridge.rs:84:46
[INFO] [stderr]    |
[INFO] [stderr] 84 | pub fn load_cartridge(filename: &str) -> Box<Cartridge> {
[INFO] [stderr]    |                                              ^^^^^^^^^ help: use `dyn`: `dyn Cartridge`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/cartridge.rs:96:61
[INFO] [stderr]    |
[INFO] [stderr] 96 |         0 => return Box::new(Cartridge32k::new(rom)) as Box<Cartridge>,
[INFO] [stderr]    |                                                             ^^^^^^^^^ help: use `dyn`: `dyn Cartridge`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/cartridge.rs:97:62
[INFO] [stderr]    |
[INFO] [stderr] 97 |         1 => return Box::new(CartridgeMBC1::new(rom)) as Box<Cartridge>,
[INFO] [stderr]    |                                                              ^^^^^^^^^ help: use `dyn`: `dyn Cartridge`
[INFO] [stderr] 
[INFO] [stderr] warning: `#[macro_escape]` is a deprecated synonym for `#[macro_use]`
[INFO] [stderr]   --> src/main.rs:23:1
[INFO] [stderr]    |
[INFO] [stderr] 23 | #[macro_escape]
[INFO] [stderr]    | ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] error[E0428]: the name `buttons` is defined multiple times
[INFO] [stderr]   --> src/main.rs:39:1
[INFO] [stderr]    |
[INFO] [stderr] 27 | mod buttons;
[INFO] [stderr]    | ------------ previous definition of the module `buttons` here
[INFO] [stderr] ...
[INFO] [stderr] 39 | mod buttons;
[INFO] [stderr]    | ^^^^^^^^^^^^ `buttons` redefined here
[INFO] [stderr]    |
[INFO] [stderr]    = note: `buttons` must be defined only once in the type namespace of this module
[INFO] [stderr] 
[INFO] [stderr] error[E0252]: the name `Buttons` is defined multiple times
[INFO] [stderr]   --> src/mmu.rs:17:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use buttons::Buttons;
[INFO] [stderr]    |     ---------------- previous import of the type `Buttons` here
[INFO] [stderr] ...
[INFO] [stderr] 17 | use buttons::Buttons;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^ `Buttons` reimported here
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Buttons` must be defined only once in the type namespace of this module
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::env`
[INFO] [stderr]  --> src/main.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use std::env;
[INFO] [stderr]   |     ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::str::FromStr`
[INFO] [stderr]   --> src/main.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 12 | use std::str::FromStr;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `AudioQueue`
[INFO] [stderr]   --> src/main.rs:16:34
[INFO] [stderr]    |
[INFO] [stderr] 16 | use sdl2::audio::{AudioCallback, AudioQueue, AudioSpecDesired};
[INFO] [stderr]    |                                  ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `print_registers`
[INFO] [stderr]  --> src/macros.rs:2:13
[INFO] [stderr]   |
[INFO] [stderr] 2 | use debug::{print_registers};
[INFO] [stderr]   |             ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `AudioCallback`, `AudioQueue`, `AudioSpecDesired`
[INFO] [stderr]   --> src/apu.rs:10:19
[INFO] [stderr]    |
[INFO] [stderr] 10 | use sdl2::audio::{AudioCallback, AudioQueue, AudioSpecDesired};
[INFO] [stderr]    |                   ^^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `sdl2::init`
[INFO] [stderr]   --> src/apu.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | use sdl2::init;
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::collections::VecDeque`
[INFO] [stderr]   --> src/apu.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 12 | use std::collections::VecDeque;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::thread::sleep`
[INFO] [stderr]   --> src/apu.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 13 | use std::thread::sleep;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::time::Duration`
[INFO] [stderr]   --> src/apu.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 14 | use std::time::Duration;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/apu.rs:239:19
[INFO] [stderr]     |
[INFO] [stderr] 239 |             0xFF10...0xFF14 => self.s1.read_reg(address),
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/apu.rs:240:19
[INFO] [stderr]     |
[INFO] [stderr] 240 |             0xFF15...0xFF19 => self.s2.read_reg(address),
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/apu.rs:251:19
[INFO] [stderr]     |
[INFO] [stderr] 251 |             0xFF10...0xFF14 => self.s1.write_reg(address - 0xFF10, value),
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/apu.rs:252:19
[INFO] [stderr]     |
[INFO] [stderr] 252 |             0xFF15...0xFF19 => self.s2.write_reg(address - 0xFF15, value),
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `sdl2::render::Texture`
[INFO] [stderr]  --> src/lcd.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use sdl2::render::Texture;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `mmu::ansi_term::Colour::Blue`
[INFO] [stderr]  --> src/mmu.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use mmu::ansi_term::Colour::Blue;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `buttons::Buttons`
[INFO] [stderr]   --> src/mmu.rs:17:5
[INFO] [stderr]    |
[INFO] [stderr] 17 | use buttons::Buttons;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `debug::print_registers`
[INFO] [stderr]   --> src/mmu.rs:20:5
[INFO] [stderr]    |
[INFO] [stderr] 20 | use debug::print_registers;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/mmu.rs:82:24
[INFO] [stderr]    |
[INFO] [stderr] 82 |     pub cartridge: Box<Cartridge>,
[INFO] [stderr]    |                        ^^^^^^^^^ help: use `dyn`: `dyn Cartridge`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:231:19
[INFO] [stderr]     |
[INFO] [stderr] 231 |             0x0000...0x00FF => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:238:19
[INFO] [stderr]     |
[INFO] [stderr] 238 |             0x0100...0x3FFF => self.cartridge.read(addr),
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:239:19
[INFO] [stderr]     |
[INFO] [stderr] 239 |             0x4000...0x7FFF => self.cartridge.read(addr), // self.romx[(addr - 0x4000) as usize],
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:240:19
[INFO] [stderr]     |
[INFO] [stderr] 240 |             0x8000...0x9FFF => self.lcd.read_display_ram(addr),
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:241:19
[INFO] [stderr]     |
[INFO] [stderr] 241 |             0xA000...0xBFFF => self.external_ram[(addr - 0xA000) as usize],
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:242:19
[INFO] [stderr]     |
[INFO] [stderr] 242 |             0xC000...0xCFFF => self.ram[(addr - 0xC000) as usize], // RAM
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:243:19
[INFO] [stderr]     |
[INFO] [stderr] 243 |             0xD000...0xDFFF => self.ram[(addr - 0xC000) as usize], // RAM (switchable on GBC)
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:244:19
[INFO] [stderr]     |
[INFO] [stderr] 244 |             0xE000...0xFDFF => self.ram[(addr - 0xE000) as usize], // RAM echo
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:245:19
[INFO] [stderr]     |
[INFO] [stderr] 245 |             0xFE00...0xFE9F => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:253:19
[INFO] [stderr]     |
[INFO] [stderr] 253 |             0xFEA0...0xFEFF => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:277:19
[INFO] [stderr]     |
[INFO] [stderr] 277 |             0xFF10...0xFF26 => self.apu.read_reg(addr),
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:280:19
[INFO] [stderr]     |
[INFO] [stderr] 280 |             0xFF00...0xFF7F => self.io_reg[(addr - 0xFF00) as usize],
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:282:19
[INFO] [stderr]     |
[INFO] [stderr] 282 |             0xFF80...0xFFFE => self.internal_ram[(addr - 0xFF80) as usize],
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:322:19
[INFO] [stderr]     |
[INFO] [stderr] 322 |             0x0000...0x3FFF => self.cartridge.write(addr, value),
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:323:19
[INFO] [stderr]     |
[INFO] [stderr] 323 |             0x4000...0x7FFF => self.cartridge.write(addr, value),
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:324:19
[INFO] [stderr]     |
[INFO] [stderr] 324 |             0x8000...0x9FFF => self.lcd.write_display_ram(addr, value),
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:325:19
[INFO] [stderr]     |
[INFO] [stderr] 325 |             0xA000...0xBFFF => self.external_ram[(addr - 0xA000) as usize] = value,
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:326:19
[INFO] [stderr]     |
[INFO] [stderr] 326 |             0xC000...0xCFFF => self.ram[(addr - 0xC000) as usize] = value,
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:327:19
[INFO] [stderr]     |
[INFO] [stderr] 327 |             0xD000...0xDFFF => self.ram[(addr - 0xC000) as usize] = value,
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:328:19
[INFO] [stderr]     |
[INFO] [stderr] 328 |             0xE000...0xFDFF => self.ram[(addr - 0xE000) as usize] = value,
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:329:19
[INFO] [stderr]     |
[INFO] [stderr] 329 |             0xFE00...0xFE9F => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:335:19
[INFO] [stderr]     |
[INFO] [stderr] 335 |             0xFEA0...0xFEFF => {}
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:338:19
[INFO] [stderr]     |
[INFO] [stderr] 338 |             0xFF10...0xFF26 => self.apu.write_reg(addr, value),
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:344:19
[INFO] [stderr]     |
[INFO] [stderr] 344 |             0xFF30...0xFF3F => {}
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:384:19
[INFO] [stderr]     |
[INFO] [stderr] 384 |             0xFF00...0xFF7F => self.io_reg[(addr - 0xFF00) as usize] = value,
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/mmu.rs:385:19
[INFO] [stderr]     |
[INFO] [stderr] 385 |             0xFF80...0xFFFE => self.internal_ram[(addr - 0xFF80) as usize] = value,
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]   --> src/cartridge.rs:43:19
[INFO] [stderr]    |
[INFO] [stderr] 43 |             0x2000...0x3FFF => self.rom_offset = (value as usize) * 0x4000,
[INFO] [stderr]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/cartridge.rs:84:46
[INFO] [stderr]    |
[INFO] [stderr] 84 | pub fn load_cartridge(filename: &str) -> Box<Cartridge> {
[INFO] [stderr]    |                                              ^^^^^^^^^ help: use `dyn`: `dyn Cartridge`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/cartridge.rs:96:61
[INFO] [stderr]    |
[INFO] [stderr] 96 |         0 => return Box::new(Cartridge32k::new(rom)) as Box<Cartridge>,
[INFO] [stderr]    |                                                             ^^^^^^^^^ help: use `dyn`: `dyn Cartridge`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/cartridge.rs:97:62
[INFO] [stderr]    |
[INFO] [stderr] 97 |         1 => return Box::new(CartridgeMBC1::new(rom)) as Box<Cartridge>,
[INFO] [stderr]    |                                                              ^^^^^^^^^ help: use `dyn`: `dyn Cartridge`
[INFO] [stderr] 
[INFO] [stderr] error: aborting due to 2 previous errors
[INFO] [stderr] 
[INFO] [stderr] Some errors have detailed explanations: E0252, E0428.
[INFO] [stderr] For more information about an error, try `rustc --explain E0252`.
[INFO] [stderr] error: could not compile `rustboy`.
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: aborting due to 2 previous errors
[INFO] [stderr] 
[INFO] [stderr] Some errors have detailed explanations: E0252, E0428.
[INFO] [stderr] For more information about an error, try `rustc --explain E0252`.
[INFO] [stderr] error: could not compile `rustboy`.
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] running `"docker" "inspect" "7851a8f17911541fd4d21b2655c8a040e6c9d1da3ff44e5cbabb4c3d7f98274f"`
[INFO] running `"docker" "rm" "-f" "7851a8f17911541fd4d21b2655c8a040e6c9d1da3ff44e5cbabb4c3d7f98274f"`
[INFO] [stdout] 7851a8f17911541fd4d21b2655c8a040e6c9d1da3ff44e5cbabb4c3d7f98274f
