[INFO] cloning repository https://github.com/MatthewZelriche/NESEmu [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/MatthewZelriche/NESEmu" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMatthewZelriche%2FNESEmu", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMatthewZelriche%2FNESEmu'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 001273ced2bbdab13026713117e5c19f9c8e06c9 [INFO] linting MatthewZelriche/NESEmu against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMatthewZelriche%2FNESEmu" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/MatthewZelriche/NESEmu [INFO] finished tweaking git repo https://github.com/MatthewZelriche/NESEmu [INFO] tweaked toml for git repo https://github.com/MatthewZelriche/NESEmu written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/MatthewZelriche/NESEmu on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/MatthewZelriche/NESEmu 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" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded tock-registers v0.9.0 [INFO] [stderr] Downloaded spin_sleep v1.2.0 [INFO] [stderr] Downloaded ecolor v0.24.1 [INFO] [stderr] Downloaded thiserror-impl v1.0.52 [INFO] [stderr] Downloaded egui_logger v0.4.1 [INFO] [stderr] Downloaded accesskit v0.12.1 [INFO] [stderr] Downloaded serde_repr v0.1.17 [INFO] [stderr] Downloaded async-trait v0.1.75 [INFO] [stderr] Downloaded bitfield v0.14.0 [INFO] [stderr] Downloaded accesskit_winit v0.15.0 [INFO] [stderr] Downloaded event-listener v4.0.1 [INFO] [stderr] Downloaded async-task v4.6.0 [INFO] [stderr] Downloaded futures-lite v2.1.0 [INFO] [stderr] Downloaded egui_glow v0.24.1 [INFO] [stderr] Downloaded thiserror v1.0.52 [INFO] [stderr] Downloaded egui-winit v0.24.1 [INFO] [stderr] Downloaded glutin-winit v0.3.0 [INFO] [stderr] Downloaded egui v0.24.1 [INFO] [stderr] Downloaded emath v0.24.1 [INFO] [stderr] Downloaded eframe v0.24.1 [INFO] [stderr] Downloaded egui_memory_editor v0.2.7 [INFO] [stderr] Downloaded epaint v0.24.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 306c9b74b64b583527a9b02742533a6cde3ba72ed802c922fa62c7655179463e [INFO] running `Command { std: "docker" "start" "-a" "306c9b74b64b583527a9b02742533a6cde3ba72ed802c922fa62c7655179463e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "306c9b74b64b583527a9b02742533a6cde3ba72ed802c922fa62c7655179463e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "306c9b74b64b583527a9b02742533a6cde3ba72ed802c922fa62c7655179463e", kill_on_drop: false }` [INFO] [stdout] 306c9b74b64b583527a9b02742533a6cde3ba72ed802c922fa62c7655179463e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 18abd24294e40afa3d133727f8ab4f8a28a7c98839f2dcab37f980ed8aad1583 [INFO] running `Command { std: "docker" "start" "-a" "18abd24294e40afa3d133727f8ab4f8a28a7c98839f2dcab37f980ed8aad1583", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.71 [INFO] [stderr] Compiling libc v0.2.151 [INFO] [stderr] Checking log v0.4.20 [INFO] [stderr] Compiling xml-rs v0.8.19 [INFO] [stderr] Compiling crossbeam-utils v0.8.18 [INFO] [stderr] Checking smallvec v1.11.2 [INFO] [stderr] Checking parking v2.2.0 [INFO] [stderr] Compiling memoffset v0.6.5 [INFO] [stderr] Checking memchr v2.7.1 [INFO] [stderr] Checking libloading v0.8.1 [INFO] [stderr] Compiling hashbrown v0.14.3 [INFO] [stderr] Checking memoffset v0.7.1 [INFO] [stderr] Compiling toml_datetime v0.6.5 [INFO] [stderr] Compiling winnow v0.5.31 [INFO] [stderr] Compiling wayland-sys v0.29.5 [INFO] [stderr] Compiling serde v1.0.193 [INFO] [stderr] Checking fastrand v2.0.1 [INFO] [stderr] Checking futures-lite v2.1.0 [INFO] [stderr] Compiling polling v2.8.0 [INFO] [stderr] Compiling rustix v0.37.27 [INFO] [stderr] Checking waker-fn v1.1.1 [INFO] [stderr] Checking dlib v0.5.2 [INFO] [stderr] Compiling regex-syntax v0.8.2 [INFO] [stderr] Compiling thiserror v1.0.52 [INFO] [stderr] Checking async-task v4.6.0 [INFO] [stderr] Checking piper v0.2.1 [INFO] [stderr] Checking ab_glyph v0.2.23 [INFO] [stderr] Checking async-lock v2.8.0 [INFO] [stderr] Compiling slotmap v1.0.7 [INFO] [stderr] Compiling async-io v1.13.0 [INFO] [stderr] Compiling async-fs v1.6.0 [INFO] [stderr] Checking concurrent-queue v2.4.0 [INFO] [stderr] Compiling async-trait v0.1.75 [INFO] [stderr] Checking miniz_oxide v0.7.1 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking fdeflate v0.3.3 [INFO] [stderr] Checking event-listener v4.0.1 [INFO] [stderr] Compiling aho-corasick v1.1.2 [INFO] [stderr] Compiling indexmap v2.1.0 [INFO] [stderr] Checking futures-lite v1.13.0 [INFO] [stderr] Checking futures-util v0.3.30 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Compiling gl_generator v0.14.0 [INFO] [stderr] Checking event-listener-strategy v0.4.0 [INFO] [stderr] Checking flate2 v1.0.28 [INFO] [stderr] Checking async-broadcast v0.5.1 [INFO] [stderr] Compiling quote v1.0.33 [INFO] [stderr] Checking async-lock v3.2.0 [INFO] [stderr] Checking async-channel v2.1.1 [INFO] [stderr] Checking ordered-stream v0.2.0 [INFO] [stderr] Compiling x11-dl v2.21.0 [INFO] [stderr] Compiling smithay-client-toolkit v0.16.1 [INFO] [stderr] Compiling syn v2.0.43 [INFO] [stderr] Compiling wayland-scanner v0.29.5 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling ahash v0.8.7 [INFO] [stderr] Checking accesskit v0.12.1 [INFO] [stderr] Checking png v0.17.10 [INFO] [stderr] Checking strict-num v0.1.1 [INFO] [stderr] Checking arrayref v0.3.7 [INFO] [stderr] Checking nohash-hasher v0.2.0 [INFO] [stderr] Compiling num-traits v0.2.17 [INFO] [stderr] Checking raw-window-handle v0.5.2 [INFO] [stderr] Checking unicode-normalization v0.1.22 [INFO] [stderr] Compiling wayland-sys v0.30.1 [INFO] [stderr] Checking async-executor v1.8.0 [INFO] [stderr] Checking unicode-bidi v0.3.14 [INFO] [stderr] Compiling x11rb v0.12.0 [INFO] [stderr] Checking accesskit_consumer v0.16.1 [INFO] [stderr] Compiling glutin v0.30.10 [INFO] [stderr] Compiling num-rational v0.4.1 [INFO] [stderr] Compiling glutin_egl_sys v0.5.1 [INFO] [stderr] Compiling glutin_glx_sys v0.4.0 [INFO] [stderr] Checking async-once-cell v0.5.3 [INFO] [stderr] Checking nix v0.26.4 [INFO] [stderr] Checking getrandom v0.2.11 [INFO] [stderr] Checking nix v0.24.3 [INFO] [stderr] Checking io-lifetimes v1.0.11 [INFO] [stderr] Checking socket2 v0.4.10 [INFO] [stderr] Compiling toml_edit v0.19.15 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking nix v0.25.1 [INFO] [stderr] Compiling regex-automata v0.4.3 [INFO] [stderr] Checking parking_lot_core v0.9.9 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Compiling wayland-client v0.29.5 [INFO] [stderr] Compiling wayland-protocols v0.29.5 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking parking_lot v0.12.1 [INFO] [stderr] Checking memmap2 v0.5.10 [INFO] [stderr] Compiling winit v0.28.7 [INFO] [stderr] Checking mio v0.8.10 [INFO] [stderr] Checking idna v0.5.0 [INFO] [stderr] Checking gethostname v0.3.0 [INFO] [stderr] Checking num-integer v0.1.45 [INFO] [stderr] Compiling glutin-winit v0.3.0 [INFO] [stderr] Checking wayland-commons v0.29.5 [INFO] [stderr] Checking glow v0.12.3 [INFO] [stderr] Checking url v2.5.0 [INFO] [stderr] Checking web-time v0.2.4 [INFO] [stderr] Checking spin_sleep v1.2.0 [INFO] [stderr] Checking bitfield v0.14.0 [INFO] [stderr] Checking tock-registers v0.9.0 [INFO] [stderr] Checking xdg-home v1.0.0 [INFO] [stderr] Checking x11rb-protocol v0.12.0 [INFO] [stderr] Compiling regex v1.10.2 [INFO] [stderr] Compiling proc-macro-crate v1.3.1 [INFO] [stderr] Checking webbrowser v0.8.12 [INFO] [stderr] Compiling zvariant_utils v1.0.1 [INFO] [stderr] Checking wayland-cursor v0.29.5 [INFO] [stderr] Compiling zvariant_derive v3.15.0 [INFO] [stderr] Compiling zbus_macros v3.14.1 [INFO] [stderr] Compiling derivative v2.2.0 [INFO] [stderr] Compiling bytemuck_derive v1.5.0 [INFO] [stderr] Compiling serde_derive v1.0.193 [INFO] [stderr] Compiling tracing-attributes v0.1.27 [INFO] [stderr] Compiling enumflags2_derive v0.7.8 [INFO] [stderr] Compiling thiserror-impl v1.0.52 [INFO] [stderr] Compiling serde_repr v0.1.17 [INFO] [stderr] Compiling async-recursion v1.0.5 [INFO] [stderr] Checking bytemuck v1.14.0 [INFO] [stderr] Checking calloop v0.10.6 [INFO] [stderr] Checking ecolor v0.24.1 [INFO] [stderr] Checking tiny-skia-path v0.8.4 [INFO] [stderr] Checking emath v0.24.1 [INFO] [stderr] Checking image v0.24.7 [INFO] [stderr] Checking tracing v0.1.40 [INFO] [stderr] Checking blocking v1.5.1 [INFO] [stderr] Checking epaint v0.24.1 [INFO] [stderr] Checking tiny-skia v0.8.4 [INFO] [stderr] Checking egui v0.24.1 [INFO] [stderr] Checking egui_glow v0.24.1 [INFO] [stderr] Checking egui_memory_editor v0.2.7 [INFO] [stderr] Checking egui_logger v0.4.1 [INFO] [stderr] Checking arboard v3.3.0 [INFO] [stderr] Checking enumflags2 v0.7.8 [INFO] [stderr] Checking zvariant v3.15.0 [INFO] [stderr] Checking zbus_names v2.6.0 [INFO] [stderr] Checking zbus v3.14.1 [INFO] [stderr] Checking atspi-common v0.3.0 [INFO] [stderr] Checking atspi-proxies v0.3.0 [INFO] [stderr] Checking sctk-adwaita v0.5.4 [INFO] [stderr] Checking smithay-clipboard v0.6.6 [INFO] [stderr] Checking atspi-connection v0.3.0 [INFO] [stderr] Checking atspi v0.19.0 [INFO] [stderr] Checking accesskit_unix v0.6.2 [INFO] [stderr] Checking accesskit_winit v0.15.0 [INFO] [stderr] Checking egui-winit v0.24.1 [INFO] [stderr] Checking eframe v0.24.1 [INFO] [stderr] Checking nes_emu v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: the loop variable `i` is used to index `buf` [INFO] [stdout] --> src/nes/bus.rs:87:18 [INFO] [stdout] | [INFO] [stdout] 87 | for i in 0..len { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 87 - for i in 0..len { [INFO] [stdout] 87 + for (i, ) in buf.iter_mut().enumerate().take(len) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/nes/bus.rs:95:27 [INFO] [stdout] | [INFO] [stdout] 95 | (0..=2048) => Ok(self.cpu_ram[address] = value), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] = note: `#[warn(clippy::unit_arg)]` on by default [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 95 ~ (0..=2048) => { [INFO] [stdout] 96 + let _: () = self.cpu_ram[address] = value; [INFO] [stdout] 97 + Ok(()) [INFO] [stdout] 98 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/nes/bus.rs:99:17 [INFO] [stdout] | [INFO] [stdout] 99 | Ok(self.pending_dma = true) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 99 ~ let _: () = self.pending_dma = true; [INFO] [stdout] 100 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/nes/bus.rs:102:23 [INFO] [stdout] | [INFO] [stdout] 102 | 0x4016 => Ok(self.controller.write_to_controller(value.bit(0))), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 102 ~ 0x4016 => { [INFO] [stdout] 103 + self.controller.write_to_controller(value.bit(0)); [INFO] [stdout] 104 + Ok(()) [INFO] [stdout] 105 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/nes/bus.rs:172:23 [INFO] [stdout] | [INFO] [stdout] 172 | 0x2000 => Ok(self.ppu_registers.ppuctrl.set(value)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 172 ~ 0x2000 => { [INFO] [stdout] 173 + self.ppu_registers.ppuctrl.set(value); [INFO] [stdout] 174 + Ok(()) [INFO] [stdout] 175 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/nes/bus.rs:173:23 [INFO] [stdout] | [INFO] [stdout] 173 | 0x2001 => Ok(self.ppu_registers.ppumask.set(value)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 173 ~ 0x2001 => { [INFO] [stdout] 174 + self.ppu_registers.ppumask.set(value); [INFO] [stdout] 175 + Ok(()) [INFO] [stdout] 176 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/nes/bus.rs:174:23 [INFO] [stdout] | [INFO] [stdout] 174 | 0x2002 => Ok(self.ppu_registers.ppustatus.set(value)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 174 ~ 0x2002 => { [INFO] [stdout] 175 + self.ppu_registers.ppustatus.set(value); [INFO] [stdout] 176 + Ok(()) [INFO] [stdout] 177 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/nes/bus.rs:175:23 [INFO] [stdout] | [INFO] [stdout] 175 | 0x2003 => Ok(self.oam_addr = value), // TODO: Needs to be set to 0 during vblank (?) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 175 ~ 0x2003 => { [INFO] [stdout] 176 + let _: () = self.oam_addr = value; [INFO] [stdout] 177 + Ok(()) [INFO] [stdout] 178 ~ }, // TODO: Needs to be set to 0 during vblank (?) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/nes/bus.rs:178:17 [INFO] [stdout] | [INFO] [stdout] 178 | Ok(self.oam_addr = self.oam_addr.wrapping_add(1)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 178 ~ let _: () = self.oam_addr = self.oam_addr.wrapping_add(1); [INFO] [stdout] 179 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/nes/bus.rs:198:21 [INFO] [stdout] | [INFO] [stdout] 198 | self.ppu_registers.ppuaddr = self.ppu_registers.ppuaddr % 0x4000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.ppu_registers.ppuaddr %= 0x4000` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/nes/bus.rs:274:13 [INFO] [stdout] | [INFO] [stdout] 274 | return Err("Invalid address lookup into nametable"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 274 - return Err("Invalid address lookup into nametable"); [INFO] [stdout] 274 + Err("Invalid address lookup into nametable") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/nes/bus.rs:278:13 [INFO] [stdout] | [INFO] [stdout] 278 | / return Ok(match nametable_mirror { [INFO] [stdout] 279 | | MirrorMode::VERT => match addr { [INFO] [stdout] 280 | | 0x2000..=0x23FF => self.ppu_ram[addr - 0x2000], [INFO] [stdout] 281 | | 0x2400..=0x27FF => self.ppu_ram[0x400 + addr - 0x2400], [INFO] [stdout] ... | [INFO] [stdout] 292 | | }, [INFO] [stdout] 293 | | }); [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 278 ~ Ok(match nametable_mirror { [INFO] [stdout] 279 + MirrorMode::VERT => match addr { [INFO] [stdout] 280 + 0x2000..=0x23FF => self.ppu_ram[addr - 0x2000], [INFO] [stdout] 281 + 0x2400..=0x27FF => self.ppu_ram[0x400 + addr - 0x2400], [INFO] [stdout] 282 + 0x2800..=0x2BFF => self.ppu_ram[addr - 0x2800], [INFO] [stdout] 283 + 0x2C00..=0x2FFF => self.ppu_ram[0x400 + addr - 0x2C00], [INFO] [stdout] 284 + _ => panic!("Should never happen"), [INFO] [stdout] 285 + }, [INFO] [stdout] 286 + MirrorMode::HORZ => match addr { [INFO] [stdout] 287 + 0x2000..=0x23FF => self.ppu_ram[addr - 0x2000], [INFO] [stdout] 288 + 0x2400..=0x27FF => self.ppu_ram[addr - 0x2400], [INFO] [stdout] 289 + 0x2800..=0x2BFF => self.ppu_ram[0x400 + addr - 0x2800], [INFO] [stdout] 290 + 0x2C00..=0x2FFF => self.ppu_ram[0x400 + addr - 0x2C00], [INFO] [stdout] 291 + _ => panic!("Should never happen"), [INFO] [stdout] 292 + }, [INFO] [stdout] 293 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `!Range::contains` implementation [INFO] [stdout] --> src/nes/bus.rs:273:12 [INFO] [stdout] | [INFO] [stdout] 273 | if addr < 0x2000 || addr >= 0x3000 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `!(0x2000..0x3000).contains(&addr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `IMPLIED` contains a capitalized acronym [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | IMPLIED, [INFO] [stdout] | ^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Implied` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `IMMEDIATE` contains a capitalized acronym [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | IMMEDIATE, [INFO] [stdout] | ^^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Immediate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `ABSOLUTE` contains a capitalized acronym [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | ABSOLUTE(bool), // Boolean value is for debug printing only [INFO] [stdout] | ^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Absolute` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `RELATIVE` contains a capitalized acronym [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | RELATIVE, [INFO] [stdout] | ^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Relative` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `ZEROPAGE` contains a capitalized acronym [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | ZEROPAGE, [INFO] [stdout] | ^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Zeropage` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `ZEROPAGEX` contains a capitalized acronym [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | ZEROPAGEX, [INFO] [stdout] | ^^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Zeropagex` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `ZEROPAGEY` contains a capitalized acronym [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | ZEROPAGEY, [INFO] [stdout] | ^^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Zeropagey` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `ACCUMULATOR` contains a capitalized acronym [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | ACCUMULATOR, [INFO] [stdout] | ^^^^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Accumulator` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `INDIRECTX` contains a capitalized acronym [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | INDIRECTX, [INFO] [stdout] | ^^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Indirectx` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `INDIRECTY` contains a capitalized acronym [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | INDIRECTY, [INFO] [stdout] | ^^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Indirecty` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `ABSOLUTEX` contains a capitalized acronym [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | ABSOLUTEX, [INFO] [stdout] | ^^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Absolutex` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `ABSOLUTEY` contains a capitalized acronym [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | ABSOLUTEY, [INFO] [stdout] | ^^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Absolutey` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `INDIRECT` contains a capitalized acronym [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | INDIRECT, [INFO] [stdout] | ^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Indirect` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `buf` [INFO] [stdout] --> src/nes/bus.rs:87:18 [INFO] [stdout] | [INFO] [stdout] 87 | for i in 0..len { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 87 - for i in 0..len { [INFO] [stdout] 87 + for (i, ) in buf.iter_mut().enumerate().take(len) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/nes/bus.rs:95:27 [INFO] [stdout] | [INFO] [stdout] 95 | (0..=2048) => Ok(self.cpu_ram[address] = value), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] = note: `#[warn(clippy::unit_arg)]` on by default [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 95 ~ (0..=2048) => { [INFO] [stdout] 96 + let _: () = self.cpu_ram[address] = value; [INFO] [stdout] 97 + Ok(()) [INFO] [stdout] 98 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/nes/bus.rs:99:17 [INFO] [stdout] | [INFO] [stdout] 99 | Ok(self.pending_dma = true) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 99 ~ let _: () = self.pending_dma = true; [INFO] [stdout] 100 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/nes/bus.rs:102:23 [INFO] [stdout] | [INFO] [stdout] 102 | 0x4016 => Ok(self.controller.write_to_controller(value.bit(0))), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 102 ~ 0x4016 => { [INFO] [stdout] 103 + self.controller.write_to_controller(value.bit(0)); [INFO] [stdout] 104 + Ok(()) [INFO] [stdout] 105 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/nes/bus.rs:172:23 [INFO] [stdout] | [INFO] [stdout] 172 | 0x2000 => Ok(self.ppu_registers.ppuctrl.set(value)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 172 ~ 0x2000 => { [INFO] [stdout] 173 + self.ppu_registers.ppuctrl.set(value); [INFO] [stdout] 174 + Ok(()) [INFO] [stdout] 175 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/nes/bus.rs:173:23 [INFO] [stdout] | [INFO] [stdout] 173 | 0x2001 => Ok(self.ppu_registers.ppumask.set(value)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 173 ~ 0x2001 => { [INFO] [stdout] 174 + self.ppu_registers.ppumask.set(value); [INFO] [stdout] 175 + Ok(()) [INFO] [stdout] 176 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/nes/bus.rs:174:23 [INFO] [stdout] | [INFO] [stdout] 174 | 0x2002 => Ok(self.ppu_registers.ppustatus.set(value)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 174 ~ 0x2002 => { [INFO] [stdout] 175 + self.ppu_registers.ppustatus.set(value); [INFO] [stdout] 176 + Ok(()) [INFO] [stdout] 177 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/nes/bus.rs:175:23 [INFO] [stdout] | [INFO] [stdout] 175 | 0x2003 => Ok(self.oam_addr = value), // TODO: Needs to be set to 0 during vblank (?) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 175 ~ 0x2003 => { [INFO] [stdout] 176 + let _: () = self.oam_addr = value; [INFO] [stdout] 177 + Ok(()) [INFO] [stdout] 178 ~ }, // TODO: Needs to be set to 0 during vblank (?) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/nes/bus.rs:178:17 [INFO] [stdout] | [INFO] [stdout] 178 | Ok(self.oam_addr = self.oam_addr.wrapping_add(1)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 178 ~ let _: () = self.oam_addr = self.oam_addr.wrapping_add(1); [INFO] [stdout] 179 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:471:28 [INFO] [stdout] | [INFO] [stdout] 471 | bus.cpu_write_byte(addr as usize, self.registers.x_reg)?; [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `addr` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:476:28 [INFO] [stdout] | [INFO] [stdout] 476 | bus.cpu_write_byte(addr as usize, self.registers.y_reg)?; [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `addr` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/nes/bus.rs:198:21 [INFO] [stdout] | [INFO] [stdout] 198 | self.ppu_registers.ppuaddr = self.ppu_registers.ppuaddr % 0x4000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.ppu_registers.ppuaddr %= 0x4000` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:508:17 [INFO] [stdout] | [INFO] [stdout] 508 | self.registers.accumulator = self.registers.accumulator >> 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.registers.accumulator >>= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/nes/bus.rs:274:13 [INFO] [stdout] | [INFO] [stdout] 274 | return Err("Invalid address lookup into nametable"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 274 - return Err("Invalid address lookup into nametable"); [INFO] [stdout] 274 + Err("Invalid address lookup into nametable") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:517:17 [INFO] [stdout] | [INFO] [stdout] 517 | byte = byte >> 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `byte >>= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:533:17 [INFO] [stdout] | [INFO] [stdout] 533 | self.registers.accumulator = self.registers.accumulator << 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.registers.accumulator <<= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:540:17 [INFO] [stdout] | [INFO] [stdout] 540 | byte = byte << 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `byte <<= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:553:17 [INFO] [stdout] | [INFO] [stdout] 553 | self.registers.accumulator = self.registers.accumulator >> 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.registers.accumulator >>= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:564:17 [INFO] [stdout] | [INFO] [stdout] 564 | byte = byte >> 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `byte >>= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/nes/bus.rs:278:13 [INFO] [stdout] | [INFO] [stdout] 278 | / return Ok(match nametable_mirror { [INFO] [stdout] 279 | | MirrorMode::VERT => match addr { [INFO] [stdout] 280 | | 0x2000..=0x23FF => self.ppu_ram[addr - 0x2000], [INFO] [stdout] 281 | | 0x2400..=0x27FF => self.ppu_ram[0x400 + addr - 0x2400], [INFO] [stdout] ... | [INFO] [stdout] 292 | | }, [INFO] [stdout] 293 | | }); [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 278 ~ Ok(match nametable_mirror { [INFO] [stdout] 279 + MirrorMode::VERT => match addr { [INFO] [stdout] 280 + 0x2000..=0x23FF => self.ppu_ram[addr - 0x2000], [INFO] [stdout] 281 + 0x2400..=0x27FF => self.ppu_ram[0x400 + addr - 0x2400], [INFO] [stdout] 282 + 0x2800..=0x2BFF => self.ppu_ram[addr - 0x2800], [INFO] [stdout] 283 + 0x2C00..=0x2FFF => self.ppu_ram[0x400 + addr - 0x2C00], [INFO] [stdout] 284 + _ => panic!("Should never happen"), [INFO] [stdout] 285 + }, [INFO] [stdout] 286 + MirrorMode::HORZ => match addr { [INFO] [stdout] 287 + 0x2000..=0x23FF => self.ppu_ram[addr - 0x2000], [INFO] [stdout] 288 + 0x2400..=0x27FF => self.ppu_ram[addr - 0x2400], [INFO] [stdout] 289 + 0x2800..=0x2BFF => self.ppu_ram[0x400 + addr - 0x2800], [INFO] [stdout] 290 + 0x2C00..=0x2FFF => self.ppu_ram[0x400 + addr - 0x2C00], [INFO] [stdout] 291 + _ => panic!("Should never happen"), [INFO] [stdout] 292 + }, [INFO] [stdout] 293 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `!Range::contains` implementation [INFO] [stdout] --> src/nes/bus.rs:273:12 [INFO] [stdout] | [INFO] [stdout] 273 | if addr < 0x2000 || addr >= 0x3000 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `!(0x2000..0x3000).contains(&addr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:579:17 [INFO] [stdout] | [INFO] [stdout] 579 | self.registers.accumulator = self.registers.accumulator << 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.registers.accumulator <<= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:590:17 [INFO] [stdout] | [INFO] [stdout] 590 | byte = byte << 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `byte <<= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:602:42 [INFO] [stdout] | [INFO] [stdout] 602 | self.registers.program_counter = addr as usize; [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `addr` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `IMPLIED` contains a capitalized acronym [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | IMPLIED, [INFO] [stdout] | ^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Implied` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `IMMEDIATE` contains a capitalized acronym [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | IMMEDIATE, [INFO] [stdout] | ^^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Immediate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `ABSOLUTE` contains a capitalized acronym [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | ABSOLUTE(bool), // Boolean value is for debug printing only [INFO] [stdout] | ^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Absolute` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `RELATIVE` contains a capitalized acronym [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | RELATIVE, [INFO] [stdout] | ^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Relative` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `ZEROPAGE` contains a capitalized acronym [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | ZEROPAGE, [INFO] [stdout] | ^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Zeropage` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `ZEROPAGEX` contains a capitalized acronym [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | ZEROPAGEX, [INFO] [stdout] | ^^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Zeropagex` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `ZEROPAGEY` contains a capitalized acronym [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | ZEROPAGEY, [INFO] [stdout] | ^^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Zeropagey` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `ACCUMULATOR` contains a capitalized acronym [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | ACCUMULATOR, [INFO] [stdout] | ^^^^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Accumulator` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `INDIRECTX` contains a capitalized acronym [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | INDIRECTX, [INFO] [stdout] | ^^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Indirectx` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `INDIRECTY` contains a capitalized acronym [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | INDIRECTY, [INFO] [stdout] | ^^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Indirecty` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `ABSOLUTEX` contains a capitalized acronym [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | ABSOLUTEX, [INFO] [stdout] | ^^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Absolutex` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `ABSOLUTEY` contains a capitalized acronym [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | ABSOLUTEY, [INFO] [stdout] | ^^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Absolutey` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `INDIRECT` contains a capitalized acronym [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | INDIRECT, [INFO] [stdout] | ^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Indirect` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:471:28 [INFO] [stdout] | [INFO] [stdout] 471 | bus.cpu_write_byte(addr as usize, self.registers.x_reg)?; [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `addr` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:476:28 [INFO] [stdout] | [INFO] [stdout] 476 | bus.cpu_write_byte(addr as usize, self.registers.y_reg)?; [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `addr` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:508:17 [INFO] [stdout] | [INFO] [stdout] 508 | self.registers.accumulator = self.registers.accumulator >> 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.registers.accumulator >>= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:517:17 [INFO] [stdout] | [INFO] [stdout] 517 | byte = byte >> 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `byte >>= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:533:17 [INFO] [stdout] | [INFO] [stdout] 533 | self.registers.accumulator = self.registers.accumulator << 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.registers.accumulator <<= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:540:17 [INFO] [stdout] | [INFO] [stdout] 540 | byte = byte << 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `byte <<= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:553:17 [INFO] [stdout] | [INFO] [stdout] 553 | self.registers.accumulator = self.registers.accumulator >> 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.registers.accumulator >>= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:564:17 [INFO] [stdout] | [INFO] [stdout] 564 | byte = byte >> 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `byte >>= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:579:17 [INFO] [stdout] | [INFO] [stdout] 579 | self.registers.accumulator = self.registers.accumulator << 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.registers.accumulator <<= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:590:17 [INFO] [stdout] | [INFO] [stdout] 590 | byte = byte << 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `byte <<= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:602:42 [INFO] [stdout] | [INFO] [stdout] 602 | self.registers.program_counter = addr as usize; [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `addr` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:1884:13 [INFO] [stdout] | [INFO] [stdout] 1884 | / match opcode.mode { [INFO] [stdout] 1885 | | AddressMode::ACCUMULATOR => { [INFO] [stdout] 1886 | | fmt_string = format!("{}A ", fmt_string); [INFO] [stdout] ... | [INFO] [stdout] 1889 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1884 ~ if let AddressMode::ACCUMULATOR = opcode.mode { [INFO] [stdout] 1885 + fmt_string = format!("{}A ", fmt_string); [INFO] [stdout] 1886 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:2012:9 [INFO] [stdout] | [INFO] [stdout] 2012 | write!(self.log_file, "{}\n", fmt_string).map_err(|_| "Failed to write to log file")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] = note: `#[warn(clippy::write_with_newline)]` on by default [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 2012 - write!(self.log_file, "{}\n", fmt_string).map_err(|_| "Failed to write to log file")?; [INFO] [stdout] 2012 + writeln!(self.log_file, "{}", fmt_string).map_err(|_| "Failed to write to log file")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `CPU` contains a capitalized acronym [INFO] [stdout] --> src/nes/cpu/mod.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 38 | pub struct CPU { [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Cpu` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:1884:13 [INFO] [stdout] | [INFO] [stdout] 1884 | / match opcode.mode { [INFO] [stdout] 1885 | | AddressMode::ACCUMULATOR => { [INFO] [stdout] 1886 | | fmt_string = format!("{}A ", fmt_string); [INFO] [stdout] ... | [INFO] [stdout] 1889 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1884 ~ if let AddressMode::ACCUMULATOR = opcode.mode { [INFO] [stdout] 1885 + fmt_string = format!("{}A ", fmt_string); [INFO] [stdout] 1886 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `CHR` contains a capitalized acronym [INFO] [stdout] --> src/nes/mappers/cartridge_data/mod.rs:16:6 [INFO] [stdout] | [INFO] [stdout] 16 | enum CHR { [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Chr` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `ROM` contains a capitalized acronym [INFO] [stdout] --> src/nes/mappers/cartridge_data/mod.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | ROM(Vec), [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Rom` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `RAM` contains a capitalized acronym [INFO] [stdout] --> src/nes/mappers/cartridge_data/mod.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | RAM(Vec), [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Ram` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: slow zero-filling initialization [INFO] [stdout] --> src/nes/mappers/cartridge_data/mod.rs:67:27 [INFO] [stdout] | [INFO] [stdout] 67 | let mut prg_rom = Vec::new(); [INFO] [stdout] | ___________________________^ [INFO] [stdout] 68 | | prg_rom.resize( [INFO] [stdout] 69 | | header.prg_rom_size as usize * CartridgeData::PRG_ROM_BLOCK_SZ, [INFO] [stdout] 70 | | 0u8, [INFO] [stdout] 71 | | ); [INFO] [stdout] | |_________^ help: consider replacing this with: `vec![0; header.prg_rom_size as usize * CartridgeData::PRG_ROM_BLOCK_SZ]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#slow_vector_initialization [INFO] [stdout] = note: `#[warn(clippy::slow_vector_initialization)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: slow zero-filling initialization [INFO] [stdout] --> src/nes/mappers/cartridge_data/mod.rs:75:31 [INFO] [stdout] | [INFO] [stdout] 75 | let mut chr_rom = Vec::new(); [INFO] [stdout] | _______________________________^ [INFO] [stdout] 76 | | chr_rom.resize( [INFO] [stdout] 77 | | header.chr_rom_size as usize * CartridgeData::CHR_ROM_BLOCK_SZ, [INFO] [stdout] 78 | | 0u8, [INFO] [stdout] 79 | | ); [INFO] [stdout] | |_____________^ help: consider replacing this with: `vec![0; header.chr_rom_size as usize * CartridgeData::CHR_ROM_BLOCK_SZ]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#slow_vector_initialization [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: slow zero-filling initialization [INFO] [stdout] --> src/nes/mappers/cartridge_data/mod.rs:83:31 [INFO] [stdout] | [INFO] [stdout] 83 | let mut chr_ram = Vec::new(); [INFO] [stdout] | _______________________________^ [INFO] [stdout] 84 | | chr_ram.resize(CartridgeData::CHR_ROM_BLOCK_SZ, 0); [INFO] [stdout] | |______________________________________________________________^ help: consider replacing this with: `vec![0; CartridgeData::CHR_ROM_BLOCK_SZ]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#slow_vector_initialization [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/nes/mappers/mapper000.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | return Ok(()); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 43 - return Ok(()); [INFO] [stdout] 43 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `HORZ` contains a capitalized acronym [INFO] [stdout] --> src/nes/mappers/mod.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | HORZ, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Horz` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `VERT` contains a capitalized acronym [INFO] [stdout] --> src/nes/mappers/mod.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | VERT, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Vert` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/nes/cpu/opcodes/mod.rs:2012:9 [INFO] [stdout] | [INFO] [stdout] 2012 | write!(self.log_file, "{}\n", fmt_string).map_err(|_| "Failed to write to log file")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] = note: `#[warn(clippy::write_with_newline)]` on by default [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 2012 - write!(self.log_file, "{}\n", fmt_string).map_err(|_| "Failed to write to log file")?; [INFO] [stdout] 2012 + writeln!(self.log_file, "{}", fmt_string).map_err(|_| "Failed to write to log file")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/nes/ppu/palette_memory.rs:31:12 [INFO] [stdout] | [INFO] [stdout] 31 | if addr % 4 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^ help: replace with: `addr.is_multiple_of(4)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/nes/ppu/palette_memory.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | palette_idx % 4 == 0 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace with: `palette_idx.is_multiple_of(4)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `CPU` contains a capitalized acronym [INFO] [stdout] --> src/nes/cpu/mod.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 38 | pub struct CPU { [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Cpu` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `CHR` contains a capitalized acronym [INFO] [stdout] --> src/nes/mappers/cartridge_data/mod.rs:16:6 [INFO] [stdout] | [INFO] [stdout] 16 | enum CHR { [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Chr` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `ROM` contains a capitalized acronym [INFO] [stdout] --> src/nes/mappers/cartridge_data/mod.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | ROM(Vec), [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Rom` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `RAM` contains a capitalized acronym [INFO] [stdout] --> src/nes/mappers/cartridge_data/mod.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | RAM(Vec), [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Ram` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: slow zero-filling initialization [INFO] [stdout] --> src/nes/mappers/cartridge_data/mod.rs:67:27 [INFO] [stdout] | [INFO] [stdout] 67 | let mut prg_rom = Vec::new(); [INFO] [stdout] | ___________________________^ [INFO] [stdout] 68 | | prg_rom.resize( [INFO] [stdout] 69 | | header.prg_rom_size as usize * CartridgeData::PRG_ROM_BLOCK_SZ, [INFO] [stdout] 70 | | 0u8, [INFO] [stdout] 71 | | ); [INFO] [stdout] | |_________^ help: consider replacing this with: `vec![0; header.prg_rom_size as usize * CartridgeData::PRG_ROM_BLOCK_SZ]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#slow_vector_initialization [INFO] [stdout] = note: `#[warn(clippy::slow_vector_initialization)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `PPU` contains a capitalized acronym [INFO] [stdout] --> src/nes/ppu/mod.rs:65:12 [INFO] [stdout] | [INFO] [stdout] 65 | pub struct PPU { [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Ppu` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: slow zero-filling initialization [INFO] [stdout] --> src/nes/mappers/cartridge_data/mod.rs:75:31 [INFO] [stdout] | [INFO] [stdout] 75 | let mut chr_rom = Vec::new(); [INFO] [stdout] | _______________________________^ [INFO] [stdout] 76 | | chr_rom.resize( [INFO] [stdout] 77 | | header.chr_rom_size as usize * CartridgeData::CHR_ROM_BLOCK_SZ, [INFO] [stdout] 78 | | 0u8, [INFO] [stdout] 79 | | ); [INFO] [stdout] | |_____________^ help: consider replacing this with: `vec![0; header.chr_rom_size as usize * CartridgeData::CHR_ROM_BLOCK_SZ]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#slow_vector_initialization [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: slow zero-filling initialization [INFO] [stdout] --> src/nes/mappers/cartridge_data/mod.rs:83:31 [INFO] [stdout] | [INFO] [stdout] 83 | let mut chr_ram = Vec::new(); [INFO] [stdout] | _______________________________^ [INFO] [stdout] 84 | | chr_ram.resize(CartridgeData::CHR_ROM_BLOCK_SZ, 0); [INFO] [stdout] | |______________________________________________________________^ help: consider replacing this with: `vec![0; CartridgeData::CHR_ROM_BLOCK_SZ]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#slow_vector_initialization [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/nes/ppu/mod.rs:133:40 [INFO] [stdout] | [INFO] [stdout] 133 | self.generated_interrupt = true [INFO] [stdout] | ________________________________________^ [INFO] [stdout] 134 | | && bus [INFO] [stdout] 135 | | .ppu_get_registers_mut() [INFO] [stdout] 136 | | .ppuctrl [INFO] [stdout] 137 | | .is_set(PPUCTRL::NMI_ENABLE); [INFO] [stdout] | |________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 133 ~ self.generated_interrupt = bus [INFO] [stdout] 134 + .ppu_get_registers_mut() [INFO] [stdout] 135 + .ppuctrl [INFO] [stdout] 136 ~ .is_set(PPUCTRL::NMI_ENABLE); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/nes/ppu/mod.rs:147:9 [INFO] [stdout] | [INFO] [stdout] 147 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 147 - return false; [INFO] [stdout] 147 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/nes/mappers/mapper000.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | return Ok(()); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 43 - return Ok(()); [INFO] [stdout] 43 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/nes/ppu/mod.rs:193:13 [INFO] [stdout] | [INFO] [stdout] 193 | ((((self.y_scroll as usize) / 8) * 32) + (self.x_scroll as usize / 8)) as usize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `((((self.y_scroll as usize) / 8) * 32) + (self.x_scroll as usize / 8))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `HORZ` contains a capitalized acronym [INFO] [stdout] --> src/nes/mappers/mod.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | HORZ, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Horz` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `VERT` contains a capitalized acronym [INFO] [stdout] --> src/nes/mappers/mod.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | VERT, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Vert` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual saturating arithmetic [INFO] [stdout] --> src/nes/ppu/mod.rs:256:40 [INFO] [stdout] | [INFO] [stdout] 256 | if sprite.current_x >= sprite.x_pixel_coord.checked_add(8).unwrap_or(255) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `saturating_add`: `sprite.x_pixel_coord.saturating_add(8)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_saturating_arithmetic [INFO] [stdout] = note: `#[warn(clippy::manual_saturating_arithmetic)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/nes/ppu/mod.rs:307:39 [INFO] [stdout] | [INFO] [stdout] 307 | .set_bit(10, !(self.nametable_addr as u16).bit(10)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.nametable_addr` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/nes/ppu/mod.rs:321:35 [INFO] [stdout] | [INFO] [stdout] 321 | .set_bit(11, !(self.nametable_addr as u16).bit(11)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.nametable_addr` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/nes/ppu/mod.rs:332:24 [INFO] [stdout] | [INFO] [stdout] 332 | let coarse_y = (self.nametable_addr as u16).bit_range(9, 5); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.nametable_addr` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/nes/ppu/mod.rs:333:24 [INFO] [stdout] | [INFO] [stdout] 333 | let coarse_x = (self.nametable_addr as u16).bit_range(4, 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.nametable_addr` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/nes/ppu/palette_memory.rs:31:12 [INFO] [stdout] | [INFO] [stdout] 31 | if addr % 4 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^ help: replace with: `addr.is_multiple_of(4)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/nes/ppu/palette_memory.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | palette_idx % 4 == 0 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace with: `palette_idx.is_multiple_of(4)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `NES` contains a capitalized acronym [INFO] [stdout] --> src/nes/mod.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct NES { [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Nes` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/main.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | native_options.vsync = false; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `eframe::NativeOptions { vsync: false, viewport: ViewportBuilder::default().with_inner_size([1024.0, 768.0]), ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/main.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | let mut native_options = eframe::NativeOptions::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] = note: `#[warn(clippy::field_reassign_with_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `PPU` contains a capitalized acronym [INFO] [stdout] --> src/nes/ppu/mod.rs:65:12 [INFO] [stdout] | [INFO] [stdout] 65 | pub struct PPU { [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Ppu` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/nes/ppu/mod.rs:133:40 [INFO] [stdout] | [INFO] [stdout] 133 | self.generated_interrupt = true [INFO] [stdout] | ________________________________________^ [INFO] [stdout] 134 | | && bus [INFO] [stdout] 135 | | .ppu_get_registers_mut() [INFO] [stdout] 136 | | .ppuctrl [INFO] [stdout] 137 | | .is_set(PPUCTRL::NMI_ENABLE); [INFO] [stdout] | |________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 133 ~ self.generated_interrupt = bus [INFO] [stdout] 134 + .ppu_get_registers_mut() [INFO] [stdout] 135 + .ppuctrl [INFO] [stdout] 136 ~ .is_set(PPUCTRL::NMI_ENABLE); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/nes/ppu/mod.rs:147:9 [INFO] [stdout] | [INFO] [stdout] 147 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 147 - return false; [INFO] [stdout] 147 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/nes/ppu/mod.rs:193:13 [INFO] [stdout] | [INFO] [stdout] 193 | ((((self.y_scroll as usize) / 8) * 32) + (self.x_scroll as usize / 8)) as usize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `((((self.y_scroll as usize) / 8) * 32) + (self.x_scroll as usize / 8))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual saturating arithmetic [INFO] [stdout] --> src/nes/ppu/mod.rs:256:40 [INFO] [stdout] | [INFO] [stdout] 256 | if sprite.current_x >= sprite.x_pixel_coord.checked_add(8).unwrap_or(255) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `saturating_add`: `sprite.x_pixel_coord.saturating_add(8)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_saturating_arithmetic [INFO] [stdout] = note: `#[warn(clippy::manual_saturating_arithmetic)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/nes/ppu/mod.rs:307:39 [INFO] [stdout] | [INFO] [stdout] 307 | .set_bit(10, !(self.nametable_addr as u16).bit(10)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.nametable_addr` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/nes/ppu/mod.rs:321:35 [INFO] [stdout] | [INFO] [stdout] 321 | .set_bit(11, !(self.nametable_addr as u16).bit(11)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.nametable_addr` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/nes/ppu/mod.rs:332:24 [INFO] [stdout] | [INFO] [stdout] 332 | let coarse_y = (self.nametable_addr as u16).bit_range(9, 5); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.nametable_addr` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/nes/ppu/mod.rs:333:24 [INFO] [stdout] | [INFO] [stdout] 333 | let coarse_x = (self.nametable_addr as u16).bit_range(4, 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.nametable_addr` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `NES` contains a capitalized acronym [INFO] [stdout] --> src/nes/mod.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct NES { [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Nes` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/main.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | native_options.vsync = false; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `eframe::NativeOptions { vsync: false, viewport: ViewportBuilder::default().with_inner_size([1024.0, 768.0]), ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/main.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | let mut native_options = eframe::NativeOptions::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] = note: `#[warn(clippy::field_reassign_with_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 19s [INFO] running `Command { std: "docker" "inspect" "18abd24294e40afa3d133727f8ab4f8a28a7c98839f2dcab37f980ed8aad1583", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "18abd24294e40afa3d133727f8ab4f8a28a7c98839f2dcab37f980ed8aad1583", kill_on_drop: false }` [INFO] [stdout] 18abd24294e40afa3d133727f8ab4f8a28a7c98839f2dcab37f980ed8aad1583