[INFO] cloning repository https://github.com/vilinet/gemboy [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/vilinet/gemboy" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvilinet%2Fgemboy", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvilinet%2Fgemboy'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 127c27fe0282a4c776228a7a0d7ec204914b67d6 [INFO] checking vilinet/gemboy against try#342ed2e8608ee307743c341962b427652cdb06e9 for pr-146562 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvilinet%2Fgemboy" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/vilinet/gemboy [INFO] finished tweaking git repo https://github.com/vilinet/gemboy [INFO] tweaked toml for git repo https://github.com/vilinet/gemboy written to /workspace/builds/worker-7-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/vilinet/gemboy on toolchain 342ed2e8608ee307743c341962b427652cdb06e9 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+342ed2e8608ee307743c341962b427652cdb06e9" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/vilinet/gemboy 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" "+342ed2e8608ee307743c341962b427652cdb06e9" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [ERROR] error running command: no output for 300 seconds [INFO] checking vilinet/gemboy against try#342ed2e8608ee307743c341962b427652cdb06e9 for pr-146562 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvilinet%2Fgemboy" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/vilinet/gemboy [INFO] finished tweaking git repo https://github.com/vilinet/gemboy [INFO] tweaked toml for git repo https://github.com/vilinet/gemboy written to /workspace/builds/worker-7-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/vilinet/gemboy on toolchain 342ed2e8608ee307743c341962b427652cdb06e9 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+342ed2e8608ee307743c341962b427652cdb06e9" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/vilinet/gemboy 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" "+342ed2e8608ee307743c341962b427652cdb06e9" "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 serde v1.0.218 [INFO] [stderr] Downloaded colog v1.3.0 [INFO] [stderr] Downloaded serde_derive v1.0.218 [INFO] [stderr] Downloaded serde_json v1.0.139 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+342ed2e8608ee307743c341962b427652cdb06e9" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 497624978fc5bda060be5cd1ccc25c0632b69102a02ee9445559ed78e516fb25 [INFO] running `Command { std: "docker" "start" "-a" "497624978fc5bda060be5cd1ccc25c0632b69102a02ee9445559ed78e516fb25", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "497624978fc5bda060be5cd1ccc25c0632b69102a02ee9445559ed78e516fb25", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "497624978fc5bda060be5cd1ccc25c0632b69102a02ee9445559ed78e516fb25", kill_on_drop: false }` [INFO] [stdout] 497624978fc5bda060be5cd1ccc25c0632b69102a02ee9445559ed78e516fb25 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+342ed2e8608ee307743c341962b427652cdb06e9" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 855bd3d4cbe14c5cf6cfaff74b4924c28b5cfd2ab27d08f4d00080af80dacdc2 [INFO] running `Command { std: "docker" "start" "-a" "855bd3d4cbe14c5cf6cfaff74b4924c28b5cfd2ab27d08f4d00080af80dacdc2", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.93 [INFO] [stderr] Compiling unicode-ident v1.0.17 [INFO] [stderr] Checking regex-syntax v0.8.5 [INFO] [stderr] Compiling serde v1.0.218 [INFO] [stderr] Checking log v0.4.25 [INFO] [stderr] Compiling serde_json v1.0.139 [INFO] [stderr] Checking ryu v1.0.19 [INFO] [stderr] Checking colored v2.2.0 [INFO] [stderr] Checking anstream v0.6.18 [INFO] [stderr] Compiling quote v1.0.38 [INFO] [stderr] Checking regex-automata v0.4.9 [INFO] [stderr] Compiling syn v2.0.98 [INFO] [stderr] Compiling serde_derive v1.0.218 [INFO] [stderr] Checking regex v1.11.1 [INFO] [stderr] Checking env_filter v0.1.3 [INFO] [stderr] Checking env_logger v0.11.6 [INFO] [stderr] Checking colog v1.3.0 [INFO] [stderr] Checking gemboy v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `crate::engine::cpu::Cpu` [INFO] [stdout] --> src/engine/bus.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::engine::cpu::Cpu; [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: `PPUInterruptRaised` [INFO] [stdout] --> src/engine/bus.rs:8:26 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::engine::ppu::{PPUInterruptRaised, PPU}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `trace` and `warn` [INFO] [stdout] --> src/engine/cpu.rs:4:18 [INFO] [stdout] | [INFO] [stdout] 4 | use log::{error, trace, warn}; [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::engine::interrupts::InterruptType::TIMER` [INFO] [stdout] --> src/engine/cpu.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::engine::interrupts::InterruptType::TIMER; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::engine::timer::TimerInterruptRaised` [INFO] [stdout] --> src/engine/cpu.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::engine::timer::TimerInterruptRaised; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/engine/cpu.rs:592:12 [INFO] [stdout] | [INFO] [stdout] 592 | if (src.is_none()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 592 - if (src.is_none()) { [INFO] [stdout] 592 + if src.is_none() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/engine/cpu.rs:1314:12 [INFO] [stdout] | [INFO] [stdout] 1314 | if (self.flag_half_carry() || (!self.flag_sub() && ((v & 0x0F) > 9))) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1314 - if (self.flag_half_carry() || (!self.flag_sub() && ((v & 0x0F) > 9))) { [INFO] [stdout] 1314 + if self.flag_half_carry() || (!self.flag_sub() && ((v & 0x0F) > 9)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/engine/cpu.rs:1318:12 [INFO] [stdout] | [INFO] [stdout] 1318 | if (self.flag_carry() || (!self.flag_sub() && (v > 0x99))) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1318 - if (self.flag_carry() || (!self.flag_sub() && (v > 0x99))) { [INFO] [stdout] 1318 + if self.flag_carry() || (!self.flag_sub() && (v > 0x99)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/engine/cpu.rs:1322:12 [INFO] [stdout] | [INFO] [stdout] 1322 | if (self.flag_sub()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1322 - if (self.flag_sub()) { [INFO] [stdout] 1322 + if self.flag_sub() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/engine/cpu.rs:1328:12 [INFO] [stdout] | [INFO] [stdout] 1328 | if (((correction << 2) & 0x100) != 0) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1328 - if (((correction << 2) & 0x100) != 0) { [INFO] [stdout] 1328 + if ((correction << 2) & 0x100) != 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `LCD_STAT` should have an upper camel case name [INFO] [stdout] --> src/engine/interrupts.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | LCD_STAT = 1, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper camel case: `LcdStat` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/engine/ppu.rs:37:16 [INFO] [stdout] | [INFO] [stdout] 37 | if (self.cycles == 456) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 37 - if (self.cycles == 456) { [INFO] [stdout] 37 + if self.cycles == 456 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::engine::cpu::Cpu` [INFO] [stdout] --> src/engine/bus.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::engine::cpu::Cpu; [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: `PPUInterruptRaised` [INFO] [stdout] --> src/engine/bus.rs:8:26 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::engine::ppu::{PPUInterruptRaised, PPU}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `trace` and `warn` [INFO] [stdout] --> src/engine/cpu.rs:4:18 [INFO] [stdout] | [INFO] [stdout] 4 | use log::{error, trace, warn}; [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::engine::interrupts::InterruptType::TIMER` [INFO] [stdout] --> src/engine/cpu.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::engine::interrupts::InterruptType::TIMER; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::engine::timer::TimerInterruptRaised` [INFO] [stdout] --> src/engine/cpu.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::engine::timer::TimerInterruptRaised; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/engine/cpu.rs:592:12 [INFO] [stdout] | [INFO] [stdout] 592 | if (src.is_none()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 592 - if (src.is_none()) { [INFO] [stdout] 592 + if src.is_none() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/engine/cpu.rs:1314:12 [INFO] [stdout] | [INFO] [stdout] 1314 | if (self.flag_half_carry() || (!self.flag_sub() && ((v & 0x0F) > 9))) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1314 - if (self.flag_half_carry() || (!self.flag_sub() && ((v & 0x0F) > 9))) { [INFO] [stdout] 1314 + if self.flag_half_carry() || (!self.flag_sub() && ((v & 0x0F) > 9)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/engine/cpu.rs:1318:12 [INFO] [stdout] | [INFO] [stdout] 1318 | if (self.flag_carry() || (!self.flag_sub() && (v > 0x99))) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1318 - if (self.flag_carry() || (!self.flag_sub() && (v > 0x99))) { [INFO] [stdout] 1318 + if self.flag_carry() || (!self.flag_sub() && (v > 0x99)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/engine/cpu.rs:1322:12 [INFO] [stdout] | [INFO] [stdout] 1322 | if (self.flag_sub()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1322 - if (self.flag_sub()) { [INFO] [stdout] 1322 + if self.flag_sub() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/engine/cpu.rs:1328:12 [INFO] [stdout] | [INFO] [stdout] 1328 | if (((correction << 2) & 0x100) != 0) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1328 - if (((correction << 2) & 0x100) != 0) { [INFO] [stdout] 1328 + if ((correction << 2) & 0x100) != 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `LCD_STAT` should have an upper camel case name [INFO] [stdout] --> src/engine/interrupts.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | LCD_STAT = 1, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper camel case: `LcdStat` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/engine/ppu.rs:37:16 [INFO] [stdout] | [INFO] [stdout] 37 | if (self.cycles == 456) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 37 - if (self.cycles == 456) { [INFO] [stdout] 37 + if self.cycles == 456 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `io::Read` [INFO] [stdout] --> src/main.rs:4:21 [INFO] [stdout] | [INFO] [stdout] 4 | use std::{fs::File, io::Read, io::Write}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/engine/bus.rs:100:13 [INFO] [stdout] | [INFO] [stdout] 100 | _ => { [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/engine/bus.rs:100:13 [INFO] [stdout] | [INFO] [stdout] 78 | 0x0000..=0x7FFF => self.cartridge.read(addr), [INFO] [stdout] | --------------- matches some of the same values [INFO] [stdout] 79 | 0x8000..=0x9FFF => self.vram[(addr - 0x8000) as usize], [INFO] [stdout] | --------------- matches some of the same values [INFO] [stdout] 80 | 0xA000..=0xBFFF => self.cartridge.read(addr), [INFO] [stdout] | --------------- matches some of the same values [INFO] [stdout] 81 | 0xC000..=0xCFFF => self.ram0[(addr - 0xC000) as usize], [INFO] [stdout] | --------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 100 | _ => { [INFO] [stdout] | ^ ...and 15 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/engine/bus.rs:130:13 [INFO] [stdout] | [INFO] [stdout] 130 | _ => { [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/engine/bus.rs:130:13 [INFO] [stdout] | [INFO] [stdout] 111 | 0x0000..=0x7FFF => self.cartridge.write(addr, v), [INFO] [stdout] | --------------- matches some of the same values [INFO] [stdout] 112 | 0x8000..=0x9FFF => self.vram[(addr - 0x8000) as usize] = v, [INFO] [stdout] | --------------- matches some of the same values [INFO] [stdout] 113 | 0xA000..=0xBFFF => self.cartridge.write(addr, v), [INFO] [stdout] | --------------- matches some of the same values [INFO] [stdout] 114 | 0xC000..=0xCFFF => self.ram0[(addr - 0xC000) as usize] = v, [INFO] [stdout] | --------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 130 | _ => { [INFO] [stdout] | ^ ...and 15 other patterns collectively make this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `took_cycles` [INFO] [stdout] --> src/main.rs:8:20 [INFO] [stdout] | [INFO] [stdout] 8 | pub fn write_state(took_cycles: u32, file: &mut File, cpu: &mut engine::cpu::Cpu) { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_took_cycles` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `log` [INFO] [stdout] --> src/main.rs:28:13 [INFO] [stdout] | [INFO] [stdout] 28 | let mut log = File::create("cpu.log").unwrap(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_log` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `load_rom` found for struct `bus::Bus` in the current scope [INFO] [stdout] --> src/engine/cpu.rs:1397:17 [INFO] [stdout] | [INFO] [stdout] 1397 | cpu.bus.load_rom(rom); [INFO] [stdout] | ^^^^^^^^ method not found in `bus::Bus` [INFO] [stdout] | [INFO] [stdout] ::: src/engine/bus.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct Bus { [INFO] [stdout] | -------------- method `load_rom` not found for this struct [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | let mut log = File::create("cpu.log").unwrap(); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DEBUG_CYCLES` is never used [INFO] [stdout] --> src/main.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | const DEBUG_CYCLES: bool = false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `viewport_pos_x`, `viewport_pos_y`, and `bg_palette` are never read [INFO] [stdout] --> src/engine/bus.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct Bus { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 26 | viewport_pos_x: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 27 | viewport_pos_y: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 28 | bg_palette: u8, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `dump_registers` is never used [INFO] [stdout] --> src/engine/cpu.rs:908:8 [INFO] [stdout] | [INFO] [stdout] 114 | impl Cpu { [INFO] [stdout] | -------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 908 | fn dump_registers(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `keys_state` is never read [INFO] [stdout] --> src/engine/joypad.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct JoyPad { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 2 | keys: u8, [INFO] [stdout] 3 | keys_state: u8, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `write` is never used [INFO] [stdout] --> src/engine/joypad.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl JoyPad { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 18 | pub fn write(&mut self, v: u8) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `vblank` and `cycles` are never read [INFO] [stdout] --> src/engine/ppu.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct PPU { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] 4 | pub oam: [u8; 0xA0], [INFO] [stdout] 5 | vblank: bool, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 6 | cycles: u32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `PPUInterruptRaised` is never used [INFO] [stdout] --> src/engine/ppu.rs:13:10 [INFO] [stdout] | [INFO] [stdout] 13 | pub enum PPUInterruptRaised { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `tick` is never used [INFO] [stdout] --> src/engine/ppu.rs:32:12 [INFO] [stdout] | [INFO] [stdout] 18 | impl PPU { [INFO] [stdout] | -------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn tick(&mut self) -> PPUInterruptRaised { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `tick` is never used [INFO] [stdout] --> src/engine/serial.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 8 | impl Serial { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 16 | pub fn tick(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `io::Read` [INFO] [stdout] --> src/main.rs:4:21 [INFO] [stdout] | [INFO] [stdout] 4 | use std::{fs::File, io::Read, io::Write}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/engine/bus.rs:100:13 [INFO] [stdout] | [INFO] [stdout] 100 | _ => { [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/engine/bus.rs:100:13 [INFO] [stdout] | [INFO] [stdout] 78 | 0x0000..=0x7FFF => self.cartridge.read(addr), [INFO] [stdout] | --------------- matches some of the same values [INFO] [stdout] 79 | 0x8000..=0x9FFF => self.vram[(addr - 0x8000) as usize], [INFO] [stdout] | --------------- matches some of the same values [INFO] [stdout] 80 | 0xA000..=0xBFFF => self.cartridge.read(addr), [INFO] [stdout] | --------------- matches some of the same values [INFO] [stdout] 81 | 0xC000..=0xCFFF => self.ram0[(addr - 0xC000) as usize], [INFO] [stdout] | --------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 100 | _ => { [INFO] [stdout] | ^ ...and 15 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/engine/bus.rs:130:13 [INFO] [stdout] | [INFO] [stdout] 130 | _ => { [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/engine/bus.rs:130:13 [INFO] [stdout] | [INFO] [stdout] 111 | 0x0000..=0x7FFF => self.cartridge.write(addr, v), [INFO] [stdout] | --------------- matches some of the same values [INFO] [stdout] 112 | 0x8000..=0x9FFF => self.vram[(addr - 0x8000) as usize] = v, [INFO] [stdout] | --------------- matches some of the same values [INFO] [stdout] 113 | 0xA000..=0xBFFF => self.cartridge.write(addr, v), [INFO] [stdout] | --------------- matches some of the same values [INFO] [stdout] 114 | 0xC000..=0xCFFF => self.ram0[(addr - 0xC000) as usize] = v, [INFO] [stdout] | --------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 130 | _ => { [INFO] [stdout] | ^ ...and 15 other patterns collectively make this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `took_cycles` [INFO] [stdout] --> src/main.rs:8:20 [INFO] [stdout] | [INFO] [stdout] 8 | pub fn write_state(took_cycles: u32, file: &mut File, cpu: &mut engine::cpu::Cpu) { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_took_cycles` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `log` [INFO] [stdout] --> src/main.rs:28:13 [INFO] [stdout] | [INFO] [stdout] 28 | let mut log = File::create("cpu.log").unwrap(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_log` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | let mut log = File::create("cpu.log").unwrap(); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0599`. [INFO] [stdout] [INFO] [stderr] error: could not compile `gemboy` (bin "gemboy" test) due to 1 previous error; 18 warnings emitted [INFO] running `Command { std: "docker" "inspect" "855bd3d4cbe14c5cf6cfaff74b4924c28b5cfd2ab27d08f4d00080af80dacdc2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "855bd3d4cbe14c5cf6cfaff74b4924c28b5cfd2ab27d08f4d00080af80dacdc2", kill_on_drop: false }` [INFO] [stdout] 855bd3d4cbe14c5cf6cfaff74b4924c28b5cfd2ab27d08f4d00080af80dacdc2