[INFO] cloning repository https://github.com/normalno-dev/octochip [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/normalno-dev/octochip" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnormalno-dev%2Foctochip", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnormalno-dev%2Foctochip'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 5b32f3ea15fc810d98a87006bf45226755e5b6f6 [INFO] building normalno-dev/octochip against try#4987e9d4227139400384ab59296ffee3b0fb1183 for pr-146237-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnormalno-dev%2Foctochip" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/normalno-dev/octochip [INFO] finished tweaking git repo https://github.com/normalno-dev/octochip [INFO] tweaked toml for git repo https://github.com/normalno-dev/octochip written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/normalno-dev/octochip on toolchain 4987e9d4227139400384ab59296ffee3b0fb1183 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4987e9d4227139400384ab59296ffee3b0fb1183" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/normalno-dev/octochip 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" "+4987e9d4227139400384ab59296ffee3b0fb1183" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2024 which implies `resolver = "3"` [INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest [INFO] [stderr] note: to use the edition 2024 resolver, specify `workspace.resolver = "3"` in the workspace root's manifest [INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "+4987e9d4227139400384ab59296ffee3b0fb1183" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 5fc4182b08f3c236d6047a85461552372835e8344c1774c64084888dc19c8dc2 [INFO] running `Command { std: "docker" "start" "-a" "5fc4182b08f3c236d6047a85461552372835e8344c1774c64084888dc19c8dc2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "5fc4182b08f3c236d6047a85461552372835e8344c1774c64084888dc19c8dc2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5fc4182b08f3c236d6047a85461552372835e8344c1774c64084888dc19c8dc2", kill_on_drop: false }` [INFO] [stdout] 5fc4182b08f3c236d6047a85461552372835e8344c1774c64084888dc19c8dc2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "+4987e9d4227139400384ab59296ffee3b0fb1183" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 9a45b485e627505e51cfc03109be0a4d7813e6dd75439e036d705671161cf9ea [INFO] running `Command { std: "docker" "start" "-a" "9a45b485e627505e51cfc03109be0a4d7813e6dd75439e036d705671161cf9ea", kill_on_drop: false }` [INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2024 which implies `resolver = "3"` [INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest [INFO] [stderr] note: to use the edition 2024 resolver, specify `workspace.resolver = "3"` in the workspace root's manifest [INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions [INFO] [stderr] Compiling libc v0.2.173 [INFO] [stderr] Compiling zerocopy v0.8.25 [INFO] [stderr] Compiling getrandom v0.3.3 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling rand_core v0.9.3 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling rand v0.9.1 [INFO] [stderr] Compiling machine v0.1.0 (/opt/rustwide/workdir/machine) [INFO] [stdout] warning: unused import: `crate::error::Error` [INFO] [stdout] --> machine/src/display.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::error::Error; [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: `std::slice::Windows` [INFO] [stdout] --> machine/src/display.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::slice::Windows; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::error::Error` [INFO] [stdout] --> machine/src/keyboard.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `RngCore` and `Rng` [INFO] [stdout] --> machine/src/machine.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | use rand::{Rng, RngCore, SeedableRng}; [INFO] [stdout] | ^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::iter` [INFO] [stdout] --> machine/src/machine/ops_memory.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::iter; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::memory::Memory` [INFO] [stdout] --> machine/src/machine/debug.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::memory::Memory; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Display` is never constructed [INFO] [stdout] --> machine/src/display.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Display { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Result` is never used [INFO] [stdout] --> machine/src/machine/ops_alu.rs:4:6 [INFO] [stdout] | [INFO] [stdout] 4 | type Result = std::result::Result; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> machine/src/display.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 12 | impl Display { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 13 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn height(&self) -> u8 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | pub fn width(&self) -> u8 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn clear(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn get_pixel(&self, x: u8, y: u8) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 47 | pub fn draw_sprite(&mut self, x: u8, y: u8, sprite: &[u8]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | fn set_pixel(&mut self, x: u8, y: u8, value: bool) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | fn toggle_pixel(&mut self, x: u8, y: u8) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 100 | fn pixel_to_bit_offset(&self, x: u8, y: u8) -> (usize, usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 112 | fn alloc_framebuffer(height: u8, width: u8) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Result` is never used [INFO] [stdout] --> machine/src/instruction.rs:3:6 [INFO] [stdout] | [INFO] [stdout] 3 | type Result = std::result::Result; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Keyboard` is never constructed [INFO] [stdout] --> machine/src/keyboard.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Keyboard(u16); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> machine/src/keyboard.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 5 | impl Keyboard { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 6 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 10 | pub fn is_key_pressed(&self, key: u8) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | pub fn get_keys(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn any_key_pressed(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn clear_all_keys(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | pub fn set_key(&mut self, key: u8, pressed: bool) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | pub fn get_first_pressed_key(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Result` is never used [INFO] [stdout] --> machine/src/machine.rs:11:6 [INFO] [stdout] | [INFO] [stdout] 11 | type Result = std::result::Result; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Machine` is never constructed [INFO] [stdout] --> machine/src/machine.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct Machine { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> machine/src/machine.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 46 | impl Machine { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 47 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn with_seed(seed: u64) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 78 | pub fn with_config(cfg: config::Config) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 87 | pub fn reset(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | pub fn run_frame( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 134 | pub fn step(&mut self) -> Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 153 | pub fn load_program(&mut self, program: Vec) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | fn calculate_instructions_for_frame(&mut self, current_time: Duration) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 174 | fn update_timers(&mut self, delta: Duration) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> machine/src/machine.rs:194:12 [INFO] [stdout] | [INFO] [stdout] 193 | impl Machine { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 194 | pub fn get_registers(&self) -> &[u8] { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 198 | pub fn get_pc(&self) -> u16 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 202 | pub fn get_sp(&self) -> u8 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 206 | pub fn get_memory(&self) -> &Memory { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 210 | pub fn get_display(&self) -> &Display { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 214 | pub fn get_delay_timer(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 218 | pub fn get_sound_timer(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 222 | pub fn get_index(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `exec` is never used [INFO] [stdout] --> machine/src/machine.rs:228:8 [INFO] [stdout] | [INFO] [stdout] 227 | impl Machine { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] 228 | fn exec(&mut self, instruction: Instruction) -> Result<()> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Config` is never constructed [INFO] [stdout] --> machine/src/machine/config.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct Config { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Quircks` is never constructed [INFO] [stdout] --> machine/src/machine/quircks.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct Quircks { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Result` is never used [INFO] [stdout] --> machine/src/machine/ops_system.rs:6:6 [INFO] [stdout] | [INFO] [stdout] 6 | type Result = std::result::Result; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `op_clear`, `op_syscall`, `op_rnd`, `op_set_delay_timer`, `op_set_sound_timer`, and `op_load_delay_timer` are never used [INFO] [stdout] --> machine/src/machine/ops_system.rs:10:19 [INFO] [stdout] | [INFO] [stdout] 9 | impl Machine { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 10 | pub(super) fn op_clear(&mut self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | pub(super) fn op_syscall(&self, _: u16) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | pub(super) fn op_rnd(&mut self, vx: u8, kk: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 27 | pub(super) fn op_set_delay_timer(&mut self, vx: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | pub(super) fn op_set_sound_timer(&mut self, vx: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | pub(super) fn op_load_delay_timer(&mut self, vx: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> machine/src/machine/ops_alu.rs:7:19 [INFO] [stdout] | [INFO] [stdout] 6 | impl Machine { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 7 | pub(super) fn op_add_immediate(&mut self, vx: u8, kk: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 14 | pub(super) fn op_add(&mut self, vx: u8, vy: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub(super) fn op_subtract(&mut self, vx: u8, vy: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | pub(super) fn op_subtract_negate(&mut self, vx: u8, vy: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub(super) fn op_or(&mut self, vx: u8, vy: u8) -> Result<()> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 47 | pub(super) fn op_and(&mut self, vx: u8, vy: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 52 | pub(super) fn op_xor(&mut self, vx: u8, vy: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 57 | pub(super) fn op_shift_right(&mut self, vx: u8, vy: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub(super) fn op_shift_left(&mut self, vx: u8, vy: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ExecutionMode` is never used [INFO] [stdout] --> machine/src/platform.rs:5:10 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum ExecutionMode { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `dump_registers`, `dump_memory_hex`, and `dump_screen` are never used [INFO] [stdout] --> machine/src/machine/debug.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 5 | impl Machine { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 6 | pub fn dump_registers(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn dump_memory_hex(&self, start: u16, length: u16) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | pub fn dump_screen(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Result` is never used [INFO] [stdout] --> machine/src/machine/ops_io.rs:4:6 [INFO] [stdout] | [INFO] [stdout] 4 | type Result = std::result::Result; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `op_skip_if_key`, `op_skip_if_not_key`, `op_wait_for_key`, and `op_draw` are never used [INFO] [stdout] --> machine/src/machine/ops_io.rs:7:19 [INFO] [stdout] | [INFO] [stdout] 6 | impl Machine { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 7 | pub(super) fn op_skip_if_key(&mut self, vx: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | pub(super) fn op_skip_if_not_key(&mut self, vx: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | pub(super) fn op_wait_for_key(&mut self, vx: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub(super) fn op_draw(&mut self, vx: u8, vy: u8, n: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Platform` is never used [INFO] [stdout] --> machine/src/platform.rs:11:11 [INFO] [stdout] | [INFO] [stdout] 11 | pub trait Platform { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Result` is never used [INFO] [stdout] --> machine/src/machine/ops_memory.rs:6:6 [INFO] [stdout] | [INFO] [stdout] 6 | type Result = std::result::Result; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `op_load_font`, `op_store_bcd`, `op_store_registers`, and `op_load_registers` are never used [INFO] [stdout] --> machine/src/machine/ops_memory.rs:9:19 [INFO] [stdout] | [INFO] [stdout] 8 | impl Machine { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 9 | pub(super) fn op_load_font(&mut self, vx: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 15 | pub(super) fn op_store_bcd(&mut self, vx: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | pub(super) fn op_store_registers(&mut self, x: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub(super) fn op_load_registers(&mut self, x: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Result` is never used [INFO] [stdout] --> machine/src/machine/ops_register.rs:4:6 [INFO] [stdout] | [INFO] [stdout] 4 | type Result = std::result::Result; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `op_set_immediate`, `op_set`, `op_set_index`, and `op_add_index` are never used [INFO] [stdout] --> machine/src/machine/ops_register.rs:7:19 [INFO] [stdout] | [INFO] [stdout] 6 | impl Machine { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 7 | pub(super) fn op_set_immediate(&mut self, vx: u8, kk: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 12 | pub(super) fn op_set(&mut self, vx: u8, vy: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | pub(super) fn op_set_index(&mut self, addr: u16) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | pub(super) fn op_add_index(&mut self, vx: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Result` is never used [INFO] [stdout] --> machine/src/machine/ops_control.rs:4:6 [INFO] [stdout] | [INFO] [stdout] 4 | type Result = std::result::Result; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> machine/src/machine/ops_control.rs:7:19 [INFO] [stdout] | [INFO] [stdout] 6 | impl Machine { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 7 | pub(super) fn op_return(&mut self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | pub(super) fn op_call(&mut self, addr: u16) -> Result<()> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | pub(super) fn op_jump(&mut self, addr: u16) -> Result<()> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub(super) fn op_jump_offset(&mut self, offset: u16) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | pub(super) fn op_skip_if_equal_imm(&mut self, vx: u8, kk: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 49 | pub(super) fn op_skip_if_not_equal_imm(&mut self, vx: u8, kk: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 56 | pub(super) fn op_skip_if_equal(&mut self, vx: u8, vy: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | pub(super) fn op_skip_if_not_equal(&mut self, vx: u8, vy: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Result` is never used [INFO] [stdout] --> machine/src/memory.rs:2:6 [INFO] [stdout] | [INFO] [stdout] 2 | type Result = std::result::Result; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FONTS` is never used [INFO] [stdout] --> machine/src/memory.rs:4:7 [INFO] [stdout] | [INFO] [stdout] 4 | const FONTS: [u8; 80] = [ [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Memory` is never constructed [INFO] [stdout] --> machine/src/memory.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct Memory { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> machine/src/memory.rs:28:12 [INFO] [stdout] | [INFO] [stdout] 27 | impl Memory { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 28 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn read(&self, addr: u16) -> Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | pub fn write(&mut self, addr: u16, value: u8) -> Result<()> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | pub fn write_word(&mut self, addr: u16, value: u16) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | pub fn read_range(&self, start: u16, length: u16) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | pub fn read_word(&self, addr: u16) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | fn load_fonts(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.90s [INFO] running `Command { std: "docker" "inspect" "9a45b485e627505e51cfc03109be0a4d7813e6dd75439e036d705671161cf9ea", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9a45b485e627505e51cfc03109be0a4d7813e6dd75439e036d705671161cf9ea", kill_on_drop: false }` [INFO] [stdout] 9a45b485e627505e51cfc03109be0a4d7813e6dd75439e036d705671161cf9ea [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "+4987e9d4227139400384ab59296ffee3b0fb1183" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 52f5b944b8647b3479f0647e4b7bee46010466ef9ab5f93b8cdb1c9b9fc88a3b [INFO] running `Command { std: "docker" "start" "-a" "52f5b944b8647b3479f0647e4b7bee46010466ef9ab5f93b8cdb1c9b9fc88a3b", kill_on_drop: false }` [INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2024 which implies `resolver = "3"` [INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest [INFO] [stderr] note: to use the edition 2024 resolver, specify `workspace.resolver = "3"` in the workspace root's manifest [INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions [INFO] [stdout] warning: unused import: `crate::error::Error` [INFO] [stdout] --> machine/src/display.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::error::Error; [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: `std::slice::Windows` [INFO] [stdout] --> machine/src/display.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::slice::Windows; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::error::Error` [INFO] [stdout] --> machine/src/keyboard.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `RngCore` and `Rng` [INFO] [stdout] --> machine/src/machine.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | use rand::{Rng, RngCore, SeedableRng}; [INFO] [stdout] | ^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::iter` [INFO] [stdout] --> machine/src/machine/ops_memory.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::iter; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::memory::Memory` [INFO] [stdout] --> machine/src/machine/debug.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::memory::Memory; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Display` is never constructed [INFO] [stdout] --> machine/src/display.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Display { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Result` is never used [INFO] [stdout] --> machine/src/machine/ops_alu.rs:4:6 [INFO] [stdout] | [INFO] [stdout] 4 | type Result = std::result::Result; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> machine/src/display.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 12 | impl Display { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 13 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn height(&self) -> u8 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | pub fn width(&self) -> u8 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn clear(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn get_pixel(&self, x: u8, y: u8) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 47 | pub fn draw_sprite(&mut self, x: u8, y: u8, sprite: &[u8]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | fn set_pixel(&mut self, x: u8, y: u8, value: bool) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | fn toggle_pixel(&mut self, x: u8, y: u8) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 100 | fn pixel_to_bit_offset(&self, x: u8, y: u8) -> (usize, usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 112 | fn alloc_framebuffer(height: u8, width: u8) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Result` is never used [INFO] [stdout] --> machine/src/instruction.rs:3:6 [INFO] [stdout] | [INFO] [stdout] 3 | type Result = std::result::Result; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Keyboard` is never constructed [INFO] [stdout] --> machine/src/keyboard.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Keyboard(u16); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> machine/src/keyboard.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 5 | impl Keyboard { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 6 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 10 | pub fn is_key_pressed(&self, key: u8) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | pub fn get_keys(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn any_key_pressed(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn clear_all_keys(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | pub fn set_key(&mut self, key: u8, pressed: bool) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | pub fn get_first_pressed_key(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Result` is never used [INFO] [stdout] --> machine/src/machine.rs:11:6 [INFO] [stdout] | [INFO] [stdout] 11 | type Result = std::result::Result; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Machine` is never constructed [INFO] [stdout] --> machine/src/machine.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct Machine { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> machine/src/machine.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 46 | impl Machine { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 47 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn with_seed(seed: u64) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 78 | pub fn with_config(cfg: config::Config) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 87 | pub fn reset(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | pub fn run_frame( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 134 | pub fn step(&mut self) -> Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 153 | pub fn load_program(&mut self, program: Vec) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | fn calculate_instructions_for_frame(&mut self, current_time: Duration) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 174 | fn update_timers(&mut self, delta: Duration) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> machine/src/machine.rs:194:12 [INFO] [stdout] | [INFO] [stdout] 193 | impl Machine { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 194 | pub fn get_registers(&self) -> &[u8] { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 198 | pub fn get_pc(&self) -> u16 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 202 | pub fn get_sp(&self) -> u8 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 206 | pub fn get_memory(&self) -> &Memory { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 210 | pub fn get_display(&self) -> &Display { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 214 | pub fn get_delay_timer(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 218 | pub fn get_sound_timer(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 222 | pub fn get_index(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `exec` is never used [INFO] [stdout] --> machine/src/machine.rs:228:8 [INFO] [stdout] | [INFO] [stdout] 227 | impl Machine { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] 228 | fn exec(&mut self, instruction: Instruction) -> Result<()> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Config` is never constructed [INFO] [stdout] --> machine/src/machine/config.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct Config { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Quircks` is never constructed [INFO] [stdout] --> machine/src/machine/quircks.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct Quircks { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Result` is never used [INFO] [stdout] --> machine/src/machine/ops_system.rs:6:6 [INFO] [stdout] | [INFO] [stdout] 6 | type Result = std::result::Result; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `op_clear`, `op_syscall`, `op_rnd`, `op_set_delay_timer`, `op_set_sound_timer`, and `op_load_delay_timer` are never used [INFO] [stdout] --> machine/src/machine/ops_system.rs:10:19 [INFO] [stdout] | [INFO] [stdout] 9 | impl Machine { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 10 | pub(super) fn op_clear(&mut self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | pub(super) fn op_syscall(&self, _: u16) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | pub(super) fn op_rnd(&mut self, vx: u8, kk: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 27 | pub(super) fn op_set_delay_timer(&mut self, vx: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | pub(super) fn op_set_sound_timer(&mut self, vx: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | pub(super) fn op_load_delay_timer(&mut self, vx: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> machine/src/machine/ops_alu.rs:7:19 [INFO] [stdout] | [INFO] [stdout] 6 | impl Machine { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 7 | pub(super) fn op_add_immediate(&mut self, vx: u8, kk: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 14 | pub(super) fn op_add(&mut self, vx: u8, vy: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub(super) fn op_subtract(&mut self, vx: u8, vy: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | pub(super) fn op_subtract_negate(&mut self, vx: u8, vy: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub(super) fn op_or(&mut self, vx: u8, vy: u8) -> Result<()> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 47 | pub(super) fn op_and(&mut self, vx: u8, vy: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 52 | pub(super) fn op_xor(&mut self, vx: u8, vy: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 57 | pub(super) fn op_shift_right(&mut self, vx: u8, vy: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub(super) fn op_shift_left(&mut self, vx: u8, vy: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ExecutionMode` is never used [INFO] [stdout] --> machine/src/platform.rs:5:10 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum ExecutionMode { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `dump_registers`, `dump_memory_hex`, and `dump_screen` are never used [INFO] [stdout] --> machine/src/machine/debug.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 5 | impl Machine { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 6 | pub fn dump_registers(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn dump_memory_hex(&self, start: u16, length: u16) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | pub fn dump_screen(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Result` is never used [INFO] [stdout] --> machine/src/machine/ops_io.rs:4:6 [INFO] [stdout] | [INFO] [stdout] 4 | type Result = std::result::Result; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `op_skip_if_key`, `op_skip_if_not_key`, `op_wait_for_key`, and `op_draw` are never used [INFO] [stdout] --> machine/src/machine/ops_io.rs:7:19 [INFO] [stdout] | [INFO] [stdout] 6 | impl Machine { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 7 | pub(super) fn op_skip_if_key(&mut self, vx: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | pub(super) fn op_skip_if_not_key(&mut self, vx: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | pub(super) fn op_wait_for_key(&mut self, vx: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub(super) fn op_draw(&mut self, vx: u8, vy: u8, n: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Platform` is never used [INFO] [stdout] --> machine/src/platform.rs:11:11 [INFO] [stdout] | [INFO] [stdout] 11 | pub trait Platform { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Result` is never used [INFO] [stdout] --> machine/src/machine/ops_memory.rs:6:6 [INFO] [stdout] | [INFO] [stdout] 6 | type Result = std::result::Result; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `op_load_font`, `op_store_bcd`, `op_store_registers`, and `op_load_registers` are never used [INFO] [stdout] --> machine/src/machine/ops_memory.rs:9:19 [INFO] [stdout] | [INFO] [stdout] 8 | impl Machine { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 9 | pub(super) fn op_load_font(&mut self, vx: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 15 | pub(super) fn op_store_bcd(&mut self, vx: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | pub(super) fn op_store_registers(&mut self, x: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub(super) fn op_load_registers(&mut self, x: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Result` is never used [INFO] [stdout] --> machine/src/machine/ops_register.rs:4:6 [INFO] [stdout] | [INFO] [stdout] 4 | type Result = std::result::Result; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `op_set_immediate`, `op_set`, `op_set_index`, and `op_add_index` are never used [INFO] [stdout] --> machine/src/machine/ops_register.rs:7:19 [INFO] [stdout] | [INFO] [stdout] 6 | impl Machine { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 7 | pub(super) fn op_set_immediate(&mut self, vx: u8, kk: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 12 | pub(super) fn op_set(&mut self, vx: u8, vy: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | pub(super) fn op_set_index(&mut self, addr: u16) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | pub(super) fn op_add_index(&mut self, vx: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Result` is never used [INFO] [stdout] --> machine/src/machine/ops_control.rs:4:6 [INFO] [stdout] | [INFO] [stdout] 4 | type Result = std::result::Result; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> machine/src/machine/ops_control.rs:7:19 [INFO] [stdout] | [INFO] [stdout] 6 | impl Machine { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 7 | pub(super) fn op_return(&mut self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | pub(super) fn op_call(&mut self, addr: u16) -> Result<()> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | pub(super) fn op_jump(&mut self, addr: u16) -> Result<()> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub(super) fn op_jump_offset(&mut self, offset: u16) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | pub(super) fn op_skip_if_equal_imm(&mut self, vx: u8, kk: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 49 | pub(super) fn op_skip_if_not_equal_imm(&mut self, vx: u8, kk: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 56 | pub(super) fn op_skip_if_equal(&mut self, vx: u8, vy: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | pub(super) fn op_skip_if_not_equal(&mut self, vx: u8, vy: u8) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Result` is never used [INFO] [stdout] --> machine/src/memory.rs:2:6 [INFO] [stdout] | [INFO] [stdout] 2 | type Result = std::result::Result; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FONTS` is never used [INFO] [stdout] --> machine/src/memory.rs:4:7 [INFO] [stdout] | [INFO] [stdout] 4 | const FONTS: [u8; 80] = [ [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Memory` is never constructed [INFO] [stdout] --> machine/src/memory.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct Memory { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling machine v0.1.0 (/opt/rustwide/workdir/machine) [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> machine/src/memory.rs:28:12 [INFO] [stdout] | [INFO] [stdout] 27 | impl Memory { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 28 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn read(&self, addr: u16) -> Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | pub fn write(&mut self, addr: u16, value: u8) -> Result<()> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | pub fn write_word(&mut self, addr: u16, value: u16) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | pub fn read_range(&self, start: u16, length: u16) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | pub fn read_word(&self, addr: u16) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | fn load_fonts(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::error::Error` [INFO] [stdout] --> machine/src/display.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::error::Error; [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: `std::slice::Windows` [INFO] [stdout] --> machine/src/display.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::slice::Windows; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::error::Error` [INFO] [stdout] --> machine/src/keyboard.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `RngCore` and `Rng` [INFO] [stdout] --> machine/src/machine.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | use rand::{Rng, RngCore, SeedableRng}; [INFO] [stdout] | ^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::iter` [INFO] [stdout] --> machine/src/machine/ops_memory.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::iter; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::memory::Memory` [INFO] [stdout] --> machine/src/machine/debug.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::memory::Memory; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Result` is never used [INFO] [stdout] --> machine/src/instruction.rs:3:6 [INFO] [stdout] | [INFO] [stdout] 3 | type Result = std::result::Result; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_keys`, `any_key_pressed`, and `set_key` are never used [INFO] [stdout] --> machine/src/keyboard.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 5 | impl Keyboard { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 19 | pub fn get_keys(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn any_key_pressed(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | pub fn set_key(&mut self, key: u8, pressed: bool) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `timer_period` is never read [INFO] [stdout] --> machine/src/machine.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct Machine { [INFO] [stdout] | ------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 42 | timer_period: Duration, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `with_seed`, `with_config`, `run_frame`, `calculate_instructions_for_frame`, and `update_timers` are never used [INFO] [stdout] --> machine/src/machine.rs:72:12 [INFO] [stdout] | [INFO] [stdout] 46 | impl Machine { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn with_seed(seed: u64) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 78 | pub fn with_config(cfg: config::Config) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | pub fn run_frame( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | fn calculate_instructions_for_frame(&mut self, current_time: Duration) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 174 | fn update_timers(&mut self, delta: Duration) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> machine/src/machine.rs:198:12 [INFO] [stdout] | [INFO] [stdout] 193 | impl Machine { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 198 | pub fn get_pc(&self) -> u16 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 202 | pub fn get_sp(&self) -> u8 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 206 | pub fn get_memory(&self) -> &Memory { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 210 | pub fn get_display(&self) -> &Display { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 214 | pub fn get_delay_timer(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 218 | pub fn get_sound_timer(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 222 | pub fn get_index(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `cpu_frequency` is never read [INFO] [stdout] --> machine/src/machine/config.rs:4:9 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct Config { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 3 | pub quircks: Quircks, [INFO] [stdout] 4 | pub cpu_frequency: u16, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `dump_registers` and `dump_memory_hex` are never used [INFO] [stdout] --> machine/src/machine/debug.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 5 | impl Machine { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 6 | pub fn dump_registers(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn dump_memory_hex(&self, start: u16, length: u16) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ExecutionMode` is never used [INFO] [stdout] --> machine/src/platform.rs:5:10 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum ExecutionMode { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Platform` is never used [INFO] [stdout] --> machine/src/platform.rs:11:11 [INFO] [stdout] | [INFO] [stdout] 11 | pub trait Platform { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.84s [INFO] running `Command { std: "docker" "inspect" "52f5b944b8647b3479f0647e4b7bee46010466ef9ab5f93b8cdb1c9b9fc88a3b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "52f5b944b8647b3479f0647e4b7bee46010466ef9ab5f93b8cdb1c9b9fc88a3b", kill_on_drop: false }` [INFO] [stdout] 52f5b944b8647b3479f0647e4b7bee46010466ef9ab5f93b8cdb1c9b9fc88a3b