[INFO] cloning repository https://github.com/rainapepe/rust-nes-emulator [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/rainapepe/rust-nes-emulator" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frainapepe%2Frust-nes-emulator", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frainapepe%2Frust-nes-emulator'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] aacccee5fdb1672e61a488c2e5abb133638718a6 [INFO] testing rainapepe/rust-nes-emulator against beta-2025-10-28 for beta-1.92-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frainapepe%2Frust-nes-emulator" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/rainapepe/rust-nes-emulator [INFO] finished tweaking git repo https://github.com/rainapepe/rust-nes-emulator [INFO] tweaked toml for git repo https://github.com/rainapepe/rust-nes-emulator written to /workspace/builds/worker-4-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/rainapepe/rust-nes-emulator on toolchain beta-2025-10-28 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-10-28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/rainapepe/rust-nes-emulator 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" "+beta-2025-10-28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 47af0aa9fc238cbc8e436338b21df17d0819168510973f297340287521ccf461 [INFO] running `Command { std: "docker" "start" "-a" "47af0aa9fc238cbc8e436338b21df17d0819168510973f297340287521ccf461", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "47af0aa9fc238cbc8e436338b21df17d0819168510973f297340287521ccf461", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "47af0aa9fc238cbc8e436338b21df17d0819168510973f297340287521ccf461", kill_on_drop: false }` [INFO] [stdout] 47af0aa9fc238cbc8e436338b21df17d0819168510973f297340287521ccf461 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 18bbb2717a1438f66b619edae5222a25b542de959bd351733794cf55d8f7f544 [INFO] running `Command { std: "docker" "start" "-a" "18bbb2717a1438f66b619edae5222a25b542de959bd351733794cf55d8f7f544", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.93 [INFO] [stderr] Compiling autocfg v1.0.1 [INFO] [stderr] Compiling xml-rs v0.8.3 [INFO] [stderr] Compiling log v0.4.14 [INFO] [stderr] Compiling bitflags v1.2.1 [INFO] [stderr] Compiling proc-macro2 v1.0.26 [INFO] [stderr] Compiling unicode-xid v0.2.1 [INFO] [stderr] Compiling khronos_api v3.1.0 [INFO] [stderr] Compiling pkg-config v0.3.19 [INFO] [stderr] Compiling scopeguard v1.1.0 [INFO] [stderr] Compiling libloading v0.7.0 [INFO] [stderr] Compiling smallvec v1.6.1 [INFO] [stderr] Compiling piston-float v1.0.0 [INFO] [stderr] Compiling dlib v0.5.0 [INFO] [stderr] Compiling ttf-parser v0.6.2 [INFO] [stderr] Compiling crossbeam-utils v0.8.3 [INFO] [stderr] Compiling memoffset v0.6.3 [INFO] [stderr] Compiling wayland-sys v0.28.5 [INFO] [stderr] Compiling rayon-core v1.9.0 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Compiling memchr v2.3.4 [INFO] [stderr] Compiling cfg-if v0.1.10 [INFO] [stderr] Compiling gl_generator v0.14.0 [INFO] [stderr] Compiling quote v1.0.9 [INFO] [stderr] Compiling wayland-scanner v0.28.5 [INFO] [stderr] Compiling crossbeam-epoch v0.9.3 [INFO] [stderr] Compiling ab_glyph_rasterizer v0.1.4 [INFO] [stderr] Compiling once_cell v1.7.2 [INFO] [stderr] Compiling version_check v0.9.3 [INFO] [stderr] Compiling crossbeam-deque v0.8.0 [INFO] [stderr] Compiling crossbeam-channel v0.5.1 [INFO] [stderr] Compiling num-integer v0.1.44 [INFO] [stderr] Compiling rayon v1.5.0 [INFO] [stderr] Compiling piston-viewport v1.0.0 [INFO] [stderr] Compiling syn v1.0.70 [INFO] [stderr] Compiling nom v6.1.2 [INFO] [stderr] Compiling scoped-tls v1.0.0 [INFO] [stderr] Compiling nix v0.20.0 [INFO] [stderr] Compiling num_cpus v1.13.0 [INFO] [stderr] Compiling downcast-rs v1.2.0 [INFO] [stderr] Compiling owned_ttf_parser v0.6.0 [INFO] [stderr] Compiling miniz_oxide v0.4.4 [INFO] [stderr] Compiling rusttype v0.9.2 [INFO] [stderr] Compiling either v1.6.1 [INFO] [stderr] Compiling serde v1.0.125 [INFO] [stderr] Compiling crc32fast v1.2.1 [INFO] [stderr] Compiling maybe-uninit v2.0.0 [INFO] [stderr] Compiling nix v0.18.0 [INFO] [stderr] Compiling piston-graphics_api_version v1.0.0 [INFO] [stderr] Compiling serde_derive v1.0.125 [INFO] [stderr] Compiling adler32 v1.2.0 [INFO] [stderr] Compiling wayland-client v0.28.5 [INFO] [stderr] Compiling wayland-protocols v0.28.5 [INFO] [stderr] Compiling x11-dl v2.18.5 [INFO] [stderr] Compiling num-iter v0.1.42 [INFO] [stderr] Compiling num-rational v0.3.2 [INFO] [stderr] Compiling weezl v0.1.5 [INFO] [stderr] Compiling byteorder v1.4.3 [INFO] [stderr] Compiling deflate v0.8.6 [INFO] [stderr] Compiling walkdir v2.3.2 [INFO] [stderr] Compiling xcursor v0.3.3 [INFO] [stderr] Compiling miniz_oxide v0.3.7 [INFO] [stderr] Compiling wayland-commons v0.28.5 [INFO] [stderr] Compiling jpeg-decoder v0.1.22 [INFO] [stderr] Compiling iovec v0.1.4 [INFO] [stderr] Compiling net2 v0.2.37 [INFO] [stderr] Compiling gl_generator v0.13.1 [INFO] [stderr] Compiling draw_state v0.8.0 [INFO] [stderr] Compiling instant v0.1.9 [INFO] [stderr] Compiling libloading v0.6.7 [INFO] [stderr] Compiling color_quant v1.1.0 [INFO] [stderr] Compiling xdg v2.2.0 [INFO] [stderr] Compiling slab v0.4.3 [INFO] [stderr] Compiling mio v0.6.23 [INFO] [stderr] Compiling gl v0.13.0 [INFO] [stderr] Compiling wayland-cursor v0.28.5 [INFO] [stderr] Compiling calloop v0.6.5 [INFO] [stderr] Compiling andrew v0.3.1 [INFO] [stderr] Compiling gif v0.11.2 [INFO] [stderr] Compiling dlib v0.4.2 [INFO] [stderr] Compiling parking_lot_core v0.8.3 [INFO] [stderr] Compiling gfx_core v0.9.2 [INFO] [stderr] Compiling tiff v0.6.1 [INFO] [stderr] Compiling png v0.16.8 [INFO] [stderr] Compiling memmap2 v0.1.0 [INFO] [stderr] Compiling glutin_egl_sys v0.1.5 [INFO] [stderr] Compiling glutin_glx_sys v0.1.7 [INFO] [stderr] Compiling lock_api v0.4.3 [INFO] [stderr] Compiling bytemuck v1.5.1 [INFO] [stderr] Compiling scoped_threadpool v0.1.9 [INFO] [stderr] Compiling piston-texture v0.8.0 [INFO] [stderr] Compiling lazycell v1.3.0 [INFO] [stderr] Compiling getrandom v0.1.16 [INFO] [stderr] Compiling mio-extras v2.0.6 [INFO] [stderr] Compiling image v0.23.14 [INFO] [stderr] Compiling parking_lot v0.11.1 [INFO] [stderr] Compiling shader_version v0.7.0 [INFO] [stderr] Compiling raw-window-handle v0.3.3 [INFO] [stderr] Compiling shared_library v0.1.9 [INFO] [stderr] Compiling gfx_gl v0.6.1 [INFO] [stderr] Compiling vecmath v1.0.0 [INFO] [stderr] Compiling read_color v1.0.0 [INFO] [stderr] Compiling interpolation v0.2.0 [INFO] [stderr] Compiling percent-encoding v2.1.0 [INFO] [stderr] Compiling piston2d-graphics v0.40.0 [INFO] [stderr] Compiling osmesa-sys v0.1.2 [INFO] [stderr] Compiling gfx v0.18.2 [INFO] [stderr] Compiling wayland-egl v0.28.5 [INFO] [stderr] Compiling spin_sleep v1.0.0 [INFO] [stderr] Compiling piston-shaders_graphics2d v0.4.0 [INFO] [stderr] Compiling rand_core v0.5.1 [INFO] [stderr] Compiling ppv-lite86 v0.2.10 [INFO] [stderr] Compiling find_folder v0.3.0 [INFO] [stderr] Compiling rand_chacha v0.2.2 [INFO] [stderr] Compiling pistoncore-input v1.0.0 [INFO] [stderr] Compiling rand v0.7.3 [INFO] [stderr] Compiling piston-gfx_texture v0.41.0 [INFO] [stderr] Compiling piston2d-gfx_graphics v0.73.0 [INFO] [stderr] Compiling gfx_device_gl v0.16.2 [INFO] [stderr] Compiling piston2d-opengl_graphics v0.78.0 [INFO] [stderr] Compiling pistoncore-window v0.47.0 [INFO] [stderr] Compiling pistoncore-event_loop v0.53.0 [INFO] [stderr] Compiling piston v0.53.0 [INFO] [stderr] Compiling smithay-client-toolkit v0.12.3 [INFO] [stderr] Compiling winit v0.24.0 [INFO] [stderr] Compiling glutin v0.26.0 [INFO] [stderr] Compiling pistoncore-glutin_window v0.69.0 [INFO] [stderr] Compiling piston_window v0.120.0 [INFO] [stderr] Compiling rust-nes-emulator v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `cpu::Cpu6502` [INFO] [stdout] --> src/bus.rs:5:13 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::{cpu::Cpu6502, pad::Pad}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `load_file::*` [INFO] [stdout] --> src/cartridge/mod.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub use load_file::*; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `addres_mode::AddressMode` [INFO] [stdout] --> src/cpu/mod.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub use addres_mode::AddressMode; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `instruction::Instruction` [INFO] [stdout] --> src/cpu/mod.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub use instruction::Instruction; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `opcode::Opcode` [INFO] [stdout] --> src/cpu/mod.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | pub use opcode::Opcode; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::video::Pixel` [INFO] [stdout] --> src/ppu/clock_helpers.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::video::Pixel; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/video/utils.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Cpu6502` and `Flags6502` [INFO] [stdout] --> src/video/utils.rs:6:18 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::cpu::{Cpu6502, Flags6502}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ImageBuffer`, `Rgb`, and `Rgba` [INFO] [stdout] --> src/video/video.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | use image::{ImageBuffer, Rgb, Rgba}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `utils::*` [INFO] [stdout] --> src/video/mod.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub use utils::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `GAME_MODE` should have an upper camel case name [INFO] [stdout] --> src/main.rs:14:6 [INFO] [stdout] | [INFO] [stdout] 14 | enum GAME_MODE { [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to upper camel case: `GameMode` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cartridge/load_file.rs:61:13 [INFO] [stdout] | [INFO] [stdout] 61 | let mut buffer = slice::from_raw_parts_mut(&mut data as *mut T as *mut u8, num_bytes); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this arithmetic operation will overflow [INFO] [stdout] --> src/cpu/external_inputs.rs:66:24 [INFO] [stdout] | [INFO] [stdout] 66 | self.pc = ((hi << 8) | lo) as u16; [INFO] [stdout] | ^^^^^^^^^ attempt to shift left by `8_i32`, which would overflow [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(arithmetic_overflow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `value` is never read [INFO] [stdout] --> src/cpu/helpers.rs:36:29 [INFO] [stdout] | [INFO] [stdout] 36 | let mut value: u8 = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `lo` is never read [INFO] [stdout] --> src/cpu/helpers.rs:37:26 [INFO] [stdout] | [INFO] [stdout] 37 | let mut lo: u8 = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `hi` is never read [INFO] [stdout] --> src/cpu/helpers.rs:38:26 [INFO] [stdout] | [INFO] [stdout] 38 | let mut hi: u8 = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `value` is never read [INFO] [stdout] --> src/cpu/helpers.rs:123:29 [INFO] [stdout] | [INFO] [stdout] 123 | let mut value: u8 = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `lo` is never read [INFO] [stdout] --> src/cpu/helpers.rs:124:26 [INFO] [stdout] | [INFO] [stdout] 124 | let mut lo: u8 = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `hi` is never read [INFO] [stdout] --> src/cpu/helpers.rs:125:26 [INFO] [stdout] | [INFO] [stdout] 125 | let mut hi: u8 = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `hi` is never read [INFO] [stdout] --> src/cpu/helpers.rs:153:21 [INFO] [stdout] | [INFO] [stdout] 153 | hi = 0x00; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `hi` is never read [INFO] [stdout] --> src/cpu/helpers.rs:159:21 [INFO] [stdout] | [INFO] [stdout] 159 | hi = 0x00; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `hi` is never read [INFO] [stdout] --> src/cpu/helpers.rs:165:21 [INFO] [stdout] | [INFO] [stdout] 165 | hi = 0x00; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `hi` is never read [INFO] [stdout] --> src/cpu/helpers.rs:171:21 [INFO] [stdout] | [INFO] [stdout] 171 | hi = 0x00; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `hi` is never read [INFO] [stdout] --> src/cpu/helpers.rs:177:21 [INFO] [stdout] | [INFO] [stdout] 177 | hi = 0x00; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `line_addr` is never read [INFO] [stdout] --> src/cpu/helpers.rs:129:34 [INFO] [stdout] | [INFO] [stdout] 129 | let mut line_addr: u16 = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/mapper/mappers/mapper_000.rs:23:54 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn cpu_map_write(mapper: &mut Mapper, addr: u16, data: u8) -> (bool, u32) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mapper` [INFO] [stdout] --> src/mapper/mappers/mapper_000.rs:34:21 [INFO] [stdout] | [INFO] [stdout] 34 | pub fn ppu_map_read(mapper: &mut Mapper, addr: u16) -> (bool, u32) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_mapper` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `sprite_pattern_bits_lo` is never read [INFO] [stdout] --> src/ppu/clock.rs:329:58 [INFO] [stdout] | [INFO] [stdout] 329 | let mut sprite_pattern_bits_lo: u8 = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `sprite_pattern_bits_hi` is never read [INFO] [stdout] --> src/ppu/clock.rs:330:58 [INFO] [stdout] | [INFO] [stdout] 330 | let mut sprite_pattern_bits_hi: u8 = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `sprite_pattern_addr_lo` is never read [INFO] [stdout] --> src/ppu/clock.rs:331:59 [INFO] [stdout] | [INFO] [stdout] 331 | let mut sprite_pattern_addr_lo: u16 = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `sprite_pattern_addr_hi` is never read [INFO] [stdout] --> src/ppu/clock.rs:332:59 [INFO] [stdout] | [INFO] [stdout] 332 | let mut sprite_pattern_addr_hi: u16 = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `window` [INFO] [stdout] --> src/video/video.rs:18:28 [INFO] [stdout] | [INFO] [stdout] 18 | fn on_start(&mut self, window: &mut PistonWindow, texture_context: &mut G2dTextureContext) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_window` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `texture_context` [INFO] [stdout] --> src/video/video.rs:18:55 [INFO] [stdout] | [INFO] [stdout] 18 | fn on_start(&mut self, window: &mut PistonWindow, texture_context: &mut G2dTextureContext) {} [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_texture_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `texture_context` [INFO] [stdout] --> src/video/video.rs:20:35 [INFO] [stdout] | [INFO] [stdout] 20 | fn update_textures(&mut self, texture_context: &mut G2dTextureContext) {} [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_texture_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/video/video.rs:26:35 [INFO] [stdout] | [INFO] [stdout] 26 | fn on_buttom_press(&mut self, key: Key) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/video/video.rs:28:37 [INFO] [stdout] | [INFO] [stdout] 28 | fn on_buttom_release(&mut self, key: Key) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `version` is never read [INFO] [stdout] --> src/bus.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Bus { [INFO] [stdout] | --- field in this struct [INFO] [stdout] 43 | pub version: &'static str, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_buffer_hex` is never used [INFO] [stdout] --> src/cartridge/load_file.rs:74:8 [INFO] [stdout] | [INFO] [stdout] 74 | pub fn print_buffer_hex(buffer: &Vec, size: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `reset` is never used [INFO] [stdout] --> src/cartridge/memory_access.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 3 | impl PrgRom { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 29 | pub fn reset(&self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `reset` is never used [INFO] [stdout] --> src/cartridge/memory_access.rs:57:12 [INFO] [stdout] | [INFO] [stdout] 34 | impl ChrRom { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 57 | pub fn reset(&self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `OneScreenLo` and `OneScreenHi` are never constructed [INFO] [stdout] --> src/cartridge/types.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum Mirror { [INFO] [stdout] | ------ variants in this enum [INFO] [stdout] ... [INFO] [stdout] 7 | OneScreenLo, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 8 | OneScreenHi, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Mirror` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `mirror`, `mapper_id`, and `prg_banks` are never read [INFO] [stdout] --> src/cartridge/types.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct PrgRom { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 14 | pub mirror: Mirror, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 15 | pub mapper_id: u8, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 16 | pub prg_memory: Vec, [INFO] [stdout] 17 | pub prg_banks: u8, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `mapper_id` and `chr_banks` are never read [INFO] [stdout] --> src/cartridge/types.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct ChrRom { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 24 | pub mirror: Mirror, [INFO] [stdout] 25 | pub mapper_id: u8, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 26 | pub chr_banks: u8, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name`, `prg_ram_size`, `tv_system1`, `tv_system2`, and `unused` are never read [INFO] [stdout] --> src/cartridge/types.rs:54:9 [INFO] [stdout] | [INFO] [stdout] 53 | pub struct Header { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 54 | pub name: [u8; 4], [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | pub prg_ram_size: u8, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 60 | pub tv_system1: u8, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 61 | pub tv_system2: u8, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 62 | pub unused: [u8; 5], [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Header` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `ACC` is never constructed [INFO] [stdout] --> src/cpu/addres_mode.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub enum AddressMode { [INFO] [stdout] | ----------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 41 | ACC, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AddressMode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `pc_back` is never used [INFO] [stdout] --> src/cpu/cpu6502.rs:128:12 [INFO] [stdout] | [INFO] [stdout] 122 | impl Cpu6502 { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 128 | pub fn pc_back(&mut self) -> u16 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `irq` is never used [INFO] [stdout] --> src/cpu/external_inputs.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 4 | impl Cpu6502 { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 47 | pub fn irq(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `disassemble` is never used [INFO] [stdout] --> src/cpu/helpers.rs:121:12 [INFO] [stdout] | [INFO] [stdout] 29 | impl Cpu6502 { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 121 | pub fn disassemble(&mut self, start: u16, stop: u16) -> HashMap { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Instruct` is never constructed [INFO] [stdout] --> src/cpu/instruction.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct Instruct(&'static str, Opcode, AddressMode, u8); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `reset` is never used [INFO] [stdout] --> src/mapper/mapper.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl Mapper { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn reset(&self) {} [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_type` is never used [INFO] [stdout] --> src/mapper/mapper.rs:53:12 [INFO] [stdout] | [INFO] [stdout] 44 | impl Mapper { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn get_type(&self) -> &'static str { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `reset` and `get_reg` are never used [INFO] [stdout] --> src/pad.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 18 | impl Pad { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 44 | pub fn reset(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn get_reg(&mut self) -> u8 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_screen` is never used [INFO] [stdout] --> src/ppu/output.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 4 | impl Ppu2C02 { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 20 | pub fn get_screen<'a>(&'a self) -> &'a Frame { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `sprite_name_table` is never read [INFO] [stdout] --> src/ppu/ppu2C02.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Ppu2C02 { [INFO] [stdout] | ------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 17 | pub sprite_name_table: [Frame; 2], // (não usado) visualização da nametables (tela final na memória) as duas são 256x240 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `reset` is never used [INFO] [stdout] --> src/ppu/ppu2C02.rs:133:12 [INFO] [stdout] | [INFO] [stdout] 74 | impl Ppu2C02 { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 133 | pub fn reset(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_unused`, `set_unused`, `get_sprite_overflow`, `get_sprite_zero_hit`, and `get_vertical_blank` are never used [INFO] [stdout] --> src/ppu/registers.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 27 | impl Status { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] 28 | // unused: 5 [INFO] [stdout] 29 | pub fn get_unused(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn set_unused(&mut self, data: u8) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn get_sprite_overflow(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 47 | pub fn get_sprite_zero_hit(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 56 | pub fn get_vertical_blank(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/ppu/registers.rs:79:12 [INFO] [stdout] | [INFO] [stdout] 73 | impl Mask { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 79 | pub fn set_grayscale(&mut self, data: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | pub fn set_render_background_left(&mut self, data: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 97 | pub fn set_render_sprites_left(&mut self, data: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn set_render_background(&mut self, data: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | pub fn set_render_sprites(&mut self, data: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn get_enhance_red(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 124 | pub fn set_enhance_red(&mut self, data: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 129 | pub fn get_enhance_green(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 133 | pub fn set_enhance_green(&mut self, data: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 138 | pub fn get_enhance_blue(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 142 | pub fn set_enhance_blue(&mut self, data: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/ppu/registers.rs:161:12 [INFO] [stdout] | [INFO] [stdout] 155 | impl PpuControl { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 161 | pub fn set_nametable_x(&mut self, data: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 170 | pub fn set_nametable_y(&mut self, data: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 179 | pub fn set_increment_mode(&mut self, data: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 188 | pub fn set_pattern_sprite(&mut self, data: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 197 | pub fn set_pattern_background(&mut self, data: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 206 | pub fn set_sprite_size(&mut self, data: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 211 | pub fn get_slave_mode(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 215 | pub fn set_slave_mode(&mut self, data: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 224 | pub fn set_enable_nmi(&mut self, data: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_unused` and `set_unused` are never used [INFO] [stdout] --> src/ppu/registers.rs:288:12 [INFO] [stdout] | [INFO] [stdout] 238 | impl LoopyRegister { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 288 | pub fn get_unused(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 292 | pub fn set_unused(&mut self, data: u8) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PIXEL_SIZE` is never used [INFO] [stdout] --> src/video/frame.rs:12:7 [INFO] [stdout] | [INFO] [stdout] 12 | const PIXEL_SIZE: f64 = 2.3; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `set_border` and `render` are never used [INFO] [stdout] --> src/video/frame.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 23 | impl Frame { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn set_border(&mut self, color: Pixel) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn render(&self, x: usize, y: usize, pixel_size: f64, context: Context, gl: &mut G2d) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `white`, `red`, `green`, and `blue` are never used [INFO] [stdout] --> src/video/pixel.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 4 | impl Pixel { [INFO] [stdout] | ---------- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 9 | pub fn white() -> Pixel { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | pub fn red() -> Pixel { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | pub fn green() -> Pixel { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | pub fn blue() -> Pixel { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `with_font_size` is never used [INFO] [stdout] --> src/video/utils.rs:48:12 [INFO] [stdout] | [INFO] [stdout] 36 | impl DrawText { [INFO] [stdout] | ------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn with_font_size(font_size: usize, x: usize, y: usize, c: Context) -> DrawText { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/mapper/mappers/mapper_000.rs:13:26 [INFO] [stdout] | [INFO] [stdout] 13 | if addr >= 0x8000 && addr <= 0xFFFF { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/mapper/mappers/mapper_000.rs:24:26 [INFO] [stdout] | [INFO] [stdout] 24 | if addr >= 0x8000 && addr <= 0xFFFF { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/mapper/mappers/mapper_000.rs:38:8 [INFO] [stdout] | [INFO] [stdout] 38 | if addr >= 0 && addr <= 0x1FFF { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/mapper/mappers/mapper_000.rs:46:8 [INFO] [stdout] | [INFO] [stdout] 46 | if addr >= 0x0000 && addr <= 0x1FFF { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module `ppu2C02` should have a snake case name [INFO] [stdout] --> src/ppu/mod.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | mod ppu2C02; [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `ppu2_c02` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 3m 02s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nom v6.1.2 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1` [INFO] running `Command { std: "docker" "inspect" "18bbb2717a1438f66b619edae5222a25b542de959bd351733794cf55d8f7f544", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "18bbb2717a1438f66b619edae5222a25b542de959bd351733794cf55d8f7f544", kill_on_drop: false }` [INFO] [stdout] 18bbb2717a1438f66b619edae5222a25b542de959bd351733794cf55d8f7f544 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 1d6a2733f66496c74bdbed04d7c54f5945e51c3e28dd8c1109f8599d4e453dc0 [INFO] running `Command { std: "docker" "start" "-a" "1d6a2733f66496c74bdbed04d7c54f5945e51c3e28dd8c1109f8599d4e453dc0", kill_on_drop: false }` [INFO] [stderr] Compiling rust-nes-emulator v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `cpu::Cpu6502` [INFO] [stdout] --> src/bus.rs:5:13 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::{cpu::Cpu6502, pad::Pad}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `load_file::*` [INFO] [stdout] --> src/cartridge/mod.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub use load_file::*; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `addres_mode::AddressMode` [INFO] [stdout] --> src/cpu/mod.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub use addres_mode::AddressMode; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `instruction::Instruction` [INFO] [stdout] --> src/cpu/mod.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub use instruction::Instruction; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `opcode::Opcode` [INFO] [stdout] --> src/cpu/mod.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | pub use opcode::Opcode; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::video::Pixel` [INFO] [stdout] --> src/ppu/clock_helpers.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::video::Pixel; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/video/utils.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Cpu6502` and `Flags6502` [INFO] [stdout] --> src/video/utils.rs:6:18 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::cpu::{Cpu6502, Flags6502}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ImageBuffer`, `Rgb`, and `Rgba` [INFO] [stdout] --> src/video/video.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | use image::{ImageBuffer, Rgb, Rgba}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `utils::*` [INFO] [stdout] --> src/video/mod.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub use utils::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `GAME_MODE` should have an upper camel case name [INFO] [stdout] --> src/main.rs:14:6 [INFO] [stdout] | [INFO] [stdout] 14 | enum GAME_MODE { [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to upper camel case: `GameMode` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cartridge/load_file.rs:61:13 [INFO] [stdout] | [INFO] [stdout] 61 | let mut buffer = slice::from_raw_parts_mut(&mut data as *mut T as *mut u8, num_bytes); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this arithmetic operation will overflow [INFO] [stdout] --> src/cpu/external_inputs.rs:66:24 [INFO] [stdout] | [INFO] [stdout] 66 | self.pc = ((hi << 8) | lo) as u16; [INFO] [stdout] | ^^^^^^^^^ attempt to shift left by `8_i32`, which would overflow [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(arithmetic_overflow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `value` is never read [INFO] [stdout] --> src/cpu/helpers.rs:36:29 [INFO] [stdout] | [INFO] [stdout] 36 | let mut value: u8 = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `lo` is never read [INFO] [stdout] --> src/cpu/helpers.rs:37:26 [INFO] [stdout] | [INFO] [stdout] 37 | let mut lo: u8 = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `hi` is never read [INFO] [stdout] --> src/cpu/helpers.rs:38:26 [INFO] [stdout] | [INFO] [stdout] 38 | let mut hi: u8 = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `value` is never read [INFO] [stdout] --> src/cpu/helpers.rs:123:29 [INFO] [stdout] | [INFO] [stdout] 123 | let mut value: u8 = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `lo` is never read [INFO] [stdout] --> src/cpu/helpers.rs:124:26 [INFO] [stdout] | [INFO] [stdout] 124 | let mut lo: u8 = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `hi` is never read [INFO] [stdout] --> src/cpu/helpers.rs:125:26 [INFO] [stdout] | [INFO] [stdout] 125 | let mut hi: u8 = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `hi` is never read [INFO] [stdout] --> src/cpu/helpers.rs:153:21 [INFO] [stdout] | [INFO] [stdout] 153 | hi = 0x00; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `hi` is never read [INFO] [stdout] --> src/cpu/helpers.rs:159:21 [INFO] [stdout] | [INFO] [stdout] 159 | hi = 0x00; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `hi` is never read [INFO] [stdout] --> src/cpu/helpers.rs:165:21 [INFO] [stdout] | [INFO] [stdout] 165 | hi = 0x00; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `hi` is never read [INFO] [stdout] --> src/cpu/helpers.rs:171:21 [INFO] [stdout] | [INFO] [stdout] 171 | hi = 0x00; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `hi` is never read [INFO] [stdout] --> src/cpu/helpers.rs:177:21 [INFO] [stdout] | [INFO] [stdout] 177 | hi = 0x00; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `line_addr` is never read [INFO] [stdout] --> src/cpu/helpers.rs:129:34 [INFO] [stdout] | [INFO] [stdout] 129 | let mut line_addr: u16 = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/mapper/mappers/mapper_000.rs:23:54 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn cpu_map_write(mapper: &mut Mapper, addr: u16, data: u8) -> (bool, u32) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mapper` [INFO] [stdout] --> src/mapper/mappers/mapper_000.rs:34:21 [INFO] [stdout] | [INFO] [stdout] 34 | pub fn ppu_map_read(mapper: &mut Mapper, addr: u16) -> (bool, u32) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_mapper` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `sprite_pattern_bits_lo` is never read [INFO] [stdout] --> src/ppu/clock.rs:329:58 [INFO] [stdout] | [INFO] [stdout] 329 | let mut sprite_pattern_bits_lo: u8 = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `sprite_pattern_bits_hi` is never read [INFO] [stdout] --> src/ppu/clock.rs:330:58 [INFO] [stdout] | [INFO] [stdout] 330 | let mut sprite_pattern_bits_hi: u8 = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `sprite_pattern_addr_lo` is never read [INFO] [stdout] --> src/ppu/clock.rs:331:59 [INFO] [stdout] | [INFO] [stdout] 331 | let mut sprite_pattern_addr_lo: u16 = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `sprite_pattern_addr_hi` is never read [INFO] [stdout] --> src/ppu/clock.rs:332:59 [INFO] [stdout] | [INFO] [stdout] 332 | let mut sprite_pattern_addr_hi: u16 = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `window` [INFO] [stdout] --> src/video/video.rs:18:28 [INFO] [stdout] | [INFO] [stdout] 18 | fn on_start(&mut self, window: &mut PistonWindow, texture_context: &mut G2dTextureContext) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_window` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `texture_context` [INFO] [stdout] --> src/video/video.rs:18:55 [INFO] [stdout] | [INFO] [stdout] 18 | fn on_start(&mut self, window: &mut PistonWindow, texture_context: &mut G2dTextureContext) {} [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_texture_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `texture_context` [INFO] [stdout] --> src/video/video.rs:20:35 [INFO] [stdout] | [INFO] [stdout] 20 | fn update_textures(&mut self, texture_context: &mut G2dTextureContext) {} [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_texture_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/video/video.rs:26:35 [INFO] [stdout] | [INFO] [stdout] 26 | fn on_buttom_press(&mut self, key: Key) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/video/video.rs:28:37 [INFO] [stdout] | [INFO] [stdout] 28 | fn on_buttom_release(&mut self, key: Key) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `version` is never read [INFO] [stdout] --> src/bus.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Bus { [INFO] [stdout] | --- field in this struct [INFO] [stdout] 43 | pub version: &'static str, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_buffer_hex` is never used [INFO] [stdout] --> src/cartridge/load_file.rs:74:8 [INFO] [stdout] | [INFO] [stdout] 74 | pub fn print_buffer_hex(buffer: &Vec, size: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `reset` is never used [INFO] [stdout] --> src/cartridge/memory_access.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 3 | impl PrgRom { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 29 | pub fn reset(&self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `reset` is never used [INFO] [stdout] --> src/cartridge/memory_access.rs:57:12 [INFO] [stdout] | [INFO] [stdout] 34 | impl ChrRom { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 57 | pub fn reset(&self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `OneScreenLo` and `OneScreenHi` are never constructed [INFO] [stdout] --> src/cartridge/types.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum Mirror { [INFO] [stdout] | ------ variants in this enum [INFO] [stdout] ... [INFO] [stdout] 7 | OneScreenLo, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 8 | OneScreenHi, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Mirror` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `mirror`, `mapper_id`, and `prg_banks` are never read [INFO] [stdout] --> src/cartridge/types.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct PrgRom { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 14 | pub mirror: Mirror, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 15 | pub mapper_id: u8, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 16 | pub prg_memory: Vec, [INFO] [stdout] 17 | pub prg_banks: u8, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `mapper_id` and `chr_banks` are never read [INFO] [stdout] --> src/cartridge/types.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct ChrRom { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 24 | pub mirror: Mirror, [INFO] [stdout] 25 | pub mapper_id: u8, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 26 | pub chr_banks: u8, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name`, `prg_ram_size`, `tv_system1`, `tv_system2`, and `unused` are never read [INFO] [stdout] --> src/cartridge/types.rs:54:9 [INFO] [stdout] | [INFO] [stdout] 53 | pub struct Header { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 54 | pub name: [u8; 4], [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | pub prg_ram_size: u8, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 60 | pub tv_system1: u8, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 61 | pub tv_system2: u8, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 62 | pub unused: [u8; 5], [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Header` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `ACC` is never constructed [INFO] [stdout] --> src/cpu/addres_mode.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub enum AddressMode { [INFO] [stdout] | ----------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 41 | ACC, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AddressMode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `pc_back` is never used [INFO] [stdout] --> src/cpu/cpu6502.rs:128:12 [INFO] [stdout] | [INFO] [stdout] 122 | impl Cpu6502 { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 128 | pub fn pc_back(&mut self) -> u16 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `irq` is never used [INFO] [stdout] --> src/cpu/external_inputs.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 4 | impl Cpu6502 { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 47 | pub fn irq(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `disassemble` is never used [INFO] [stdout] --> src/cpu/helpers.rs:121:12 [INFO] [stdout] | [INFO] [stdout] 29 | impl Cpu6502 { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 121 | pub fn disassemble(&mut self, start: u16, stop: u16) -> HashMap { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Instruct` is never constructed [INFO] [stdout] --> src/cpu/instruction.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct Instruct(&'static str, Opcode, AddressMode, u8); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `reset` is never used [INFO] [stdout] --> src/mapper/mapper.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl Mapper { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn reset(&self) {} [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_type` is never used [INFO] [stdout] --> src/mapper/mapper.rs:53:12 [INFO] [stdout] | [INFO] [stdout] 44 | impl Mapper { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn get_type(&self) -> &'static str { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `reset` and `get_reg` are never used [INFO] [stdout] --> src/pad.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 18 | impl Pad { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 44 | pub fn reset(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn get_reg(&mut self) -> u8 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_screen` is never used [INFO] [stdout] --> src/ppu/output.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 4 | impl Ppu2C02 { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 20 | pub fn get_screen<'a>(&'a self) -> &'a Frame { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `sprite_name_table` is never read [INFO] [stdout] --> src/ppu/ppu2C02.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Ppu2C02 { [INFO] [stdout] | ------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 17 | pub sprite_name_table: [Frame; 2], // (não usado) visualização da nametables (tela final na memória) as duas são 256x240 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `reset` is never used [INFO] [stdout] --> src/ppu/ppu2C02.rs:133:12 [INFO] [stdout] | [INFO] [stdout] 74 | impl Ppu2C02 { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 133 | pub fn reset(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_unused`, `set_unused`, `get_sprite_overflow`, `get_sprite_zero_hit`, and `get_vertical_blank` are never used [INFO] [stdout] --> src/ppu/registers.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 27 | impl Status { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] 28 | // unused: 5 [INFO] [stdout] 29 | pub fn get_unused(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn set_unused(&mut self, data: u8) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn get_sprite_overflow(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 47 | pub fn get_sprite_zero_hit(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 56 | pub fn get_vertical_blank(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/ppu/registers.rs:79:12 [INFO] [stdout] | [INFO] [stdout] 73 | impl Mask { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 79 | pub fn set_grayscale(&mut self, data: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | pub fn set_render_background_left(&mut self, data: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 97 | pub fn set_render_sprites_left(&mut self, data: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn set_render_background(&mut self, data: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | pub fn set_render_sprites(&mut self, data: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn get_enhance_red(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 124 | pub fn set_enhance_red(&mut self, data: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 129 | pub fn get_enhance_green(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 133 | pub fn set_enhance_green(&mut self, data: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 138 | pub fn get_enhance_blue(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 142 | pub fn set_enhance_blue(&mut self, data: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/ppu/registers.rs:161:12 [INFO] [stdout] | [INFO] [stdout] 155 | impl PpuControl { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 161 | pub fn set_nametable_x(&mut self, data: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 170 | pub fn set_nametable_y(&mut self, data: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 179 | pub fn set_increment_mode(&mut self, data: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 188 | pub fn set_pattern_sprite(&mut self, data: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 197 | pub fn set_pattern_background(&mut self, data: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 206 | pub fn set_sprite_size(&mut self, data: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 211 | pub fn get_slave_mode(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 215 | pub fn set_slave_mode(&mut self, data: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 224 | pub fn set_enable_nmi(&mut self, data: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_unused` and `set_unused` are never used [INFO] [stdout] --> src/ppu/registers.rs:288:12 [INFO] [stdout] | [INFO] [stdout] 238 | impl LoopyRegister { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 288 | pub fn get_unused(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 292 | pub fn set_unused(&mut self, data: u8) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PIXEL_SIZE` is never used [INFO] [stdout] --> src/video/frame.rs:12:7 [INFO] [stdout] | [INFO] [stdout] 12 | const PIXEL_SIZE: f64 = 2.3; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `set_border` and `render` are never used [INFO] [stdout] --> src/video/frame.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 23 | impl Frame { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn set_border(&mut self, color: Pixel) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn render(&self, x: usize, y: usize, pixel_size: f64, context: Context, gl: &mut G2d) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `white`, `red`, `green`, and `blue` are never used [INFO] [stdout] --> src/video/pixel.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 4 | impl Pixel { [INFO] [stdout] | ---------- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 9 | pub fn white() -> Pixel { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | pub fn red() -> Pixel { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | pub fn green() -> Pixel { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | pub fn blue() -> Pixel { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `with_font_size` is never used [INFO] [stdout] --> src/video/utils.rs:48:12 [INFO] [stdout] | [INFO] [stdout] 36 | impl DrawText { [INFO] [stdout] | ------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn with_font_size(font_size: usize, x: usize, y: usize, c: Context) -> DrawText { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/mapper/mappers/mapper_000.rs:13:26 [INFO] [stdout] | [INFO] [stdout] 13 | if addr >= 0x8000 && addr <= 0xFFFF { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/mapper/mappers/mapper_000.rs:24:26 [INFO] [stdout] | [INFO] [stdout] 24 | if addr >= 0x8000 && addr <= 0xFFFF { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/mapper/mappers/mapper_000.rs:38:8 [INFO] [stdout] | [INFO] [stdout] 38 | if addr >= 0 && addr <= 0x1FFF { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/mapper/mappers/mapper_000.rs:46:8 [INFO] [stdout] | [INFO] [stdout] 46 | if addr >= 0x0000 && addr <= 0x1FFF { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module `ppu2C02` should have a snake case name [INFO] [stdout] --> src/ppu/mod.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | mod ppu2C02; [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `ppu2_c02` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1.07s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nom v6.1.2 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1` [INFO] running `Command { std: "docker" "inspect" "1d6a2733f66496c74bdbed04d7c54f5945e51c3e28dd8c1109f8599d4e453dc0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1d6a2733f66496c74bdbed04d7c54f5945e51c3e28dd8c1109f8599d4e453dc0", kill_on_drop: false }` [INFO] [stdout] 1d6a2733f66496c74bdbed04d7c54f5945e51c3e28dd8c1109f8599d4e453dc0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 899132db7c2a7b7043bfe70806ad9c6cd5535f48f30947f2d565d115964f6183 [INFO] running `Command { std: "docker" "start" "-a" "899132db7c2a7b7043bfe70806ad9c6cd5535f48f30947f2d565d115964f6183", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `cpu::Cpu6502` [INFO] [stderr] --> src/bus.rs:5:13 [INFO] [stderr] | [INFO] [stderr] 5 | use crate::{cpu::Cpu6502, pad::Pad}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `load_file::*` [INFO] [stderr] --> src/cartridge/mod.rs:5:9 [INFO] [stderr] | [INFO] [stderr] 5 | pub use load_file::*; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `addres_mode::AddressMode` [INFO] [stderr] --> src/cpu/mod.rs:8:9 [INFO] [stderr] | [INFO] [stderr] 8 | pub use addres_mode::AddressMode; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `instruction::Instruction` [INFO] [stderr] --> src/cpu/mod.rs:10:9 [INFO] [stderr] | [INFO] [stderr] 10 | pub use instruction::Instruction; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `opcode::Opcode` [INFO] [stderr] --> src/cpu/mod.rs:11:9 [INFO] [stderr] | [INFO] [stderr] 11 | pub use opcode::Opcode; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::video::Pixel` [INFO] [stderr] --> src/ppu/clock_helpers.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::video::Pixel; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashMap` [INFO] [stderr] --> src/video/utils.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Cpu6502` and `Flags6502` [INFO] [stderr] --> src/video/utils.rs:6:18 [INFO] [stderr] | [INFO] [stderr] 6 | use crate::cpu::{Cpu6502, Flags6502}; [INFO] [stderr] | ^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `ImageBuffer`, `Rgb`, and `Rgba` [INFO] [stderr] --> src/video/video.rs:10:13 [INFO] [stderr] | [INFO] [stderr] 10 | use image::{ImageBuffer, Rgb, Rgba}; [INFO] [stderr] | ^^^^^^^^^^^ ^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `utils::*` [INFO] [stderr] --> src/video/mod.rs:10:9 [INFO] [stderr] | [INFO] [stderr] 10 | pub use utils::*; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type `GAME_MODE` should have an upper camel case name [INFO] [stderr] --> src/main.rs:14:6 [INFO] [stderr] | [INFO] [stderr] 14 | enum GAME_MODE { [INFO] [stderr] | ^^^^^^^^^ help: convert the identifier to upper camel case: `GameMode` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cartridge/load_file.rs:61:13 [INFO] [stderr] | [INFO] [stderr] 61 | let mut buffer = slice::from_raw_parts_mut(&mut data as *mut T as *mut u8, num_bytes); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: this arithmetic operation will overflow [INFO] [stderr] --> src/cpu/external_inputs.rs:66:24 [INFO] [stderr] | [INFO] [stderr] 66 | self.pc = ((hi << 8) | lo) as u16; [INFO] [stderr] | ^^^^^^^^^ attempt to shift left by `8_i32`, which would overflow [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(arithmetic_overflow)]` on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `value` is never read [INFO] [stderr] --> src/cpu/helpers.rs:36:29 [INFO] [stderr] | [INFO] [stderr] 36 | let mut value: u8 = 0; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `lo` is never read [INFO] [stderr] --> src/cpu/helpers.rs:37:26 [INFO] [stderr] | [INFO] [stderr] 37 | let mut lo: u8 = 0; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `hi` is never read [INFO] [stderr] --> src/cpu/helpers.rs:38:26 [INFO] [stderr] | [INFO] [stderr] 38 | let mut hi: u8 = 0; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `value` is never read [INFO] [stderr] --> src/cpu/helpers.rs:123:29 [INFO] [stderr] | [INFO] [stderr] 123 | let mut value: u8 = 0; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `lo` is never read [INFO] [stderr] --> src/cpu/helpers.rs:124:26 [INFO] [stderr] | [INFO] [stderr] 124 | let mut lo: u8 = 0; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `hi` is never read [INFO] [stderr] --> src/cpu/helpers.rs:125:26 [INFO] [stderr] | [INFO] [stderr] 125 | let mut hi: u8 = 0; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `hi` is never read [INFO] [stderr] --> src/cpu/helpers.rs:153:21 [INFO] [stderr] | [INFO] [stderr] 153 | hi = 0x00; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `hi` is never read [INFO] [stderr] --> src/cpu/helpers.rs:159:21 [INFO] [stderr] | [INFO] [stderr] 159 | hi = 0x00; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `hi` is never read [INFO] [stderr] --> src/cpu/helpers.rs:165:21 [INFO] [stderr] | [INFO] [stderr] 165 | hi = 0x00; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `hi` is never read [INFO] [stderr] --> src/cpu/helpers.rs:171:21 [INFO] [stderr] | [INFO] [stderr] 171 | hi = 0x00; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `hi` is never read [INFO] [stderr] --> src/cpu/helpers.rs:177:21 [INFO] [stderr] | [INFO] [stderr] 177 | hi = 0x00; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `line_addr` is never read [INFO] [stderr] --> src/cpu/helpers.rs:129:34 [INFO] [stderr] | [INFO] [stderr] 129 | let mut line_addr: u16 = 0; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: unused variable: `data` [INFO] [stderr] --> src/mapper/mappers/mapper_000.rs:23:54 [INFO] [stderr] | [INFO] [stderr] 23 | pub fn cpu_map_write(mapper: &mut Mapper, addr: u16, data: u8) -> (bool, u32) { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `mapper` [INFO] [stderr] --> src/mapper/mappers/mapper_000.rs:34:21 [INFO] [stderr] | [INFO] [stderr] 34 | pub fn ppu_map_read(mapper: &mut Mapper, addr: u16) -> (bool, u32) { [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_mapper` [INFO] [stderr] [INFO] [stderr] warning: value assigned to `sprite_pattern_bits_lo` is never read [INFO] [stderr] --> src/ppu/clock.rs:329:58 [INFO] [stderr] | [INFO] [stderr] 329 | let mut sprite_pattern_bits_lo: u8 = 0; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `sprite_pattern_bits_hi` is never read [INFO] [stderr] --> src/ppu/clock.rs:330:58 [INFO] [stderr] | [INFO] [stderr] 330 | let mut sprite_pattern_bits_hi: u8 = 0; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `sprite_pattern_addr_lo` is never read [INFO] [stderr] --> src/ppu/clock.rs:331:59 [INFO] [stderr] | [INFO] [stderr] 331 | let mut sprite_pattern_addr_lo: u16 = 0; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `sprite_pattern_addr_hi` is never read [INFO] [stderr] --> src/ppu/clock.rs:332:59 [INFO] [stderr] | [INFO] [stderr] 332 | let mut sprite_pattern_addr_hi: u16 = 0; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: unused variable: `window` [INFO] [stderr] --> src/video/video.rs:18:28 [INFO] [stderr] | [INFO] [stderr] 18 | fn on_start(&mut self, window: &mut PistonWindow, texture_context: &mut G2dTextureContext) {} [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_window` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `texture_context` [INFO] [stderr] --> src/video/video.rs:18:55 [INFO] [stderr] | [INFO] [stderr] 18 | fn on_start(&mut self, window: &mut PistonWindow, texture_context: &mut G2dTextureContext) {} [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_texture_context` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `texture_context` [INFO] [stderr] --> src/video/video.rs:20:35 [INFO] [stderr] | [INFO] [stderr] 20 | fn update_textures(&mut self, texture_context: &mut G2dTextureContext) {} [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_texture_context` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `key` [INFO] [stderr] --> src/video/video.rs:26:35 [INFO] [stderr] | [INFO] [stderr] 26 | fn on_buttom_press(&mut self, key: Key) {} [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `key` [INFO] [stderr] --> src/video/video.rs:28:37 [INFO] [stderr] | [INFO] [stderr] 28 | fn on_buttom_release(&mut self, key: Key) {} [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stderr] [INFO] [stderr] warning: field `version` is never read [INFO] [stderr] --> src/bus.rs:43:9 [INFO] [stderr] | [INFO] [stderr] 42 | pub struct Bus { [INFO] [stderr] | --- field in this struct [INFO] [stderr] 43 | pub version: &'static str, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: function `print_buffer_hex` is never used [INFO] [stderr] --> src/cartridge/load_file.rs:74:8 [INFO] [stderr] | [INFO] [stderr] 74 | pub fn print_buffer_hex(buffer: &Vec, size: usize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `reset` is never used [INFO] [stderr] --> src/cartridge/memory_access.rs:29:12 [INFO] [stderr] | [INFO] [stderr] 3 | impl PrgRom { [INFO] [stderr] | ----------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 29 | pub fn reset(&self) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `reset` is never used [INFO] [stderr] --> src/cartridge/memory_access.rs:57:12 [INFO] [stderr] | [INFO] [stderr] 34 | impl ChrRom { [INFO] [stderr] | ----------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 57 | pub fn reset(&self) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variants `OneScreenLo` and `OneScreenHi` are never constructed [INFO] [stderr] --> src/cartridge/types.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 4 | pub enum Mirror { [INFO] [stderr] | ------ variants in this enum [INFO] [stderr] ... [INFO] [stderr] 7 | OneScreenLo, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] 8 | OneScreenHi, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Mirror` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: fields `mirror`, `mapper_id`, and `prg_banks` are never read [INFO] [stderr] --> src/cartridge/types.rs:14:9 [INFO] [stderr] | [INFO] [stderr] 13 | pub struct PrgRom { [INFO] [stderr] | ------ fields in this struct [INFO] [stderr] 14 | pub mirror: Mirror, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] 15 | pub mapper_id: u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 16 | pub prg_memory: Vec, [INFO] [stderr] 17 | pub prg_banks: u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `mapper_id` and `chr_banks` are never read [INFO] [stderr] --> src/cartridge/types.rs:25:9 [INFO] [stderr] | [INFO] [stderr] 23 | pub struct ChrRom { [INFO] [stderr] | ------ fields in this struct [INFO] [stderr] 24 | pub mirror: Mirror, [INFO] [stderr] 25 | pub mapper_id: u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 26 | pub chr_banks: u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `name`, `prg_ram_size`, `tv_system1`, `tv_system2`, and `unused` are never read [INFO] [stderr] --> src/cartridge/types.rs:54:9 [INFO] [stderr] | [INFO] [stderr] 53 | pub struct Header { [INFO] [stderr] | ------ fields in this struct [INFO] [stderr] 54 | pub name: [u8; 4], [INFO] [stderr] | ^^^^ [INFO] [stderr] ... [INFO] [stderr] 59 | pub prg_ram_size: u8, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] 60 | pub tv_system1: u8, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] 61 | pub tv_system2: u8, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] 62 | pub unused: [u8; 5], [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Header` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: variant `ACC` is never constructed [INFO] [stderr] --> src/cpu/addres_mode.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 15 | pub enum AddressMode { [INFO] [stderr] | ----------- variant in this enum [INFO] [stderr] ... [INFO] [stderr] 41 | ACC, [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: `AddressMode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: method `pc_back` is never used [INFO] [stderr] --> src/cpu/cpu6502.rs:128:12 [INFO] [stderr] | [INFO] [stderr] 122 | impl Cpu6502 { [INFO] [stderr] | ------------ method in this implementation [INFO] [stderr] ... [INFO] [stderr] 128 | pub fn pc_back(&mut self) -> u16 { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `irq` is never used [INFO] [stderr] --> src/cpu/external_inputs.rs:47:12 [INFO] [stderr] | [INFO] [stderr] 4 | impl Cpu6502 { [INFO] [stderr] | ------------ method in this implementation [INFO] [stderr] ... [INFO] [stderr] 47 | pub fn irq(&mut self) { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: method `disassemble` is never used [INFO] [stderr] --> src/cpu/helpers.rs:121:12 [INFO] [stderr] | [INFO] [stderr] 29 | impl Cpu6502 { [INFO] [stderr] | ------------ method in this implementation [INFO] [stderr] ... [INFO] [stderr] 121 | pub fn disassemble(&mut self, start: u16, stop: u16) -> HashMap { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Instruct` is never constructed [INFO] [stderr] --> src/cpu/instruction.rs:6:12 [INFO] [stderr] | [INFO] [stderr] 6 | pub struct Instruct(&'static str, Opcode, AddressMode, u8); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `reset` is never used [INFO] [stderr] --> src/mapper/mapper.rs:41:12 [INFO] [stderr] | [INFO] [stderr] 15 | impl Mapper { [INFO] [stderr] | ----------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 41 | pub fn reset(&self) {} [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `get_type` is never used [INFO] [stderr] --> src/mapper/mapper.rs:53:12 [INFO] [stderr] | [INFO] [stderr] 44 | impl Mapper { [INFO] [stderr] | ----------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 53 | pub fn get_type(&self) -> &'static str { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `reset` and `get_reg` are never used [INFO] [stderr] --> src/pad.rs:44:12 [INFO] [stderr] | [INFO] [stderr] 18 | impl Pad { [INFO] [stderr] | -------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 44 | pub fn reset(&mut self) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 74 | pub fn get_reg(&mut self) -> u8 { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `get_screen` is never used [INFO] [stderr] --> src/ppu/output.rs:20:12 [INFO] [stderr] | [INFO] [stderr] 4 | impl Ppu2C02 { [INFO] [stderr] | ------------ method in this implementation [INFO] [stderr] ... [INFO] [stderr] 20 | pub fn get_screen<'a>(&'a self) -> &'a Frame { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `sprite_name_table` is never read [INFO] [stderr] --> src/ppu/ppu2C02.rs:17:9 [INFO] [stderr] | [INFO] [stderr] 5 | pub struct Ppu2C02 { [INFO] [stderr] | ------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 17 | pub sprite_name_table: [Frame; 2], // (não usado) visualização da nametables (tela final na memória) as duas são 256x240 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `reset` is never used [INFO] [stderr] --> src/ppu/ppu2C02.rs:133:12 [INFO] [stderr] | [INFO] [stderr] 74 | impl Ppu2C02 { [INFO] [stderr] | ------------ method in this implementation [INFO] [stderr] ... [INFO] [stderr] 133 | pub fn reset(&mut self) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `get_unused`, `set_unused`, `get_sprite_overflow`, `get_sprite_zero_hit`, and `get_vertical_blank` are never used [INFO] [stderr] --> src/ppu/registers.rs:29:12 [INFO] [stderr] | [INFO] [stderr] 27 | impl Status { [INFO] [stderr] | ----------- methods in this implementation [INFO] [stderr] 28 | // unused: 5 [INFO] [stderr] 29 | pub fn get_unused(&self) -> u8 { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 33 | pub fn set_unused(&mut self, data: u8) { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 38 | pub fn get_sprite_overflow(&self) -> u8 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 47 | pub fn get_sprite_zero_hit(&self) -> u8 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 56 | pub fn get_vertical_blank(&self) -> u8 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple methods are never used [INFO] [stderr] --> src/ppu/registers.rs:79:12 [INFO] [stderr] | [INFO] [stderr] 73 | impl Mask { [INFO] [stderr] | --------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 79 | pub fn set_grayscale(&mut self, data: bool) { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 88 | pub fn set_render_background_left(&mut self, data: bool) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 97 | pub fn set_render_sprites_left(&mut self, data: bool) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 106 | pub fn set_render_background(&mut self, data: bool) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 115 | pub fn set_render_sprites(&mut self, data: bool) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 120 | pub fn get_enhance_red(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 124 | pub fn set_enhance_red(&mut self, data: bool) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 129 | pub fn get_enhance_green(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 133 | pub fn set_enhance_green(&mut self, data: bool) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 138 | pub fn get_enhance_blue(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 142 | pub fn set_enhance_blue(&mut self, data: bool) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple methods are never used [INFO] [stderr] --> src/ppu/registers.rs:161:12 [INFO] [stderr] | [INFO] [stderr] 155 | impl PpuControl { [INFO] [stderr] | --------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 161 | pub fn set_nametable_x(&mut self, data: u8) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 170 | pub fn set_nametable_y(&mut self, data: u8) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 179 | pub fn set_increment_mode(&mut self, data: u8) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 188 | pub fn set_pattern_sprite(&mut self, data: u8) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 197 | pub fn set_pattern_background(&mut self, data: u8) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 206 | pub fn set_sprite_size(&mut self, data: u8) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 211 | pub fn get_slave_mode(&self) -> u8 { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 215 | pub fn set_slave_mode(&mut self, data: u8) { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 224 | pub fn set_enable_nmi(&mut self, data: u8) { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `get_unused` and `set_unused` are never used [INFO] [stderr] --> src/ppu/registers.rs:288:12 [INFO] [stderr] | [INFO] [stderr] 238 | impl LoopyRegister { [INFO] [stderr] | ------------------ methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 288 | pub fn get_unused(&self) -> u8 { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 292 | pub fn set_unused(&mut self, data: u8) { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `PIXEL_SIZE` is never used [INFO] [stderr] --> src/video/frame.rs:12:7 [INFO] [stderr] | [INFO] [stderr] 12 | const PIXEL_SIZE: f64 = 2.3; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `set_border` and `render` are never used [INFO] [stderr] --> src/video/frame.rs:41:12 [INFO] [stderr] | [INFO] [stderr] 23 | impl Frame { [INFO] [stderr] | ---------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 41 | pub fn set_border(&mut self, color: Pixel) { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 53 | pub fn render(&self, x: usize, y: usize, pixel_size: f64, context: Context, gl: &mut G2d) { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated functions `white`, `red`, `green`, and `blue` are never used [INFO] [stderr] --> src/video/pixel.rs:9:12 [INFO] [stderr] | [INFO] [stderr] 4 | impl Pixel { [INFO] [stderr] | ---------- associated functions in this implementation [INFO] [stderr] ... [INFO] [stderr] 9 | pub fn white() -> Pixel { [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 13 | pub fn red() -> Pixel { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 17 | pub fn green() -> Pixel { [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 21 | pub fn blue() -> Pixel { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `with_font_size` is never used [INFO] [stderr] --> src/video/utils.rs:48:12 [INFO] [stderr] | [INFO] [stderr] 36 | impl DrawText { [INFO] [stderr] | ------------- associated function in this implementation [INFO] [stderr] ... [INFO] [stderr] 48 | pub fn with_font_size(font_size: usize, x: usize, y: usize, c: Context) -> DrawText { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/mapper/mappers/mapper_000.rs:13:26 [INFO] [stderr] | [INFO] [stderr] 13 | if addr >= 0x8000 && addr <= 0xFFFF { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_comparisons)]` on by default [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/mapper/mappers/mapper_000.rs:24:26 [INFO] [stderr] | [INFO] [stderr] 24 | if addr >= 0x8000 && addr <= 0xFFFF { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/mapper/mappers/mapper_000.rs:38:8 [INFO] [stderr] | [INFO] [stderr] 38 | if addr >= 0 && addr <= 0x1FFF { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/mapper/mappers/mapper_000.rs:46:8 [INFO] [stderr] | [INFO] [stderr] 46 | if addr >= 0x0000 && addr <= 0x1FFF { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: module `ppu2C02` should have a snake case name [INFO] [stderr] --> src/ppu/mod.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | mod ppu2C02; [INFO] [stderr] | ^^^^^^^ help: convert the identifier to snake case: `ppu2_c02` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: `rust-nes-emulator` (bin "rust-nes-emulator" test) generated 68 warnings (run `cargo fix --bin "rust-nes-emulator" -p rust-nes-emulator --tests` to apply 18 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.26s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nom v6.1.2 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1` [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/rust_nes_emulator-b9fd5a746ccfdd97) [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" "899132db7c2a7b7043bfe70806ad9c6cd5535f48f30947f2d565d115964f6183", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "899132db7c2a7b7043bfe70806ad9c6cd5535f48f30947f2d565d115964f6183", kill_on_drop: false }` [INFO] [stdout] 899132db7c2a7b7043bfe70806ad9c6cd5535f48f30947f2d565d115964f6183