[INFO] cloning repository https://github.com/kregoslup/r_nes [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/kregoslup/r_nes" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkregoslup%2Fr_nes", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkregoslup%2Fr_nes'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] d349f9ca4850030829a6a048f888119d411642e3 [INFO] checking kregoslup/r_nes against master#df20355fa9fa5e9fb89be4e4bfee8a643bb7a23e for pr-95474 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkregoslup%2Fr_nes" "/workspace/builds/worker-53/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-53/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/kregoslup/r_nes on toolchain df20355fa9fa5e9fb89be4e4bfee8a643bb7a23e [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+df20355fa9fa5e9fb89be4e4bfee8a643bb7a23e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/kregoslup/r_nes [INFO] finished tweaking git repo https://github.com/kregoslup/r_nes [INFO] tweaked toml for git repo https://github.com/kregoslup/r_nes written to /workspace/builds/worker-53/source/Cargo.toml [INFO] crate git repo https://github.com/kregoslup/r_nes already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+df20355fa9fa5e9fb89be4e4bfee8a643bb7a23e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded log4rs v1.0.0 [INFO] [stderr] Downloaded arc-swap v0.4.8 [INFO] [stderr] Downloaded anyhow v1.0.39 [INFO] [stderr] Downloaded sdl2-sys v0.31.0 [INFO] [stderr] Downloaded xdg v2.3.0 [INFO] [stderr] Downloaded sdl2 v0.31.0 [INFO] [stderr] Downloaded serde_derive v1.0.124 [INFO] [stderr] Downloaded serde v1.0.124 [INFO] [stderr] Downloaded serde_yaml v0.8.17 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-53/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-53/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:eaef2f80f755933c374d2ae5edccceec0c1312ceb8a4e0b6404e8ab76561e1e5" "/opt/rustwide/cargo-home/bin/cargo" "+df20355fa9fa5e9fb89be4e4bfee8a643bb7a23e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 513deecd2395c1ae5ff33845308fa156b72d7b6801bcd3cf98907afc368ba5f1 [INFO] running `Command { std: "docker" "start" "-a" "513deecd2395c1ae5ff33845308fa156b72d7b6801bcd3cf98907afc368ba5f1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "513deecd2395c1ae5ff33845308fa156b72d7b6801bcd3cf98907afc368ba5f1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "513deecd2395c1ae5ff33845308fa156b72d7b6801bcd3cf98907afc368ba5f1", kill_on_drop: false }` [INFO] [stdout] 513deecd2395c1ae5ff33845308fa156b72d7b6801bcd3cf98907afc368ba5f1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-53/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-53/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "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:eaef2f80f755933c374d2ae5edccceec0c1312ceb8a4e0b6404e8ab76561e1e5" "/opt/rustwide/cargo-home/bin/cargo" "+df20355fa9fa5e9fb89be4e4bfee8a643bb7a23e" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 4fd6547b2f631a7febddae1ea1627f4e08b51564dbaf99d77082c0deeab8e3c0 [INFO] running `Command { std: "docker" "start" "-a" "4fd6547b2f631a7febddae1ea1627f4e08b51564dbaf99d77082c0deeab8e3c0", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Compiling libc v0.2.121 [INFO] [stderr] Compiling proc-macro2 v1.0.24 [INFO] [stderr] Compiling unicode-xid v0.2.1 [INFO] [stderr] Compiling autocfg v1.0.1 [INFO] [stderr] Checking cfg-if v1.0.0 [INFO] [stderr] Compiling syn v1.0.67 [INFO] [stderr] Compiling bitflags v1.2.1 [INFO] [stderr] Compiling serde_derive v1.0.124 [INFO] [stderr] Compiling serde v1.0.124 [INFO] [stderr] Compiling pkg-config v0.3.25 [INFO] [stderr] Compiling log v0.4.14 [INFO] [stderr] Compiling memchr v2.3.3 [INFO] [stderr] Checking lazy_static v1.4.0 [INFO] [stderr] Checking smallvec v1.6.1 [INFO] [stderr] Checking cty v0.2.2 [INFO] [stderr] Compiling xml-rs v0.8.4 [INFO] [stderr] Checking slab v0.4.6 [INFO] [stderr] Checking cfg-if v0.1.10 [INFO] [stderr] Checking byteorder v1.4.3 [INFO] [stderr] Compiling futures-core v0.3.21 [INFO] [stderr] Checking scopeguard v1.1.0 [INFO] [stderr] Checking pin-project-lite v0.2.8 [INFO] [stderr] Checking once_cell v1.10.0 [INFO] [stderr] Compiling futures-task v0.3.21 [INFO] [stderr] Compiling futures-channel v0.3.21 [INFO] [stderr] Compiling futures-util v0.3.21 [INFO] [stderr] Compiling nix v0.18.0 [INFO] [stderr] Checking minimal-lexical v0.2.1 [INFO] [stderr] Checking scoped-tls v1.0.0 [INFO] [stderr] Checking futures-sink v0.3.21 [INFO] [stderr] Checking downcast-rs v1.2.0 [INFO] [stderr] Checking ttf-parser v0.6.2 [INFO] [stderr] Checking futures-io v0.3.21 [INFO] [stderr] Checking arrayvec v0.5.1 [INFO] [stderr] Checking pin-utils v0.1.0 [INFO] [stderr] Checking ab_glyph_rasterizer v0.1.5 [INFO] [stderr] Checking same-file v1.0.6 [INFO] [stderr] Checking bit-vec v0.6.3 [INFO] [stderr] Compiling ryu v1.0.5 [INFO] [stderr] Checking inplace_it v0.3.3 [INFO] [stderr] Compiling wide v0.4.6 [INFO] [stderr] Checking linked-hash-map v0.5.4 [INFO] [stderr] Checking lazycell v1.3.0 [INFO] [stderr] Checking copyless v0.1.5 [INFO] [stderr] Compiling serde_json v1.0.64 [INFO] [stderr] Compiling anyhow v1.0.39 [INFO] [stderr] Checking bytemuck v1.9.1 [INFO] [stderr] Checking traitobject v0.1.0 [INFO] [stderr] Checking typed-arena v2.0.1 [INFO] [stderr] Checking dtoa v0.4.7 [INFO] [stderr] Checking percent-encoding v2.1.0 [INFO] [stderr] Checking itoa v0.4.7 [INFO] [stderr] Checking regex-syntax v0.6.23 [INFO] [stderr] Checking pollster v0.2.5 [INFO] [stderr] Checking lazy_static v0.2.11 [INFO] [stderr] Checking log-mdc v0.1.0 [INFO] [stderr] Checking fnv v1.0.7 [INFO] [stderr] Checking arc-swap v0.4.8 [INFO] [stderr] Checking humantime v2.1.0 [INFO] [stderr] Checking bitflags v0.7.0 [INFO] [stderr] Checking libloading v0.6.7 [INFO] [stderr] Checking libloading v0.7.3 [INFO] [stderr] Checking instant v0.1.9 [INFO] [stderr] Checking raw-window-handle v0.4.3 [INFO] [stderr] Checking lock_api v0.4.2 [INFO] [stderr] Checking walkdir v2.3.2 [INFO] [stderr] Checking wgpu-types v0.6.1 [INFO] [stderr] Compiling sdl2-sys v0.31.0 [INFO] [stderr] Checking bit-set v0.5.2 [INFO] [stderr] Checking unsafe-any v0.4.2 [INFO] [stderr] Compiling quote v1.0.7 [INFO] [stderr] Checking fxhash v0.2.1 [INFO] [stderr] Checking tracing-core v0.1.24 [INFO] [stderr] Compiling wayland-sys v0.28.6 [INFO] [stderr] Compiling x11 v2.19.1 [INFO] [stderr] Compiling x11-dl v2.19.1 [INFO] [stderr] Compiling num-traits v0.2.12 [INFO] [stderr] Compiling memoffset v0.6.5 [INFO] [stderr] Compiling num-integer v0.1.43 [INFO] [stderr] Compiling num-iter v0.1.42 [INFO] [stderr] Checking ash v0.31.0 [INFO] [stderr] Checking dlib v0.4.2 [INFO] [stderr] Checking yaml-rust v0.4.5 [INFO] [stderr] Compiling wayland-scanner v0.28.6 [INFO] [stderr] Checking dlib v0.5.0 [INFO] [stderr] Checking owned_ttf_parser v0.6.0 [INFO] [stderr] Checking nom v7.1.1 [INFO] [stderr] Checking aho-corasick v0.7.15 [INFO] [stderr] Checking typemap v0.3.3 [INFO] [stderr] Checking tracing v0.1.32 [INFO] [stderr] Checking rusttype v0.9.2 [INFO] [stderr] Checking raw-window-handle v0.3.4 [INFO] [stderr] Checking parking_lot_core v0.8.3 [INFO] [stderr] Checking dirs v1.0.5 [INFO] [stderr] Checking net2 v0.2.37 [INFO] [stderr] Checking iovec v0.1.4 [INFO] [stderr] Checking memmap2 v0.1.0 [INFO] [stderr] Checking rand v0.4.6 [INFO] [stderr] Checking time v0.1.44 [INFO] [stderr] Checking dirs-sys v0.3.4 [INFO] [stderr] Checking thread-id v3.3.0 [INFO] [stderr] Checking nix v0.20.2 [INFO] [stderr] Checking xdg v2.3.0 [INFO] [stderr] Checking ultraviolet v0.4.6 [INFO] [stderr] Checking dirs v2.0.2 [INFO] [stderr] Checking gfx-hal v0.6.0 [INFO] [stderr] Checking parking_lot v0.11.1 [INFO] [stderr] Checking andrew v0.3.1 [INFO] [stderr] Checking rand v0.3.23 [INFO] [stderr] Checking regex v1.4.5 [INFO] [stderr] Compiling wayland-client v0.28.6 [INFO] [stderr] Compiling wayland-protocols v0.28.6 [INFO] [stderr] Checking spirv_headers v1.5.0 [INFO] [stderr] Checking ordered-float v2.1.1 [INFO] [stderr] Checking chrono v0.4.19 [INFO] [stderr] Checking num v0.1.42 [INFO] [stderr] Checking sdl2 v0.31.0 [INFO] [stderr] Checking xcursor v0.3.4 [INFO] [stderr] Checking wayland-commons v0.28.6 [INFO] [stderr] Checking wayland-cursor v0.28.6 [INFO] [stderr] Compiling thiserror-impl v1.0.24 [INFO] [stderr] Compiling futures-macro v0.3.21 [INFO] [stderr] Compiling derivative v2.2.0 [INFO] [stderr] Checking thiserror v1.0.24 [INFO] [stderr] Checking futures-executor v0.3.21 [INFO] [stderr] Checking futures v0.3.21 [INFO] [stderr] Checking serde_yaml v0.8.17 [INFO] [stderr] Checking serde-value v0.7.0 [INFO] [stderr] Checking gfx-memory v0.2.2 [INFO] [stderr] Checking gfx-descriptor v0.2.0 [INFO] [stderr] Checking gfx-backend-empty v0.6.0 [INFO] [stderr] Checking calloop v0.6.5 [INFO] [stderr] Checking naga v0.2.0 [INFO] [stderr] Checking gfx-backend-vulkan v0.6.5 [INFO] [stderr] Checking mio v0.6.23 [INFO] [stderr] Checking smithay-client-toolkit v0.12.3 [INFO] [stderr] Checking mio-extras v2.0.6 [INFO] [stderr] Checking log4rs v1.0.0 [INFO] [stderr] Checking wgpu-core v0.6.5 [INFO] [stderr] Checking winit v0.24.0 [INFO] [stderr] Checking winit_input_helper v0.9.0 [INFO] [stderr] Checking wgpu v0.6.2 [INFO] [stderr] Checking pixels v0.2.0 [INFO] [stderr] Checking r_nes v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `log4rs::append::file::FileAppender` [INFO] [stdout] --> src/main.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use log4rs::append::file::FileAppender; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log4rs::encode::pattern::PatternEncoder` [INFO] [stdout] --> src/main.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use log4rs::encode::pattern::PatternEncoder; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Logger` [INFO] [stdout] --> src/main.rs:10:40 [INFO] [stdout] | [INFO] [stdout] 10 | use log4rs::config::{Appender, Config, Logger, Root}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::bus::Bus` [INFO] [stdout] --> src/main.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::bus::Bus; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::cpu::Cpu` [INFO] [stdout] --> src/main.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::cpu::Cpu; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::cartridge::CartridgeLoader` [INFO] [stdout] --> src/main.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use crate::cartridge::CartridgeLoader; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::ppu::Ppu` [INFO] [stdout] --> src/main.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use crate::ppu::Ppu; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::util::read_file` [INFO] [stdout] --> src/main.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use crate::util::read_file; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Implied` [INFO] [stdout] --> src/cpu.rs:4:173 [INFO] [stdout] | [INFO] [stdout] 4 | ...d, Absolute, AbsoluteIndexed, Accumulator, Indirect, Relative, Implied}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AddressingMode` [INFO] [stdout] --> src/cpu.rs:6:37 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::addressing::{Addressing, AddressingMode, AddressingRegistry}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `warn` [INFO] [stdout] --> src/cpu.rs:11:17 [INFO] [stdout] | [INFO] [stdout] 11 | use log::{info, warn}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BorrowMut`, `Borrow` [INFO] [stdout] --> src/cpu.rs:14:19 [INFO] [stdout] | [INFO] [stdout] 14 | use std::borrow::{Borrow, BorrowMut}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CartridgeLoader`, `Cartridge` [INFO] [stdout] --> src/cpu.rs:16:24 [INFO] [stdout] | [INFO] [stdout] 16 | use crate::cartridge::{CartridgeLoader, Cartridge}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::Path` [INFO] [stdout] --> src/cpu.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use std::path::Path; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::event::Event` [INFO] [stdout] --> src/cpu.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | use sdl2::event::Event; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::keyboard::Keycode` [INFO] [stdout] --> src/cpu.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | use sdl2::keyboard::Keycode; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/cpu.rs:111:45 [INFO] [stdout] | [INFO] [stdout] 111 | if self.overflow_occurred(lhs, rhs, (result as u8), add) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 111 - if self.overflow_occurred(lhs, rhs, (result as u8), add) { [INFO] [stdout] 111 + if self.overflow_occurred(lhs, rhs, result as u8, add) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/cpu.rs:174:19 [INFO] [stdout] | [INFO] [stdout] 174 | (Wrapping((combine_u8(lsb, msb) as u16)) + Wrapping((to_add as u16))).0 [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 174 - (Wrapping((combine_u8(lsb, msb) as u16)) + Wrapping((to_add as u16))).0 [INFO] [stdout] 174 + (Wrapping(combine_u8(lsb, msb) as u16) + Wrapping((to_add as u16))).0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/cpu.rs:174:61 [INFO] [stdout] | [INFO] [stdout] 174 | (Wrapping((combine_u8(lsb, msb) as u16)) + Wrapping((to_add as u16))).0 [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 174 - (Wrapping((combine_u8(lsb, msb) as u16)) + Wrapping((to_add as u16))).0 [INFO] [stdout] 174 + (Wrapping((combine_u8(lsb, msb) as u16)) + Wrapping(to_add as u16)).0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/cpu.rs:303:20 [INFO] [stdout] | [INFO] [stdout] 303 | self.fetch((self.stack_pointer as u16 + 0x100)) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 303 - self.fetch((self.stack_pointer as u16 + 0x100)) [INFO] [stdout] 303 + self.fetch(self.stack_pointer as u16 + 0x100) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/cpu.rs:831:26 [INFO] [stdout] | [INFO] [stdout] 831 | let mut result = (Wrapping(self.acc as u16) - (Wrapping(value as u16)) - Wrapping(carry)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 831 - let mut result = (Wrapping(self.acc as u16) - (Wrapping(value as u16)) - Wrapping(carry)); [INFO] [stdout] 831 + let mut result = Wrapping(self.acc as u16) - (Wrapping(value as u16)) - Wrapping(carry); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::addressing::Addressing` [INFO] [stdout] --> src/op_code.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::addressing::Addressing; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::Path` [INFO] [stdout] --> src/bus.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::path::Path; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs::File` [INFO] [stdout] --> src/bus.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fs::File; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `warn` [INFO] [stdout] --> src/bus.rs:3:17 [INFO] [stdout] | [INFO] [stdout] 3 | use log::{info, warn}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Read` [INFO] [stdout] --> src/bus.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::io::Read; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `dirs::home_dir` [INFO] [stdout] --> src/bus.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use dirs::home_dir; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `CartridgeLoader` [INFO] [stdout] --> src/bus.rs:7:35 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::cartridge::{Cartridge, CartridgeLoader}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::cpu::Cpu` [INFO] [stdout] --> src/bus.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::cpu::Cpu; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BorrowMut`, `Borrow` [INFO] [stdout] --> src/addressing.rs:1:19 [INFO] [stdout] | [INFO] [stdout] 1 | use std::borrow::{BorrowMut, Borrow}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `info`, `warn` [INFO] [stdout] --> src/util.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | use log::{info, warn}; [INFO] [stdout] | ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Error`, `Formatter` [INFO] [stdout] --> src/flags.rs:2:28 [INFO] [stdout] | [INFO] [stdout] 2 | use bitflags::_core::fmt::{Formatter, Error}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `combine_nibbles` [INFO] [stdout] --> src/cartridge.rs:1:19 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::util::{combine_nibbles, nth_bit}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `info`, `warn` [INFO] [stdout] --> src/cartridge.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | use log::{info, warn}; [INFO] [stdout] | ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs::File` [INFO] [stdout] --> src/cartridge.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::fs::File; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Read` [INFO] [stdout] --> src/cartridge.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::io::Read; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `info`, `warn` [INFO] [stdout] --> src/screen.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | use log::{info, warn}; [INFO] [stdout] | ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log4rs::append::file::FileAppender` [INFO] [stdout] --> src/main.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use log4rs::append::file::FileAppender; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log4rs::encode::pattern::PatternEncoder` [INFO] [stdout] --> src/main.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use log4rs::encode::pattern::PatternEncoder; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Logger` [INFO] [stdout] --> src/main.rs:10:40 [INFO] [stdout] | [INFO] [stdout] 10 | use log4rs::config::{Appender, Config, Logger, Root}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::bus::Bus` [INFO] [stdout] --> src/main.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::bus::Bus; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::cpu::Cpu` [INFO] [stdout] --> src/main.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::cpu::Cpu; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::cartridge::CartridgeLoader` [INFO] [stdout] --> src/main.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use crate::cartridge::CartridgeLoader; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::ppu::Ppu` [INFO] [stdout] --> src/main.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use crate::ppu::Ppu; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::util::read_file` [INFO] [stdout] --> src/main.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use crate::util::read_file; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Implied` [INFO] [stdout] --> src/cpu.rs:4:173 [INFO] [stdout] | [INFO] [stdout] 4 | ...d, Absolute, AbsoluteIndexed, Accumulator, Indirect, Relative, Implied}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AddressingMode` [INFO] [stdout] --> src/cpu.rs:6:37 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::addressing::{Addressing, AddressingMode, AddressingRegistry}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `warn` [INFO] [stdout] --> src/cpu.rs:11:17 [INFO] [stdout] | [INFO] [stdout] 11 | use log::{info, warn}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BorrowMut`, `Borrow` [INFO] [stdout] --> src/cpu.rs:14:19 [INFO] [stdout] | [INFO] [stdout] 14 | use std::borrow::{Borrow, BorrowMut}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CartridgeLoader`, `Cartridge` [INFO] [stdout] --> src/cpu.rs:16:24 [INFO] [stdout] | [INFO] [stdout] 16 | use crate::cartridge::{CartridgeLoader, Cartridge}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::Path` [INFO] [stdout] --> src/cpu.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use std::path::Path; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::event::Event` [INFO] [stdout] --> src/cpu.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | use sdl2::event::Event; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sdl2::keyboard::Keycode` [INFO] [stdout] --> src/cpu.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | use sdl2::keyboard::Keycode; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/cpu.rs:111:45 [INFO] [stdout] | [INFO] [stdout] 111 | if self.overflow_occurred(lhs, rhs, (result as u8), add) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 111 - if self.overflow_occurred(lhs, rhs, (result as u8), add) { [INFO] [stdout] 111 + if self.overflow_occurred(lhs, rhs, result as u8, add) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/cpu.rs:174:19 [INFO] [stdout] | [INFO] [stdout] 174 | (Wrapping((combine_u8(lsb, msb) as u16)) + Wrapping((to_add as u16))).0 [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 174 - (Wrapping((combine_u8(lsb, msb) as u16)) + Wrapping((to_add as u16))).0 [INFO] [stdout] 174 + (Wrapping(combine_u8(lsb, msb) as u16) + Wrapping((to_add as u16))).0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/cpu.rs:174:61 [INFO] [stdout] | [INFO] [stdout] 174 | (Wrapping((combine_u8(lsb, msb) as u16)) + Wrapping((to_add as u16))).0 [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 174 - (Wrapping((combine_u8(lsb, msb) as u16)) + Wrapping((to_add as u16))).0 [INFO] [stdout] 174 + (Wrapping((combine_u8(lsb, msb) as u16)) + Wrapping(to_add as u16)).0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/cpu.rs:303:20 [INFO] [stdout] | [INFO] [stdout] 303 | self.fetch((self.stack_pointer as u16 + 0x100)) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 303 - self.fetch((self.stack_pointer as u16 + 0x100)) [INFO] [stdout] 303 + self.fetch(self.stack_pointer as u16 + 0x100) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/cpu.rs:831:26 [INFO] [stdout] | [INFO] [stdout] 831 | let mut result = (Wrapping(self.acc as u16) - (Wrapping(value as u16)) - Wrapping(carry)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 831 - let mut result = (Wrapping(self.acc as u16) - (Wrapping(value as u16)) - Wrapping(carry)); [INFO] [stdout] 831 + let mut result = Wrapping(self.acc as u16) - (Wrapping(value as u16)) - Wrapping(carry); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/cpu.rs:1330:36 [INFO] [stdout] | [INFO] [stdout] 1330 | let stored_acc = cpu.fetch(((cpu.stack_pointer + 1) as u16)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1330 - let stored_acc = cpu.fetch(((cpu.stack_pointer + 1) as u16)); [INFO] [stdout] 1330 + let stored_acc = cpu.fetch((cpu.stack_pointer + 1) as u16); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::addressing::Addressing` [INFO] [stdout] --> src/op_code.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::addressing::Addressing; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::*` [INFO] [stdout] --> src/op_code.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | use super::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::Path` [INFO] [stdout] --> src/bus.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::path::Path; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs::File` [INFO] [stdout] --> src/bus.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fs::File; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `warn` [INFO] [stdout] --> src/bus.rs:3:17 [INFO] [stdout] | [INFO] [stdout] 3 | use log::{info, warn}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Read` [INFO] [stdout] --> src/bus.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::io::Read; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `dirs::home_dir` [INFO] [stdout] --> src/bus.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use dirs::home_dir; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `CartridgeLoader` [INFO] [stdout] --> src/bus.rs:7:35 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::cartridge::{Cartridge, CartridgeLoader}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::cpu::Cpu` [INFO] [stdout] --> src/bus.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::cpu::Cpu; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BorrowMut`, `Borrow` [INFO] [stdout] --> src/addressing.rs:1:19 [INFO] [stdout] | [INFO] [stdout] 1 | use std::borrow::{BorrowMut, Borrow}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `warn` [INFO] [stdout] --> src/util.rs:3:17 [INFO] [stdout] | [INFO] [stdout] 3 | use log::{info, warn}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Error`, `Formatter` [INFO] [stdout] --> src/flags.rs:2:28 [INFO] [stdout] | [INFO] [stdout] 2 | use bitflags::_core::fmt::{Formatter, Error}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `combine_nibbles` [INFO] [stdout] --> src/cartridge.rs:1:19 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::util::{combine_nibbles, nth_bit}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `info`, `warn` [INFO] [stdout] --> src/cartridge.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | use log::{info, warn}; [INFO] [stdout] | ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs::File` [INFO] [stdout] --> src/cartridge.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::fs::File; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Read` [INFO] [stdout] --> src/cartridge.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::io::Read; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `info`, `warn` [INFO] [stdout] --> src/screen.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | use log::{info, warn}; [INFO] [stdout] | ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::Write` [INFO] [stdout] --> src/cpu.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | use std::fmt::Write as FmtWrite; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `event` [INFO] [stdout] --> src/cpu.rs:74:37 [INFO] [stdout] | [INFO] [stdout] 74 | event_loop.run_return(move |event, _, control_flow| { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_event` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `control_flow` [INFO] [stdout] --> src/cpu.rs:74:47 [INFO] [stdout] | [INFO] [stdout] 74 | event_loop.run_return(move |event, _, control_flow| { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_control_flow` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addressing` [INFO] [stdout] --> src/cpu.rs:194:36 [INFO] [stdout] | [INFO] [stdout] 194 | fn indirect_address(&mut self, addressing: &Addressing) -> u16 { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_addressing` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addressing` [INFO] [stdout] --> src/cpu.rs:208:28 [INFO] [stdout] | [INFO] [stdout] 208 | fn relative(&mut self, addressing: &Addressing) -> u16 { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_addressing` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `lhs_page` [INFO] [stdout] --> src/cpu.rs:870:13 [INFO] [stdout] | [INFO] [stdout] 870 | let lhs_page = lhs % 255; [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lhs_page` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rhs_page` [INFO] [stdout] --> src/cpu.rs:871:13 [INFO] [stdout] | [INFO] [stdout] 871 | let rhs_page = rhs % 255; [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rhs_page` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mapped` [INFO] [stdout] --> src/cartridge.rs:70:13 [INFO] [stdout] | [INFO] [stdout] 70 | let mapped = self.map_cpu_address(address); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_mapped` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/cartridge.rs:69:47 [INFO] [stdout] | [INFO] [stdout] 69 | pub fn cpu_write(&mut self, address: u16, value: u8) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `screen` [INFO] [stdout] --> src/ppu.rs:78:28 [INFO] [stdout] | [INFO] [stdout] 78 | pub fn tick(&mut self, screen: &mut Screen) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_screen` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `screen` [INFO] [stdout] --> src/ppu.rs:123:36 [INFO] [stdout] | [INFO] [stdout] 123 | pub fn draw_sprites(&mut self, screen: &mut Screen) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_screen` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `screen` [INFO] [stdout] --> src/ppu.rs:167:33 [INFO] [stdout] | [INFO] [stdout] 167 | pub fn draw_tile(&mut self, screen: &mut Screen) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_screen` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `real_address` [INFO] [stdout] --> src/ppu.rs:380:13 [INFO] [stdout] | [INFO] [stdout] 380 | let real_address = address & PPU_ADDRESSABLE_RANGE; [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_real_address` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `real_address` [INFO] [stdout] --> src/ppu.rs:385:13 [INFO] [stdout] | [INFO] [stdout] 385 | let real_address = address & PPU_ADDRESSABLE_RANGE; [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_real_address` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/ppu.rs:384:51 [INFO] [stdout] | [INFO] [stdout] 384 | pub fn save_internal(&mut self, address: u16, value: u8) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `input` [INFO] [stdout] --> src/screen.rs:24:17 [INFO] [stdout] | [INFO] [stdout] 24 | let mut input = WinitInputHelper::new(); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cpu.rs:566:13 [INFO] [stdout] | [INFO] [stdout] 566 | let mut cycles = 6; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cpu.rs:575:13 [INFO] [stdout] | [INFO] [stdout] 575 | let mut cycles = 6; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cpu.rs:606:13 [INFO] [stdout] | [INFO] [stdout] 606 | let mut cycles = 2; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cpu.rs:627:14 [INFO] [stdout] | [INFO] [stdout] 627 | let (mut value, address) = self.fetch_with_addressing_mode(&addressing); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cpu.rs:800:13 [INFO] [stdout] | [INFO] [stdout] 800 | let mut result = (Wrapping(target) - Wrapping(value)).0; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cpu.rs:816:13 [INFO] [stdout] | [INFO] [stdout] 816 | let mut result = (self.acc as u16) + (value as u16) + (self.status.contains(Flags::CARRY) as u16); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cpu.rs:831:13 [INFO] [stdout] | [INFO] [stdout] 831 | let mut result = (Wrapping(self.acc as u16) - (Wrapping(value as u16)) - Wrapping(carry)); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ppu.rs:172:13 [INFO] [stdout] | [INFO] [stdout] 172 | let mut tile_row = self.current_pixel % 32 as u16; [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ppu.rs:173:13 [INFO] [stdout] | [INFO] [stdout] 173 | let mut tile_column = self.current_pixel / 32 as u16; [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ppu.rs:175:13 [INFO] [stdout] | [INFO] [stdout] 175 | let mut cor_x = tile_row * 8; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ppu.rs:176:13 [INFO] [stdout] | [INFO] [stdout] 176 | let mut cor_y = tile_column * 8; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ppu.rs:264:29 [INFO] [stdout] | [INFO] [stdout] 264 | let mut mirrored_down = self.get_vram_address() & 0x2FFF; [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/screen.rs:24:13 [INFO] [stdout] | [INFO] [stdout] 24 | let mut input = WinitInputHelper::new(); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/console.rs:18:13 [INFO] [stdout] | [INFO] [stdout] 18 | let mut ppu = Ppu::new(cartridge.chr_rom.clone(), cartridge.nametable_mirroring); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/console.rs:19:13 [INFO] [stdout] | [INFO] [stdout] 19 | let mut bus = Bus::new(vec![0; 2048], ppu, cartridge); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `carry_arithmetic` [INFO] [stdout] --> src/cpu.rs:783:8 [INFO] [stdout] | [INFO] [stdout] 783 | fn carry_arithmetic(&mut self, operation: fn(u8, u8) -> (u8, bool), lhs: u8, rhs: u8) -> (u8, bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `get_borrow` [INFO] [stdout] --> src/cpu.rs:875:8 [INFO] [stdout] | [INFO] [stdout] 875 | fn get_borrow(&mut self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Implied` [INFO] [stdout] --> src/addressing.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | Implied, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `AddressingMode` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] --> src/addressing.rs:11:27 [INFO] [stdout] | [INFO] [stdout] 11 | #[derive(PartialEq, Copy, Clone, Debug)] [INFO] [stdout] | ^^^^^ ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Clone` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `combine_nibbles` [INFO] [stdout] --> src/util.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn combine_nibbles(lsb: u8, msb: u8) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/cartridge.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 51 | pub fn new() -> Cartridge { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `ppu_read` [INFO] [stdout] --> src/cartridge.rs:65:12 [INFO] [stdout] | [INFO] [stdout] 65 | pub fn ppu_read(&mut self, address: u16) -> u8 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `cpu_write` [INFO] [stdout] --> src/cartridge.rs:69:12 [INFO] [stdout] | [INFO] [stdout] 69 | pub fn cpu_write(&mut self, address: u16, value: u8) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `map_ppu_address` [INFO] [stdout] --> src/cartridge.rs:81:8 [INFO] [stdout] | [INFO] [stdout] 81 | fn map_ppu_address(&mut self, address: u16) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static is never used: `PPU_ADDRESSABLE_RANGE` [INFO] [stdout] --> src/ppu.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | static PPU_ADDRESSABLE_RANGE: u16 = 0x3FF; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static is never used: `PALETTE` [INFO] [stdout] --> src/ppu.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | / static PALETTE: &'static [(u8, u8, u8)] = &[ [INFO] [stdout] 11 | | (84, 84, 84), (0, 30, 116), ( 8, 16, 144), (48, 0, 136), (68, 0, 100), (92, 0, 48), (84, 4, 0), (60, 2... [INFO] [stdout] 12 | | (152, 150, 152), (8, 76, 196), ( 48, 50, 236), ( 92, 30, 228), (136, 20, 176), (160, 20, 100), (152, 34, 32), (120, ... [INFO] [stdout] 13 | | (236, 238, 236), (76, 154, 236), (120, 124, 236), (176, 98, 236), (228, 84, 236), (236, 88, 180), (236, 106, 100), (212, 1... [INFO] [stdout] 14 | | (236, 238, 236), (168, 204, 236), (188, 188, 236), (212, 178, 236), (236, 174, 236), (236, 174, 212), (236, 180, 176), (228, 1... [INFO] [stdout] 15 | | ]; [INFO] [stdout] | |__^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static is never used: `STARTUP_CYCLES` [INFO] [stdout] --> src/ppu.rs:17:1 [INFO] [stdout] | [INFO] [stdout] 17 | static STARTUP_CYCLES: u64 = 1_000_000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `r` [INFO] [stdout] --> src/ppu.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | pub(crate) r: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `Colour` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] --> src/ppu.rs:24:10 [INFO] [stdout] | [INFO] [stdout] 24 | #[derive(Clone, Debug, Copy)] [INFO] [stdout] | ^^^^^ ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Clone` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `g` [INFO] [stdout] --> src/ppu.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | pub(crate) g: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `Colour` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] --> src/ppu.rs:24:10 [INFO] [stdout] | [INFO] [stdout] 24 | #[derive(Clone, Debug, Copy)] [INFO] [stdout] | ^^^^^ ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Clone` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `b` [INFO] [stdout] --> src/ppu.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | pub(crate) b: u8 [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `Colour` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] --> src/ppu.rs:24:10 [INFO] [stdout] | [INFO] [stdout] 24 | #[derive(Clone, Debug, Copy)] [INFO] [stdout] | ^^^^^ ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Clone` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `last_register` [INFO] [stdout] --> src/ppu.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | last_register: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `Ppu` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] --> src/ppu.rs:31:10 [INFO] [stdout] | [INFO] [stdout] 31 | #[derive(Debug)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `current_pixel` [INFO] [stdout] --> src/ppu.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | current_pixel: u16, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `Ppu` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] --> src/ppu.rs:31:10 [INFO] [stdout] | [INFO] [stdout] 31 | #[derive(Debug)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `frame` [INFO] [stdout] --> src/ppu.rs:44:5 [INFO] [stdout] | [INFO] [stdout] 44 | frame: Vec<(u16, u16, Colour)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `Ppu` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] --> src/ppu.rs:31:10 [INFO] [stdout] | [INFO] [stdout] 31 | #[derive(Debug)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `draw` [INFO] [stdout] --> src/ppu.rs:105:8 [INFO] [stdout] | [INFO] [stdout] 105 | fn draw(&mut self, screen: &mut Screen) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `get_sprite_color` [INFO] [stdout] --> src/ppu.rs:117:12 [INFO] [stdout] | [INFO] [stdout] 117 | pub fn get_sprite_color(&mut self, palette_idx: u8) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `draw_sprites` [INFO] [stdout] --> src/ppu.rs:123:12 [INFO] [stdout] | [INFO] [stdout] 123 | pub fn draw_sprites(&mut self, screen: &mut Screen) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `draw_tile` [INFO] [stdout] --> src/ppu.rs:167:12 [INFO] [stdout] | [INFO] [stdout] 167 | pub fn draw_tile(&mut self, screen: &mut Screen) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `get_background_colour` [INFO] [stdout] --> src/ppu.rs:199:8 [INFO] [stdout] | [INFO] [stdout] 199 | fn get_background_colour(&self, tile_row: u16, tile_column: u16) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `get_sprite_size` [INFO] [stdout] --> src/ppu.rs:337:8 [INFO] [stdout] | [INFO] [stdout] 337 | fn get_sprite_size(&mut self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::Write` [INFO] [stdout] --> src/cpu.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | use std::fmt::Write as FmtWrite; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `get_sprite_pattern_table` [INFO] [stdout] --> src/ppu.rs:345:8 [INFO] [stdout] | [INFO] [stdout] 345 | fn get_sprite_pattern_table(&mut self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `get_background_pattern_table` [INFO] [stdout] --> src/ppu.rs:353:8 [INFO] [stdout] | [INFO] [stdout] 353 | fn get_background_pattern_table(&mut self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `get_base_nametable_address` [INFO] [stdout] --> src/ppu.rs:361:8 [INFO] [stdout] | [INFO] [stdout] 361 | fn get_base_nametable_address(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `fetch_internal` [INFO] [stdout] --> src/ppu.rs:379:12 [INFO] [stdout] | [INFO] [stdout] 379 | pub fn fetch_internal(&mut self, address: u16) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `save_internal` [INFO] [stdout] --> src/ppu.rs:384:12 [INFO] [stdout] | [INFO] [stdout] 384 | pub fn save_internal(&mut self, address: u16, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `pixels` [INFO] [stdout] --> src/screen.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | pixels: Pixels, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `window` [INFO] [stdout] --> src/screen.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | window: Window, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `draw_pixels` [INFO] [stdout] --> src/screen.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 38 | pub fn draw_pixels(&mut self, frame: &Vec<(u16, u16, Colour)>) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `clear` [INFO] [stdout] --> src/screen.rs:52:12 [INFO] [stdout] | [INFO] [stdout] 52 | pub fn clear(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `event` [INFO] [stdout] --> src/cpu.rs:74:37 [INFO] [stdout] | [INFO] [stdout] 74 | event_loop.run_return(move |event, _, control_flow| { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_event` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `control_flow` [INFO] [stdout] --> src/cpu.rs:74:47 [INFO] [stdout] | [INFO] [stdout] 74 | event_loop.run_return(move |event, _, control_flow| { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_control_flow` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addressing` [INFO] [stdout] --> src/cpu.rs:194:36 [INFO] [stdout] | [INFO] [stdout] 194 | fn indirect_address(&mut self, addressing: &Addressing) -> u16 { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_addressing` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addressing` [INFO] [stdout] --> src/cpu.rs:208:28 [INFO] [stdout] | [INFO] [stdout] 208 | fn relative(&mut self, addressing: &Addressing) -> u16 { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_addressing` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `lhs_page` [INFO] [stdout] --> src/cpu.rs:870:13 [INFO] [stdout] | [INFO] [stdout] 870 | let lhs_page = lhs % 255; [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lhs_page` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rhs_page` [INFO] [stdout] --> src/cpu.rs:871:13 [INFO] [stdout] | [INFO] [stdout] 871 | let rhs_page = rhs % 255; [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rhs_page` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mapped` [INFO] [stdout] --> src/cartridge.rs:70:13 [INFO] [stdout] | [INFO] [stdout] 70 | let mapped = self.map_cpu_address(address); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_mapped` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/cartridge.rs:69:47 [INFO] [stdout] | [INFO] [stdout] 69 | pub fn cpu_write(&mut self, address: u16, value: u8) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `screen` [INFO] [stdout] --> src/ppu.rs:78:28 [INFO] [stdout] | [INFO] [stdout] 78 | pub fn tick(&mut self, screen: &mut Screen) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_screen` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `screen` [INFO] [stdout] --> src/ppu.rs:123:36 [INFO] [stdout] | [INFO] [stdout] 123 | pub fn draw_sprites(&mut self, screen: &mut Screen) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_screen` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `screen` [INFO] [stdout] --> src/ppu.rs:167:33 [INFO] [stdout] | [INFO] [stdout] 167 | pub fn draw_tile(&mut self, screen: &mut Screen) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_screen` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `real_address` [INFO] [stdout] --> src/ppu.rs:380:13 [INFO] [stdout] | [INFO] [stdout] 380 | let real_address = address & PPU_ADDRESSABLE_RANGE; [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_real_address` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `real_address` [INFO] [stdout] --> src/ppu.rs:385:13 [INFO] [stdout] | [INFO] [stdout] 385 | let real_address = address & PPU_ADDRESSABLE_RANGE; [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_real_address` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/ppu.rs:384:51 [INFO] [stdout] | [INFO] [stdout] 384 | pub fn save_internal(&mut self, address: u16, value: u8) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `input` [INFO] [stdout] --> src/screen.rs:24:17 [INFO] [stdout] | [INFO] [stdout] 24 | let mut input = WinitInputHelper::new(); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `flags_on_stack` [INFO] [stdout] --> src/cpu.rs:1276:13 [INFO] [stdout] | [INFO] [stdout] 1276 | let flags_on_stack = Flags::NEGATIVE | Flags::PLACEHOLDER | Flags::OVERFLOW; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_flags_on_stack` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/cpu.rs:314:17 [INFO] [stdout] | [INFO] [stdout] 314 | / writeln!( [INFO] [stdout] 315 | | logfile, [INFO] [stdout] 316 | | // TODO: Fix length, add padding [INFO] [stdout] 317 | | "{:01X} {} A:{} X:{} Y:{} P:{} SP:{}", [INFO] [stdout] ... | [INFO] [stdout] 324 | | self.debug_format(self.stack_pointer) [INFO] [stdout] 325 | | ); [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: this warning originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu.rs:866:9 [INFO] [stdout] | [INFO] [stdout] 866 | value > 0x00FF [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/util.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | file.read_to_end(&mut data); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cartridge.rs:24:33 [INFO] [stdout] | [INFO] [stdout] 24 | if address >= 0x8000 && address <= 0xFFFF { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/ppu.rs:90:12 [INFO] [stdout] | [INFO] [stdout] 90 | if (0 <= self.scanline) && (self.scanline <= 239) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/screen.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | pixels.render(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/screen.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 48 | self.pixels.render(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cpu.rs:566:13 [INFO] [stdout] | [INFO] [stdout] 566 | let mut cycles = 6; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cpu.rs:575:13 [INFO] [stdout] | [INFO] [stdout] 575 | let mut cycles = 6; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cpu.rs:606:13 [INFO] [stdout] | [INFO] [stdout] 606 | let mut cycles = 2; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cpu.rs:627:14 [INFO] [stdout] | [INFO] [stdout] 627 | let (mut value, address) = self.fetch_with_addressing_mode(&addressing); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 107 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cpu.rs:800:13 [INFO] [stdout] | [INFO] [stdout] 800 | let mut result = (Wrapping(target) - Wrapping(value)).0; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cpu.rs:816:13 [INFO] [stdout] | [INFO] [stdout] 816 | let mut result = (self.acc as u16) + (value as u16) + (self.status.contains(Flags::CARRY) as u16); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cpu.rs:831:13 [INFO] [stdout] | [INFO] [stdout] 831 | let mut result = (Wrapping(self.acc as u16) - (Wrapping(value as u16)) - Wrapping(carry)); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cpu.rs:895:13 [INFO] [stdout] | [INFO] [stdout] 895 | let mut bus = create_test_bus(input); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ppu.rs:172:13 [INFO] [stdout] | [INFO] [stdout] 172 | let mut tile_row = self.current_pixel % 32 as u16; [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ppu.rs:173:13 [INFO] [stdout] | [INFO] [stdout] 173 | let mut tile_column = self.current_pixel / 32 as u16; [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ppu.rs:175:13 [INFO] [stdout] | [INFO] [stdout] 175 | let mut cor_x = tile_row * 8; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ppu.rs:176:13 [INFO] [stdout] | [INFO] [stdout] 176 | let mut cor_y = tile_column * 8; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ppu.rs:264:29 [INFO] [stdout] | [INFO] [stdout] 264 | let mut mirrored_down = self.get_vram_address() & 0x2FFF; [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/screen.rs:24:13 [INFO] [stdout] | [INFO] [stdout] 24 | let mut input = WinitInputHelper::new(); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/console.rs:18:13 [INFO] [stdout] | [INFO] [stdout] 18 | let mut ppu = Ppu::new(cartridge.chr_rom.clone(), cartridge.nametable_mirroring); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/console.rs:19:13 [INFO] [stdout] | [INFO] [stdout] 19 | let mut bus = Bus::new(vec![0; 2048], ppu, cartridge); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cpu.rs:1293:13 [INFO] [stdout] | [INFO] [stdout] 1293 | let mut memory = vec![0; len]; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cpu.rs:1324:13 [INFO] [stdout] | [INFO] [stdout] 1324 | let mut memory = vec![0; len]; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `carry_arithmetic` [INFO] [stdout] --> src/cpu.rs:783:8 [INFO] [stdout] | [INFO] [stdout] 783 | fn carry_arithmetic(&mut self, operation: fn(u8, u8) -> (u8, bool), lhs: u8, rhs: u8) -> (u8, bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `get_borrow` [INFO] [stdout] --> src/cpu.rs:875:8 [INFO] [stdout] | [INFO] [stdout] 875 | fn get_borrow(&mut self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Implied` [INFO] [stdout] --> src/addressing.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | Implied, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `AddressingMode` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] --> src/addressing.rs:11:27 [INFO] [stdout] | [INFO] [stdout] 11 | #[derive(PartialEq, Copy, Clone, Debug)] [INFO] [stdout] | ^^^^^ ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Clone` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `ppu_read` [INFO] [stdout] --> src/cartridge.rs:65:12 [INFO] [stdout] | [INFO] [stdout] 65 | pub fn ppu_read(&mut self, address: u16) -> u8 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `cpu_write` [INFO] [stdout] --> src/cartridge.rs:69:12 [INFO] [stdout] | [INFO] [stdout] 69 | pub fn cpu_write(&mut self, address: u16, value: u8) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `map_ppu_address` [INFO] [stdout] --> src/cartridge.rs:81:8 [INFO] [stdout] | [INFO] [stdout] 81 | fn map_ppu_address(&mut self, address: u16) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static is never used: `PPU_ADDRESSABLE_RANGE` [INFO] [stdout] --> src/ppu.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | static PPU_ADDRESSABLE_RANGE: u16 = 0x3FF; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static is never used: `PALETTE` [INFO] [stdout] --> src/ppu.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | / static PALETTE: &'static [(u8, u8, u8)] = &[ [INFO] [stdout] 11 | | (84, 84, 84), (0, 30, 116), ( 8, 16, 144), (48, 0, 136), (68, 0, 100), (92, 0, 48), (84, 4, 0), (60, 2... [INFO] [stdout] 12 | | (152, 150, 152), (8, 76, 196), ( 48, 50, 236), ( 92, 30, 228), (136, 20, 176), (160, 20, 100), (152, 34, 32), (120, ... [INFO] [stdout] 13 | | (236, 238, 236), (76, 154, 236), (120, 124, 236), (176, 98, 236), (228, 84, 236), (236, 88, 180), (236, 106, 100), (212, 1... [INFO] [stdout] 14 | | (236, 238, 236), (168, 204, 236), (188, 188, 236), (212, 178, 236), (236, 174, 236), (236, 174, 212), (236, 180, 176), (228, 1... [INFO] [stdout] 15 | | ]; [INFO] [stdout] | |__^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static is never used: `STARTUP_CYCLES` [INFO] [stdout] --> src/ppu.rs:17:1 [INFO] [stdout] | [INFO] [stdout] 17 | static STARTUP_CYCLES: u64 = 1_000_000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `r` [INFO] [stdout] --> src/ppu.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | pub(crate) r: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `Colour` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] --> src/ppu.rs:24:10 [INFO] [stdout] | [INFO] [stdout] 24 | #[derive(Clone, Debug, Copy)] [INFO] [stdout] | ^^^^^ ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Clone` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `g` [INFO] [stdout] --> src/ppu.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | pub(crate) g: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `Colour` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] --> src/ppu.rs:24:10 [INFO] [stdout] | [INFO] [stdout] 24 | #[derive(Clone, Debug, Copy)] [INFO] [stdout] | ^^^^^ ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Clone` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `b` [INFO] [stdout] --> src/ppu.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | pub(crate) b: u8 [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `Colour` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] --> src/ppu.rs:24:10 [INFO] [stdout] | [INFO] [stdout] 24 | #[derive(Clone, Debug, Copy)] [INFO] [stdout] | ^^^^^ ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Clone` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `last_register` [INFO] [stdout] --> src/ppu.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | last_register: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `Ppu` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] --> src/ppu.rs:31:10 [INFO] [stdout] | [INFO] [stdout] 31 | #[derive(Debug)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `current_pixel` [INFO] [stdout] --> src/ppu.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | current_pixel: u16, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `Ppu` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] --> src/ppu.rs:31:10 [INFO] [stdout] | [INFO] [stdout] 31 | #[derive(Debug)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `frame` [INFO] [stdout] --> src/ppu.rs:44:5 [INFO] [stdout] | [INFO] [stdout] 44 | frame: Vec<(u16, u16, Colour)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `Ppu` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] --> src/ppu.rs:31:10 [INFO] [stdout] | [INFO] [stdout] 31 | #[derive(Debug)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `draw` [INFO] [stdout] --> src/ppu.rs:105:8 [INFO] [stdout] | [INFO] [stdout] 105 | fn draw(&mut self, screen: &mut Screen) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `get_sprite_color` [INFO] [stdout] --> src/ppu.rs:117:12 [INFO] [stdout] | [INFO] [stdout] 117 | pub fn get_sprite_color(&mut self, palette_idx: u8) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `draw_sprites` [INFO] [stdout] --> src/ppu.rs:123:12 [INFO] [stdout] | [INFO] [stdout] 123 | pub fn draw_sprites(&mut self, screen: &mut Screen) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `draw_tile` [INFO] [stdout] --> src/ppu.rs:167:12 [INFO] [stdout] | [INFO] [stdout] 167 | pub fn draw_tile(&mut self, screen: &mut Screen) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `get_background_colour` [INFO] [stdout] --> src/ppu.rs:199:8 [INFO] [stdout] | [INFO] [stdout] 199 | fn get_background_colour(&self, tile_row: u16, tile_column: u16) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `get_sprite_size` [INFO] [stdout] --> src/ppu.rs:337:8 [INFO] [stdout] | [INFO] [stdout] 337 | fn get_sprite_size(&mut self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `get_sprite_pattern_table` [INFO] [stdout] --> src/ppu.rs:345:8 [INFO] [stdout] | [INFO] [stdout] 345 | fn get_sprite_pattern_table(&mut self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `get_background_pattern_table` [INFO] [stdout] --> src/ppu.rs:353:8 [INFO] [stdout] | [INFO] [stdout] 353 | fn get_background_pattern_table(&mut self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `get_base_nametable_address` [INFO] [stdout] --> src/ppu.rs:361:8 [INFO] [stdout] | [INFO] [stdout] 361 | fn get_base_nametable_address(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `fetch_internal` [INFO] [stdout] --> src/ppu.rs:379:12 [INFO] [stdout] | [INFO] [stdout] 379 | pub fn fetch_internal(&mut self, address: u16) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `save_internal` [INFO] [stdout] --> src/ppu.rs:384:12 [INFO] [stdout] | [INFO] [stdout] 384 | pub fn save_internal(&mut self, address: u16, value: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `pixels` [INFO] [stdout] --> src/screen.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | pixels: Pixels, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `window` [INFO] [stdout] --> src/screen.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | window: Window, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `draw_pixels` [INFO] [stdout] --> src/screen.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 38 | pub fn draw_pixels(&mut self, frame: &Vec<(u16, u16, Colour)>) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `clear` [INFO] [stdout] --> src/screen.rs:52:12 [INFO] [stdout] | [INFO] [stdout] 52 | pub fn clear(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/cpu.rs:314:17 [INFO] [stdout] | [INFO] [stdout] 314 | / writeln!( [INFO] [stdout] 315 | | logfile, [INFO] [stdout] 316 | | // TODO: Fix length, add padding [INFO] [stdout] 317 | | "{:01X} {} A:{} X:{} Y:{} P:{} SP:{}", [INFO] [stdout] ... | [INFO] [stdout] 324 | | self.debug_format(self.stack_pointer) [INFO] [stdout] 325 | | ); [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: this warning originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu.rs:866:9 [INFO] [stdout] | [INFO] [stdout] 866 | value > 0x00FF [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/util.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | file.read_to_end(&mut data); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cartridge.rs:24:33 [INFO] [stdout] | [INFO] [stdout] 24 | if address >= 0x8000 && address <= 0xFFFF { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/ppu.rs:90:12 [INFO] [stdout] | [INFO] [stdout] 90 | if (0 <= self.scanline) && (self.scanline <= 239) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/screen.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | pixels.render(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/screen.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 48 | self.pixels.render(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused comparison that must be used [INFO] [stdout] --> src/cpu.rs:1177:9 [INFO] [stdout] | [INFO] [stdout] 1177 | cpu.acc == 0; [INFO] [stdout] | ^^^^^^^^^^^^ the comparison produces a value [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1177 | let _ = cpu.acc == 0; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 36.68s [INFO] [stdout] warning: 112 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "4fd6547b2f631a7febddae1ea1627f4e08b51564dbaf99d77082c0deeab8e3c0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4fd6547b2f631a7febddae1ea1627f4e08b51564dbaf99d77082c0deeab8e3c0", kill_on_drop: false }` [INFO] [stdout] 4fd6547b2f631a7febddae1ea1627f4e08b51564dbaf99d77082c0deeab8e3c0