[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] building alexandrelombard/rust-nes against master#11663cd3bfefef7d34e8f0892c250bf698049392+rustflags=-Dtail-expr-drop-order for pr-134523 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falexandrelombard%2Frust-nes" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/alexandrelombard/rust-nes on toolchain 11663cd3bfefef7d34e8f0892c250bf698049392 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "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-7-tc1/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: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [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-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 1dd1400799b7025fc00f7018e1dfbcf97da336961d15c03a77490336dbe341a0 [INFO] running `Command { std: "docker" "start" "-a" "1dd1400799b7025fc00f7018e1dfbcf97da336961d15c03a77490336dbe341a0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "1dd1400799b7025fc00f7018e1dfbcf97da336961d15c03a77490336dbe341a0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1dd1400799b7025fc00f7018e1dfbcf97da336961d15c03a77490336dbe341a0", kill_on_drop: false }` [INFO] [stdout] 1dd1400799b7025fc00f7018e1dfbcf97da336961d15c03a77490336dbe341a0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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 -Dtail-expr-drop-order" "-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] b272137cf74ab10d6f650f2007c1aa45ed45087ed79a6ea9b3105938076c69bd [INFO] running `Command { std: "docker" "start" "-a" "b272137cf74ab10d6f650f2007c1aa45ed45087ed79a6ea9b3105938076c69bd", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.93 [INFO] [stderr] Compiling version-compare v0.0.10 [INFO] [stderr] Compiling memchr v2.3.4 [INFO] [stderr] Compiling cfg-if v0.1.10 [INFO] [stderr] Compiling bitflags v1.2.1 [INFO] [stderr] Compiling log v0.4.14 [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 sdl2-sys v0.34.4 [INFO] [stderr] Compiling lazy_static v1.4.0 [INFO] [stderr] Compiling aho-corasick v0.7.15 [INFO] [stderr] Compiling atty v0.2.14 [INFO] [stderr] Compiling regex v1.4.5 [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`, and `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`, and `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`, and `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`, and `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`, and `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` and `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: `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] = note: `#[warn(unused_variables)]` 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] [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: 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: 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: function `draw` is never used [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 `FLAG_CARTRIDGE_BATTERY` is never used [INFO] [stdout] --> src/rom_file.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const FLAG_CARTRIDGE_BATTERY: u8 = 0b00000010; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FLAG_U` is never used [INFO] [stdout] --> src/cpu.rs:16:7 [INFO] [stdout] | [INFO] [stdout] 16 | const FLAG_U: u8 = 0b00100000; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FLAG_NMI_OCCURRED` is never used [INFO] [stdout] --> src/cpu.rs:20:11 [INFO] [stdout] | [INFO] [stdout] 20 | pub const FLAG_NMI_OCCURRED: u8 = 0b10000000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Instruction` is never used [INFO] [stdout] --> src/cpu.rs:23:10 [INFO] [stdout] | [INFO] [stdout] 23 | pub enum Instruction { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/cpu.rs:491:8 [INFO] [stdout] | [INFO] [stdout] 98 | impl Cpu { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 491 | fn handle_nmi(&mut self, memory: &mut Memory) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 562 | fn adc(&mut self, memory: &Memory, address: u16) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 566 | fn add(&mut self, val: u8) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 714 | fn inx(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 754 | fn lsr(&mut self, memory: &mut Memory, address: u16) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 787 | fn pla(&mut self, memory: &mut Memory) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 818 | pub fn ror(&mut self, memory: &mut Memory, address: u16) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 828 | pub fn ror_akk(&mut self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 851 | fn sbc(&mut self, memory: &Memory, address: u16) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 859 | fn sed(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 879 | fn tax(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 885 | fn tay(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 891 | fn tsx(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 907 | fn tya(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `vram_data`, `read_vram`, `write_vram`, `get_vblank`, and `set_nmi_occurred` are never used [INFO] [stdout] --> src/ppu.rs:31:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl Ppu { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 31 | pub fn vram_data(&self) -> &[u8;0x4000] { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn read_vram(&self, address: u16) -> u8 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | pub fn write_vram(&mut self, address: u16, val: u8) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | pub fn get_vblank(&self, memory: &Memory) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [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 `NES_INTERNAL_RAM` is never used [INFO] [stdout] --> src/memory.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | pub const NES_INTERNAL_RAM: u16 = 0x0000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NES_PPU_REGISTERS` is never used [INFO] [stdout] --> src/memory.rs:6:11 [INFO] [stdout] | [INFO] [stdout] 6 | pub const NES_PPU_REGISTERS: u16 = 0x2000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NES_APU_IO_REGISTERS` is never used [INFO] [stdout] --> src/memory.rs:7:11 [INFO] [stdout] | [INFO] [stdout] 7 | pub const NES_APU_IO_REGISTERS: u16 = 0x4000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NES_CARTRIDGE_SPACE` is never used [INFO] [stdout] --> src/memory.rs:8:11 [INFO] [stdout] | [INFO] [stdout] 8 | pub const NES_CARTRIDGE_SPACE: u16 = 0x4020; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PPU_MASK` is never used [INFO] [stdout] --> src/memory.rs:11:11 [INFO] [stdout] | [INFO] [stdout] 11 | pub const PPU_MASK: u16 = 0x2001; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OAM_ADDR` is never used [INFO] [stdout] --> src/memory.rs:13:11 [INFO] [stdout] | [INFO] [stdout] 13 | pub const OAM_ADDR: u16 = 0x2003; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OAM_DATA` is never used [INFO] [stdout] --> src/memory.rs:14:11 [INFO] [stdout] | [INFO] [stdout] 14 | pub const OAM_DATA: u16 = 0x2004; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PPU_SCROLL` is never used [INFO] [stdout] --> src/memory.rs:15:11 [INFO] [stdout] | [INFO] [stdout] 15 | pub const PPU_SCROLL: u16 = 0x2005; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PPU_ADDR` is never used [INFO] [stdout] --> src/memory.rs:16:11 [INFO] [stdout] | [INFO] [stdout] 16 | pub const PPU_ADDR: u16 = 0x2006; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PPU_DATA` is never used [INFO] [stdout] --> src/memory.rs:17:11 [INFO] [stdout] | [INFO] [stdout] 17 | pub const PPU_DATA: u16 = 0x2007; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OAM_DMA` is never used [INFO] [stdout] --> src/memory.rs:18:11 [INFO] [stdout] | [INFO] [stdout] 18 | pub const OAM_DMA: u16 = 0x4014; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FLAG_PPU_MASTER_SLAVE` is never used [INFO] [stdout] --> src/memory.rs:21:11 [INFO] [stdout] | [INFO] [stdout] 21 | pub const FLAG_PPU_MASTER_SLAVE: u8 = 0b01000000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FLAG_SPRITE_HEIGHT` is never used [INFO] [stdout] --> src/memory.rs:22:11 [INFO] [stdout] | [INFO] [stdout] 22 | pub const FLAG_SPRITE_HEIGHT: u8 = 0b00100000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FLAG_SPRITE_TILE_SELECT` is never used [INFO] [stdout] --> src/memory.rs:24:11 [INFO] [stdout] | [INFO] [stdout] 24 | pub const FLAG_SPRITE_TILE_SELECT: u8 = 0b00001000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FLAG_INCREMENT_MODE` is never used [INFO] [stdout] --> src/memory.rs:25:11 [INFO] [stdout] | [INFO] [stdout] 25 | pub const FLAG_INCREMENT_MODE: u8 = 0b00000100; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FLAG_NAMETABLE_SELECT` is never used [INFO] [stdout] --> src/memory.rs:26:11 [INFO] [stdout] | [INFO] [stdout] 26 | pub const FLAG_NAMETABLE_SELECT: u8 = 0b00000011; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `AddressingMode` is never used [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 `JOY_RIGHT` is never used [INFO] [stdout] --> src/controller.rs:1:7 [INFO] [stdout] | [INFO] [stdout] 1 | const JOY_RIGHT: u8 = 0b10000000; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `JOY_LEFT` is never used [INFO] [stdout] --> src/controller.rs:2:7 [INFO] [stdout] | [INFO] [stdout] 2 | const JOY_LEFT: u8 = 0b01000000; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `JOY_DOWN` is never used [INFO] [stdout] --> src/controller.rs:3:7 [INFO] [stdout] | [INFO] [stdout] 3 | const JOY_DOWN: u8 = 0b00100000; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `JOY_UP` is never used [INFO] [stdout] --> src/controller.rs:4:7 [INFO] [stdout] | [INFO] [stdout] 4 | const JOY_UP: u8 = 0b00010000; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `JOY_START` is never used [INFO] [stdout] --> src/controller.rs:5:7 [INFO] [stdout] | [INFO] [stdout] 5 | const JOY_START: u8 = 0b00001000; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `JOY_SELECT` is never used [INFO] [stdout] --> src/controller.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | const JOY_SELECT: u8 = 0b00000100; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `JOY_BUTTON_B` is never used [INFO] [stdout] --> src/controller.rs:7:7 [INFO] [stdout] | [INFO] [stdout] 7 | const JOY_BUTTON_B: u8 = 0b00000010; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `JOY_BUTTON_A` is never used [INFO] [stdout] --> src/controller.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const JOY_BUTTON_A: u8 = 0b00000001; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CONTROLLER_1_ADDRESS` is never used [INFO] [stdout] --> src/controller.rs:10:7 [INFO] [stdout] | [INFO] [stdout] 10 | const CONTROLLER_1_ADDRESS: u16 = 0x4016; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CONTROLLER_2_ADDRESS` is never used [INFO] [stdout] --> src/controller.rs:11:7 [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: 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] 91 | let _ = canvas.copy(&debug_chr_texture, None, Some(Rect::new(0, 0, 1024, 1024))); [INFO] [stdout] | +++++++ [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] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 155 | let _ = texture.update(None, framebuffer, 256 * 3); [INFO] [stdout] | +++++++ [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] 43 | | }); [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 27 | let _ = texture.with_lock(None, |buffer: &mut [u8], pitch: usize| { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.71s [INFO] running `Command { std: "docker" "inspect" "b272137cf74ab10d6f650f2007c1aa45ed45087ed79a6ea9b3105938076c69bd", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b272137cf74ab10d6f650f2007c1aa45ed45087ed79a6ea9b3105938076c69bd", kill_on_drop: false }` [INFO] [stdout] b272137cf74ab10d6f650f2007c1aa45ed45087ed79a6ea9b3105938076c69bd [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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 -Dtail-expr-drop-order" "-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] cdd23f9b0b62d6826d0600b0b2ae84711efb563bc45d8e51f279647e634718b7 [INFO] running `Command { std: "docker" "start" "-a" "cdd23f9b0b62d6826d0600b0b2ae84711efb563bc45d8e51f279647e634718b7", kill_on_drop: false }` [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`, and `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`, and `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`, and `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`, and `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`, and `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` and `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: `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] = note: `#[warn(unused_variables)]` 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] [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: 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: 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: function `draw` is never used [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 `FLAG_CARTRIDGE_BATTERY` is never used [INFO] [stdout] --> src/rom_file.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const FLAG_CARTRIDGE_BATTERY: u8 = 0b00000010; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FLAG_U` is never used [INFO] [stdout] --> src/cpu.rs:16:7 [INFO] [stdout] | [INFO] [stdout] 16 | const FLAG_U: u8 = 0b00100000; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FLAG_NMI_OCCURRED` is never used [INFO] [stdout] --> src/cpu.rs:20:11 [INFO] [stdout] | [INFO] [stdout] 20 | pub const FLAG_NMI_OCCURRED: u8 = 0b10000000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Instruction` is never used [INFO] [stdout] --> src/cpu.rs:23:10 [INFO] [stdout] | [INFO] [stdout] 23 | pub enum Instruction { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/cpu.rs:491:8 [INFO] [stdout] | [INFO] [stdout] 98 | impl Cpu { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 491 | fn handle_nmi(&mut self, memory: &mut Memory) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 562 | fn adc(&mut self, memory: &Memory, address: u16) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 566 | fn add(&mut self, val: u8) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 714 | fn inx(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 754 | fn lsr(&mut self, memory: &mut Memory, address: u16) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 787 | fn pla(&mut self, memory: &mut Memory) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 818 | pub fn ror(&mut self, memory: &mut Memory, address: u16) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 828 | pub fn ror_akk(&mut self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 851 | fn sbc(&mut self, memory: &Memory, address: u16) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 859 | fn sed(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 879 | fn tax(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 885 | fn tay(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 891 | fn tsx(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 907 | fn tya(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `vram_data`, `read_vram`, `write_vram`, `get_vblank`, and `set_nmi_occurred` are never used [INFO] [stdout] --> src/ppu.rs:31:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl Ppu { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 31 | pub fn vram_data(&self) -> &[u8;0x4000] { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn read_vram(&self, address: u16) -> u8 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | pub fn write_vram(&mut self, address: u16, val: u8) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | pub fn get_vblank(&self, memory: &Memory) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [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 `NES_INTERNAL_RAM` is never used [INFO] [stdout] --> src/memory.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | pub const NES_INTERNAL_RAM: u16 = 0x0000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NES_PPU_REGISTERS` is never used [INFO] [stdout] --> src/memory.rs:6:11 [INFO] [stdout] | [INFO] [stdout] 6 | pub const NES_PPU_REGISTERS: u16 = 0x2000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NES_APU_IO_REGISTERS` is never used [INFO] [stdout] --> src/memory.rs:7:11 [INFO] [stdout] | [INFO] [stdout] 7 | pub const NES_APU_IO_REGISTERS: u16 = 0x4000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NES_CARTRIDGE_SPACE` is never used [INFO] [stdout] --> src/memory.rs:8:11 [INFO] [stdout] | [INFO] [stdout] 8 | pub const NES_CARTRIDGE_SPACE: u16 = 0x4020; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PPU_MASK` is never used [INFO] [stdout] --> src/memory.rs:11:11 [INFO] [stdout] | [INFO] [stdout] 11 | pub const PPU_MASK: u16 = 0x2001; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OAM_ADDR` is never used [INFO] [stdout] --> src/memory.rs:13:11 [INFO] [stdout] | [INFO] [stdout] 13 | pub const OAM_ADDR: u16 = 0x2003; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OAM_DATA` is never used [INFO] [stdout] --> src/memory.rs:14:11 [INFO] [stdout] | [INFO] [stdout] 14 | pub const OAM_DATA: u16 = 0x2004; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PPU_SCROLL` is never used [INFO] [stdout] --> src/memory.rs:15:11 [INFO] [stdout] | [INFO] [stdout] 15 | pub const PPU_SCROLL: u16 = 0x2005; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PPU_ADDR` is never used [INFO] [stdout] --> src/memory.rs:16:11 [INFO] [stdout] | [INFO] [stdout] 16 | pub const PPU_ADDR: u16 = 0x2006; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PPU_DATA` is never used [INFO] [stdout] --> src/memory.rs:17:11 [INFO] [stdout] | [INFO] [stdout] 17 | pub const PPU_DATA: u16 = 0x2007; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OAM_DMA` is never used [INFO] [stdout] --> src/memory.rs:18:11 [INFO] [stdout] | [INFO] [stdout] 18 | pub const OAM_DMA: u16 = 0x4014; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FLAG_PPU_MASTER_SLAVE` is never used [INFO] [stdout] --> src/memory.rs:21:11 [INFO] [stdout] | [INFO] [stdout] 21 | pub const FLAG_PPU_MASTER_SLAVE: u8 = 0b01000000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FLAG_SPRITE_HEIGHT` is never used [INFO] [stdout] --> src/memory.rs:22:11 [INFO] [stdout] | [INFO] [stdout] 22 | pub const FLAG_SPRITE_HEIGHT: u8 = 0b00100000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FLAG_SPRITE_TILE_SELECT` is never used [INFO] [stdout] --> src/memory.rs:24:11 [INFO] [stdout] | [INFO] [stdout] 24 | pub const FLAG_SPRITE_TILE_SELECT: u8 = 0b00001000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FLAG_INCREMENT_MODE` is never used [INFO] [stdout] --> src/memory.rs:25:11 [INFO] [stdout] | [INFO] [stdout] 25 | pub const FLAG_INCREMENT_MODE: u8 = 0b00000100; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FLAG_NAMETABLE_SELECT` is never used [INFO] [stdout] --> src/memory.rs:26:11 [INFO] [stdout] | [INFO] [stdout] 26 | pub const FLAG_NAMETABLE_SELECT: u8 = 0b00000011; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `AddressingMode` is never used [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 `JOY_RIGHT` is never used [INFO] [stdout] --> src/controller.rs:1:7 [INFO] [stdout] | [INFO] [stdout] 1 | const JOY_RIGHT: u8 = 0b10000000; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `JOY_LEFT` is never used [INFO] [stdout] --> src/controller.rs:2:7 [INFO] [stdout] | [INFO] [stdout] 2 | const JOY_LEFT: u8 = 0b01000000; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `JOY_DOWN` is never used [INFO] [stdout] --> src/controller.rs:3:7 [INFO] [stdout] | [INFO] [stdout] 3 | const JOY_DOWN: u8 = 0b00100000; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `JOY_UP` is never used [INFO] [stdout] --> src/controller.rs:4:7 [INFO] [stdout] | [INFO] [stdout] 4 | const JOY_UP: u8 = 0b00010000; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `JOY_START` is never used [INFO] [stdout] --> src/controller.rs:5:7 [INFO] [stdout] | [INFO] [stdout] 5 | const JOY_START: u8 = 0b00001000; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `JOY_SELECT` is never used [INFO] [stdout] --> src/controller.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | const JOY_SELECT: u8 = 0b00000100; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `JOY_BUTTON_B` is never used [INFO] [stdout] --> src/controller.rs:7:7 [INFO] [stdout] | [INFO] [stdout] 7 | const JOY_BUTTON_B: u8 = 0b00000010; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `JOY_BUTTON_A` is never used [INFO] [stdout] --> src/controller.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const JOY_BUTTON_A: u8 = 0b00000001; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CONTROLLER_1_ADDRESS` is never used [INFO] [stdout] --> src/controller.rs:10:7 [INFO] [stdout] | [INFO] [stdout] 10 | const CONTROLLER_1_ADDRESS: u16 = 0x4016; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CONTROLLER_2_ADDRESS` is never used [INFO] [stdout] --> src/controller.rs:11:7 [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: 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] 91 | let _ = canvas.copy(&debug_chr_texture, None, Some(Rect::new(0, 0, 1024, 1024))); [INFO] [stdout] | +++++++ [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] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 155 | let _ = texture.update(None, framebuffer, 256 * 3); [INFO] [stdout] | +++++++ [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] 43 | | }); [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 27 | let _ = texture.with_lock(None, |buffer: &mut [u8], pitch: usize| { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.17s [INFO] running `Command { std: "docker" "inspect" "cdd23f9b0b62d6826d0600b0b2ae84711efb563bc45d8e51f279647e634718b7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "cdd23f9b0b62d6826d0600b0b2ae84711efb563bc45d8e51f279647e634718b7", kill_on_drop: false }` [INFO] [stdout] cdd23f9b0b62d6826d0600b0b2ae84711efb563bc45d8e51f279647e634718b7