[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] building kregoslup/r_nes against try#f41a2ab7b0d9462073425dd6c04abbeb4805cb77 for pr-97334-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkregoslup%2Fr_nes" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/kregoslup/r_nes on toolchain f41a2ab7b0d9462073425dd6c04abbeb4805cb77 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f41a2ab7b0d9462073425dd6c04abbeb4805cb77" "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-4-tc2/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: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f41a2ab7b0d9462073425dd6c04abbeb4805cb77" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [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:3d532c2baa59a8a48e45c3be7eb049f77ac5a58a7a6514a58a8e878df1c3d03d" "/opt/rustwide/cargo-home/bin/cargo" "+f41a2ab7b0d9462073425dd6c04abbeb4805cb77" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 9e76cb207f11144f8dde1b25f8ba6640b9832c58b596dfb99eae76d7c52bd174 [INFO] running `Command { std: "docker" "start" "-a" "9e76cb207f11144f8dde1b25f8ba6640b9832c58b596dfb99eae76d7c52bd174", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "9e76cb207f11144f8dde1b25f8ba6640b9832c58b596dfb99eae76d7c52bd174", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9e76cb207f11144f8dde1b25f8ba6640b9832c58b596dfb99eae76d7c52bd174", kill_on_drop: false }` [INFO] [stdout] 9e76cb207f11144f8dde1b25f8ba6640b9832c58b596dfb99eae76d7c52bd174 [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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d532c2baa59a8a48e45c3be7eb049f77ac5a58a7a6514a58a8e878df1c3d03d" "/opt/rustwide/cargo-home/bin/cargo" "+f41a2ab7b0d9462073425dd6c04abbeb4805cb77" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a114fa1e062bc2eead3c9e43436e1c66ef2e8af6a958010c1b108277a3c316bb [INFO] running `Command { std: "docker" "start" "-a" "a114fa1e062bc2eead3c9e43436e1c66ef2e8af6a958010c1b108277a3c316bb", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.139 [INFO] [stderr] Compiling proc-macro2 v1.0.24 [INFO] [stderr] Compiling unicode-xid v0.2.1 [INFO] [stderr] Compiling syn v1.0.67 [INFO] [stderr] Compiling serde_derive v1.0.124 [INFO] [stderr] Compiling serde v1.0.124 [INFO] [stderr] Compiling pkg-config v0.3.26 [INFO] [stderr] Compiling log v0.4.14 [INFO] [stderr] Compiling memchr v2.3.3 [INFO] [stderr] Compiling num-traits v0.2.12 [INFO] [stderr] Compiling cfg-if v0.1.10 [INFO] [stderr] Compiling smallvec v1.6.1 [INFO] [stderr] Compiling slab v0.4.7 [INFO] [stderr] Compiling once_cell v1.17.0 [INFO] [stderr] Compiling quote v1.0.7 [INFO] [stderr] Compiling xml-rs v0.8.4 [INFO] [stderr] Compiling cty v0.2.2 [INFO] [stderr] Compiling raw-window-handle v0.4.3 [INFO] [stderr] Compiling memoffset v0.6.5 [INFO] [stderr] Compiling wayland-sys v0.28.6 [INFO] [stderr] Compiling libloading v0.6.7 [INFO] [stderr] Compiling libloading v0.7.4 [INFO] [stderr] Compiling instant v0.1.9 [INFO] [stderr] Compiling dlib v0.5.0 [INFO] [stderr] Compiling futures-core v0.3.25 [INFO] [stderr] Compiling wayland-scanner v0.28.6 [INFO] [stderr] Compiling byteorder v1.4.3 [INFO] [stderr] Compiling lock_api v0.4.2 [INFO] [stderr] Compiling num-integer v0.1.43 [INFO] [stderr] Compiling futures-channel v0.3.25 [INFO] [stderr] Compiling futures-task v0.3.25 [INFO] [stderr] Compiling pin-project-lite v0.2.9 [INFO] [stderr] Compiling fxhash v0.2.1 [INFO] [stderr] Compiling raw-window-handle v0.3.4 [INFO] [stderr] Compiling parking_lot_core v0.8.3 [INFO] [stderr] Compiling nix v0.20.2 [INFO] [stderr] Compiling gfx-hal v0.6.0 [INFO] [stderr] Compiling parking_lot v0.11.1 [INFO] [stderr] Compiling x11 v2.21.0 [INFO] [stderr] Compiling futures-sink v0.3.25 [INFO] [stderr] Compiling nix v0.18.0 [INFO] [stderr] Compiling downcast-rs v1.2.0 [INFO] [stderr] Compiling futures-util v0.3.25 [INFO] [stderr] Compiling ttf-parser v0.15.2 [INFO] [stderr] Compiling scoped-tls v1.0.1 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Compiling dirs v1.0.5 [INFO] [stderr] Compiling wayland-client v0.28.6 [INFO] [stderr] Compiling wayland-protocols v0.28.6 [INFO] [stderr] Compiling bit-vec v0.6.3 [INFO] [stderr] Compiling ab_glyph_rasterizer v0.1.8 [INFO] [stderr] Compiling arrayvec v0.5.1 [INFO] [stderr] Compiling futures-io v0.3.25 [INFO] [stderr] Compiling bit-set v0.5.3 [INFO] [stderr] Compiling xcursor v0.3.4 [INFO] [stderr] Compiling xdg v2.3.0 [INFO] [stderr] Compiling owned_ttf_parser v0.15.2 [INFO] [stderr] Compiling rusttype v0.9.3 [INFO] [stderr] Compiling net2 v0.2.38 [INFO] [stderr] Compiling iovec v0.1.4 [INFO] [stderr] Compiling spirv_headers v1.5.0 [INFO] [stderr] Compiling wayland-commons v0.28.6 [INFO] [stderr] Compiling ash v0.31.0 [INFO] [stderr] Compiling x11-dl v2.21.0 [INFO] [stderr] Compiling tracing-core v0.1.30 [INFO] [stderr] Compiling num-iter v0.1.42 [INFO] [stderr] Compiling inplace_it v0.3.5 [INFO] [stderr] Compiling wide v0.4.6 [INFO] [stderr] Compiling tracing v0.1.37 [INFO] [stderr] Compiling wayland-cursor v0.28.6 [INFO] [stderr] Compiling andrew v0.3.1 [INFO] [stderr] Compiling memmap2 v0.1.0 [INFO] [stderr] Compiling dlib v0.4.2 [INFO] [stderr] Compiling sdl2-sys v0.31.0 [INFO] [stderr] Compiling wgpu-types v0.6.1 [INFO] [stderr] Compiling bytemuck v1.13.0 [INFO] [stderr] Compiling lazycell v1.3.0 [INFO] [stderr] Compiling serde_json v1.0.64 [INFO] [stderr] Compiling traitobject v0.1.0 [INFO] [stderr] Compiling anyhow v1.0.39 [INFO] [stderr] Compiling copyless v0.1.5 [INFO] [stderr] Compiling yaml-rust v0.4.5 [INFO] [stderr] Compiling unsafe-any v0.4.2 [INFO] [stderr] Compiling time v0.1.44 [INFO] [stderr] Compiling rand v0.4.6 [INFO] [stderr] Compiling ordered-float v2.1.1 [INFO] [stderr] Compiling aho-corasick v0.7.15 [INFO] [stderr] Compiling regex-syntax v0.6.23 [INFO] [stderr] Compiling percent-encoding v2.2.0 [INFO] [stderr] Compiling dtoa v0.4.7 [INFO] [stderr] Compiling typed-arena v2.0.2 [INFO] [stderr] Compiling itoa v0.4.7 [INFO] [stderr] Compiling rand v0.3.23 [INFO] [stderr] Compiling ultraviolet v0.4.6 [INFO] [stderr] Compiling chrono v0.4.19 [INFO] [stderr] Compiling thiserror-impl v1.0.24 [INFO] [stderr] Compiling futures-macro v0.3.25 [INFO] [stderr] Compiling regex v1.4.5 [INFO] [stderr] Compiling thiserror v1.0.24 [INFO] [stderr] Compiling derivative v2.2.0 [INFO] [stderr] Compiling num v0.1.42 [INFO] [stderr] Compiling typemap v0.3.3 [INFO] [stderr] Compiling dirs-sys v0.3.4 [INFO] [stderr] Compiling thread-id v3.3.0 [INFO] [stderr] Compiling lazy_static v0.2.11 [INFO] [stderr] Compiling bitflags v0.7.0 [INFO] [stderr] Compiling arc-swap v0.4.8 [INFO] [stderr] Compiling log-mdc v0.1.0 [INFO] [stderr] Compiling pollster v0.2.5 [INFO] [stderr] Compiling humantime v2.1.0 [INFO] [stderr] Compiling sdl2 v0.31.0 [INFO] [stderr] Compiling dirs v2.0.2 [INFO] [stderr] Compiling futures-executor v0.3.25 [INFO] [stderr] Compiling futures v0.3.25 [INFO] [stderr] Compiling serde_yaml v0.8.17 [INFO] [stderr] Compiling serde-value v0.7.0 [INFO] [stderr] Compiling gfx-backend-vulkan v0.6.5 [INFO] [stderr] Compiling gfx-backend-empty v0.6.0 [INFO] [stderr] Compiling calloop v0.6.5 [INFO] [stderr] Compiling mio v0.6.23 [INFO] [stderr] Compiling gfx-memory v0.2.2 [INFO] [stderr] Compiling naga v0.2.0 [INFO] [stderr] Compiling gfx-descriptor v0.2.0 [INFO] [stderr] Compiling mio-extras v2.0.6 [INFO] [stderr] Compiling smithay-client-toolkit v0.12.3 [INFO] [stderr] Compiling log4rs v1.0.0 [INFO] [stderr] Compiling wgpu-core v0.6.5 [INFO] [stderr] Compiling winit v0.24.0 [INFO] [stderr] Compiling winit_input_helper v0.9.0 [INFO] [stderr] Compiling wgpu v0.6.2 [INFO] [stderr] Compiling pixels v0.2.0 [INFO] [stderr] Compiling 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: unnecessary parentheses around match arm expression [INFO] [stdout] --> src/ppu.rs:206:22 [INFO] [stdout] | [INFO] [stdout] 206 | (1,0) => (attribute >> 2), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 206 - (1,0) => (attribute >> 2), [INFO] [stdout] 206 + (1,0) => attribute >> 2, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around match arm expression [INFO] [stdout] --> src/ppu.rs:207:22 [INFO] [stdout] | [INFO] [stdout] 207 | (0,1) => (attribute >> 4), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 207 - (0,1) => (attribute >> 4), [INFO] [stdout] 207 + (0,1) => attribute >> 4, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around match arm expression [INFO] [stdout] --> src/ppu.rs:208:22 [INFO] [stdout] | [INFO] [stdout] 208 | (1,1) => (attribute >> 6), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 208 - (1,1) => (attribute >> 6), [INFO] [stdout] 208 + (1,1) => attribute >> 6, [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 `carry_arithmetic` is never used [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 `get_borrow` is never used [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 `Implied` is never constructed [INFO] [stdout] --> src/addressing.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 12 | pub enum AddressingMode { [INFO] [stdout] | -------------- variant in this enum [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] [INFO] [stdout] [INFO] [stdout] warning: function `combine_nibbles` is never used [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 `new` is never used [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 `ppu_read` is never used [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 `cpu_write` is never used [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 `map_ppu_address` is never used [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 `PPU_ADDRESSABLE_RANGE` is never used [INFO] [stdout] --> src/ppu.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | static PPU_ADDRESSABLE_RANGE: u16 = 0x3FF; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `PALETTE` is never used [INFO] [stdout] --> src/ppu.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | static PALETTE: &'static [(u8, u8, u8)] = &[ [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `STARTUP_CYCLES` is never used [INFO] [stdout] --> src/ppu.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 17 | static STARTUP_CYCLES: u64 = 1_000_000; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `r`, `g`, and `b` are never read [INFO] [stdout] --> src/ppu.rs:26:16 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct Colour { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 26 | pub(crate) r: u8, [INFO] [stdout] | ^ [INFO] [stdout] 27 | pub(crate) g: u8, [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] [INFO] [stdout] [INFO] [stdout] warning: fields `last_register`, `current_pixel`, and `frame` are never read [INFO] [stdout] --> src/ppu.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Ppu { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 40 | last_register: u8, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | current_pixel: u16, [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] [INFO] [stdout] [INFO] [stdout] warning: associated function `draw` is never used [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 `get_sprite_color` is never used [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 `draw_sprites` is never used [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 `draw_tile` is never used [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 `get_background_colour` is never used [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 `get_sprite_size` is never used [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 `get_sprite_pattern_table` is never used [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 `get_background_pattern_table` is never used [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 `get_base_nametable_address` is never used [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 `fetch_internal` is never used [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 `save_internal` is never used [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: fields `pixels` and `window` are never read [INFO] [stdout] --> src/screen.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct Screen { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 18 | pixels: Pixels, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 19 | window: Window, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `draw_pixels` is never used [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 `clear` is never used [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: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [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: 105 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1m 43s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: traitobject v0.1.0 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3` [INFO] running `Command { std: "docker" "inspect" "a114fa1e062bc2eead3c9e43436e1c66ef2e8af6a958010c1b108277a3c316bb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a114fa1e062bc2eead3c9e43436e1c66ef2e8af6a958010c1b108277a3c316bb", kill_on_drop: false }` [INFO] [stdout] a114fa1e062bc2eead3c9e43436e1c66ef2e8af6a958010c1b108277a3c316bb [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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d532c2baa59a8a48e45c3be7eb049f77ac5a58a7a6514a58a8e878df1c3d03d" "/opt/rustwide/cargo-home/bin/cargo" "+f41a2ab7b0d9462073425dd6c04abbeb4805cb77" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] fc95293c8f79a0b4cdf2bc295f8136e486d29819cba56a446c5ed7a7a498301b [INFO] running `Command { std: "docker" "start" "-a" "fc95293c8f79a0b4cdf2bc295f8136e486d29819cba56a446c5ed7a7a498301b", kill_on_drop: false }` [INFO] [stderr] Compiling 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: 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: unnecessary parentheses around match arm expression [INFO] [stdout] --> src/ppu.rs:206:22 [INFO] [stdout] | [INFO] [stdout] 206 | (1,0) => (attribute >> 2), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 206 - (1,0) => (attribute >> 2), [INFO] [stdout] 206 + (1,0) => attribute >> 2, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around match arm expression [INFO] [stdout] --> src/ppu.rs:207:22 [INFO] [stdout] | [INFO] [stdout] 207 | (0,1) => (attribute >> 4), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 207 - (0,1) => (attribute >> 4), [INFO] [stdout] 207 + (0,1) => attribute >> 4, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around match arm expression [INFO] [stdout] --> src/ppu.rs:208:22 [INFO] [stdout] | [INFO] [stdout] 208 | (1,1) => (attribute >> 6), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 208 - (1,1) => (attribute >> 6), [INFO] [stdout] 208 + (1,1) => attribute >> 6, [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: `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 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/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/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: 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 `carry_arithmetic` is never used [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 `get_borrow` is never used [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 `Implied` is never constructed [INFO] [stdout] --> src/addressing.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 12 | pub enum AddressingMode { [INFO] [stdout] | -------------- variant in this enum [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] [INFO] [stdout] [INFO] [stdout] warning: associated function `ppu_read` is never used [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 `cpu_write` is never used [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 `map_ppu_address` is never used [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 `PPU_ADDRESSABLE_RANGE` is never used [INFO] [stdout] --> src/ppu.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | static PPU_ADDRESSABLE_RANGE: u16 = 0x3FF; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `PALETTE` is never used [INFO] [stdout] --> src/ppu.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | static PALETTE: &'static [(u8, u8, u8)] = &[ [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `STARTUP_CYCLES` is never used [INFO] [stdout] --> src/ppu.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 17 | static STARTUP_CYCLES: u64 = 1_000_000; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `r`, `g`, and `b` are never read [INFO] [stdout] --> src/ppu.rs:26:16 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct Colour { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 26 | pub(crate) r: u8, [INFO] [stdout] | ^ [INFO] [stdout] 27 | pub(crate) g: u8, [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] [INFO] [stdout] [INFO] [stdout] warning: fields `last_register`, `current_pixel`, and `frame` are never read [INFO] [stdout] --> src/ppu.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Ppu { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 40 | last_register: u8, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | current_pixel: u16, [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] [INFO] [stdout] [INFO] [stdout] warning: associated function `draw` is never used [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 `get_sprite_color` is never used [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 `draw_sprites` is never used [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 `draw_tile` is never used [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 `get_background_colour` is never used [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 `get_sprite_size` is never used [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 `get_sprite_pattern_table` is never used [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 `get_background_pattern_table` is never used [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 `get_base_nametable_address` is never used [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 `fetch_internal` is never used [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 `save_internal` is never used [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: fields `pixels` and `window` are never read [INFO] [stdout] --> src/screen.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct Screen { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 18 | pixels: Pixels, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 19 | window: Window, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `draw_pixels` is never used [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 `clear` is never used [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: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [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 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] [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: 110 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 3.64s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: traitobject v0.1.0 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 4` [INFO] running `Command { std: "docker" "inspect" "fc95293c8f79a0b4cdf2bc295f8136e486d29819cba56a446c5ed7a7a498301b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fc95293c8f79a0b4cdf2bc295f8136e486d29819cba56a446c5ed7a7a498301b", kill_on_drop: false }` [INFO] [stdout] fc95293c8f79a0b4cdf2bc295f8136e486d29819cba56a446c5ed7a7a498301b