[INFO] cloning repository https://github.com/erslie/gbemu-rust [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/erslie/gbemu-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ferslie%2Fgbemu-rust", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ferslie%2Fgbemu-rust'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] f79c9a20842f5ea79ff826e25e2a692e1c1da297 [INFO] checking erslie/gbemu-rust against try#5ff93158e08fa2205cd4b86cddf9eae95952cc96 for pr-129543-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ferslie%2Fgbemu-rust" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/erslie/gbemu-rust [INFO] finished tweaking git repo https://github.com/erslie/gbemu-rust [INFO] tweaked toml for git repo https://github.com/erslie/gbemu-rust written to /workspace/builds/worker-5-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/erslie/gbemu-rust on toolchain 5ff93158e08fa2205cd4b86cddf9eae95952cc96 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5ff93158e08fa2205cd4b86cddf9eae95952cc96" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/erslie/gbemu-rust 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" "+5ff93158e08fa2205cd4b86cddf9eae95952cc96" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [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 backtrace-on-stack-overflow v0.3.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+5ff93158e08fa2205cd4b86cddf9eae95952cc96" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 28994bd8ee1300e76f84f717c9d2701effab6af1976092fae79ddb793f72c317 [INFO] running `Command { std: "docker" "start" "-a" "28994bd8ee1300e76f84f717c9d2701effab6af1976092fae79ddb793f72c317", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "28994bd8ee1300e76f84f717c9d2701effab6af1976092fae79ddb793f72c317", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "28994bd8ee1300e76f84f717c9d2701effab6af1976092fae79ddb793f72c317", kill_on_drop: false }` [INFO] [stdout] 28994bd8ee1300e76f84f717c9d2701effab6af1976092fae79ddb793f72c317 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+5ff93158e08fa2205cd4b86cddf9eae95952cc96" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 932effa5b0042da992437d705560bd1e71ae47e723b98308bc21a7a82d25d109 [INFO] running `Command { std: "docker" "start" "-a" "932effa5b0042da992437d705560bd1e71ae47e723b98308bc21a7a82d25d109", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.177 [INFO] [stderr] Compiling version-compare v0.1.1 [INFO] [stderr] Compiling object v0.37.3 [INFO] [stderr] Checking gimli v0.32.3 [INFO] [stderr] Checking memchr v2.7.6 [INFO] [stderr] Compiling sdl2 v0.38.0 [INFO] [stderr] Compiling memoffset v0.6.5 [INFO] [stderr] Checking miniz_oxide v0.8.9 [INFO] [stderr] Compiling sdl2-sys v0.38.0 [INFO] [stderr] Checking nix v0.23.2 [INFO] [stderr] Checking addr2line v0.25.1 [INFO] [stderr] Checking backtrace v0.3.76 [INFO] [stderr] Checking backtrace-on-stack-overflow v0.3.0 [INFO] [stderr] Checking gbemu-rust v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `crate::peripherals::Peripherals` [INFO] [stdout] --> src/interruputs.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::peripherals::Peripherals; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/peripherals.rs:4:26 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::interruputs::{self, Interrupts}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: trailing semicolon in macro used in expression position [INFO] [stdout] --> src/operand.rs:12:34 [INFO] [stdout] | [INFO] [stdout] 12 | $cpu.exec_state.step = $d; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] ::: src/instruction.rs:227:24 [INFO] [stdout] | [INFO] [stdout] 227 | return go!(self, 2); [INFO] [stdout] | ------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = note: for more information, see issue #79813 [INFO] [stdout] = note: `#[deny(semicolon_in_expressions_from_macros)]` (part of `#[deny(future_incompatible)]`) on by default [INFO] [stdout] = note: this error originates in the macro `go` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: trailing semicolon in macro used in expression position [INFO] [stdout] --> src/operand.rs:12:34 [INFO] [stdout] | [INFO] [stdout] 12 | $cpu.exec_state.step = $d; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] ::: src/instruction.rs:851:24 [INFO] [stdout] | [INFO] [stdout] 851 | return go!(self, 1); [INFO] [stdout] | ------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = note: for more information, see issue #79813 [INFO] [stdout] = note: this error originates in the macro `go` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: trailing semicolon in macro used in expression position [INFO] [stdout] --> src/operand.rs:12:34 [INFO] [stdout] | [INFO] [stdout] 12 | $cpu.exec_state.step = $d; [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 280 | 4: return Some(go!(self, 0)), [INFO] [stdout] | ------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = note: for more information, see issue #79813 [INFO] [stdout] = note: this error originates in the macro `go` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: trailing semicolon in macro used in expression position [INFO] [stdout] --> src/operand.rs:12:34 [INFO] [stdout] | [INFO] [stdout] 12 | $cpu.exec_state.step = $d; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] ::: src/cpu.rs:576:24 [INFO] [stdout] | [INFO] [stdout] 576 | return go!(self, 1); [INFO] [stdout] | ------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = note: for more information, see issue #79813 [INFO] [stdout] = note: this error originates in the macro `go` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::peripherals::Peripherals` [INFO] [stdout] --> src/interruputs.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::peripherals::Peripherals; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/peripherals.rs:4:26 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::interruputs::{self, Interrupts}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: trailing semicolon in macro used in expression position [INFO] [stdout] --> src/operand.rs:12:34 [INFO] [stdout] | [INFO] [stdout] 12 | $cpu.exec_state.step = $d; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] ::: src/instruction.rs:227:24 [INFO] [stdout] | [INFO] [stdout] 227 | return go!(self, 2); [INFO] [stdout] | ------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = note: for more information, see issue #79813 [INFO] [stdout] = note: `#[deny(semicolon_in_expressions_from_macros)]` (part of `#[deny(future_incompatible)]`) on by default [INFO] [stdout] = note: this error originates in the macro `go` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: trailing semicolon in macro used in expression position [INFO] [stdout] --> src/operand.rs:12:34 [INFO] [stdout] | [INFO] [stdout] 12 | $cpu.exec_state.step = $d; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] ::: src/instruction.rs:851:24 [INFO] [stdout] | [INFO] [stdout] 851 | return go!(self, 1); [INFO] [stdout] | ------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = note: for more information, see issue #79813 [INFO] [stdout] = note: this error originates in the macro `go` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread::sleep` [INFO] [stdout] --> src/instruction.rs:865:9 [INFO] [stdout] | [INFO] [stdout] 865 | use std::thread::sleep; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Duration` [INFO] [stdout] --> src/instruction.rs:866:9 [INFO] [stdout] | [INFO] [stdout] 866 | use std::time::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `cpu` [INFO] [stdout] --> src/instruction.rs:868:17 [INFO] [stdout] | [INFO] [stdout] 868 | use crate::{cpu, instruction::*}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: trailing semicolon in macro used in expression position [INFO] [stdout] --> src/operand.rs:12:34 [INFO] [stdout] | [INFO] [stdout] 12 | $cpu.exec_state.step = $d; [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 280 | 4: return Some(go!(self, 0)), [INFO] [stdout] | ------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = note: for more information, see issue #79813 [INFO] [stdout] = note: this error originates in the macro `go` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: trailing semicolon in macro used in expression position [INFO] [stdout] --> src/operand.rs:12:34 [INFO] [stdout] | [INFO] [stdout] 12 | $cpu.exec_state.step = $d; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] ::: src/cpu.rs:576:24 [INFO] [stdout] | [INFO] [stdout] 576 | return go!(self, 1); [INFO] [stdout] | ------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stdout] = note: for more information, see issue #79813 [INFO] [stdout] = note: this error originates in the macro `go` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/peripherals.rs:77:24 [INFO] [stdout] | [INFO] [stdout] 77 | let mut peri = Peripherals::new(Bootrom::new(vec![0,0])); [INFO] [stdout] | ^^^^^^^^^^^^^^^^------------------------- argument #2 of type `Cartridge` is missing [INFO] [stdout] | [INFO] [stdout] note: associated function defined here [INFO] [stdout] --> src/peripherals.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn new(bootrom: Bootrom, cartridge: Cartridge) -> Self { [INFO] [stdout] | ^^^ -------------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 77 | let mut peri = Peripherals::new(Bootrom::new(vec![0,0]), /* Cartridge */); [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 3 arguments but 2 arguments were supplied [INFO] [stdout] --> src/peripherals.rs:78:14 [INFO] [stdout] | [INFO] [stdout] 78 | peri.write(0xC000, 0x42); [INFO] [stdout] | ^^^^^ ------ argument #1 of type `&mut Interrupts` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/peripherals.rs:45:16 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn write(&mut self, interrupts: &mut Interrupts, addr: u16, val: u8) { [INFO] [stdout] | ^^^^^ --------------------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 78 - peri.write(0xC000, 0x42); [INFO] [stdout] 78 + peri.write(/* &mut Interrupts */, 0x42, 0xC000); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/peripherals.rs:79:31 [INFO] [stdout] | [INFO] [stdout] 79 | assert_eq!(0x42, peri.read(0xC000)); [INFO] [stdout] | ^^^^ ------ argument #1 of type `&Interrupts` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/peripherals.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn read(&self, interrupts: &Interrupts, addr: u16) -> u8 { [INFO] [stdout] | ^^^^ ----------------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 79 | assert_eq!(0x42, peri.read(/* &Interrupts */, 0xC000)); [INFO] [stdout] | ++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/peripherals.rs:83:24 [INFO] [stdout] | [INFO] [stdout] 83 | let mut peri = Peripherals::new(Bootrom::new(vec![0,0])); [INFO] [stdout] | ^^^^^^^^^^^^^^^^------------------------- argument #2 of type `Cartridge` is missing [INFO] [stdout] | [INFO] [stdout] note: associated function defined here [INFO] [stdout] --> src/peripherals.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn new(bootrom: Bootrom, cartridge: Cartridge) -> Self { [INFO] [stdout] | ^^^ -------------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 83 | let mut peri = Peripherals::new(Bootrom::new(vec![0,0]), /* Cartridge */); [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 3 arguments but 2 arguments were supplied [INFO] [stdout] --> src/peripherals.rs:84:14 [INFO] [stdout] | [INFO] [stdout] 84 | peri.write(0xFF80, 0x42); [INFO] [stdout] | ^^^^^ ------ argument #1 of type `&mut Interrupts` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/peripherals.rs:45:16 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn write(&mut self, interrupts: &mut Interrupts, addr: u16, val: u8) { [INFO] [stdout] | ^^^^^ --------------------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 84 - peri.write(0xFF80, 0x42); [INFO] [stdout] 84 + peri.write(/* &mut Interrupts */, 0x42, 0xFF80); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/peripherals.rs:85:31 [INFO] [stdout] | [INFO] [stdout] 85 | assert_eq!(0x42, peri.read(0xFF80)); [INFO] [stdout] | ^^^^ ------ argument #1 of type `&Interrupts` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/peripherals.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn read(&self, interrupts: &Interrupts, addr: u16) -> u8 { [INFO] [stdout] | ^^^^ ----------------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 85 | assert_eq!(0x42, peri.read(/* &Interrupts */, 0xFF80)); [INFO] [stdout] | ++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/peripherals.rs:89:24 [INFO] [stdout] | [INFO] [stdout] 89 | let mut peri = Peripherals::new(Bootrom::new(vec![0,0])); [INFO] [stdout] | ^^^^^^^^^^^^^^^^------------------------- argument #2 of type `Cartridge` is missing [INFO] [stdout] | [INFO] [stdout] note: associated function defined here [INFO] [stdout] --> src/peripherals.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn new(bootrom: Bootrom, cartridge: Cartridge) -> Self { [INFO] [stdout] | ^^^ -------------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 89 | let mut peri = Peripherals::new(Bootrom::new(vec![0,0]), /* Cartridge */); [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this method takes 3 arguments but 2 arguments were supplied [INFO] [stdout] --> src/peripherals.rs:90:14 [INFO] [stdout] | [INFO] [stdout] 90 | peri.write(0xFF50, 1); [INFO] [stdout] | ^^^^^ ------ argument #1 of type `&mut Interrupts` is missing [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/peripherals.rs:45:16 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn write(&mut self, interrupts: &mut Interrupts, addr: u16, val: u8) { [INFO] [stdout] | ^^^^^ --------------------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 90 - peri.write(0xFF50, 1); [INFO] [stdout] 90 + peri.write(/* &mut Interrupts */, 1, 0xFF50); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/instruction.rs:874:9 [INFO] [stdout] | [INFO] [stdout] 874 | Peripherals::new(Bootrom::new(vec![0x12, 0x34])) [INFO] [stdout] | ^^^^^^^^^^^^^^^^-------------------------------- argument #2 of type `Cartridge` is missing [INFO] [stdout] | [INFO] [stdout] note: associated function defined here [INFO] [stdout] --> src/peripherals.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn new(bootrom: Bootrom, cartridge: Cartridge) -> Self { [INFO] [stdout] | ^^^ -------------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 874 | Peripherals::new(Bootrom::new(vec![0x12, 0x34]), /* Cartridge */) [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0063]: missing fields `exec_state` and `interrupts` in initializer of `cpu::Cpu` [INFO] [stdout] --> src/instruction.rs:877:9 [INFO] [stdout] | [INFO] [stdout] 877 | Cpu { regs:Registres::default(), ctx: Ctx::default() } [INFO] [stdout] | ^^^ missing `exec_state` and `interrupts` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bus` [INFO] [stdout] --> src/operand.rs:79:27 [INFO] [stdout] | [INFO] [stdout] 79 | fn write16(&mut self, bus: &mut Peripherals, dst: Reg16, val: u16) -> Option<()> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_bus` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bus` [INFO] [stdout] --> src/operand.rs:105:26 [INFO] [stdout] | [INFO] [stdout] 105 | fn write8(&mut self, bus: &mut Peripherals, dst: Imm8, val: u8) -> Option<()> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_bus` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dst` [INFO] [stdout] --> src/operand.rs:105:49 [INFO] [stdout] | [INFO] [stdout] 105 | fn write8(&mut self, bus: &mut Peripherals, dst: Imm8, val: u8) -> Option<()> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_dst` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `val` [INFO] [stdout] --> src/operand.rs:105:60 [INFO] [stdout] | [INFO] [stdout] 105 | fn write8(&mut self, bus: &mut Peripherals, dst: Imm8, val: u8) -> Option<()> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bus` [INFO] [stdout] --> src/operand.rs:128:27 [INFO] [stdout] | [INFO] [stdout] 128 | fn write16(&mut self, bus: &mut Peripherals, dst: Imm16, val: u16) -> Option<()> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_bus` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dst` [INFO] [stdout] --> src/operand.rs:128:50 [INFO] [stdout] | [INFO] [stdout] 128 | fn write16(&mut self, bus: &mut Peripherals, dst: Imm16, val: u16) -> Option<()> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_dst` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `val` [INFO] [stdout] --> src/operand.rs:128:62 [INFO] [stdout] | [INFO] [stdout] 128 | fn write16(&mut self, bus: &mut Peripherals, dst: Imm16, val: u16) -> Option<()> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bus` [INFO] [stdout] --> src/operand.rs:254:26 [INFO] [stdout] | [INFO] [stdout] 254 | fn read16(&mut self, bus: &Peripherals, src: Direct16) -> Option { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_bus` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `src` [INFO] [stdout] --> src/operand.rs:254:45 [INFO] [stdout] | [INFO] [stdout] 254 | fn read16(&mut self, bus: &Peripherals, src: Direct16) -> Option { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_src` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0063]: missing fields `exec_state` and `interrupts` in initializer of `cpu::Cpu` [INFO] [stdout] --> src/operand.rs:296:23 [INFO] [stdout] | [INFO] [stdout] 296 | let mut cpu = Cpu { regs:Registres::default(), ctx: Ctx::default() }; [INFO] [stdout] | ^^^ missing `exec_state` and `interrupts` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dst` [INFO] [stdout] --> src/operand.rs:258:50 [INFO] [stdout] | [INFO] [stdout] 258 | fn write16(&mut self, bus: &mut Peripherals, dst: Direct16, val: u16) -> Option<()> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_dst` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/operand.rs:297:24 [INFO] [stdout] | [INFO] [stdout] 297 | let mut peri = Peripherals::new(Bootrom::new(vec![0,0x00])); [INFO] [stdout] | ^^^^^^^^^^^^^^^^---------------------------- argument #2 of type `Cartridge` is missing [INFO] [stdout] | [INFO] [stdout] note: associated function defined here [INFO] [stdout] --> src/peripherals.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn new(bootrom: Bootrom, cartridge: Cartridge) -> Self { [INFO] [stdout] | ^^^ -------------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 297 | let mut peri = Peripherals::new(Bootrom::new(vec![0,0x00]), /* Cartridge */); [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0063]: missing fields `exec_state` and `interrupts` in initializer of `cpu::Cpu` [INFO] [stdout] --> src/operand.rs:303:23 [INFO] [stdout] | [INFO] [stdout] 303 | let mut cpu = Cpu { regs:Registres::default(), ctx: Ctx::default() }; [INFO] [stdout] | ^^^ missing `exec_state` and `interrupts` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/operand.rs:304:24 [INFO] [stdout] | [INFO] [stdout] 304 | let mut peri = Peripherals::new(Bootrom::new(vec![0,0x00])); [INFO] [stdout] | ^^^^^^^^^^^^^^^^---------------------------- argument #2 of type `Cartridge` is missing [INFO] [stdout] | [INFO] [stdout] note: associated function defined here [INFO] [stdout] --> src/peripherals.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn new(bootrom: Bootrom, cartridge: Cartridge) -> Self { [INFO] [stdout] | ^^^ -------------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 304 | let mut peri = Peripherals::new(Bootrom::new(vec![0,0x00]), /* Cartridge */); [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0063]: missing fields `exec_state` and `interrupts` in initializer of `cpu::Cpu` [INFO] [stdout] --> src/operand.rs:311:23 [INFO] [stdout] | [INFO] [stdout] 311 | let mut cpu = Cpu { regs:Registres::default(), ctx: Ctx::default() }; [INFO] [stdout] | ^^^ missing `exec_state` and `interrupts` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/operand.rs:312:24 [INFO] [stdout] | [INFO] [stdout] 312 | let mut peri = Peripherals::new(Bootrom::new(vec![0,0x00])); [INFO] [stdout] | ^^^^^^^^^^^^^^^^---------------------------- argument #2 of type `Cartridge` is missing [INFO] [stdout] | [INFO] [stdout] note: associated function defined here [INFO] [stdout] --> src/peripherals.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn new(bootrom: Bootrom, cartridge: Cartridge) -> Self { [INFO] [stdout] | ^^^ -------------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 312 | let mut peri = Peripherals::new(Bootrom::new(vec![0,0x00]), /* Cartridge */); [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0063]: missing fields `exec_state` and `interrupts` in initializer of `cpu::Cpu` [INFO] [stdout] --> src/operand.rs:318:23 [INFO] [stdout] | [INFO] [stdout] 318 | let mut cpu = Cpu { regs:Registres::default(), ctx: Ctx::default() }; [INFO] [stdout] | ^^^ missing `exec_state` and `interrupts` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/operand.rs:320:24 [INFO] [stdout] | [INFO] [stdout] 320 | let mut peri = Peripherals::new(Bootrom::new(vec![0x12,0x34])); [INFO] [stdout] | ^^^^^^^^^^^^^^^^------------------------------- argument #2 of type `Cartridge` is missing [INFO] [stdout] | [INFO] [stdout] note: associated function defined here [INFO] [stdout] --> src/peripherals.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn new(bootrom: Bootrom, cartridge: Cartridge) -> Self { [INFO] [stdout] | ^^^ -------------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 320 | let mut peri = Peripherals::new(Bootrom::new(vec![0x12,0x34]), /* Cartridge */); [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/cpu.rs:551:13 [INFO] [stdout] | [INFO] [stdout] 551 | _ => panic!("Not implemented: {:02x}", self.ctx.opcode), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/cpu.rs:551:13 [INFO] [stdout] | [INFO] [stdout] 295 | 0x00 => self.rlc(bus, Reg8::B), [INFO] [stdout] | ---- matches some of the same values [INFO] [stdout] 296 | 0x10 => self.rl(bus, Reg8::B), [INFO] [stdout] | ---- matches some of the same values [INFO] [stdout] 297 | 0x20 => self.sla(bus, Reg8::B), [INFO] [stdout] | ---- matches some of the same values [INFO] [stdout] 298 | 0x30 => self.swap(bus, Reg8::B), [INFO] [stdout] | ---- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 551 | _ => panic!("Not implemented: {:02x}", self.ctx.opcode), [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] error[E0063]: missing fields `exec_state` and `interrupts` in initializer of `cpu::Cpu` [INFO] [stdout] --> src/cpu.rs:603:23 [INFO] [stdout] | [INFO] [stdout] 603 | let mut cpu = Cpu { regs:Registres::default(), ctx: Ctx::default() }; [INFO] [stdout] | ^^^ missing `exec_state` and `interrupts` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/cpu.rs:604:24 [INFO] [stdout] | [INFO] [stdout] 604 | let mut peri = Peripherals::new(Bootrom::new(vec![0,0x00])); [INFO] [stdout] | ^^^^^^^^^^^^^^^^---------------------------- argument #2 of type `Cartridge` is missing [INFO] [stdout] | [INFO] [stdout] note: associated function defined here [INFO] [stdout] --> src/peripherals.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn new(bootrom: Bootrom, cartridge: Cartridge) -> Self { [INFO] [stdout] | ^^^ -------------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 604 | let mut peri = Peripherals::new(Bootrom::new(vec![0,0x00]), /* Cartridge */); [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/cpu.rs:570:21 [INFO] [stdout] | [INFO] [stdout] 569 | VBLANK => 0x0040, [INFO] [stdout] | ------ matches any value [INFO] [stdout] 570 | STAT => 0x0048, [INFO] [stdout] | ^^^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] help: you might have meant to pattern match against the value of constant `VBLANK` instead of introducing a new catch-all binding [INFO] [stdout] | [INFO] [stdout] 569 | interruputs::VBLANK => 0x0040, [INFO] [stdout] | +++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/cpu.rs:571:21 [INFO] [stdout] | [INFO] [stdout] 569 | VBLANK => 0x0040, [INFO] [stdout] | ------ matches any value [INFO] [stdout] 570 | STAT => 0x0048, [INFO] [stdout] 571 | TIMER => 0x0050, [INFO] [stdout] | ^^^^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] help: you might have meant to pattern match against the value of constant `VBLANK` instead of introducing a new catch-all binding [INFO] [stdout] | [INFO] [stdout] 569 | interruputs::VBLANK => 0x0040, [INFO] [stdout] | +++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/cpu.rs:572:21 [INFO] [stdout] | [INFO] [stdout] 569 | VBLANK => 0x0040, [INFO] [stdout] | ------ matches any value [INFO] [stdout] ... [INFO] [stdout] 572 | SERIAL => 0x0058, [INFO] [stdout] | ^^^^^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] help: you might have meant to pattern match against the value of constant `VBLANK` instead of introducing a new catch-all binding [INFO] [stdout] | [INFO] [stdout] 569 | interruputs::VBLANK => 0x0040, [INFO] [stdout] | +++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/cpu.rs:573:21 [INFO] [stdout] | [INFO] [stdout] 569 | VBLANK => 0x0040, [INFO] [stdout] | ------ matches any value [INFO] [stdout] ... [INFO] [stdout] 573 | JOYPAD => 0x0060, [INFO] [stdout] | ^^^^^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] help: you might have meant to pattern match against the value of constant `VBLANK` instead of introducing a new catch-all binding [INFO] [stdout] | [INFO] [stdout] 569 | interruputs::VBLANK => 0x0040, [INFO] [stdout] | +++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/cpu.rs:574:21 [INFO] [stdout] | [INFO] [stdout] 569 | VBLANK => 0x0040, [INFO] [stdout] | ------ matches any value [INFO] [stdout] ... [INFO] [stdout] 574 | _ => panic!("Invalid interrupt: {:02X}", highest_int), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] help: you might have meant to pattern match against the value of constant `VBLANK` instead of introducing a new catch-all binding [INFO] [stdout] | [INFO] [stdout] 569 | interruputs::VBLANK => 0x0040, [INFO] [stdout] | +++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `VBLANK` [INFO] [stdout] --> src/cpu.rs:569:21 [INFO] [stdout] | [INFO] [stdout] 569 | VBLANK => 0x0040, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `VBLANK` [INFO] [stdout] | [INFO] [stdout] 569 | interruputs::VBLANK => 0x0040, [INFO] [stdout] | +++++++++++++ [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 569 | _VBLANK => 0x0040, [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `STAT` [INFO] [stdout] --> src/cpu.rs:570:21 [INFO] [stdout] | [INFO] [stdout] 570 | STAT => 0x0048, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `STAT` [INFO] [stdout] | [INFO] [stdout] 570 | interruputs::STAT => 0x0048, [INFO] [stdout] | +++++++++++++ [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 570 | _STAT => 0x0048, [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `TIMER` [INFO] [stdout] --> src/cpu.rs:571:21 [INFO] [stdout] | [INFO] [stdout] 571 | TIMER => 0x0050, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `TIMER` [INFO] [stdout] | [INFO] [stdout] 571 | interruputs::TIMER => 0x0050, [INFO] [stdout] | +++++++++++++ [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 571 | _TIMER => 0x0050, [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `SERIAL` [INFO] [stdout] --> src/cpu.rs:572:21 [INFO] [stdout] | [INFO] [stdout] 572 | SERIAL => 0x0058, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `SERIAL` [INFO] [stdout] | [INFO] [stdout] 572 | interruputs::SERIAL => 0x0058, [INFO] [stdout] | +++++++++++++ [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 572 | _SERIAL => 0x0058, [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `JOYPAD` [INFO] [stdout] --> src/cpu.rs:573:21 [INFO] [stdout] | [INFO] [stdout] 573 | JOYPAD => 0x0060, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `JOYPAD` [INFO] [stdout] | [INFO] [stdout] 573 | interruputs::JOYPAD => 0x0060, [INFO] [stdout] | +++++++++++++ [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 573 | _JOYPAD => 0x0060, [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `scale` [INFO] [stdout] --> src/lcd.rs:11:27 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn new(sdl: &Sdl, scale: u32) -> LCD { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_scale` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `low_bank` [INFO] [stdout] --> src/mbc.rs:55:17 [INFO] [stdout] | [INFO] [stdout] 55 | low_bank, [INFO] [stdout] | ^^^^^^^^ help: try ignoring the field: `low_bank: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VBLANK` is never used [INFO] [stdout] --> src/interruputs.rs:12:11 [INFO] [stdout] | [INFO] [stdout] 12 | pub const VBLANK: u8 = 1 << 0; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `STAT` is never used [INFO] [stdout] --> src/interruputs.rs:13:11 [INFO] [stdout] | [INFO] [stdout] 13 | pub const STAT: u8 = 1 << 1; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TIMER` is never used [INFO] [stdout] --> src/interruputs.rs:14:11 [INFO] [stdout] | [INFO] [stdout] 14 | pub const TIMER: u8 = 1 << 2; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SERIAL` is never used [INFO] [stdout] --> src/interruputs.rs:15:11 [INFO] [stdout] | [INFO] [stdout] 15 | pub const SERIAL: u8 = 1 << 3; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `JOYPAD` is never used [INFO] [stdout] --> src/interruputs.rs:16:11 [INFO] [stdout] | [INFO] [stdout] 16 | pub const JOYPAD: u8 = 1 << 4; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `irq` is never used [INFO] [stdout] --> src/interruputs.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl Interrupts { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 26 | pub fn irq(&mut self, val: u8) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `WINDOW_TILE_MAP` is never used [INFO] [stdout] --> src/ppu.rs:34:7 [INFO] [stdout] | [INFO] [stdout] 34 | const WINDOW_TILE_MAP: u8 = 1 << 6; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `WINDOW_ENABLE` is never used [INFO] [stdout] --> src/ppu.rs:35:7 [INFO] [stdout] | [INFO] [stdout] 35 | const WINDOW_ENABLE: u8 = 1 << 5; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SPRITE_SIZE` is never used [INFO] [stdout] --> src/ppu.rs:38:7 [INFO] [stdout] | [INFO] [stdout] 38 | const SPRITE_SIZE: u8 = 1 << 2; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SPRITE_ENABLE` is never used [INFO] [stdout] --> src/ppu.rs:39:7 [INFO] [stdout] | [INFO] [stdout] 39 | const SPRITE_ENABLE: u8 = 1 << 1; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LYC_EQ_LY_INT` is never used [INFO] [stdout] --> src/ppu.rs:43:7 [INFO] [stdout] | [INFO] [stdout] 43 | const LYC_EQ_LY_INT: u8 = 1 << 6; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OAM_SCAN_INT` is never used [INFO] [stdout] --> src/ppu.rs:44:7 [INFO] [stdout] | [INFO] [stdout] 44 | const OAM_SCAN_INT: u8 = 1 << 5; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VBLANK_INT` is never used [INFO] [stdout] --> src/ppu.rs:45:7 [INFO] [stdout] | [INFO] [stdout] 45 | const VBLANK_INT: u8 = 1 << 4; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `HBLANK_INT` is never used [INFO] [stdout] --> src/ppu.rs:46:7 [INFO] [stdout] | [INFO] [stdout] 46 | const HBLANK_INT: u8 = 1 << 3; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused bitwise operation that must be used [INFO] [stdout] --> src/instruction.rs:675:13 [INFO] [stdout] | [INFO] [stdout] 675 | v & 1 << bit; [INFO] [stdout] | ^^^^^^^^^^^^ the bitwise operation produces a value [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 675 | let _ = v & 1 << bit; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `gbemu-rust` (lib) due to 8 previous errors; 40 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] warning: unused variable: `bus` [INFO] [stdout] --> src/operand.rs:79:27 [INFO] [stdout] | [INFO] [stdout] 79 | fn write16(&mut self, bus: &mut Peripherals, dst: Reg16, val: u16) -> Option<()> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_bus` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bus` [INFO] [stdout] --> src/operand.rs:105:26 [INFO] [stdout] | [INFO] [stdout] 105 | fn write8(&mut self, bus: &mut Peripherals, dst: Imm8, val: u8) -> Option<()> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_bus` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dst` [INFO] [stdout] --> src/operand.rs:105:49 [INFO] [stdout] | [INFO] [stdout] 105 | fn write8(&mut self, bus: &mut Peripherals, dst: Imm8, val: u8) -> Option<()> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_dst` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `val` [INFO] [stdout] --> src/operand.rs:105:60 [INFO] [stdout] | [INFO] [stdout] 105 | fn write8(&mut self, bus: &mut Peripherals, dst: Imm8, val: u8) -> Option<()> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bus` [INFO] [stdout] --> src/operand.rs:128:27 [INFO] [stdout] | [INFO] [stdout] 128 | fn write16(&mut self, bus: &mut Peripherals, dst: Imm16, val: u16) -> Option<()> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_bus` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dst` [INFO] [stdout] --> src/operand.rs:128:50 [INFO] [stdout] | [INFO] [stdout] 128 | fn write16(&mut self, bus: &mut Peripherals, dst: Imm16, val: u16) -> Option<()> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_dst` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `val` [INFO] [stdout] --> src/operand.rs:128:62 [INFO] [stdout] | [INFO] [stdout] 128 | fn write16(&mut self, bus: &mut Peripherals, dst: Imm16, val: u16) -> Option<()> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bus` [INFO] [stdout] --> src/operand.rs:254:26 [INFO] [stdout] | [INFO] [stdout] 254 | fn read16(&mut self, bus: &Peripherals, src: Direct16) -> Option { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_bus` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `src` [INFO] [stdout] --> src/operand.rs:254:45 [INFO] [stdout] | [INFO] [stdout] 254 | fn read16(&mut self, bus: &Peripherals, src: Direct16) -> Option { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_src` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dst` [INFO] [stdout] --> src/operand.rs:258:50 [INFO] [stdout] | [INFO] [stdout] 258 | fn write16(&mut self, bus: &mut Peripherals, dst: Direct16, val: u16) -> Option<()> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_dst` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/cpu.rs:551:13 [INFO] [stdout] | [INFO] [stdout] 551 | _ => panic!("Not implemented: {:02x}", self.ctx.opcode), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/cpu.rs:551:13 [INFO] [stdout] | [INFO] [stdout] 295 | 0x00 => self.rlc(bus, Reg8::B), [INFO] [stdout] | ---- matches some of the same values [INFO] [stdout] 296 | 0x10 => self.rl(bus, Reg8::B), [INFO] [stdout] | ---- matches some of the same values [INFO] [stdout] 297 | 0x20 => self.sla(bus, Reg8::B), [INFO] [stdout] | ---- matches some of the same values [INFO] [stdout] 298 | 0x30 => self.swap(bus, Reg8::B), [INFO] [stdout] | ---- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 551 | _ => panic!("Not implemented: {:02x}", self.ctx.opcode), [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/cpu.rs:570:21 [INFO] [stdout] | [INFO] [stdout] 569 | VBLANK => 0x0040, [INFO] [stdout] | ------ matches any value [INFO] [stdout] 570 | STAT => 0x0048, [INFO] [stdout] | ^^^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] help: you might have meant to pattern match against the value of constant `VBLANK` instead of introducing a new catch-all binding [INFO] [stdout] | [INFO] [stdout] 569 | interruputs::VBLANK => 0x0040, [INFO] [stdout] | +++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/cpu.rs:571:21 [INFO] [stdout] | [INFO] [stdout] 569 | VBLANK => 0x0040, [INFO] [stdout] | ------ matches any value [INFO] [stdout] 570 | STAT => 0x0048, [INFO] [stdout] 571 | TIMER => 0x0050, [INFO] [stdout] | ^^^^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] help: you might have meant to pattern match against the value of constant `VBLANK` instead of introducing a new catch-all binding [INFO] [stdout] | [INFO] [stdout] 569 | interruputs::VBLANK => 0x0040, [INFO] [stdout] | +++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/cpu.rs:572:21 [INFO] [stdout] | [INFO] [stdout] 569 | VBLANK => 0x0040, [INFO] [stdout] | ------ matches any value [INFO] [stdout] ... [INFO] [stdout] 572 | SERIAL => 0x0058, [INFO] [stdout] | ^^^^^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] help: you might have meant to pattern match against the value of constant `VBLANK` instead of introducing a new catch-all binding [INFO] [stdout] | [INFO] [stdout] 569 | interruputs::VBLANK => 0x0040, [INFO] [stdout] | +++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/cpu.rs:573:21 [INFO] [stdout] | [INFO] [stdout] 569 | VBLANK => 0x0040, [INFO] [stdout] | ------ matches any value [INFO] [stdout] ... [INFO] [stdout] 573 | JOYPAD => 0x0060, [INFO] [stdout] | ^^^^^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] help: you might have meant to pattern match against the value of constant `VBLANK` instead of introducing a new catch-all binding [INFO] [stdout] | [INFO] [stdout] 569 | interruputs::VBLANK => 0x0040, [INFO] [stdout] | +++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/cpu.rs:574:21 [INFO] [stdout] | [INFO] [stdout] 569 | VBLANK => 0x0040, [INFO] [stdout] | ------ matches any value [INFO] [stdout] ... [INFO] [stdout] 574 | _ => panic!("Invalid interrupt: {:02X}", highest_int), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] help: you might have meant to pattern match against the value of constant `VBLANK` instead of introducing a new catch-all binding [INFO] [stdout] | [INFO] [stdout] 569 | interruputs::VBLANK => 0x0040, [INFO] [stdout] | +++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `VBLANK` [INFO] [stdout] --> src/cpu.rs:569:21 [INFO] [stdout] | [INFO] [stdout] 569 | VBLANK => 0x0040, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `VBLANK` [INFO] [stdout] | [INFO] [stdout] 569 | interruputs::VBLANK => 0x0040, [INFO] [stdout] | +++++++++++++ [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 569 | _VBLANK => 0x0040, [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `STAT` [INFO] [stdout] --> src/cpu.rs:570:21 [INFO] [stdout] | [INFO] [stdout] 570 | STAT => 0x0048, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `STAT` [INFO] [stdout] | [INFO] [stdout] 570 | interruputs::STAT => 0x0048, [INFO] [stdout] | +++++++++++++ [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 570 | _STAT => 0x0048, [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `TIMER` [INFO] [stdout] --> src/cpu.rs:571:21 [INFO] [stdout] | [INFO] [stdout] 571 | TIMER => 0x0050, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `TIMER` [INFO] [stdout] | [INFO] [stdout] 571 | interruputs::TIMER => 0x0050, [INFO] [stdout] | +++++++++++++ [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 571 | _TIMER => 0x0050, [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `SERIAL` [INFO] [stdout] --> src/cpu.rs:572:21 [INFO] [stdout] | [INFO] [stdout] 572 | SERIAL => 0x0058, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `SERIAL` [INFO] [stdout] | [INFO] [stdout] 572 | interruputs::SERIAL => 0x0058, [INFO] [stdout] | +++++++++++++ [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 572 | _SERIAL => 0x0058, [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `JOYPAD` [INFO] [stdout] --> src/cpu.rs:573:21 [INFO] [stdout] | [INFO] [stdout] 573 | JOYPAD => 0x0060, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `JOYPAD` [INFO] [stdout] | [INFO] [stdout] 573 | interruputs::JOYPAD => 0x0060, [INFO] [stdout] | +++++++++++++ [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 573 | _JOYPAD => 0x0060, [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `scale` [INFO] [stdout] --> src/lcd.rs:11:27 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn new(sdl: &Sdl, scale: u32) -> LCD { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_scale` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `low_bank` [INFO] [stdout] --> src/mbc.rs:55:17 [INFO] [stdout] | [INFO] [stdout] 55 | low_bank, [INFO] [stdout] | ^^^^^^^^ help: try ignoring the field: `low_bank: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0061, E0063. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0061`. [INFO] [stdout] [INFO] [stderr] error: could not compile `gbemu-rust` (lib test) due to 28 previous errors; 28 warnings emitted [INFO] running `Command { std: "docker" "inspect" "932effa5b0042da992437d705560bd1e71ae47e723b98308bc21a7a82d25d109", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "932effa5b0042da992437d705560bd1e71ae47e723b98308bc21a7a82d25d109", kill_on_drop: false }` [INFO] [stdout] 932effa5b0042da992437d705560bd1e71ae47e723b98308bc21a7a82d25d109