[INFO] cloning repository https://github.com/ysenko/ch8-emu [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ysenko/ch8-emu" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fysenko%2Fch8-emu", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fysenko%2Fch8-emu'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] b8e17a6c53f553ab0f203106d58463603f61de0e [INFO] checking ysenko/ch8-emu against master#1f12b9b0fdbe735968ac002792a720f0ba4faca6 for crater-rollup-uwu [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fysenko%2Fch8-emu" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/ysenko/ch8-emu on toolchain 1f12b9b0fdbe735968ac002792a720f0ba4faca6 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/ysenko/ch8-emu [INFO] finished tweaking git repo https://github.com/ysenko/ch8-emu [INFO] tweaked toml for git repo https://github.com/ysenko/ch8-emu written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/ysenko/ch8-emu 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" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded web-time v1.1.0 [INFO] [stderr] Downloaded wayland-scanner v0.31.2 [INFO] [stderr] Downloaded objc2-link-presentation v0.2.2 [INFO] [stderr] Downloaded objc2-symbols v0.2.2 [INFO] [stderr] Downloaded objc2-uniform-type-identifiers v0.2.2 [INFO] [stderr] Downloaded objc-sys v0.3.5 [INFO] [stderr] Downloaded objc2-core-image v0.2.2 [INFO] [stderr] Downloaded dpi v0.1.1 [INFO] [stderr] Downloaded block2 v0.5.1 [INFO] [stderr] Downloaded objc2-cloud-kit v0.2.2 [INFO] [stderr] Downloaded objc2-core-data v0.2.2 [INFO] [stderr] Downloaded polling v3.7.1 [INFO] [stderr] Downloaded objc2-metal v0.2.2 [INFO] [stderr] Downloaded ndk v0.9.0 [INFO] [stderr] Downloaded cc v1.0.99 [INFO] [stderr] Downloaded combine v4.6.7 [INFO] [stderr] Downloaded sctk-adwaita v0.9.0 [INFO] [stderr] Downloaded owned_ttf_parser v0.21.0 [INFO] [stderr] Downloaded wayland-client v0.31.3 [INFO] [stderr] Downloaded objc2 v0.5.2 [INFO] [stderr] Downloaded x11rb v0.13.1 [INFO] [stderr] Downloaded objc2-contacts v0.2.2 [INFO] [stderr] Downloaded android-activity v0.6.0 [INFO] [stderr] Downloaded objc2-foundation v0.2.2 [INFO] [stderr] Downloaded wayland-backend v0.3.4 [INFO] [stderr] Downloaded objc2-ui-kit v0.2.2 [INFO] [stderr] Downloaded objc2-app-kit v0.2.2 [INFO] [stderr] Downloaded ndk-sys v0.6.0+11769913 [INFO] [stderr] Downloaded xkeysym v0.2.1 [INFO] [stderr] Downloaded objc2-encode v4.0.3 [INFO] [stderr] Downloaded wayland-cursor v0.31.3 [INFO] [stderr] Downloaded x11rb-protocol v0.13.1 [INFO] [stderr] Downloaded objc2-quartz-core v0.2.2 [INFO] [stderr] Downloaded objc2-core-location v0.2.2 [INFO] [stderr] Downloaded objc2-user-notifications v0.2.2 [INFO] [stderr] Downloaded raw-window-handle v0.6.2 [INFO] [stderr] Downloaded ab_glyph v0.2.26 [INFO] [stderr] Downloaded smol_str v0.2.2 [INFO] [stderr] Downloaded wayland-sys v0.31.2 [INFO] [stderr] Downloaded winit v0.30.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] c02ef4fdf48231fd7505e7c9f26e65fba7670505b1f351c785f6c041d2d8a660 [INFO] running `Command { std: "docker" "start" "-a" "c02ef4fdf48231fd7505e7c9f26e65fba7670505b1f351c785f6c041d2d8a660", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "c02ef4fdf48231fd7505e7c9f26e65fba7670505b1f351c785f6c041d2d8a660", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c02ef4fdf48231fd7505e7c9f26e65fba7670505b1f351c785f6c041d2d8a660", kill_on_drop: false }` [INFO] [stdout] c02ef4fdf48231fd7505e7c9f26e65fba7670505b1f351c785f6c041d2d8a660 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d261c5eb026b43c473c6509d215a3682ea26e8af3b2782254e48bb39702aad86 [INFO] running `Command { std: "docker" "start" "-a" "d261c5eb026b43c473c6509d215a3682ea26e8af3b2782254e48bb39702aad86", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.85 [INFO] [stderr] Compiling pkg-config v0.3.30 [INFO] [stderr] Compiling rustix v0.38.34 [INFO] [stderr] Checking bitflags v2.5.0 [INFO] [stderr] Checking libloading v0.8.3 [INFO] [stderr] Checking linux-raw-sys v0.4.14 [INFO] [stderr] Compiling cc v1.0.99 [INFO] [stderr] Checking scoped-tls v1.0.1 [INFO] [stderr] Checking smallvec v1.13.2 [INFO] [stderr] Compiling memchr v2.7.4 [INFO] [stderr] Checking downcast-rs v1.2.1 [INFO] [stderr] Compiling wayland-client v0.31.3 [INFO] [stderr] Checking tracing-core v0.1.32 [INFO] [stderr] Compiling thiserror v1.0.61 [INFO] [stderr] Checking bytemuck v1.16.0 [INFO] [stderr] Checking strict-num v0.1.1 [INFO] [stderr] Checking ttf-parser v0.21.1 [INFO] [stderr] Checking xcursor v0.3.5 [INFO] [stderr] Compiling smithay-client-toolkit v0.18.1 [INFO] [stderr] Checking dlib v0.5.2 [INFO] [stderr] Checking cursor-icon v1.1.0 [INFO] [stderr] Checking xkeysym v0.2.1 [INFO] [stderr] Compiling ahash v0.8.11 [INFO] [stderr] Checking memmap2 v0.9.4 [INFO] [stderr] Checking tiny-skia-path v0.11.4 [INFO] [stderr] Checking arrayvec v0.7.4 [INFO] [stderr] Compiling cfg_aliases v0.2.1 [INFO] [stderr] Checking ab_glyph_rasterizer v0.1.8 [INFO] [stderr] Compiling winit v0.30.1 [INFO] [stderr] Checking zerocopy v0.7.34 [INFO] [stderr] Checking x11rb-protocol v0.13.1 [INFO] [stderr] Checking as-raw-xcb-connection v1.0.1 [INFO] [stderr] Checking raw-window-handle v0.6.2 [INFO] [stderr] Checking dpi v0.1.1 [INFO] [stderr] Checking tracing v0.1.40 [INFO] [stderr] Checking smol_str v0.2.2 [INFO] [stderr] Compiling wayland-sys v0.31.2 [INFO] [stderr] Compiling x11-dl v2.21.0 [INFO] [stderr] Compiling quick-xml v0.31.0 [INFO] [stderr] Checking tiny-skia v0.11.4 [INFO] [stderr] Compiling quote v1.0.36 [INFO] [stderr] Compiling wayland-backend v0.3.4 [INFO] [stderr] Compiling syn v2.0.66 [INFO] [stderr] Checking xkbcommon-dl v0.4.2 [INFO] [stderr] Compiling wayland-scanner v0.31.2 [INFO] [stderr] Checking owned_ttf_parser v0.21.0 [INFO] [stderr] Checking ab_glyph v0.2.26 [INFO] [stderr] Compiling thiserror-impl v1.0.61 [INFO] [stderr] Checking polling v3.7.1 [INFO] [stderr] Checking calloop v0.12.4 [INFO] [stderr] Checking wayland-csd-frame v0.3.0 [INFO] [stderr] Checking wayland-protocols v0.31.2 [INFO] [stderr] Checking wayland-cursor v0.31.3 [INFO] [stderr] Checking calloop-wayland-source v0.2.0 [INFO] [stderr] Checking x11rb v0.13.1 [INFO] [stderr] Checking wayland-protocols-wlr v0.2.0 [INFO] [stderr] Checking wayland-protocols-plasma v0.2.0 [INFO] [stderr] Checking sctk-adwaita v0.9.0 [INFO] [stderr] Checking ch8emu v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::str::FromStr` [INFO] [stdout] --> src/chip8/input.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::str::FromStr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::iter` [INFO] [stdout] --> src/main.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::iter; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::FromStr` [INFO] [stdout] --> src/chip8/input.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::str::FromStr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::iter` [INFO] [stdout] --> src/main.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::iter; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> src/chip8.rs:148:29 [INFO] [stdout] | [INFO] [stdout] 148 | Opcode::SysAddr(addr) => {} [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `InputError` is never constructed [INFO] [stdout] --> src/chip8.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 16 | pub enum Chip8Error { [INFO] [stdout] | ---------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 21 | InputError(input::Error), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Chip8Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `stack`, `timers`, and `display` are never read [INFO] [stdout] --> src/chip8.rs:52:5 [INFO] [stdout] | [INFO] [stdout] 49 | pub struct Chip8 { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 52 | stack: stack::Stack, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 53 | timers: timers::Timers, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 54 | display: display::Display, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Chip8` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/chip8.rs:70:12 [INFO] [stdout] | [INFO] [stdout] 58 | impl Chip8 { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 70 | pub fn load_rom(&mut self, rom: &[u8]) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | pub fn load_rom_from_file(&mut self, path: &str) -> Result<(), std::io::Error> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 108 | fn get_pressed_key(&self) -> Option<&str> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 112 | fn get_pressed_key_u8(&self) -> Result, Chip8Error> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 118 | fn execute(&mut self, op: Opcode) -> Result<(), Chip8Error> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 162 | fn wait_for_key(&mut self, vx: u8) -> Result<(), Chip8Error> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 172 | fn skip_if_pressed(&mut self, vx: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 180 | fn skip_if_not_pressed(&mut self, vx: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 188 | fn clear_display(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 192 | fn draw(&mut self, vx: u8, vy: u8, n: u8) -> Result<(), Chip8Error> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 211 | fn load_sprite_addr(&mut self, vx: u8) -> Result<(), Chip8Error> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 218 | fn subn(&mut self, vx: u8, vy: u8) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 228 | fn skip_if_reg_not_equal(&mut self, vx: u8, vy: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 237 | fn xor(&mut self, vx: u8, vy: u8) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 246 | fn store_bcd(&mut self, vx: u8) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 255 | fn sub(&mut self, vx: u8, vy: u8) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 265 | fn skip_if_not_equal(&mut self, vx: u8, byte: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 272 | fn skip_if_reg_equal(&mut self, vx: u8, vy: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 281 | fn skip_if_equal(&mut self, vx: u8, byte: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 288 | fn shift_right(&mut self, vx: u8) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 296 | fn shift_left(&mut self, vx: u8) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 304 | fn set_sound_timer(&mut self, vx: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 309 | fn set_index(&mut self, addr: u16) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 313 | fn set_delay_timer(&mut self, vx: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 318 | fn return_from(&mut self) -> Result<(), Chip8Error> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 323 | fn reg_load(&mut self, vx: u8) -> Result<(), Chip8Error> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 332 | fn reg_dump(&mut self, vx: u8) -> Result<(), Chip8Error> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 340 | fn random(&mut self, vx: u8, byte: u8) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 345 | fn or(&mut self, vx: u8, vy: u8) { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 354 | fn load_register(&mut self, vx: u8, vy: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 359 | fn load_delay_timer(&mut self, vx: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 364 | fn load_byte(&mut self, vx: u8, byte: u8) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 368 | fn jump_v0(&mut self, addr: u16) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 372 | fn jump(&mut self, addr: u16) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 376 | fn call(&mut self, addr: u16) -> Result<(), Chip8Error> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 382 | fn and(&mut self, vx: u8, vy: u8) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 391 | fn add_reg(&mut self, vx: u8, vy: u8) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 401 | fn add_vx_byte(&mut self, vx: u8, val: u8) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 406 | fn add_i_vx(&mut self, vx: u8) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SPRITE_LEN` is never used [INFO] [stdout] --> src/chip8/display.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | pub const SPRITE_LEN: usize = 5; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `SpriteValue` is never used [INFO] [stdout] --> src/chip8/display.rs:3:10 [INFO] [stdout] | [INFO] [stdout] 3 | pub type SpriteValue = Vec; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `InvalidSprite` and `InvalidDrawPosition` are never constructed [INFO] [stdout] --> src/chip8/display.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 31 | pub enum DisplayError { [INFO] [stdout] | ------------ variants in this enum [INFO] [stdout] 32 | InvalidSprite(u8), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 33 | InvalidDrawPosition(usize, usize), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DisplayError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `width`, `height`, and `buffer` are never read [INFO] [stdout] --> src/chip8/display.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 37 | pub struct Display { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 38 | pub width: usize, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 39 | pub height: usize, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 40 | [INFO] [stdout] 41 | buffer: [[u8; BUFFER_WIDTH]; BUFFER_HEIGHT], [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Display` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `get_sprite_address`, `clear`, `draw_sprite`, and `draw_sprite_row` are never used [INFO] [stdout] --> src/chip8/display.rs:53:12 [INFO] [stdout] | [INFO] [stdout] 44 | impl Display { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn get_sprite_address(sprite: u8) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn clear(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn draw_sprite(&mut self, row: usize, col: usize, sprite_value: &SpriteValue) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | fn draw_sprite_row(&mut self, row: usize, col: usize, value: u8) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bit_erased` is never used [INFO] [stdout] --> src/chip8/display.rs:107:4 [INFO] [stdout] | [INFO] [stdout] 107 | fn bit_erased(original: u8, current: u8) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `InvalidKey` is never constructed [INFO] [stdout] --> src/chip8/input.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum Error { [INFO] [stdout] | ----- variant in this enum [INFO] [stdout] 5 | InvalidKey(String), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_key` and `get_key_u8` are never used [INFO] [stdout] --> src/chip8/input.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 12 | impl Input { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 21 | pub fn get_key(&self) -> Option<&str> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn get_key_u8(&self) -> Result, Error> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `read_byte` is never used [INFO] [stdout] --> src/chip8/memory.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl Memory { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 20 | pub fn read_byte(&self, address: usize) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `InvalidAddress` and `InvalidOpcode` are never constructed [INFO] [stdout] --> src/chip8/opcodes.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum OpcodeError { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] 5 | InvalidAddress(u16), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 6 | InvalidOpcode(u16), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `OpcodeError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/chip8/opcodes.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub enum Opcode { [INFO] [stdout] | ------ variants in this enum [INFO] [stdout] 11 | // System Commands [INFO] [stdout] 12 | ClearDisplay, // 00E0 [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 13 | Return, // 00EE [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | SysAddr(u16), // 0NNN [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 17 | Jump(u16), // 1NNN [INFO] [stdout] | ^^^^ [INFO] [stdout] 18 | Call(u16), // 2NNN [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | SkipIfEqual(u8, u8), // 3XNN [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 22 | SkipIfNotEqual(u8, u8), // 4XNN [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 23 | SkipIfRegEqual(u8, u8), // 5XY0 [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 24 | SkipIfRegNotEqual(u8, u8), // 9XY0 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 27 | LoadByte(u8, u8), // 6XNN [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 28 | AddByte(u8, u8), // 7XNN [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 29 | LoadReg(u8, u8), // 8XY0 [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 30 | Or(u8, u8), // 8XY1 [INFO] [stdout] | ^^ [INFO] [stdout] 31 | And(u8, u8), // 8XY2 [INFO] [stdout] | ^^^ [INFO] [stdout] 32 | Xor(u8, u8), // 8XY3 [INFO] [stdout] | ^^^ [INFO] [stdout] 33 | AddReg(u8, u8), // 8XY4 [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 34 | Sub(u8, u8), // 8XY5 [INFO] [stdout] | ^^^ [INFO] [stdout] 35 | ShiftRight(u8), // 8XY6 [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 36 | SubN(u8, u8), // 8XY7 [INFO] [stdout] | ^^^^ [INFO] [stdout] 37 | ShiftLeft(u8), // 8XYE [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | SetIndex(u16), // ANNN [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 41 | JumpV0(u16), // BNNN [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 42 | Random(u8, u8), // CXNN [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | Draw(u8, u8, u8), // DXYN [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | SkipIfKeyPressed(u8), // EX9E [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 49 | SkipIfKeyNotPressed(u8), // EXA1 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 52 | LoadDelayTimer(u8), // FX07 [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 53 | WaitForKey(u8), // FX0A [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 54 | SetDelayTimer(u8), // FX15 [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 55 | SetSoundTimer(u8), // FX18 [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | AddI(u8), // FX1E [INFO] [stdout] | ^^^^ [INFO] [stdout] 59 | LoadSpriteAddr(u8), // FX29 [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 60 | StoreBCD(u8), // FX33 [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | RegDump(u8), // FX55 [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 64 | RegLoad(u8), // FX65 [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | Undefined(u16), // For any opcode that doesn't match the above [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Opcode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `msb` and `lsb` are never read [INFO] [stdout] --> src/chip8/opcodes.rs:71:5 [INFO] [stdout] | [INFO] [stdout] 70 | struct Instruction { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 71 | msb: u8, [INFO] [stdout] | ^^^ [INFO] [stdout] 72 | lsb: u8, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/chip8/opcodes.rs:84:8 [INFO] [stdout] | [INFO] [stdout] 83 | impl Instruction { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] 84 | fn get_address(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 94 | fn get_code(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | fn get_n(&self) -> u8 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | fn get_x(&self) -> u8 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | fn get_y(&self) -> u8 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | fn get_kk(&self) -> u8 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 114 | fn get_byte(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from_bytes` is never used [INFO] [stdout] --> src/chip8/opcodes.rs:120:12 [INFO] [stdout] | [INFO] [stdout] 119 | impl Opcode { [INFO] [stdout] | ----------- associated function in this implementation [INFO] [stdout] 120 | pub fn from_bytes(msb: u8, lsb: u8) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `v` and `i` are never read [INFO] [stdout] --> src/chip8/registers.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Registers { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 5 | v: [u8; DATA_REGISTER_COUNT], [INFO] [stdout] | ^ [INFO] [stdout] 6 | pub i: u16, [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `Registers` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `read_v` and `write_v` are never used [INFO] [stdout] --> src/chip8/registers.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 10 | impl Registers { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 19 | pub fn read_v(&self, register: u8) -> u8 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn write_v(&mut self, register: u8, value: u8) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `StackOverflow` and `StackUnderflow` are never constructed [INFO] [stdout] --> src/chip8/stack.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 2 | pub enum StackError { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 3 | StackOverflow, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 4 | StackUnderflow, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `StackError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `stack` and `sp` are never read [INFO] [stdout] --> src/chip8/stack.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct Stack { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 11 | stack: [u16; STACK_SIZE], // Array to hold 16 levels of the stack [INFO] [stdout] | ^^^^^ [INFO] [stdout] 12 | sp: usize, // Stack pointer to track the current level (0-15) [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `Stack` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `push` and `pop` are never used [INFO] [stdout] --> src/chip8/stack.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl Stack { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn push(&mut self, value: u16) -> Result<(), StackError> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn pop(&mut self) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `delay_timer` and `sound_timer` are never read [INFO] [stdout] --> src/chip8/timers.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct Timers { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 3 | delay_timer: u8, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 4 | sound_timer: u8, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Timers` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_delay_timer`, `set_delay_timer`, `get_sound_timer`, `set_sound_timer`, and `decrement_timers` are never used [INFO] [stdout] --> src/chip8/timers.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 7 | impl Timers { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 15 | pub fn get_delay_timer(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | pub fn set_delay_timer(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn get_sound_timer(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn set_sound_timer(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | pub fn decrement_timers(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 27 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> src/chip8.rs:148:29 [INFO] [stdout] | [INFO] [stdout] 148 | Opcode::SysAddr(addr) => {} [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SPRITE_LEN` is never used [INFO] [stdout] --> src/chip8/display.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | pub const SPRITE_LEN: usize = 5; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `InvalidDrawPosition` is never constructed [INFO] [stdout] --> src/chip8/display.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 31 | pub enum DisplayError { [INFO] [stdout] | ------------ variant in this enum [INFO] [stdout] 32 | InvalidSprite(u8), [INFO] [stdout] 33 | InvalidDrawPosition(usize, usize), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DisplayError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Undefined` is never constructed [INFO] [stdout] --> src/chip8/opcodes.rs:67:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub enum Opcode { [INFO] [stdout] | ------ variant in this enum [INFO] [stdout] ... [INFO] [stdout] 67 | Undefined(u16), // For any opcode that doesn't match the above [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Opcode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/chip8.rs:943:9 [INFO] [stdout] | [INFO] [stdout] 943 | chip8.load_sprites(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 943 | let _ = chip8.load_sprites(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 7 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 10.77s [INFO] running `Command { std: "docker" "inspect" "d261c5eb026b43c473c6509d215a3682ea26e8af3b2782254e48bb39702aad86", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d261c5eb026b43c473c6509d215a3682ea26e8af3b2782254e48bb39702aad86", kill_on_drop: false }` [INFO] [stdout] d261c5eb026b43c473c6509d215a3682ea26e8af3b2782254e48bb39702aad86