[INFO] cloning repository https://github.com/alexandrelombard/rust-nes [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/alexandrelombard/rust-nes" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falexandrelombard%2Frust-nes", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falexandrelombard%2Frust-nes'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 3155c4b2eadf340712f7cd01e8859c648baaad41 [INFO] testing alexandrelombard/rust-nes against 1.60.0 for beta-1.61-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falexandrelombard%2Frust-nes" "/workspace/builds/worker-46/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-46/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/alexandrelombard/rust-nes on toolchain 1.60.0 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.60.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/alexandrelombard/rust-nes [INFO] finished tweaking git repo https://github.com/alexandrelombard/rust-nes [INFO] tweaked toml for git repo https://github.com/alexandrelombard/rust-nes written to /workspace/builds/worker-46/source/Cargo.toml [INFO] crate git repo https://github.com/alexandrelombard/rust-nes already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.60.0" "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 sdl2 v0.34.4 [INFO] [stderr] Downloaded sdl2-sys v0.34.4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-46/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-46/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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+1.60.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 2b6ef6f7d1446e29129b4be1c9c07c2445b06bf9a6f09e2837138a337e1f1b8b [INFO] running `Command { std: "docker" "start" "-a" "2b6ef6f7d1446e29129b4be1c9c07c2445b06bf9a6f09e2837138a337e1f1b8b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "2b6ef6f7d1446e29129b4be1c9c07c2445b06bf9a6f09e2837138a337e1f1b8b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2b6ef6f7d1446e29129b4be1c9c07c2445b06bf9a6f09e2837138a337e1f1b8b", kill_on_drop: false }` [INFO] [stdout] 2b6ef6f7d1446e29129b4be1c9c07c2445b06bf9a6f09e2837138a337e1f1b8b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-46/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-46/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=warn" "-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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+1.60.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] bf0fe391ea5a4b2d69b56ba4be702885719d0f20e956a1c2e6529f1a19c8ef2c [INFO] running `Command { std: "docker" "start" "-a" "bf0fe391ea5a4b2d69b56ba4be702885719d0f20e956a1c2e6529f1a19c8ef2c", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.93 [INFO] [stderr] Compiling version-compare v0.0.10 [INFO] [stderr] Compiling cfg-if v0.1.10 [INFO] [stderr] Compiling log v0.4.14 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling regex-syntax v0.6.23 [INFO] [stderr] Compiling sdl2 v0.34.4 [INFO] [stderr] Compiling humantime v2.1.0 [INFO] [stderr] Compiling termcolor v1.1.2 [INFO] [stderr] Compiling aho-corasick v0.7.15 [INFO] [stderr] Compiling sdl2-sys v0.34.4 [INFO] [stderr] Compiling regex v1.4.5 [INFO] [stderr] Compiling atty v0.2.14 [INFO] [stderr] Compiling env_logger v0.8.3 [INFO] [stderr] Compiling nes_emulator v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: variant `FOUR_SCREEN` should have an upper camel case name [INFO] [stdout] --> src/rom_file.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | FOUR_SCREEN [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to upper camel case: `FourScreen` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::rom_file::RomFile` [INFO] [stdout] --> src/cpu.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::rom_file::RomFile; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `error`, `info`, `warn` [INFO] [stdout] --> src/cpu.rs:4:18 [INFO] [stdout] | [INFO] [stdout] 4 | use log::{debug, info, error, warn}; [INFO] [stdout] | ^^^^ ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/ppu.rs:49:26 [INFO] [stdout] | [INFO] [stdout] 49 | let lb = ((self.vram[i + offset] & (0b10000000 >> j)) >> (7-j)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 49 - let lb = ((self.vram[i + offset] & (0b10000000 >> j)) >> (7-j)); [INFO] [stdout] 49 + let lb = (self.vram[i + offset] & (0b10000000 >> j)) >> (7-j); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug`, `info`, `warn` [INFO] [stdout] --> src/memory.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | use log::{debug, info, error, warn}; [INFO] [stdout] | ^^^^^ ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Canvas`, `RenderTarget`, `TextureAccess` [INFO] [stdout] --> src/nes_debug/sdl_ppu.rs:1:29 [INFO] [stdout] | [INFO] [stdout] 1 | use sdl2::render::{Texture, Canvas, RenderTarget, TextureAccess}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::pixels::PixelFormatEnum` [INFO] [stdout] --> src/nes_debug/sdl_ppu.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use sdl2::pixels::PixelFormatEnum; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `LevelFilter`, `Level`, `debug`, `error`, `log_enabled` [INFO] [stdout] --> src/nes_debug/sdl_ppu.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | use log::{LevelFilter, Level, log_enabled, debug, error}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PPU_CTRL` [INFO] [stdout] --> src/main.rs:8:29 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::memory::{Memory, PPU_CTRL}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::nes_debug::sdl_ppu` [INFO] [stdout] --> src/main.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::nes_debug::sdl_ppu; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PixelFormat` [INFO] [stdout] --> src/main.rs:16:27 [INFO] [stdout] | [INFO] [stdout] 16 | use sdl2::pixels::{Color, PixelFormat, PixelFormatEnum}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `LevelFilter`, `Level`, `debug`, `log_enabled` [INFO] [stdout] --> src/main.rs:20:11 [INFO] [stdout] | [INFO] [stdout] 20 | use log::{LevelFilter, Level, log_enabled, debug, error}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Canvas`, `TextureCreator` [INFO] [stdout] --> src/main.rs:22:20 [INFO] [stdout] | [INFO] [stdout] 22 | use sdl2::render::{Canvas, Texture, TextureAccess, TextureCreator}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::any::Any` [INFO] [stdout] --> src/main.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | use std::any::Any; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused label [INFO] [stdout] --> src/main.rs:81:13 [INFO] [stdout] | [INFO] [stdout] 81 | 'running: loop { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_labels)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `framebuffer` [INFO] [stdout] --> src/main.rs:46:13 [INFO] [stdout] | [INFO] [stdout] 46 | let mut framebuffer: [u8; 1024 * 256 * 3]; [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_framebuffer` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `texture` [INFO] [stdout] --> src/main.rs:48:13 [INFO] [stdout] | [INFO] [stdout] 48 | let mut texture = [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_texture` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `memory` [INFO] [stdout] --> src/main.rs:103:26 [INFO] [stdout] | [INFO] [stdout] 103 | pub fn handle_user_input(memory: &mut Memory, event_pump: &mut EventPump) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_memory` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tile_attr` [INFO] [stdout] --> src/main.rs:142:17 [INFO] [stdout] | [INFO] [stdout] 142 | let tile_attr = ppu.read_vram(0); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tile_attr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pixel` [INFO] [stdout] --> src/main.rs:145:17 [INFO] [stdout] | [INFO] [stdout] 145 | let pixel = ((ppu.read_vram(adr) >> (7 - (col % 8))) & 1) + (((ppu.read_vram(adr + 8) >> (7 - (col % 8))) & 1) * 2); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_pixel` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pitch` [INFO] [stdout] --> src/nes_debug/sdl_ppu.rs:27:49 [INFO] [stdout] | [INFO] [stdout] 27 | texture.with_lock(None, |buffer: &mut [u8], pitch: usize| { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_pitch` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 48 | let mut texture = [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `draw` [INFO] [stdout] --> src/main.rs:138:4 [INFO] [stdout] | [INFO] [stdout] 138 | fn draw(ppu: &Ppu, memory: &Memory, framebuffer: &mut [u8; 1024 * 256 * 3], texture: &mut Texture) { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `FLAG_CARTRIDGE_BATTERY` [INFO] [stdout] --> src/rom_file.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | const FLAG_CARTRIDGE_BATTERY: u8 = 0b00000010; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `FLAG_U` [INFO] [stdout] --> src/cpu.rs:16:1 [INFO] [stdout] | [INFO] [stdout] 16 | const FLAG_U: u8 = 0b00100000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `FLAG_NMI_OCCURRED` [INFO] [stdout] --> src/cpu.rs:20:1 [INFO] [stdout] | [INFO] [stdout] 20 | pub const FLAG_NMI_OCCURRED: u8 = 0b10000000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum is never used: `Instruction` [INFO] [stdout] --> src/cpu.rs:23:10 [INFO] [stdout] | [INFO] [stdout] 23 | pub enum Instruction { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `handle_nmi` [INFO] [stdout] --> src/cpu.rs:491:8 [INFO] [stdout] | [INFO] [stdout] 491 | fn handle_nmi(&mut self, memory: &mut Memory) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `adc` [INFO] [stdout] --> src/cpu.rs:562:8 [INFO] [stdout] | [INFO] [stdout] 562 | fn adc(&mut self, memory: &Memory, address: u16) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `add` [INFO] [stdout] --> src/cpu.rs:566:8 [INFO] [stdout] | [INFO] [stdout] 566 | fn add(&mut self, val: u8) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `inx` [INFO] [stdout] --> src/cpu.rs:714:8 [INFO] [stdout] | [INFO] [stdout] 714 | fn inx(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `lsr` [INFO] [stdout] --> src/cpu.rs:754:8 [INFO] [stdout] | [INFO] [stdout] 754 | fn lsr(&mut self, memory: &mut Memory, address: u16) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `pla` [INFO] [stdout] --> src/cpu.rs:787:8 [INFO] [stdout] | [INFO] [stdout] 787 | fn pla(&mut self, memory: &mut Memory) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `ror` [INFO] [stdout] --> src/cpu.rs:818:12 [INFO] [stdout] | [INFO] [stdout] 818 | pub fn ror(&mut self, memory: &mut Memory, address: u16) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `ror_akk` [INFO] [stdout] --> src/cpu.rs:828:12 [INFO] [stdout] | [INFO] [stdout] 828 | pub fn ror_akk(&mut self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `sbc` [INFO] [stdout] --> src/cpu.rs:851:8 [INFO] [stdout] | [INFO] [stdout] 851 | fn sbc(&mut self, memory: &Memory, address: u16) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `sed` [INFO] [stdout] --> src/cpu.rs:859:8 [INFO] [stdout] | [INFO] [stdout] 859 | fn sed(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `tax` [INFO] [stdout] --> src/cpu.rs:879:8 [INFO] [stdout] | [INFO] [stdout] 879 | fn tax(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `tay` [INFO] [stdout] --> src/cpu.rs:885:8 [INFO] [stdout] | [INFO] [stdout] 885 | fn tay(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `tsx` [INFO] [stdout] --> src/cpu.rs:891:8 [INFO] [stdout] | [INFO] [stdout] 891 | fn tsx(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `tya` [INFO] [stdout] --> src/cpu.rs:907:8 [INFO] [stdout] | [INFO] [stdout] 907 | fn tya(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `vram_data` [INFO] [stdout] --> src/ppu.rs:31:12 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn vram_data(&self) -> &[u8;0x4000] { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `read_vram` [INFO] [stdout] --> src/ppu.rs:35:12 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn read_vram(&self, address: u16) -> u8 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `write_vram` [INFO] [stdout] --> src/ppu.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 39 | pub fn write_vram(&mut self, address: u16, val: u8) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `get_vblank` [INFO] [stdout] --> src/ppu.rs:81:12 [INFO] [stdout] | [INFO] [stdout] 81 | pub fn get_vblank(&self, memory: &Memory) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `set_nmi_occurred` [INFO] [stdout] --> src/ppu.rs:97:12 [INFO] [stdout] | [INFO] [stdout] 97 | pub fn set_nmi_occurred(&self, memory: &mut Memory, status: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `NES_INTERNAL_RAM` [INFO] [stdout] --> src/memory.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub const NES_INTERNAL_RAM: u16 = 0x0000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `NES_PPU_REGISTERS` [INFO] [stdout] --> src/memory.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | pub const NES_PPU_REGISTERS: u16 = 0x2000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `NES_APU_IO_REGISTERS` [INFO] [stdout] --> src/memory.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | pub const NES_APU_IO_REGISTERS: u16 = 0x4000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `NES_CARTRIDGE_SPACE` [INFO] [stdout] --> src/memory.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub const NES_CARTRIDGE_SPACE: u16 = 0x4020; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `PPU_MASK` [INFO] [stdout] --> src/memory.rs:11:1 [INFO] [stdout] | [INFO] [stdout] 11 | pub const PPU_MASK: u16 = 0x2001; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `OAM_ADDR` [INFO] [stdout] --> src/memory.rs:13:1 [INFO] [stdout] | [INFO] [stdout] 13 | pub const OAM_ADDR: u16 = 0x2003; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `OAM_DATA` [INFO] [stdout] --> src/memory.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 | pub const OAM_DATA: u16 = 0x2004; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `PPU_SCROLL` [INFO] [stdout] --> src/memory.rs:15:1 [INFO] [stdout] | [INFO] [stdout] 15 | pub const PPU_SCROLL: u16 = 0x2005; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `PPU_ADDR` [INFO] [stdout] --> src/memory.rs:16:1 [INFO] [stdout] | [INFO] [stdout] 16 | pub const PPU_ADDR: u16 = 0x2006; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `PPU_DATA` [INFO] [stdout] --> src/memory.rs:17:1 [INFO] [stdout] | [INFO] [stdout] 17 | pub const PPU_DATA: u16 = 0x2007; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `OAM_DMA` [INFO] [stdout] --> src/memory.rs:18:1 [INFO] [stdout] | [INFO] [stdout] 18 | pub const OAM_DMA: u16 = 0x4014; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `FLAG_PPU_MASTER_SLAVE` [INFO] [stdout] --> src/memory.rs:21:1 [INFO] [stdout] | [INFO] [stdout] 21 | pub const FLAG_PPU_MASTER_SLAVE: u8 = 0b01000000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `FLAG_SPRITE_HEIGHT` [INFO] [stdout] --> src/memory.rs:22:1 [INFO] [stdout] | [INFO] [stdout] 22 | pub const FLAG_SPRITE_HEIGHT: u8 = 0b00100000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `FLAG_SPRITE_TILE_SELECT` [INFO] [stdout] --> src/memory.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | pub const FLAG_SPRITE_TILE_SELECT: u8 = 0b00001000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `FLAG_INCREMENT_MODE` [INFO] [stdout] --> src/memory.rs:25:1 [INFO] [stdout] | [INFO] [stdout] 25 | pub const FLAG_INCREMENT_MODE: u8 = 0b00000100; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `FLAG_NAMETABLE_SELECT` [INFO] [stdout] --> src/memory.rs:26:1 [INFO] [stdout] | [INFO] [stdout] 26 | pub const FLAG_NAMETABLE_SELECT: u8 = 0b00000011; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum is never used: `AddressingMode` [INFO] [stdout] --> src/memory.rs:28:10 [INFO] [stdout] | [INFO] [stdout] 28 | pub enum AddressingMode { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `JOY_RIGHT` [INFO] [stdout] --> src/controller.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | const JOY_RIGHT: u8 = 0b10000000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `JOY_LEFT` [INFO] [stdout] --> src/controller.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | const JOY_LEFT: u8 = 0b01000000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `JOY_DOWN` [INFO] [stdout] --> src/controller.rs:3:1 [INFO] [stdout] | [INFO] [stdout] 3 | const JOY_DOWN: u8 = 0b00100000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `JOY_UP` [INFO] [stdout] --> src/controller.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | const JOY_UP: u8 = 0b00010000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `JOY_START` [INFO] [stdout] --> src/controller.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | const JOY_START: u8 = 0b00001000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `JOY_SELECT` [INFO] [stdout] --> src/controller.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | const JOY_SELECT: u8 = 0b00000100; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `JOY_BUTTON_B` [INFO] [stdout] --> src/controller.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | const JOY_BUTTON_B: u8 = 0b00000010; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `JOY_BUTTON_A` [INFO] [stdout] --> src/controller.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | const JOY_BUTTON_A: u8 = 0b00000001; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `CONTROLLER_1_ADDRESS` [INFO] [stdout] --> src/controller.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | const CONTROLLER_1_ADDRESS: u16 = 0x4016; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `CONTROLLER_2_ADDRESS` [INFO] [stdout] --> src/controller.rs:11:1 [INFO] [stdout] | [INFO] [stdout] 11 | const CONTROLLER_2_ADDRESS: u16 = 0x4017; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/main.rs:91:17 [INFO] [stdout] | [INFO] [stdout] 91 | canvas.copy(&debug_chr_texture, None, Some(Rect::new(0, 0, 1024, 1024))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/main.rs:155:5 [INFO] [stdout] | [INFO] [stdout] 155 | texture.update(None, framebuffer, 256 * 3); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/ppu.rs:67:12 [INFO] [stdout] | [INFO] [stdout] 67 | if 0 <= self.scanline && self.scanline <= 239 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/nes_debug/sdl_ppu.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | / texture.with_lock(None, |buffer: &mut [u8], pitch: usize| { [INFO] [stdout] 28 | | for x in 0..16 { [INFO] [stdout] 29 | | for y in 0..16 { [INFO] [stdout] 30 | | let offset: usize = x as usize * tile_width + y as usize * line_width; [INFO] [stdout] ... | [INFO] [stdout] 42 | | [INFO] [stdout] 43 | | }); [INFO] [stdout] | |_______^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 77 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 37.45s [INFO] running `Command { std: "docker" "inspect" "bf0fe391ea5a4b2d69b56ba4be702885719d0f20e956a1c2e6529f1a19c8ef2c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "bf0fe391ea5a4b2d69b56ba4be702885719d0f20e956a1c2e6529f1a19c8ef2c", kill_on_drop: false }` [INFO] [stdout] bf0fe391ea5a4b2d69b56ba4be702885719d0f20e956a1c2e6529f1a19c8ef2c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-46/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-46/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=warn" "-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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+1.60.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 6f0080372e990657bf5e3f975244884a10dba5359a758609f7496de312775cb3 [INFO] running `Command { std: "docker" "start" "-a" "6f0080372e990657bf5e3f975244884a10dba5359a758609f7496de312775cb3", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Compiling nes_emulator v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: variant `FOUR_SCREEN` should have an upper camel case name [INFO] [stdout] --> src/rom_file.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | FOUR_SCREEN [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to upper camel case: `FourScreen` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::rom_file::RomFile` [INFO] [stdout] --> src/cpu.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::rom_file::RomFile; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `error`, `info`, `warn` [INFO] [stdout] --> src/cpu.rs:4:18 [INFO] [stdout] | [INFO] [stdout] 4 | use log::{debug, info, error, warn}; [INFO] [stdout] | ^^^^ ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/ppu.rs:49:26 [INFO] [stdout] | [INFO] [stdout] 49 | let lb = ((self.vram[i + offset] & (0b10000000 >> j)) >> (7-j)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 49 - let lb = ((self.vram[i + offset] & (0b10000000 >> j)) >> (7-j)); [INFO] [stdout] 49 + let lb = (self.vram[i + offset] & (0b10000000 >> j)) >> (7-j); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug`, `info`, `warn` [INFO] [stdout] --> src/memory.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | use log::{debug, info, error, warn}; [INFO] [stdout] | ^^^^^ ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Canvas`, `RenderTarget`, `TextureAccess` [INFO] [stdout] --> src/nes_debug/sdl_ppu.rs:1:29 [INFO] [stdout] | [INFO] [stdout] 1 | use sdl2::render::{Texture, Canvas, RenderTarget, TextureAccess}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::pixels::PixelFormatEnum` [INFO] [stdout] --> src/nes_debug/sdl_ppu.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use sdl2::pixels::PixelFormatEnum; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `LevelFilter`, `Level`, `debug`, `error`, `log_enabled` [INFO] [stdout] --> src/nes_debug/sdl_ppu.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | use log::{LevelFilter, Level, log_enabled, debug, error}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PPU_CTRL` [INFO] [stdout] --> src/main.rs:8:29 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::memory::{Memory, PPU_CTRL}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::nes_debug::sdl_ppu` [INFO] [stdout] --> src/main.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::nes_debug::sdl_ppu; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PixelFormat` [INFO] [stdout] --> src/main.rs:16:27 [INFO] [stdout] | [INFO] [stdout] 16 | use sdl2::pixels::{Color, PixelFormat, PixelFormatEnum}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `LevelFilter`, `Level`, `debug`, `log_enabled` [INFO] [stdout] --> src/main.rs:20:11 [INFO] [stdout] | [INFO] [stdout] 20 | use log::{LevelFilter, Level, log_enabled, debug, error}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Canvas`, `TextureCreator` [INFO] [stdout] --> src/main.rs:22:20 [INFO] [stdout] | [INFO] [stdout] 22 | use sdl2::render::{Canvas, Texture, TextureAccess, TextureCreator}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::any::Any` [INFO] [stdout] --> src/main.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | use std::any::Any; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused label [INFO] [stdout] --> src/main.rs:81:13 [INFO] [stdout] | [INFO] [stdout] 81 | 'running: loop { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_labels)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `framebuffer` [INFO] [stdout] --> src/main.rs:46:13 [INFO] [stdout] | [INFO] [stdout] 46 | let mut framebuffer: [u8; 1024 * 256 * 3]; [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_framebuffer` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `texture` [INFO] [stdout] --> src/main.rs:48:13 [INFO] [stdout] | [INFO] [stdout] 48 | let mut texture = [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_texture` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `memory` [INFO] [stdout] --> src/main.rs:103:26 [INFO] [stdout] | [INFO] [stdout] 103 | pub fn handle_user_input(memory: &mut Memory, event_pump: &mut EventPump) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_memory` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tile_attr` [INFO] [stdout] --> src/main.rs:142:17 [INFO] [stdout] | [INFO] [stdout] 142 | let tile_attr = ppu.read_vram(0); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tile_attr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pixel` [INFO] [stdout] --> src/main.rs:145:17 [INFO] [stdout] | [INFO] [stdout] 145 | let pixel = ((ppu.read_vram(adr) >> (7 - (col % 8))) & 1) + (((ppu.read_vram(adr + 8) >> (7 - (col % 8))) & 1) * 2); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_pixel` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pitch` [INFO] [stdout] --> src/nes_debug/sdl_ppu.rs:27:49 [INFO] [stdout] | [INFO] [stdout] 27 | texture.with_lock(None, |buffer: &mut [u8], pitch: usize| { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_pitch` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 48 | let mut texture = [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `draw` [INFO] [stdout] --> src/main.rs:138:4 [INFO] [stdout] | [INFO] [stdout] 138 | fn draw(ppu: &Ppu, memory: &Memory, framebuffer: &mut [u8; 1024 * 256 * 3], texture: &mut Texture) { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `FLAG_CARTRIDGE_BATTERY` [INFO] [stdout] --> src/rom_file.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | const FLAG_CARTRIDGE_BATTERY: u8 = 0b00000010; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `FLAG_U` [INFO] [stdout] --> src/cpu.rs:16:1 [INFO] [stdout] | [INFO] [stdout] 16 | const FLAG_U: u8 = 0b00100000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `FLAG_NMI_OCCURRED` [INFO] [stdout] --> src/cpu.rs:20:1 [INFO] [stdout] | [INFO] [stdout] 20 | pub const FLAG_NMI_OCCURRED: u8 = 0b10000000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum is never used: `Instruction` [INFO] [stdout] --> src/cpu.rs:23:10 [INFO] [stdout] | [INFO] [stdout] 23 | pub enum Instruction { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `handle_nmi` [INFO] [stdout] --> src/cpu.rs:491:8 [INFO] [stdout] | [INFO] [stdout] 491 | fn handle_nmi(&mut self, memory: &mut Memory) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `adc` [INFO] [stdout] --> src/cpu.rs:562:8 [INFO] [stdout] | [INFO] [stdout] 562 | fn adc(&mut self, memory: &Memory, address: u16) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `add` [INFO] [stdout] --> src/cpu.rs:566:8 [INFO] [stdout] | [INFO] [stdout] 566 | fn add(&mut self, val: u8) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `inx` [INFO] [stdout] --> src/cpu.rs:714:8 [INFO] [stdout] | [INFO] [stdout] 714 | fn inx(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `lsr` [INFO] [stdout] --> src/cpu.rs:754:8 [INFO] [stdout] | [INFO] [stdout] 754 | fn lsr(&mut self, memory: &mut Memory, address: u16) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `pla` [INFO] [stdout] --> src/cpu.rs:787:8 [INFO] [stdout] | [INFO] [stdout] 787 | fn pla(&mut self, memory: &mut Memory) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `ror` [INFO] [stdout] --> src/cpu.rs:818:12 [INFO] [stdout] | [INFO] [stdout] 818 | pub fn ror(&mut self, memory: &mut Memory, address: u16) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `ror_akk` [INFO] [stdout] --> src/cpu.rs:828:12 [INFO] [stdout] | [INFO] [stdout] 828 | pub fn ror_akk(&mut self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `sbc` [INFO] [stdout] --> src/cpu.rs:851:8 [INFO] [stdout] | [INFO] [stdout] 851 | fn sbc(&mut self, memory: &Memory, address: u16) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `sed` [INFO] [stdout] --> src/cpu.rs:859:8 [INFO] [stdout] | [INFO] [stdout] 859 | fn sed(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `tax` [INFO] [stdout] --> src/cpu.rs:879:8 [INFO] [stdout] | [INFO] [stdout] 879 | fn tax(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `tay` [INFO] [stdout] --> src/cpu.rs:885:8 [INFO] [stdout] | [INFO] [stdout] 885 | fn tay(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `tsx` [INFO] [stdout] --> src/cpu.rs:891:8 [INFO] [stdout] | [INFO] [stdout] 891 | fn tsx(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `tya` [INFO] [stdout] --> src/cpu.rs:907:8 [INFO] [stdout] | [INFO] [stdout] 907 | fn tya(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `vram_data` [INFO] [stdout] --> src/ppu.rs:31:12 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn vram_data(&self) -> &[u8;0x4000] { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `read_vram` [INFO] [stdout] --> src/ppu.rs:35:12 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn read_vram(&self, address: u16) -> u8 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `write_vram` [INFO] [stdout] --> src/ppu.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 39 | pub fn write_vram(&mut self, address: u16, val: u8) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `get_vblank` [INFO] [stdout] --> src/ppu.rs:81:12 [INFO] [stdout] | [INFO] [stdout] 81 | pub fn get_vblank(&self, memory: &Memory) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `set_nmi_occurred` [INFO] [stdout] --> src/ppu.rs:97:12 [INFO] [stdout] | [INFO] [stdout] 97 | pub fn set_nmi_occurred(&self, memory: &mut Memory, status: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `NES_INTERNAL_RAM` [INFO] [stdout] --> src/memory.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub const NES_INTERNAL_RAM: u16 = 0x0000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `NES_PPU_REGISTERS` [INFO] [stdout] --> src/memory.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | pub const NES_PPU_REGISTERS: u16 = 0x2000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `NES_APU_IO_REGISTERS` [INFO] [stdout] --> src/memory.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | pub const NES_APU_IO_REGISTERS: u16 = 0x4000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `NES_CARTRIDGE_SPACE` [INFO] [stdout] --> src/memory.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub const NES_CARTRIDGE_SPACE: u16 = 0x4020; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `PPU_MASK` [INFO] [stdout] --> src/memory.rs:11:1 [INFO] [stdout] | [INFO] [stdout] 11 | pub const PPU_MASK: u16 = 0x2001; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `OAM_ADDR` [INFO] [stdout] --> src/memory.rs:13:1 [INFO] [stdout] | [INFO] [stdout] 13 | pub const OAM_ADDR: u16 = 0x2003; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `OAM_DATA` [INFO] [stdout] --> src/memory.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 | pub const OAM_DATA: u16 = 0x2004; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `PPU_SCROLL` [INFO] [stdout] --> src/memory.rs:15:1 [INFO] [stdout] | [INFO] [stdout] 15 | pub const PPU_SCROLL: u16 = 0x2005; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `PPU_ADDR` [INFO] [stdout] --> src/memory.rs:16:1 [INFO] [stdout] | [INFO] [stdout] 16 | pub const PPU_ADDR: u16 = 0x2006; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `PPU_DATA` [INFO] [stdout] --> src/memory.rs:17:1 [INFO] [stdout] | [INFO] [stdout] 17 | pub const PPU_DATA: u16 = 0x2007; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `OAM_DMA` [INFO] [stdout] --> src/memory.rs:18:1 [INFO] [stdout] | [INFO] [stdout] 18 | pub const OAM_DMA: u16 = 0x4014; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `FLAG_PPU_MASTER_SLAVE` [INFO] [stdout] --> src/memory.rs:21:1 [INFO] [stdout] | [INFO] [stdout] 21 | pub const FLAG_PPU_MASTER_SLAVE: u8 = 0b01000000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `FLAG_SPRITE_HEIGHT` [INFO] [stdout] --> src/memory.rs:22:1 [INFO] [stdout] | [INFO] [stdout] 22 | pub const FLAG_SPRITE_HEIGHT: u8 = 0b00100000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `FLAG_SPRITE_TILE_SELECT` [INFO] [stdout] --> src/memory.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | pub const FLAG_SPRITE_TILE_SELECT: u8 = 0b00001000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `FLAG_INCREMENT_MODE` [INFO] [stdout] --> src/memory.rs:25:1 [INFO] [stdout] | [INFO] [stdout] 25 | pub const FLAG_INCREMENT_MODE: u8 = 0b00000100; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `FLAG_NAMETABLE_SELECT` [INFO] [stdout] --> src/memory.rs:26:1 [INFO] [stdout] | [INFO] [stdout] 26 | pub const FLAG_NAMETABLE_SELECT: u8 = 0b00000011; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum is never used: `AddressingMode` [INFO] [stdout] --> src/memory.rs:28:10 [INFO] [stdout] | [INFO] [stdout] 28 | pub enum AddressingMode { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `JOY_RIGHT` [INFO] [stdout] --> src/controller.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | const JOY_RIGHT: u8 = 0b10000000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `JOY_LEFT` [INFO] [stdout] --> src/controller.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | const JOY_LEFT: u8 = 0b01000000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `JOY_DOWN` [INFO] [stdout] --> src/controller.rs:3:1 [INFO] [stdout] | [INFO] [stdout] 3 | const JOY_DOWN: u8 = 0b00100000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `JOY_UP` [INFO] [stdout] --> src/controller.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | const JOY_UP: u8 = 0b00010000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `JOY_START` [INFO] [stdout] --> src/controller.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | const JOY_START: u8 = 0b00001000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `JOY_SELECT` [INFO] [stdout] --> src/controller.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | const JOY_SELECT: u8 = 0b00000100; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `JOY_BUTTON_B` [INFO] [stdout] --> src/controller.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | const JOY_BUTTON_B: u8 = 0b00000010; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `JOY_BUTTON_A` [INFO] [stdout] --> src/controller.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | const JOY_BUTTON_A: u8 = 0b00000001; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `CONTROLLER_1_ADDRESS` [INFO] [stdout] --> src/controller.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | const CONTROLLER_1_ADDRESS: u16 = 0x4016; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `CONTROLLER_2_ADDRESS` [INFO] [stdout] --> src/controller.rs:11:1 [INFO] [stdout] | [INFO] [stdout] 11 | const CONTROLLER_2_ADDRESS: u16 = 0x4017; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/main.rs:91:17 [INFO] [stdout] | [INFO] [stdout] 91 | canvas.copy(&debug_chr_texture, None, Some(Rect::new(0, 0, 1024, 1024))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/main.rs:155:5 [INFO] [stdout] | [INFO] [stdout] 155 | texture.update(None, framebuffer, 256 * 3); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/ppu.rs:67:12 [INFO] [stdout] | [INFO] [stdout] 67 | if 0 <= self.scanline && self.scanline <= 239 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/nes_debug/sdl_ppu.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | / texture.with_lock(None, |buffer: &mut [u8], pitch: usize| { [INFO] [stdout] 28 | | for x in 0..16 { [INFO] [stdout] 29 | | for y in 0..16 { [INFO] [stdout] 30 | | let offset: usize = x as usize * tile_width + y as usize * line_width; [INFO] [stdout] ... | [INFO] [stdout] 42 | | [INFO] [stdout] 43 | | }); [INFO] [stdout] | |_______^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 77 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 5.30s [INFO] running `Command { std: "docker" "inspect" "6f0080372e990657bf5e3f975244884a10dba5359a758609f7496de312775cb3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6f0080372e990657bf5e3f975244884a10dba5359a758609f7496de312775cb3", kill_on_drop: false }` [INFO] [stdout] 6f0080372e990657bf5e3f975244884a10dba5359a758609f7496de312775cb3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-46/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-46/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=warn" "-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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+1.60.0" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 09df77569121218c47fac0067b7e8681225738ea9211154dc2a3cc59fdd90d2d [INFO] running `Command { std: "docker" "start" "-a" "09df77569121218c47fac0067b7e8681225738ea9211154dc2a3cc59fdd90d2d", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] warning: variant `FOUR_SCREEN` should have an upper camel case name [INFO] [stderr] --> src/rom_file.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | FOUR_SCREEN [INFO] [stderr] | ^^^^^^^^^^^ help: convert the identifier to upper camel case: `FourScreen` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::rom_file::RomFile` [INFO] [stderr] --> src/cpu.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::rom_file::RomFile; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `error`, `info`, `warn` [INFO] [stderr] --> src/cpu.rs:4:18 [INFO] [stderr] | [INFO] [stderr] 4 | use log::{debug, info, error, warn}; [INFO] [stderr] | ^^^^ ^^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/ppu.rs:49:26 [INFO] [stderr] | [INFO] [stderr] 49 | let lb = ((self.vram[i + offset] & (0b10000000 >> j)) >> (7-j)); [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 49 - let lb = ((self.vram[i + offset] & (0b10000000 >> j)) >> (7-j)); [INFO] [stderr] 49 + let lb = (self.vram[i + offset] & (0b10000000 >> j)) >> (7-j); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused imports: `debug`, `info`, `warn` [INFO] [stderr] --> src/memory.rs:3:11 [INFO] [stderr] | [INFO] [stderr] 3 | use log::{debug, info, error, warn}; [INFO] [stderr] | ^^^^^ ^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Canvas`, `RenderTarget`, `TextureAccess` [INFO] [stderr] --> src/nes_debug/sdl_ppu.rs:1:29 [INFO] [stderr] | [INFO] [stderr] 1 | use sdl2::render::{Texture, Canvas, RenderTarget, TextureAccess}; [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `sdl2::pixels::PixelFormatEnum` [INFO] [stderr] --> src/nes_debug/sdl_ppu.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use sdl2::pixels::PixelFormatEnum; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `LevelFilter`, `Level`, `debug`, `error`, `log_enabled` [INFO] [stderr] --> src/nes_debug/sdl_ppu.rs:5:11 [INFO] [stderr] | [INFO] [stderr] 5 | use log::{LevelFilter, Level, log_enabled, debug, error}; [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `PPU_CTRL` [INFO] [stderr] --> src/main.rs:8:29 [INFO] [stderr] | [INFO] [stderr] 8 | use crate::memory::{Memory, PPU_CTRL}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::nes_debug::sdl_ppu` [INFO] [stderr] --> src/main.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | use crate::nes_debug::sdl_ppu; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `PixelFormat` [INFO] [stderr] --> src/main.rs:16:27 [INFO] [stderr] | [INFO] [stderr] 16 | use sdl2::pixels::{Color, PixelFormat, PixelFormatEnum}; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `LevelFilter`, `Level`, `debug`, `log_enabled` [INFO] [stderr] --> src/main.rs:20:11 [INFO] [stderr] | [INFO] [stderr] 20 | use log::{LevelFilter, Level, log_enabled, debug, error}; [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Canvas`, `TextureCreator` [INFO] [stderr] --> src/main.rs:22:20 [INFO] [stderr] | [INFO] [stderr] 22 | use sdl2::render::{Canvas, Texture, TextureAccess, TextureCreator}; [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::any::Any` [INFO] [stderr] --> src/main.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | use std::any::Any; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused label [INFO] [stderr] --> src/main.rs:81:13 [INFO] [stderr] | [INFO] [stderr] 81 | 'running: loop { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_labels)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `framebuffer` [INFO] [stderr] --> src/main.rs:46:13 [INFO] [stderr] | [INFO] [stderr] 46 | let mut framebuffer: [u8; 1024 * 256 * 3]; [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_framebuffer` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `texture` [INFO] [stderr] --> src/main.rs:48:13 [INFO] [stderr] | [INFO] [stderr] 48 | let mut texture = [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_texture` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `memory` [INFO] [stderr] --> src/main.rs:103:26 [INFO] [stderr] | [INFO] [stderr] 103 | pub fn handle_user_input(memory: &mut Memory, event_pump: &mut EventPump) { [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_memory` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `tile_attr` [INFO] [stderr] --> src/main.rs:142:17 [INFO] [stderr] | [INFO] [stderr] 142 | let tile_attr = ppu.read_vram(0); [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tile_attr` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `pixel` [INFO] [stderr] --> src/main.rs:145:17 [INFO] [stderr] | [INFO] [stderr] 145 | let pixel = ((ppu.read_vram(adr) >> (7 - (col % 8))) & 1) + (((ppu.read_vram(adr + 8) >> (7 - (col % 8))) & 1) * 2); [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_pixel` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `pitch` [INFO] [stderr] --> src/nes_debug/sdl_ppu.rs:27:49 [INFO] [stderr] | [INFO] [stderr] 27 | texture.with_lock(None, |buffer: &mut [u8], pitch: usize| { [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_pitch` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:48:9 [INFO] [stderr] | [INFO] [stderr] 48 | let mut texture = [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `draw` [INFO] [stderr] --> src/main.rs:138:4 [INFO] [stderr] | [INFO] [stderr] 138 | fn draw(ppu: &Ppu, memory: &Memory, framebuffer: &mut [u8; 1024 * 256 * 3], texture: &mut Texture) { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `FLAG_CARTRIDGE_BATTERY` [INFO] [stderr] --> src/rom_file.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | const FLAG_CARTRIDGE_BATTERY: u8 = 0b00000010; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `FLAG_U` [INFO] [stderr] --> src/cpu.rs:16:1 [INFO] [stderr] | [INFO] [stderr] 16 | const FLAG_U: u8 = 0b00100000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `FLAG_NMI_OCCURRED` [INFO] [stderr] --> src/cpu.rs:20:1 [INFO] [stderr] | [INFO] [stderr] 20 | pub const FLAG_NMI_OCCURRED: u8 = 0b10000000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `Instruction` [INFO] [stderr] --> src/cpu.rs:23:10 [INFO] [stderr] | [INFO] [stderr] 23 | pub enum Instruction { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `handle_nmi` [INFO] [stderr] --> src/cpu.rs:491:8 [INFO] [stderr] | [INFO] [stderr] 491 | fn handle_nmi(&mut self, memory: &mut Memory) { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `adc` [INFO] [stderr] --> src/cpu.rs:562:8 [INFO] [stderr] | [INFO] [stderr] 562 | fn adc(&mut self, memory: &Memory, address: u16) { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `add` [INFO] [stderr] --> src/cpu.rs:566:8 [INFO] [stderr] | [INFO] [stderr] 566 | fn add(&mut self, val: u8) { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `inx` [INFO] [stderr] --> src/cpu.rs:714:8 [INFO] [stderr] | [INFO] [stderr] 714 | fn inx(&mut self) { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `lsr` [INFO] [stderr] --> src/cpu.rs:754:8 [INFO] [stderr] | [INFO] [stderr] 754 | fn lsr(&mut self, memory: &mut Memory, address: u16) { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `pla` [INFO] [stderr] --> src/cpu.rs:787:8 [INFO] [stderr] | [INFO] [stderr] 787 | fn pla(&mut self, memory: &mut Memory) { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `ror` [INFO] [stderr] --> src/cpu.rs:818:12 [INFO] [stderr] | [INFO] [stderr] 818 | pub fn ror(&mut self, memory: &mut Memory, address: u16) { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `ror_akk` [INFO] [stderr] --> src/cpu.rs:828:12 [INFO] [stderr] | [INFO] [stderr] 828 | pub fn ror_akk(&mut self) { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `sbc` [INFO] [stderr] --> src/cpu.rs:851:8 [INFO] [stderr] | [INFO] [stderr] 851 | fn sbc(&mut self, memory: &Memory, address: u16) { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `sed` [INFO] [stderr] --> src/cpu.rs:859:8 [INFO] [stderr] | [INFO] [stderr] 859 | fn sed(&mut self) { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `tax` [INFO] [stderr] --> src/cpu.rs:879:8 [INFO] [stderr] | [INFO] [stderr] 879 | fn tax(&mut self) { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `tay` [INFO] [stderr] --> src/cpu.rs:885:8 [INFO] [stderr] | [INFO] [stderr] 885 | fn tay(&mut self) { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `tsx` [INFO] [stderr] --> src/cpu.rs:891:8 [INFO] [stderr] | [INFO] [stderr] 891 | fn tsx(&mut self) { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `tya` [INFO] [stderr] --> src/cpu.rs:907:8 [INFO] [stderr] | [INFO] [stderr] 907 | fn tya(&mut self) { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `vram_data` [INFO] [stderr] --> src/ppu.rs:31:12 [INFO] [stderr] | [INFO] [stderr] 31 | pub fn vram_data(&self) -> &[u8;0x4000] { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `read_vram` [INFO] [stderr] --> src/ppu.rs:35:12 [INFO] [stderr] | [INFO] [stderr] 35 | pub fn read_vram(&self, address: u16) -> u8 { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `write_vram` [INFO] [stderr] --> src/ppu.rs:39:12 [INFO] [stderr] | [INFO] [stderr] 39 | pub fn write_vram(&mut self, address: u16, val: u8) { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `get_vblank` [INFO] [stderr] --> src/ppu.rs:81:12 [INFO] [stderr] | [INFO] [stderr] 81 | pub fn get_vblank(&self, memory: &Memory) -> bool { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `set_nmi_occurred` [INFO] [stderr] --> src/ppu.rs:97:12 [INFO] [stderr] | [INFO] [stderr] 97 | pub fn set_nmi_occurred(&self, memory: &mut Memory, status: bool) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `NES_INTERNAL_RAM` [INFO] [stderr] --> src/memory.rs:5:1 [INFO] [stderr] | [INFO] [stderr] 5 | pub const NES_INTERNAL_RAM: u16 = 0x0000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `NES_PPU_REGISTERS` [INFO] [stderr] --> src/memory.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | pub const NES_PPU_REGISTERS: u16 = 0x2000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `NES_APU_IO_REGISTERS` [INFO] [stderr] --> src/memory.rs:7:1 [INFO] [stderr] | [INFO] [stderr] 7 | pub const NES_APU_IO_REGISTERS: u16 = 0x4000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `NES_CARTRIDGE_SPACE` [INFO] [stderr] --> src/memory.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | pub const NES_CARTRIDGE_SPACE: u16 = 0x4020; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `PPU_MASK` [INFO] [stderr] --> src/memory.rs:11:1 [INFO] [stderr] | [INFO] [stderr] 11 | pub const PPU_MASK: u16 = 0x2001; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `OAM_ADDR` [INFO] [stderr] --> src/memory.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | pub const OAM_ADDR: u16 = 0x2003; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `OAM_DATA` [INFO] [stderr] --> src/memory.rs:14:1 [INFO] [stderr] | [INFO] [stderr] 14 | pub const OAM_DATA: u16 = 0x2004; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `PPU_SCROLL` [INFO] [stderr] --> src/memory.rs:15:1 [INFO] [stderr] | [INFO] [stderr] 15 | pub const PPU_SCROLL: u16 = 0x2005; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `PPU_ADDR` [INFO] [stderr] --> src/memory.rs:16:1 [INFO] [stderr] | [INFO] [stderr] 16 | pub const PPU_ADDR: u16 = 0x2006; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `PPU_DATA` [INFO] [stderr] --> src/memory.rs:17:1 [INFO] [stderr] | [INFO] [stderr] 17 | pub const PPU_DATA: u16 = 0x2007; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `OAM_DMA` [INFO] [stderr] --> src/memory.rs:18:1 [INFO] [stderr] | [INFO] [stderr] 18 | pub const OAM_DMA: u16 = 0x4014; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `FLAG_PPU_MASTER_SLAVE` [INFO] [stderr] --> src/memory.rs:21:1 [INFO] [stderr] | [INFO] [stderr] 21 | pub const FLAG_PPU_MASTER_SLAVE: u8 = 0b01000000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `FLAG_SPRITE_HEIGHT` [INFO] [stderr] --> src/memory.rs:22:1 [INFO] [stderr] | [INFO] [stderr] 22 | pub const FLAG_SPRITE_HEIGHT: u8 = 0b00100000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `FLAG_SPRITE_TILE_SELECT` [INFO] [stderr] --> src/memory.rs:24:1 [INFO] [stderr] | [INFO] [stderr] 24 | pub const FLAG_SPRITE_TILE_SELECT: u8 = 0b00001000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `FLAG_INCREMENT_MODE` [INFO] [stderr] --> src/memory.rs:25:1 [INFO] [stderr] | [INFO] [stderr] 25 | pub const FLAG_INCREMENT_MODE: u8 = 0b00000100; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `FLAG_NAMETABLE_SELECT` [INFO] [stderr] --> src/memory.rs:26:1 [INFO] [stderr] | [INFO] [stderr] 26 | pub const FLAG_NAMETABLE_SELECT: u8 = 0b00000011; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `AddressingMode` [INFO] [stderr] --> src/memory.rs:28:10 [INFO] [stderr] | [INFO] [stderr] 28 | pub enum AddressingMode { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `JOY_RIGHT` [INFO] [stderr] --> src/controller.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | const JOY_RIGHT: u8 = 0b10000000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `JOY_LEFT` [INFO] [stderr] --> src/controller.rs:2:1 [INFO] [stderr] | [INFO] [stderr] 2 | const JOY_LEFT: u8 = 0b01000000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `JOY_DOWN` [INFO] [stderr] --> src/controller.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | const JOY_DOWN: u8 = 0b00100000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `JOY_UP` [INFO] [stderr] --> src/controller.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | const JOY_UP: u8 = 0b00010000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `JOY_START` [INFO] [stderr] --> src/controller.rs:5:1 [INFO] [stderr] | [INFO] [stderr] 5 | const JOY_START: u8 = 0b00001000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `JOY_SELECT` [INFO] [stderr] --> src/controller.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | const JOY_SELECT: u8 = 0b00000100; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `JOY_BUTTON_B` [INFO] [stderr] --> src/controller.rs:7:1 [INFO] [stderr] | [INFO] [stderr] 7 | const JOY_BUTTON_B: u8 = 0b00000010; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `JOY_BUTTON_A` [INFO] [stderr] --> src/controller.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | const JOY_BUTTON_A: u8 = 0b00000001; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `CONTROLLER_1_ADDRESS` [INFO] [stderr] --> src/controller.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | const CONTROLLER_1_ADDRESS: u16 = 0x4016; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `CONTROLLER_2_ADDRESS` [INFO] [stderr] --> src/controller.rs:11:1 [INFO] [stderr] | [INFO] [stderr] 11 | const CONTROLLER_2_ADDRESS: u16 = 0x4017; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/main.rs:91:17 [INFO] [stderr] | [INFO] [stderr] 91 | canvas.copy(&debug_chr_texture, None, Some(Rect::new(0, 0, 1024, 1024))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/main.rs:155:5 [INFO] [stderr] | [INFO] [stderr] 155 | texture.update(None, framebuffer, 256 * 3); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/ppu.rs:67:12 [INFO] [stderr] | [INFO] [stderr] 67 | if 0 <= self.scanline && self.scanline <= 239 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_comparisons)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/nes_debug/sdl_ppu.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | / texture.with_lock(None, |buffer: &mut [u8], pitch: usize| { [INFO] [stderr] 28 | | for x in 0..16 { [INFO] [stderr] 29 | | for y in 0..16 { [INFO] [stderr] 30 | | let offset: usize = x as usize * tile_width + y as usize * line_width; [INFO] [stderr] ... | [INFO] [stderr] 42 | | [INFO] [stderr] 43 | | }); [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: `nes_emulator` (bin "nes_emulator" test) generated 77 warnings [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 8.50s [INFO] [stderr] Running unittests (/opt/rustwide/target/debug/deps/nes_emulator-1107356548792bd3) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "09df77569121218c47fac0067b7e8681225738ea9211154dc2a3cc59fdd90d2d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "09df77569121218c47fac0067b7e8681225738ea9211154dc2a3cc59fdd90d2d", kill_on_drop: false }` [INFO] [stdout] 09df77569121218c47fac0067b7e8681225738ea9211154dc2a3cc59fdd90d2d