[INFO] updating cached repository mattbruv/Gameboy-Crust [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/mattbruv/Gameboy-Crust [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/mattbruv/Gameboy-Crust" "work/ex/clippy-test-run/sources/stable/gh/mattbruv/Gameboy-Crust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/mattbruv/Gameboy-Crust'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/mattbruv/Gameboy-Crust" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/mattbruv/Gameboy-Crust"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/mattbruv/Gameboy-Crust'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] d936de9b941c7f0144949df8f3ab0f6f02d58468 [INFO] sha for GitHub repo mattbruv/Gameboy-Crust: d936de9b941c7f0144949df8f3ab0f6f02d58468 [INFO] validating manifest of mattbruv/Gameboy-Crust on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of mattbruv/Gameboy-Crust on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing mattbruv/Gameboy-Crust [INFO] finished frobbing mattbruv/Gameboy-Crust [INFO] frobbed toml for mattbruv/Gameboy-Crust written to work/ex/clippy-test-run/sources/stable/gh/mattbruv/Gameboy-Crust/Cargo.toml [INFO] started frobbing mattbruv/Gameboy-Crust [INFO] finished frobbing mattbruv/Gameboy-Crust [INFO] frobbed toml for mattbruv/Gameboy-Crust written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/mattbruv/Gameboy-Crust/Cargo.toml [INFO] crate mattbruv/Gameboy-Crust has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting mattbruv/Gameboy-Crust against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/mattbruv/Gameboy-Crust:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] af70504c0d57127e3ebc45af2e7d8021be92d3cc40fbee86102202897553ed89 [INFO] running `"docker" "start" "-a" "af70504c0d57127e3ebc45af2e7d8021be92d3cc40fbee86102202897553ed89"` [INFO] [stderr] Compiling minifb v0.10.3 [INFO] [stderr] Checking x11-dl v2.14.0 [INFO] [stderr] Checking gameboy-crust v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unused import: `std::io::*` [INFO] [stderr] --> src/core/helper.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::io::*; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/helper.rs:6:9 [INFO] [stderr] | [INFO] [stderr] 6 | Bit0 = 0b00000001, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0001` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/helper.rs:7:9 [INFO] [stderr] | [INFO] [stderr] 7 | Bit1 = 0b00000010, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0010` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/helper.rs:8:9 [INFO] [stderr] | [INFO] [stderr] 8 | Bit2 = 0b00000100, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0100` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/helper.rs:9:9 [INFO] [stderr] | [INFO] [stderr] 9 | Bit3 = 0b00001000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_1000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/helper.rs:10:9 [INFO] [stderr] | [INFO] [stderr] 10 | Bit4 = 0b00010000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0001_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/helper.rs:11:9 [INFO] [stderr] | [INFO] [stderr] 11 | Bit5 = 0b00100000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0010_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/helper.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | Bit6 = 0b01000000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0100_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/helper.rs:13:9 [INFO] [stderr] | [INFO] [stderr] 13 | Bit7 = 0b10000000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/core/helper.rs:100:1 [INFO] [stderr] | [INFO] [stderr] 100 | / macro_rules! hex { [INFO] [stderr] 101 | | ($val:expr) => {{ [INFO] [stderr] 102 | | println!("${:02X}", $val); [INFO] [stderr] 103 | | }} [INFO] [stderr] 104 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_macros)] on by default [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/interrupt.rs:5:11 [INFO] [stderr] | [INFO] [stderr] 5 | VBlank = 0b00000001, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0001` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/interrupt.rs:6:11 [INFO] [stderr] | [INFO] [stderr] 6 | Lcdc = 0b00000010, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0010` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/interrupt.rs:7:11 [INFO] [stderr] | [INFO] [stderr] 7 | Timer = 0b00000100, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0100` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/interrupt.rs:8:11 [INFO] [stderr] | [INFO] [stderr] 8 | Serial = 0b00001000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_1000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/interrupt.rs:9:11 [INFO] [stderr] | [INFO] [stderr] 9 | Joypad = 0b00010000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0001_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/core/interrupt.rs:72:5 [INFO] [stderr] | [INFO] [stderr] 72 | if interrupt_enable & bit > 0 { [INFO] [stderr] | _________________^ [INFO] [stderr] 73 | | if interrupt_flag & bit > 0 { [INFO] [stderr] 74 | | self.IF.set(interrupt_flag & !bit); [INFO] [stderr] 75 | | address = match bit { [INFO] [stderr] ... | [INFO] [stderr] 84 | | } [INFO] [stderr] 85 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 72 | if interrupt_enable & bit > 0 && interrupt_flag & bit > 0 { [INFO] [stderr] 73 | self.IF.set(interrupt_flag & !bit); [INFO] [stderr] 74 | address = match bit { [INFO] [stderr] 75 | 0b00000001 => Some(InterruptVector::VBlank), [INFO] [stderr] 76 | 0b00000010 => Some(InterruptVector::Lcdc), [INFO] [stderr] 77 | 0b00000100 => Some(InterruptVector::Timer), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/interrupt.rs:76:8 [INFO] [stderr] | [INFO] [stderr] 76 | 0b00000001 => Some(InterruptVector::VBlank), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0001` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/interrupt.rs:77:8 [INFO] [stderr] | [INFO] [stderr] 77 | 0b00000010 => Some(InterruptVector::Lcdc), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0010` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/interrupt.rs:78:8 [INFO] [stderr] | [INFO] [stderr] 78 | 0b00000100 => Some(InterruptVector::Timer), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0100` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/interrupt.rs:79:8 [INFO] [stderr] | [INFO] [stderr] 79 | 0b00001000 => Some(InterruptVector::Serial), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_1000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/interrupt.rs:80:8 [INFO] [stderr] | [INFO] [stderr] 80 | 0b00010000 => Some(InterruptVector::Joypad), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0001_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unused import: `core::helper::*` [INFO] [stderr] --> src/core/register.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use core::helper::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/register.rs:5:14 [INFO] [stderr] | [INFO] [stderr] 5 | Zero = 0b10000000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/register.rs:6:14 [INFO] [stderr] | [INFO] [stderr] 6 | Sub = 0b01000000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0100_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/register.rs:7:14 [INFO] [stderr] | [INFO] [stderr] 7 | HalfCarry = 0b00100000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0010_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/register.rs:8:14 [INFO] [stderr] | [INFO] [stderr] 8 | Carry = 0b00010000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0001_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/core/helper.rs:88:3 [INFO] [stderr] | [INFO] [stderr] 88 | (($word >> 8) as u8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] ::: src/core/register.rs:63:18 [INFO] [stderr] | [INFO] [stderr] 63 | self.a = high!(value); [INFO] [stderr] | ------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/core/helper.rs:95:3 [INFO] [stderr] | [INFO] [stderr] 95 | (($word & 0xFF) as u8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] ::: src/core/register.rs:64:18 [INFO] [stderr] | [INFO] [stderr] 64 | self.f = low!(value); [INFO] [stderr] | ----------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/core/helper.rs:88:3 [INFO] [stderr] | [INFO] [stderr] 88 | (($word >> 8) as u8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] ::: src/core/register.rs:68:18 [INFO] [stderr] | [INFO] [stderr] 68 | self.b = high!(value); [INFO] [stderr] | ------------ in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/core/helper.rs:95:3 [INFO] [stderr] | [INFO] [stderr] 95 | (($word & 0xFF) as u8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] ::: src/core/register.rs:69:18 [INFO] [stderr] | [INFO] [stderr] 69 | self.c = low!(value); [INFO] [stderr] | ----------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/core/helper.rs:88:3 [INFO] [stderr] | [INFO] [stderr] 88 | (($word >> 8) as u8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] ::: src/core/register.rs:73:18 [INFO] [stderr] | [INFO] [stderr] 73 | self.d = high!(value); [INFO] [stderr] | ------------ in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/core/helper.rs:95:3 [INFO] [stderr] | [INFO] [stderr] 95 | (($word & 0xFF) as u8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] ::: src/core/register.rs:74:18 [INFO] [stderr] | [INFO] [stderr] 74 | self.e = low!(value); [INFO] [stderr] | ----------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/core/helper.rs:88:3 [INFO] [stderr] | [INFO] [stderr] 88 | (($word >> 8) as u8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] ::: src/core/register.rs:78:18 [INFO] [stderr] | [INFO] [stderr] 78 | self.h = high!(value); [INFO] [stderr] | ------------ in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/core/helper.rs:95:3 [INFO] [stderr] | [INFO] [stderr] 95 | (($word & 0xFF) as u8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] ::: src/core/register.rs:79:18 [INFO] [stderr] | [INFO] [stderr] 79 | self.l = low!(value); [INFO] [stderr] | ----------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `match` head expression [INFO] [stderr] --> src/core/register.rs:127:10 [INFO] [stderr] | [INFO] [stderr] 127 | match (self.f & Flag::Zero as u8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `match` head expression [INFO] [stderr] --> src/core/register.rs:132:10 [INFO] [stderr] | [INFO] [stderr] 132 | match (self.f & Flag::Sub as u8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `match` head expression [INFO] [stderr] --> src/core/register.rs:137:10 [INFO] [stderr] | [INFO] [stderr] 137 | match (self.f & Flag::HalfCarry as u8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `match` head expression [INFO] [stderr] --> src/core/register.rs:142:10 [INFO] [stderr] | [INFO] [stderr] 142 | match (self.f & Flag::Carry as u8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unused import: `core::disassembler::*` [INFO] [stderr] --> src/core/cpu.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use core::disassembler::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: All variants have the same prefix: `Rst` [INFO] [stderr] --> src/core/cpu.rs:14:1 [INFO] [stderr] | [INFO] [stderr] 14 | / enum RstVector { [INFO] [stderr] 15 | | Rst1 = 0x00, [INFO] [stderr] 16 | | Rst2 = 0x08, [INFO] [stderr] 17 | | Rst3 = 0x10, [INFO] [stderr] ... | [INFO] [stderr] 22 | | Rst8 = 0x38, [INFO] [stderr] 23 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::enum_variant_names)] on by default [INFO] [stderr] = help: remove the prefixes and use full paths to the variants instead of glob imports [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/core/helper.rs:95:3 [INFO] [stderr] | [INFO] [stderr] 95 | (($word & 0xFF) as u8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] ::: src/core/cpu.rs:223:34 [INFO] [stderr] | [INFO] [stderr] 223 | memory.write(nn, low!(self.regs.sp)); [INFO] [stderr] | ------------------ in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/core/helper.rs:88:3 [INFO] [stderr] | [INFO] [stderr] 88 | (($word >> 8) as u8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] ::: src/core/cpu.rs:224:38 [INFO] [stderr] | [INFO] [stderr] 224 | memory.write(nn + 1, high!(self.regs.sp)); [INFO] [stderr] | ------------------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/core/helper.rs:88:3 [INFO] [stderr] | [INFO] [stderr] 88 | (($word >> 8) as u8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] ::: src/core/cpu.rs:745:36 [INFO] [stderr] | [INFO] [stderr] 745 | memory.write(self.regs.sp, high!(data)); [INFO] [stderr] | ----------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/core/helper.rs:95:3 [INFO] [stderr] | [INFO] [stderr] 95 | (($word & 0xFF) as u8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] ::: src/core/cpu.rs:747:36 [INFO] [stderr] | [INFO] [stderr] 747 | memory.write(self.regs.sp, low!(data)); [INFO] [stderr] | ---------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/core/cpu.rs:770:34 [INFO] [stderr] | [INFO] [stderr] 770 | self.regs.set_flag(Flag::Zero, (result == 0)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/core/cpu.rs:783:34 [INFO] [stderr] | [INFO] [stderr] 783 | self.regs.set_flag(Flag::Zero, (result == 0)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/core/cpu.rs:792:34 [INFO] [stderr] | [INFO] [stderr] 792 | self.regs.set_flag(Flag::Zero, (result == 0)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/core/cpu.rs:801:34 [INFO] [stderr] | [INFO] [stderr] 801 | self.regs.set_flag(Flag::Zero, (result == 0)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/core/cpu.rs:810:34 [INFO] [stderr] | [INFO] [stderr] 810 | self.regs.set_flag(Flag::Zero, (result == 0)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/core/cpu.rs:826:34 [INFO] [stderr] | [INFO] [stderr] 826 | self.regs.set_flag(Flag::Zero, (result == 0)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/core/cpu.rs:835:34 [INFO] [stderr] | [INFO] [stderr] 835 | self.regs.set_flag(Flag::Zero, (result == 0)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/core/cpu.rs:855:35 [INFO] [stderr] | [INFO] [stderr] 855 | self.regs.set_flag(Flag::Carry, (bit7 == 1)); [INFO] [stderr] | ^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/core/cpu.rs:858:34 [INFO] [stderr] | [INFO] [stderr] 858 | self.regs.set_flag(Flag::Zero, (result == 0 && update_zero)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/core/cpu.rs:870:35 [INFO] [stderr] | [INFO] [stderr] 870 | self.regs.set_flag(Flag::Carry, (bit1 == 1)); [INFO] [stderr] | ^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/core/cpu.rs:873:34 [INFO] [stderr] | [INFO] [stderr] 873 | self.regs.set_flag(Flag::Zero, (result == 0 && update_zero)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/gpu.rs:34:16 [INFO] [stderr] | [INFO] [stderr] 34 | HBlank = 0b00001000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_1000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/gpu.rs:35:16 [INFO] [stderr] | [INFO] [stderr] 35 | VBlank = 0b00010000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0001_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/gpu.rs:36:16 [INFO] [stderr] | [INFO] [stderr] 36 | Oam = 0b00100000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0010_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/gpu.rs:37:16 [INFO] [stderr] | [INFO] [stderr] 37 | Coincidence = 0b01000000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0100_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/gpu.rs:115:23 [INFO] [stderr] | [INFO] [stderr] 115 | frame_buffer: vec![0xFF00FF; FRAME_WIDTH * FRAME_HEIGHT], [INFO] [stderr] | ^^^^^^^^ help: consider: `0x00FF_00FF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/gpu.rs:135:4 [INFO] [stderr] | [INFO] [stderr] 135 | 0xEEEEEE, // 0 White [INFO] [stderr] | ^^^^^^^^ help: consider: `0x00EE_EEEE` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/gpu.rs:136:4 [INFO] [stderr] | [INFO] [stderr] 136 | 0x999999, // 1 Light Gray [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0099_9999` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/gpu.rs:137:4 [INFO] [stderr] | [INFO] [stderr] 137 | 0x666666, // 2 Dark Gray [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0066_6666` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/gpu.rs:138:4 [INFO] [stderr] | [INFO] [stderr] 138 | 0x222222, // 3 Black [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0022_2222` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/gpu.rs:141:20 [INFO] [stderr] | [INFO] [stderr] 141 | 0 => palette & 0b00000011, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0011` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/gpu.rs:142:20 [INFO] [stderr] | [INFO] [stderr] 142 | 1 => (palette & 0b00001100) >> 2, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_1100` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/gpu.rs:143:20 [INFO] [stderr] | [INFO] [stderr] 143 | 2 => (palette & 0b00110000) >> 4, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0011_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/gpu.rs:144:20 [INFO] [stderr] | [INFO] [stderr] 144 | 3 => (palette & 0b11000000) >> 6, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1100_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/gpu.rs:157:26 [INFO] [stderr] | [INFO] [stderr] 157 | let mut display = vec![0xFF00FF; width * height]; [INFO] [stderr] | ^^^^^^^^ help: consider: `0x00FF_00FF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/core/gpu.rs:337:13 [INFO] [stderr] | [INFO] [stderr] 337 | let row = (y / 8); [INFO] [stderr] | ^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/core/gpu.rs:342:17 [INFO] [stderr] | [INFO] [stderr] 342 | let column = (x / 8); [INFO] [stderr] | ^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/core/gpu.rs:404:18 [INFO] [stderr] | [INFO] [stderr] 404 | debug_color |= (debug_line_color as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/core/gpu.rs:473:9 [INFO] [stderr] | [INFO] [stderr] 473 | if (scanline_y.wrapping_sub(sprite_y) < 8) { // top half [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/core/gpu.rs:509:5 [INFO] [stderr] | [INFO] [stderr] 509 | if sprite.behind_background { [INFO] [stderr] | _________________^ [INFO] [stderr] 510 | | if bg_priority[adjusted_x as usize] { [INFO] [stderr] 511 | | continue; [INFO] [stderr] 512 | | } [INFO] [stderr] 513 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 509 | if sprite.behind_background && bg_priority[adjusted_x as usize] { [INFO] [stderr] 510 | continue; [INFO] [stderr] 511 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/joypad.rs:4:31 [INFO] [stderr] | [INFO] [stderr] 4 | pub const BUTTON_A: u8 = 0b00000001; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0001` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/joypad.rs:5:31 [INFO] [stderr] | [INFO] [stderr] 5 | pub const BUTTON_B: u8 = 0b00000010; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0010` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/joypad.rs:6:31 [INFO] [stderr] | [INFO] [stderr] 6 | pub const BUTTON_SELECT: u8 = 0b00000100; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0100` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/joypad.rs:7:31 [INFO] [stderr] | [INFO] [stderr] 7 | pub const BUTTON_START: u8 = 0b00001000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_1000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/joypad.rs:8:31 [INFO] [stderr] | [INFO] [stderr] 8 | pub const PAD_RIGHT: u8 = 0b00000001; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0001` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/joypad.rs:9:31 [INFO] [stderr] | [INFO] [stderr] 9 | pub const PAD_LEFT: u8 = 0b00000010; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0010` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/joypad.rs:10:31 [INFO] [stderr] | [INFO] [stderr] 10 | pub const PAD_UP: u8 = 0b00000100; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0100` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/joypad.rs:11:31 [INFO] [stderr] | [INFO] [stderr] 11 | pub const PAD_DOWN: u8 = 0b00001000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_1000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/joypad.rs:32:43 [INFO] [stderr] | [INFO] [stderr] 32 | register: MemoryRegister::new(0b00110000), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0011_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unused import: `interconnect::*` [INFO] [stderr] --> src/core/dma.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use interconnect::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/core/dma.rs:36:12 [INFO] [stderr] | [INFO] [stderr] 36 | if (self.cycles - adjusted_cycles < 0) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/timer.rs:5:26 [INFO] [stderr] | [INFO] [stderr] 5 | const CLOCK_SPEED: i32 = 4194304; [INFO] [stderr] | ^^^^^^^ help: consider: `4_194_304` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: All variants have the same prefix: `Mode` [INFO] [stderr] --> src/core/timer.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | / enum TimerFrequency { [INFO] [stderr] 9 | | Mode0 = 4096, // Hz.. [INFO] [stderr] 10 | | Mode1 = 262144, [INFO] [stderr] 11 | | Mode2 = 65536, [INFO] [stderr] 12 | | Mode3 = 16384, [INFO] [stderr] 13 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: remove the prefixes and use full paths to the variants instead of glob imports [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/timer.rs:10:13 [INFO] [stderr] | [INFO] [stderr] 10 | Mode1 = 262144, [INFO] [stderr] | ^^^^^^ help: consider: `262_144` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/core/timer.rs:55:20 [INFO] [stderr] | [INFO] [stderr] 55 | if (timer_value == 255) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/emu/emulator.rs:9:26 [INFO] [stderr] | [INFO] [stderr] 9 | const CLOCK_SPEED: i32 = 4194304; [INFO] [stderr] | ^^^^^^^ help: consider: `4_194_304` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/emu/emulator.rs:42:38 [INFO] [stderr] | [INFO] [stderr] 42 | let frame_time = Duration::new(0, 16600000); // 16.6 ms as nanoseconds [INFO] [stderr] | ^^^^^^^^ help: consider: `16_600_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::*` [INFO] [stderr] --> src/core/helper.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::io::*; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/helper.rs:6:9 [INFO] [stderr] | [INFO] [stderr] 6 | Bit0 = 0b00000001, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0001` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/helper.rs:7:9 [INFO] [stderr] | [INFO] [stderr] 7 | Bit1 = 0b00000010, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0010` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/helper.rs:8:9 [INFO] [stderr] | [INFO] [stderr] 8 | Bit2 = 0b00000100, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0100` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/helper.rs:9:9 [INFO] [stderr] | [INFO] [stderr] 9 | Bit3 = 0b00001000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_1000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/helper.rs:10:9 [INFO] [stderr] | [INFO] [stderr] 10 | Bit4 = 0b00010000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0001_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/helper.rs:11:9 [INFO] [stderr] | [INFO] [stderr] 11 | Bit5 = 0b00100000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0010_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/helper.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | Bit6 = 0b01000000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0100_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/helper.rs:13:9 [INFO] [stderr] | [INFO] [stderr] 13 | Bit7 = 0b10000000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/core/helper.rs:100:1 [INFO] [stderr] | [INFO] [stderr] 100 | / macro_rules! hex { [INFO] [stderr] 101 | | ($val:expr) => {{ [INFO] [stderr] 102 | | println!("${:02X}", $val); [INFO] [stderr] 103 | | }} [INFO] [stderr] 104 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_macros)] on by default [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/interrupt.rs:5:11 [INFO] [stderr] | [INFO] [stderr] 5 | VBlank = 0b00000001, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0001` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/interrupt.rs:6:11 [INFO] [stderr] | [INFO] [stderr] 6 | Lcdc = 0b00000010, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0010` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/interrupt.rs:7:11 [INFO] [stderr] | [INFO] [stderr] 7 | Timer = 0b00000100, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0100` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/interrupt.rs:8:11 [INFO] [stderr] | [INFO] [stderr] 8 | Serial = 0b00001000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_1000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/interrupt.rs:9:11 [INFO] [stderr] | [INFO] [stderr] 9 | Joypad = 0b00010000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0001_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/core/interrupt.rs:72:5 [INFO] [stderr] | [INFO] [stderr] 72 | if interrupt_enable & bit > 0 { [INFO] [stderr] | _________________^ [INFO] [stderr] 73 | | if interrupt_flag & bit > 0 { [INFO] [stderr] 74 | | self.IF.set(interrupt_flag & !bit); [INFO] [stderr] 75 | | address = match bit { [INFO] [stderr] ... | [INFO] [stderr] 84 | | } [INFO] [stderr] 85 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 72 | if interrupt_enable & bit > 0 && interrupt_flag & bit > 0 { [INFO] [stderr] 73 | self.IF.set(interrupt_flag & !bit); [INFO] [stderr] 74 | address = match bit { [INFO] [stderr] 75 | 0b00000001 => Some(InterruptVector::VBlank), [INFO] [stderr] 76 | 0b00000010 => Some(InterruptVector::Lcdc), [INFO] [stderr] 77 | 0b00000100 => Some(InterruptVector::Timer), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/interrupt.rs:76:8 [INFO] [stderr] | [INFO] [stderr] 76 | 0b00000001 => Some(InterruptVector::VBlank), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0001` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/interrupt.rs:77:8 [INFO] [stderr] | [INFO] [stderr] 77 | 0b00000010 => Some(InterruptVector::Lcdc), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0010` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/interrupt.rs:78:8 [INFO] [stderr] | [INFO] [stderr] 78 | 0b00000100 => Some(InterruptVector::Timer), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0100` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/interrupt.rs:79:8 [INFO] [stderr] | [INFO] [stderr] 79 | 0b00001000 => Some(InterruptVector::Serial), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_1000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/interrupt.rs:80:8 [INFO] [stderr] | [INFO] [stderr] 80 | 0b00010000 => Some(InterruptVector::Joypad), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0001_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unused import: `core::helper::*` [INFO] [stderr] --> src/core/register.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use core::helper::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/register.rs:5:14 [INFO] [stderr] | [INFO] [stderr] 5 | Zero = 0b10000000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1000_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/register.rs:6:14 [INFO] [stderr] | [INFO] [stderr] 6 | Sub = 0b01000000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0100_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/register.rs:7:14 [INFO] [stderr] | [INFO] [stderr] 7 | HalfCarry = 0b00100000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0010_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/register.rs:8:14 [INFO] [stderr] | [INFO] [stderr] 8 | Carry = 0b00010000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0001_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/core/helper.rs:88:3 [INFO] [stderr] | [INFO] [stderr] 88 | (($word >> 8) as u8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] ::: src/core/register.rs:63:18 [INFO] [stderr] | [INFO] [stderr] 63 | self.a = high!(value); [INFO] [stderr] | ------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/core/helper.rs:95:3 [INFO] [stderr] | [INFO] [stderr] 95 | (($word & 0xFF) as u8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] ::: src/core/register.rs:64:18 [INFO] [stderr] | [INFO] [stderr] 64 | self.f = low!(value); [INFO] [stderr] | ----------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/core/helper.rs:88:3 [INFO] [stderr] | [INFO] [stderr] 88 | (($word >> 8) as u8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] ::: src/core/register.rs:68:18 [INFO] [stderr] | [INFO] [stderr] 68 | self.b = high!(value); [INFO] [stderr] | ------------ in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/core/helper.rs:95:3 [INFO] [stderr] | [INFO] [stderr] 95 | (($word & 0xFF) as u8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] ::: src/core/register.rs:69:18 [INFO] [stderr] | [INFO] [stderr] 69 | self.c = low!(value); [INFO] [stderr] | ----------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/core/helper.rs:88:3 [INFO] [stderr] | [INFO] [stderr] 88 | (($word >> 8) as u8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] ::: src/core/register.rs:73:18 [INFO] [stderr] | [INFO] [stderr] 73 | self.d = high!(value); [INFO] [stderr] | ------------ in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/core/helper.rs:95:3 [INFO] [stderr] | [INFO] [stderr] 95 | (($word & 0xFF) as u8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] ::: src/core/register.rs:74:18 [INFO] [stderr] | [INFO] [stderr] 74 | self.e = low!(value); [INFO] [stderr] | ----------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/core/helper.rs:88:3 [INFO] [stderr] | [INFO] [stderr] 88 | (($word >> 8) as u8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] ::: src/core/register.rs:78:18 [INFO] [stderr] | [INFO] [stderr] 78 | self.h = high!(value); [INFO] [stderr] | ------------ in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/core/helper.rs:95:3 [INFO] [stderr] | [INFO] [stderr] 95 | (($word & 0xFF) as u8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] ::: src/core/register.rs:79:18 [INFO] [stderr] | [INFO] [stderr] 79 | self.l = low!(value); [INFO] [stderr] | ----------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `match` head expression [INFO] [stderr] --> src/core/register.rs:127:10 [INFO] [stderr] | [INFO] [stderr] 127 | match (self.f & Flag::Zero as u8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `match` head expression [INFO] [stderr] --> src/core/register.rs:132:10 [INFO] [stderr] | [INFO] [stderr] 132 | match (self.f & Flag::Sub as u8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `match` head expression [INFO] [stderr] --> src/core/register.rs:137:10 [INFO] [stderr] | [INFO] [stderr] 137 | match (self.f & Flag::HalfCarry as u8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `match` head expression [INFO] [stderr] --> src/core/register.rs:142:10 [INFO] [stderr] | [INFO] [stderr] 142 | match (self.f & Flag::Carry as u8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unused import: `core::disassembler::*` [INFO] [stderr] --> src/core/cpu.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use core::disassembler::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: All variants have the same prefix: `Rst` [INFO] [stderr] --> src/core/cpu.rs:14:1 [INFO] [stderr] | [INFO] [stderr] 14 | / enum RstVector { [INFO] [stderr] 15 | | Rst1 = 0x00, [INFO] [stderr] 16 | | Rst2 = 0x08, [INFO] [stderr] 17 | | Rst3 = 0x10, [INFO] [stderr] ... | [INFO] [stderr] 22 | | Rst8 = 0x38, [INFO] [stderr] 23 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::enum_variant_names)] on by default [INFO] [stderr] = help: remove the prefixes and use full paths to the variants instead of glob imports [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/core/helper.rs:95:3 [INFO] [stderr] | [INFO] [stderr] 95 | (($word & 0xFF) as u8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] ::: src/core/cpu.rs:223:34 [INFO] [stderr] | [INFO] [stderr] 223 | memory.write(nn, low!(self.regs.sp)); [INFO] [stderr] | ------------------ in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/core/helper.rs:88:3 [INFO] [stderr] | [INFO] [stderr] 88 | (($word >> 8) as u8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] ::: src/core/cpu.rs:224:38 [INFO] [stderr] | [INFO] [stderr] 224 | memory.write(nn + 1, high!(self.regs.sp)); [INFO] [stderr] | ------------------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/core/helper.rs:88:3 [INFO] [stderr] | [INFO] [stderr] 88 | (($word >> 8) as u8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] ::: src/core/cpu.rs:745:36 [INFO] [stderr] | [INFO] [stderr] 745 | memory.write(self.regs.sp, high!(data)); [INFO] [stderr] | ----------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/core/helper.rs:95:3 [INFO] [stderr] | [INFO] [stderr] 95 | (($word & 0xFF) as u8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] ::: src/core/cpu.rs:747:36 [INFO] [stderr] | [INFO] [stderr] 747 | memory.write(self.regs.sp, low!(data)); [INFO] [stderr] | ---------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/core/cpu.rs:770:34 [INFO] [stderr] | [INFO] [stderr] 770 | self.regs.set_flag(Flag::Zero, (result == 0)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/core/cpu.rs:783:34 [INFO] [stderr] | [INFO] [stderr] 783 | self.regs.set_flag(Flag::Zero, (result == 0)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/core/cpu.rs:792:34 [INFO] [stderr] | [INFO] [stderr] 792 | self.regs.set_flag(Flag::Zero, (result == 0)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/core/cpu.rs:801:34 [INFO] [stderr] | [INFO] [stderr] 801 | self.regs.set_flag(Flag::Zero, (result == 0)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/core/cpu.rs:810:34 [INFO] [stderr] | [INFO] [stderr] 810 | self.regs.set_flag(Flag::Zero, (result == 0)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/core/cpu.rs:826:34 [INFO] [stderr] | [INFO] [stderr] 826 | self.regs.set_flag(Flag::Zero, (result == 0)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/core/cpu.rs:835:34 [INFO] [stderr] | [INFO] [stderr] 835 | self.regs.set_flag(Flag::Zero, (result == 0)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/core/cpu.rs:855:35 [INFO] [stderr] | [INFO] [stderr] 855 | self.regs.set_flag(Flag::Carry, (bit7 == 1)); [INFO] [stderr] | ^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/core/cpu.rs:858:34 [INFO] [stderr] | [INFO] [stderr] 858 | self.regs.set_flag(Flag::Zero, (result == 0 && update_zero)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/core/cpu.rs:870:35 [INFO] [stderr] | [INFO] [stderr] 870 | self.regs.set_flag(Flag::Carry, (bit1 == 1)); [INFO] [stderr] | ^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/core/cpu.rs:873:34 [INFO] [stderr] | [INFO] [stderr] 873 | self.regs.set_flag(Flag::Zero, (result == 0 && update_zero)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/gpu.rs:34:16 [INFO] [stderr] | [INFO] [stderr] 34 | HBlank = 0b00001000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_1000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/gpu.rs:35:16 [INFO] [stderr] | [INFO] [stderr] 35 | VBlank = 0b00010000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0001_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/gpu.rs:36:16 [INFO] [stderr] | [INFO] [stderr] 36 | Oam = 0b00100000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0010_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/gpu.rs:37:16 [INFO] [stderr] | [INFO] [stderr] 37 | Coincidence = 0b01000000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0100_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/gpu.rs:115:23 [INFO] [stderr] | [INFO] [stderr] 115 | frame_buffer: vec![0xFF00FF; FRAME_WIDTH * FRAME_HEIGHT], [INFO] [stderr] | ^^^^^^^^ help: consider: `0x00FF_00FF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/gpu.rs:135:4 [INFO] [stderr] | [INFO] [stderr] 135 | 0xEEEEEE, // 0 White [INFO] [stderr] | ^^^^^^^^ help: consider: `0x00EE_EEEE` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/gpu.rs:136:4 [INFO] [stderr] | [INFO] [stderr] 136 | 0x999999, // 1 Light Gray [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0099_9999` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/gpu.rs:137:4 [INFO] [stderr] | [INFO] [stderr] 137 | 0x666666, // 2 Dark Gray [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0066_6666` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/gpu.rs:138:4 [INFO] [stderr] | [INFO] [stderr] 138 | 0x222222, // 3 Black [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0022_2222` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/gpu.rs:141:20 [INFO] [stderr] | [INFO] [stderr] 141 | 0 => palette & 0b00000011, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0011` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/gpu.rs:142:20 [INFO] [stderr] | [INFO] [stderr] 142 | 1 => (palette & 0b00001100) >> 2, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_1100` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/gpu.rs:143:20 [INFO] [stderr] | [INFO] [stderr] 143 | 2 => (palette & 0b00110000) >> 4, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0011_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/gpu.rs:144:20 [INFO] [stderr] | [INFO] [stderr] 144 | 3 => (palette & 0b11000000) >> 6, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1100_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/gpu.rs:157:26 [INFO] [stderr] | [INFO] [stderr] 157 | let mut display = vec![0xFF00FF; width * height]; [INFO] [stderr] | ^^^^^^^^ help: consider: `0x00FF_00FF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/core/gpu.rs:337:13 [INFO] [stderr] | [INFO] [stderr] 337 | let row = (y / 8); [INFO] [stderr] | ^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/core/gpu.rs:342:17 [INFO] [stderr] | [INFO] [stderr] 342 | let column = (x / 8); [INFO] [stderr] | ^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/core/gpu.rs:404:18 [INFO] [stderr] | [INFO] [stderr] 404 | debug_color |= (debug_line_color as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/core/gpu.rs:473:9 [INFO] [stderr] | [INFO] [stderr] 473 | if (scanline_y.wrapping_sub(sprite_y) < 8) { // top half [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/core/gpu.rs:509:5 [INFO] [stderr] | [INFO] [stderr] 509 | if sprite.behind_background { [INFO] [stderr] | _________________^ [INFO] [stderr] 510 | | if bg_priority[adjusted_x as usize] { [INFO] [stderr] 511 | | continue; [INFO] [stderr] 512 | | } [INFO] [stderr] 513 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 509 | if sprite.behind_background && bg_priority[adjusted_x as usize] { [INFO] [stderr] 510 | continue; [INFO] [stderr] 511 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/joypad.rs:4:31 [INFO] [stderr] | [INFO] [stderr] 4 | pub const BUTTON_A: u8 = 0b00000001; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0001` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/joypad.rs:5:31 [INFO] [stderr] | [INFO] [stderr] 5 | pub const BUTTON_B: u8 = 0b00000010; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0010` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/joypad.rs:6:31 [INFO] [stderr] | [INFO] [stderr] 6 | pub const BUTTON_SELECT: u8 = 0b00000100; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0100` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/joypad.rs:7:31 [INFO] [stderr] | [INFO] [stderr] 7 | pub const BUTTON_START: u8 = 0b00001000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_1000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/joypad.rs:8:31 [INFO] [stderr] | [INFO] [stderr] 8 | pub const PAD_RIGHT: u8 = 0b00000001; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0001` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/joypad.rs:9:31 [INFO] [stderr] | [INFO] [stderr] 9 | pub const PAD_LEFT: u8 = 0b00000010; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0010` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/joypad.rs:10:31 [INFO] [stderr] | [INFO] [stderr] 10 | pub const PAD_UP: u8 = 0b00000100; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0100` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/joypad.rs:11:31 [INFO] [stderr] | [INFO] [stderr] 11 | pub const PAD_DOWN: u8 = 0b00001000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_1000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/joypad.rs:32:43 [INFO] [stderr] | [INFO] [stderr] 32 | register: MemoryRegister::new(0b00110000), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0011_0000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unused import: `interconnect::*` [INFO] [stderr] --> src/core/dma.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use interconnect::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/core/dma.rs:36:12 [INFO] [stderr] | [INFO] [stderr] 36 | if (self.cycles - adjusted_cycles < 0) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/timer.rs:5:26 [INFO] [stderr] | [INFO] [stderr] 5 | const CLOCK_SPEED: i32 = 4194304; [INFO] [stderr] | ^^^^^^^ help: consider: `4_194_304` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: All variants have the same prefix: `Mode` [INFO] [stderr] --> src/core/timer.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | / enum TimerFrequency { [INFO] [stderr] 9 | | Mode0 = 4096, // Hz.. [INFO] [stderr] 10 | | Mode1 = 262144, [INFO] [stderr] 11 | | Mode2 = 65536, [INFO] [stderr] 12 | | Mode3 = 16384, [INFO] [stderr] 13 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: remove the prefixes and use full paths to the variants instead of glob imports [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core/timer.rs:10:13 [INFO] [stderr] | [INFO] [stderr] 10 | Mode1 = 262144, [INFO] [stderr] | ^^^^^^ help: consider: `262_144` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/core/timer.rs:55:20 [INFO] [stderr] | [INFO] [stderr] 55 | if (timer_value == 255) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/emu/emulator.rs:9:26 [INFO] [stderr] | [INFO] [stderr] 9 | const CLOCK_SPEED: i32 = 4194304; [INFO] [stderr] | ^^^^^^^ help: consider: `4_194_304` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/emu/emulator.rs:42:38 [INFO] [stderr] | [INFO] [stderr] 42 | let frame_time = Duration::new(0, 16600000); // 16.6 ms as nanoseconds [INFO] [stderr] | ^^^^^^^^ help: consider: `16_600_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/core/cpu.rs:430:4 [INFO] [stderr] | [INFO] [stderr] 430 | 0xC3 => { self.regs.pc = self.next_pointer(memory); 4 }, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unreachable_patterns)] on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/core/cpu.rs:1007:7 [INFO] [stderr] | [INFO] [stderr] 1007 | }, _ => unreachable!() [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/core/cpu.rs:1037:7 [INFO] [stderr] | [INFO] [stderr] 1037 | }, _ => unreachable!() [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/core/cpu.rs:1060:7 [INFO] [stderr] | [INFO] [stderr] 1060 | }, _ => unreachable!() [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `n2` [INFO] [stderr] --> src/core/disassembler.rs:7:6 [INFO] [stderr] | [INFO] [stderr] 7 | let n2 = mem.read(reg.pc + 1); // opcode + 2 [INFO] [stderr] | ^^ help: consider using `_n2` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `n3` [INFO] [stderr] --> src/core/disassembler.rs:8:6 [INFO] [stderr] | [INFO] [stderr] 8 | let n3 = mem.read(reg.pc + 2); // opcode + 3 [INFO] [stderr] | ^^ help: consider using `_n3` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `new_mode` [INFO] [stderr] --> src/core/gpu.rs:221:11 [INFO] [stderr] | [INFO] [stderr] 221 | let mut new_mode: StatusMode; [INFO] [stderr] | ^^^^^^^^ help: consider using `_new_mode` instead [INFO] [stderr] [INFO] [stderr] warning: variable `debug_color` is assigned to, but never used [INFO] [stderr] --> src/core/gpu.rs:402:11 [INFO] [stderr] | [INFO] [stderr] 402 | let mut debug_color: u32 = (debug_line_color as u32) << 16; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_debug_color` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `debug_color` is never read [INFO] [stderr] --> src/core/gpu.rs:404:3 [INFO] [stderr] | [INFO] [stderr] 404 | debug_color |= (debug_line_color as u32); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `display_x` [INFO] [stderr] --> src/core/gpu.rs:407:8 [INFO] [stderr] | [INFO] [stderr] 407 | let display_x = (i as u8).wrapping_add(window_x); [INFO] [stderr] | ^^^^^^^^^ help: consider using `_display_x` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `stat` [INFO] [stderr] --> src/core/gpu.rs:589:7 [INFO] [stderr] | [INFO] [stderr] 589 | let stat = self.LCDC.get(); [INFO] [stderr] | ^^^^ help: consider using `_stat` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `address` [INFO] [stderr] --> src/core/mbc/mbc0.rs:9:22 [INFO] [stderr] | [INFO] [stderr] 9 | fn write(&mut self, address: u16, data: u8) {} [INFO] [stderr] | ^^^^^^^ help: consider using `_address` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `data` [INFO] [stderr] --> src/core/mbc/mbc0.rs:9:36 [INFO] [stderr] | [INFO] [stderr] 9 | fn write(&mut self, address: u16, data: u8) {} [INFO] [stderr] | ^^^^ help: consider using `_data` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `name` [INFO] [stderr] --> src/core/mbc/mbc0.rs:10:29 [INFO] [stderr] | [INFO] [stderr] 10 | fn set_title(&mut self, name: String) {} [INFO] [stderr] | ^^^^ help: consider using `_name` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `address` [INFO] [stderr] --> src/core/mbc/mbc2.rs:19:22 [INFO] [stderr] | [INFO] [stderr] 19 | fn write(&mut self, address: u16, data: u8) { [INFO] [stderr] | ^^^^^^^ help: consider using `_address` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `data` [INFO] [stderr] --> src/core/mbc/mbc2.rs:19:36 [INFO] [stderr] | [INFO] [stderr] 19 | fn write(&mut self, address: u16, data: u8) { [INFO] [stderr] | ^^^^ help: consider using `_data` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `name` [INFO] [stderr] --> src/core/mbc/mbc2.rs:22:29 [INFO] [stderr] | [INFO] [stderr] 22 | fn set_title(&mut self, name: String) { [INFO] [stderr] | ^^^^ help: consider using `_name` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `data` [INFO] [stderr] --> src/core/timer.rs:101:33 [INFO] [stderr] | [INFO] [stderr] 101 | pub fn write_div(&mut self, data: u8) { [INFO] [stderr] | ^^^^ help: consider using `_data` instead [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/core/cpu.rs:430:4 [INFO] [stderr] | [INFO] [stderr] 430 | 0xC3 => { self.regs.pc = self.next_pointer(memory); 4 }, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unreachable_patterns)] on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/core/cpu.rs:1007:7 [INFO] [stderr] | [INFO] [stderr] 1007 | }, _ => unreachable!() [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/core/cpu.rs:1037:7 [INFO] [stderr] | [INFO] [stderr] 1037 | }, _ => unreachable!() [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/core/cpu.rs:1060:7 [INFO] [stderr] | [INFO] [stderr] 1060 | }, _ => unreachable!() [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `n2` [INFO] [stderr] --> src/core/disassembler.rs:7:6 [INFO] [stderr] | [INFO] [stderr] 7 | let n2 = mem.read(reg.pc + 1); // opcode + 2 [INFO] [stderr] | ^^ help: consider using `_n2` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `n3` [INFO] [stderr] --> src/core/disassembler.rs:8:6 [INFO] [stderr] | [INFO] [stderr] 8 | let n3 = mem.read(reg.pc + 2); // opcode + 3 [INFO] [stderr] | ^^ help: consider using `_n3` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `new_mode` [INFO] [stderr] --> src/core/gpu.rs:221:11 [INFO] [stderr] | [INFO] [stderr] 221 | let mut new_mode: StatusMode; [INFO] [stderr] | ^^^^^^^^ help: consider using `_new_mode` instead [INFO] [stderr] [INFO] [stderr] warning: variable `debug_color` is assigned to, but never used [INFO] [stderr] --> src/core/gpu.rs:402:11 [INFO] [stderr] | [INFO] [stderr] 402 | let mut debug_color: u32 = (debug_line_color as u32) << 16; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_debug_color` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `debug_color` is never read [INFO] [stderr] --> src/core/gpu.rs:404:3 [INFO] [stderr] | [INFO] [stderr] 404 | debug_color |= (debug_line_color as u32); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `display_x` [INFO] [stderr] --> src/core/gpu.rs:407:8 [INFO] [stderr] | [INFO] [stderr] 407 | let display_x = (i as u8).wrapping_add(window_x); [INFO] [stderr] | ^^^^^^^^^ help: consider using `_display_x` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `stat` [INFO] [stderr] --> src/core/gpu.rs:589:7 [INFO] [stderr] | [INFO] [stderr] 589 | let stat = self.LCDC.get(); [INFO] [stderr] | ^^^^ help: consider using `_stat` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `address` [INFO] [stderr] --> src/core/mbc/mbc0.rs:9:22 [INFO] [stderr] | [INFO] [stderr] 9 | fn write(&mut self, address: u16, data: u8) {} [INFO] [stderr] | ^^^^^^^ help: consider using `_address` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `data` [INFO] [stderr] --> src/core/mbc/mbc0.rs:9:36 [INFO] [stderr] | [INFO] [stderr] 9 | fn write(&mut self, address: u16, data: u8) {} [INFO] [stderr] | ^^^^ help: consider using `_data` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `name` [INFO] [stderr] --> src/core/mbc/mbc0.rs:10:29 [INFO] [stderr] | [INFO] [stderr] 10 | fn set_title(&mut self, name: String) {} [INFO] [stderr] | ^^^^ help: consider using `_name` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `address` [INFO] [stderr] --> src/core/mbc/mbc2.rs:19:22 [INFO] [stderr] | [INFO] [stderr] 19 | fn write(&mut self, address: u16, data: u8) { [INFO] [stderr] | ^^^^^^^ help: consider using `_address` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `data` [INFO] [stderr] --> src/core/mbc/mbc2.rs:19:36 [INFO] [stderr] | [INFO] [stderr] 19 | fn write(&mut self, address: u16, data: u8) { [INFO] [stderr] | ^^^^ help: consider using `_data` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `name` [INFO] [stderr] --> src/core/mbc/mbc2.rs:22:29 [INFO] [stderr] | [INFO] [stderr] 22 | fn set_title(&mut self, name: String) { [INFO] [stderr] | ^^^^ help: consider using `_name` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `data` [INFO] [stderr] --> src/core/timer.rs:101:33 [INFO] [stderr] | [INFO] [stderr] 101 | pub fn write_div(&mut self, data: u8) { [INFO] [stderr] | ^^^^ help: consider using `_data` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/core/gpu.rs:221:7 [INFO] [stderr] | [INFO] [stderr] 221 | let mut new_mode: StatusMode; [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/core/gpu.rs:454:7 [INFO] [stderr] | [INFO] [stderr] 454 | let mut iter = self.sprite_table.clone().into_iter().filter(|sprite| { [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/core/joypad.rs:57:13 [INFO] [stderr] | [INFO] [stderr] 57 | let mut result = self.register.get() & 0x30; [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/emu/emulator.rs:36:7 [INFO] [stderr] | [INFO] [stderr] 36 | let mut multiplier = 100; [INFO] [stderr] | ----^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: method is never used: `sub` [INFO] [stderr] --> src/core/helper.rs:73:2 [INFO] [stderr] | [INFO] [stderr] 73 | pub fn sub(&mut self, data: u8) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Serial` [INFO] [stderr] --> src/core/interrupt.rs:8:2 [INFO] [stderr] | [INFO] [stderr] 8 | Serial = 0b00001000, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `counter` [INFO] [stderr] --> src/core/interrupt.rs:23:2 [INFO] [stderr] | [INFO] [stderr] 23 | counter: u32, // counts the number of opcodes since interrupt status changed [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `read` [INFO] [stderr] --> src/core/interrupt.rs:48:2 [INFO] [stderr] | [INFO] [stderr] 48 | pub fn read(&mut self, address: u16) -> u8 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `disassemble` [INFO] [stderr] --> src/core/disassembler.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | pub fn disassemble(reg: &Registers, mem: &Interconnect, opcode: u8) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `SB` [INFO] [stderr] --> src/core/memory_map.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | pub const SB: u16 = 0xFF01; // Serial transfer data [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `SC` [INFO] [stderr] --> src/core/memory_map.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | pub const SC: u16 = 0xFF02; // SIO Control [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR10` [INFO] [stderr] --> src/core/memory_map.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | pub const NR10: u16 = 0xFF10; // Sound Mode 1 sweep [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR11` [INFO] [stderr] --> src/core/memory_map.rs:11:1 [INFO] [stderr] | [INFO] [stderr] 11 | pub const NR11: u16 = 0xFF11; // Sound Mode 1 wave pattern [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR12` [INFO] [stderr] --> src/core/memory_map.rs:12:1 [INFO] [stderr] | [INFO] [stderr] 12 | pub const NR12: u16 = 0xFF12; // Sound Mode 1 envelope [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR13` [INFO] [stderr] --> src/core/memory_map.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | pub const NR13: u16 = 0xFF13; // Sound Mode 1 frequency low [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR14` [INFO] [stderr] --> src/core/memory_map.rs:14:1 [INFO] [stderr] | [INFO] [stderr] 14 | pub const NR14: u16 = 0xFF14; // Sound Mode 1 frequency high [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR21` [INFO] [stderr] --> src/core/memory_map.rs:15:1 [INFO] [stderr] | [INFO] [stderr] 15 | pub const NR21: u16 = 0xFF16; // Sound Mode 2 wave pattern [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR22` [INFO] [stderr] --> src/core/memory_map.rs:16:1 [INFO] [stderr] | [INFO] [stderr] 16 | pub const NR22: u16 = 0xFF17; // Sound Mode 2 envelope [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR23` [INFO] [stderr] --> src/core/memory_map.rs:17:1 [INFO] [stderr] | [INFO] [stderr] 17 | pub const NR23: u16 = 0xFF18; // Sound Mode 2 frequency low [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR24` [INFO] [stderr] --> src/core/memory_map.rs:18:1 [INFO] [stderr] | [INFO] [stderr] 18 | pub const NR24: u16 = 0xFF19; // Sound Mode 2 frequency high [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR30` [INFO] [stderr] --> src/core/memory_map.rs:19:1 [INFO] [stderr] | [INFO] [stderr] 19 | pub const NR30: u16 = 0xFF1A; // Sound Mode 3 sound on/off [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR31` [INFO] [stderr] --> src/core/memory_map.rs:20:1 [INFO] [stderr] | [INFO] [stderr] 20 | pub const NR31: u16 = 0xFF1B; // Sound Mode 3 sound length [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR32` [INFO] [stderr] --> src/core/memory_map.rs:21:1 [INFO] [stderr] | [INFO] [stderr] 21 | pub const NR32: u16 = 0xFF1C; // Sound Mode 3 output level [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR33` [INFO] [stderr] --> src/core/memory_map.rs:22:1 [INFO] [stderr] | [INFO] [stderr] 22 | pub const NR33: u16 = 0xFF1D; // Sound Mode 3 frequency low [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR34` [INFO] [stderr] --> src/core/memory_map.rs:23:1 [INFO] [stderr] | [INFO] [stderr] 23 | pub const NR34: u16 = 0xFF1E; // Sound Mode 3 frequency high [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR41` [INFO] [stderr] --> src/core/memory_map.rs:24:1 [INFO] [stderr] | [INFO] [stderr] 24 | pub const NR41: u16 = 0xFF20; // Sound Mode 4 sound length [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR42` [INFO] [stderr] --> src/core/memory_map.rs:25:1 [INFO] [stderr] | [INFO] [stderr] 25 | pub const NR42: u16 = 0xFF21; // Sound Mode 4 envelope [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR43` [INFO] [stderr] --> src/core/memory_map.rs:26:1 [INFO] [stderr] | [INFO] [stderr] 26 | pub const NR43: u16 = 0xFF22; // Sound Mode 4 polynomial counter [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR44` [INFO] [stderr] --> src/core/memory_map.rs:27:1 [INFO] [stderr] | [INFO] [stderr] 27 | pub const NR44: u16 = 0xFF23; // Sound Mode 4 counter/consecutive [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR50` [INFO] [stderr] --> src/core/memory_map.rs:28:1 [INFO] [stderr] | [INFO] [stderr] 28 | pub const NR50: u16 = 0xFF24; // Channel Control/Volume [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR51` [INFO] [stderr] --> src/core/memory_map.rs:29:1 [INFO] [stderr] | [INFO] [stderr] 29 | pub const NR51: u16 = 0xFF25; // Sound output terminal [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR52` [INFO] [stderr] --> src/core/memory_map.rs:30:1 [INFO] [stderr] | [INFO] [stderr] 30 | pub const NR52: u16 = 0xFF26; // Sound on/off [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `size` [INFO] [stderr] --> src/core/rom.rs:46:2 [INFO] [stderr] | [INFO] [stderr] 46 | pub fn size(&self) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `StatusInterrupt` [INFO] [stderr] --> src/core/gpu.rs:33:1 [INFO] [stderr] | [INFO] [stderr] 33 | enum StatusInterrupt { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `set_stat` [INFO] [stderr] --> src/core/gpu.rs:550:2 [INFO] [stderr] | [INFO] [stderr] 550 | fn set_stat(&mut self, mode: StatusInterrupt) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `size` [INFO] [stderr] --> src/core/wram.rs:15:2 [INFO] [stderr] | [INFO] [stderr] 15 | pub fn size(&self) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `size` [INFO] [stderr] --> src/core/hram.rs:15:2 [INFO] [stderr] | [INFO] [stderr] 15 | pub fn size(&self) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `rom_bank` [INFO] [stderr] --> src/core/mbc/mbc2.rs:4:2 [INFO] [stderr] | [INFO] [stderr] 4 | rom_bank: u8 [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `rtc_register` [INFO] [stderr] --> src/core/mbc/mbc3.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | rtc_register: u8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `select_ram_bank` [INFO] [stderr] --> src/core/mbc/mbc3.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | select_ram_bank: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/core/helper.rs:16:32 [INFO] [stderr] | [INFO] [stderr] 16 | pub fn dump(name: &str, bytes: &Vec) { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/core/helper.rs:18:2 [INFO] [stderr] | [INFO] [stderr] 18 | file.write_all(bytes); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/core/helper.rs:28:13 [INFO] [stderr] | [INFO] [stderr] 28 | f.read_to_end(&mut temp_vec); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/core/helper.rs:58:3 [INFO] [stderr] | [INFO] [stderr] 58 | self.value = self.value | b as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.value |= b as u8` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/core/helper.rs:62:3 [INFO] [stderr] | [INFO] [stderr] 62 | self.value = self.value & !(b as u8); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.value &= !(b as u8)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/interconnect.rs:90:34 [INFO] [stderr] | [INFO] [stderr] 90 | let value = self.read(from + offset as u16); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(offset)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/interconnect.rs:91:21 [INFO] [stderr] | [INFO] [stderr] 91 | self.write(to + offset as u16, value); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(offset)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: structure field `IE` should have a snake case name such as `ie` [INFO] [stderr] --> src/core/interrupt.rs:26:2 [INFO] [stderr] | [INFO] [stderr] 26 | pub IE: MemoryRegister, // used to control intterupts [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: structure field `IF` should have a snake case name such as `if` [INFO] [stderr] --> src/core/interrupt.rs:27:2 [INFO] [stderr] | [INFO] [stderr] 27 | pub IF: MemoryRegister, // indicates which type of interrupt is set [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/core/gpu.rs:221:7 [INFO] [stderr] | [INFO] [stderr] 221 | let mut new_mode: StatusMode; [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/core/gpu.rs:454:7 [INFO] [stderr] | [INFO] [stderr] 454 | let mut iter = self.sprite_table.clone().into_iter().filter(|sprite| { [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/disassembler.rs:93:44 [INFO] [stderr] | [INFO] [stderr] 93 | mem.read((0xFF00 as u16).wrapping_add(reg.c as u16)), [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(reg.c)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/helper.rs:81:5 [INFO] [stderr] | [INFO] [stderr] 81 | ((($h as u16) << 8) | $l as u16) [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(self.a)` [INFO] [stderr] | [INFO] [stderr] ::: src/core/register.rs:47:9 [INFO] [stderr] | [INFO] [stderr] 47 | combine!(self.a, self.f) [INFO] [stderr] | ------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/helper.rs:81:25 [INFO] [stderr] | [INFO] [stderr] 81 | ((($h as u16) << 8) | $l as u16) [INFO] [stderr] | ^^^^^^^^^ help: try: `u16::from(self.f)` [INFO] [stderr] | [INFO] [stderr] ::: src/core/register.rs:47:9 [INFO] [stderr] | [INFO] [stderr] 47 | combine!(self.a, self.f) [INFO] [stderr] | ------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/helper.rs:81:5 [INFO] [stderr] | [INFO] [stderr] 81 | ((($h as u16) << 8) | $l as u16) [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(self.b)` [INFO] [stderr] | [INFO] [stderr] ::: src/core/register.rs:51:9 [INFO] [stderr] | [INFO] [stderr] 51 | combine!(self.b, self.c) [INFO] [stderr] | ------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/helper.rs:81:25 [INFO] [stderr] | [INFO] [stderr] 81 | ((($h as u16) << 8) | $l as u16) [INFO] [stderr] | ^^^^^^^^^ help: try: `u16::from(self.c)` [INFO] [stderr] | [INFO] [stderr] ::: src/core/register.rs:51:9 [INFO] [stderr] | [INFO] [stderr] 51 | combine!(self.b, self.c) [INFO] [stderr] | ------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/helper.rs:81:5 [INFO] [stderr] | [INFO] [stderr] 81 | ((($h as u16) << 8) | $l as u16) [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(self.d)` [INFO] [stderr] | [INFO] [stderr] ::: src/core/register.rs:55:9 [INFO] [stderr] | [INFO] [stderr] 55 | combine!(self.d, self.e) [INFO] [stderr] | ------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/helper.rs:81:25 [INFO] [stderr] | [INFO] [stderr] 81 | ((($h as u16) << 8) | $l as u16) [INFO] [stderr] | ^^^^^^^^^ help: try: `u16::from(self.e)` [INFO] [stderr] | [INFO] [stderr] ::: src/core/register.rs:55:9 [INFO] [stderr] | [INFO] [stderr] 55 | combine!(self.d, self.e) [INFO] [stderr] | ------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/helper.rs:81:5 [INFO] [stderr] | [INFO] [stderr] 81 | ((($h as u16) << 8) | $l as u16) [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(self.h)` [INFO] [stderr] | [INFO] [stderr] ::: src/core/register.rs:59:9 [INFO] [stderr] | [INFO] [stderr] 59 | combine!(self.h, self.l) [INFO] [stderr] | ------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/helper.rs:81:25 [INFO] [stderr] | [INFO] [stderr] 81 | ((($h as u16) << 8) | $l as u16) [INFO] [stderr] | ^^^^^^^^^ help: try: `u16::from(self.l)` [INFO] [stderr] | [INFO] [stderr] ::: src/core/register.rs:59:9 [INFO] [stderr] | [INFO] [stderr] 59 | combine!(self.h, self.l) [INFO] [stderr] | ------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/core/joypad.rs:57:13 [INFO] [stderr] | [INFO] [stderr] 57 | let mut result = self.register.get() & 0x30; [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/emu/emulator.rs:36:7 [INFO] [stderr] | [INFO] [stderr] 36 | let mut multiplier = 100; [INFO] [stderr] | ----^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/helper.rs:81:5 [INFO] [stderr] | [INFO] [stderr] 81 | ((($h as u16) << 8) | $l as u16) [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(high)` [INFO] [stderr] | [INFO] [stderr] ::: src/core/cpu.rs:51:9 [INFO] [stderr] | [INFO] [stderr] 51 | combine!(high, low) [INFO] [stderr] | ------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/helper.rs:81:25 [INFO] [stderr] | [INFO] [stderr] 81 | ((($h as u16) << 8) | $l as u16) [INFO] [stderr] | ^^^^^^^^^ help: try: `u16::from(low)` [INFO] [stderr] | [INFO] [stderr] ::: src/core/cpu.rs:51:9 [INFO] [stderr] | [INFO] [stderr] 51 | combine!(high, low) [INFO] [stderr] | ------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: method is never used: `sub` [INFO] [stderr] --> src/core/helper.rs:73:2 [INFO] [stderr] | [INFO] [stderr] 73 | pub fn sub(&mut self, data: u8) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Serial` [INFO] [stderr] --> src/core/interrupt.rs:8:2 [INFO] [stderr] | [INFO] [stderr] 8 | Serial = 0b00001000, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `counter` [INFO] [stderr] --> src/core/interrupt.rs:23:2 [INFO] [stderr] | [INFO] [stderr] 23 | counter: u32, // counts the number of opcodes since interrupt status changed [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `read` [INFO] [stderr] --> src/core/interrupt.rs:48:2 [INFO] [stderr] | [INFO] [stderr] 48 | pub fn read(&mut self, address: u16) -> u8 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `disassemble` [INFO] [stderr] --> src/core/disassembler.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | pub fn disassemble(reg: &Registers, mem: &Interconnect, opcode: u8) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `SB` [INFO] [stderr] --> src/core/memory_map.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | pub const SB: u16 = 0xFF01; // Serial transfer data [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `SC` [INFO] [stderr] --> src/core/memory_map.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | pub const SC: u16 = 0xFF02; // SIO Control [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR10` [INFO] [stderr] --> src/core/memory_map.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | pub const NR10: u16 = 0xFF10; // Sound Mode 1 sweep [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR11` [INFO] [stderr] --> src/core/memory_map.rs:11:1 [INFO] [stderr] | [INFO] [stderr] 11 | pub const NR11: u16 = 0xFF11; // Sound Mode 1 wave pattern [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR12` [INFO] [stderr] --> src/core/memory_map.rs:12:1 [INFO] [stderr] | [INFO] [stderr] 12 | pub const NR12: u16 = 0xFF12; // Sound Mode 1 envelope [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR13` [INFO] [stderr] --> src/core/memory_map.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | pub const NR13: u16 = 0xFF13; // Sound Mode 1 frequency low [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR14` [INFO] [stderr] --> src/core/memory_map.rs:14:1 [INFO] [stderr] | [INFO] [stderr] 14 | pub const NR14: u16 = 0xFF14; // Sound Mode 1 frequency high [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR21` [INFO] [stderr] --> src/core/memory_map.rs:15:1 [INFO] [stderr] | [INFO] [stderr] 15 | pub const NR21: u16 = 0xFF16; // Sound Mode 2 wave pattern [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR22` [INFO] [stderr] --> src/core/memory_map.rs:16:1 [INFO] [stderr] | [INFO] [stderr] 16 | pub const NR22: u16 = 0xFF17; // Sound Mode 2 envelope [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR23` [INFO] [stderr] --> src/core/memory_map.rs:17:1 [INFO] [stderr] | [INFO] [stderr] 17 | pub const NR23: u16 = 0xFF18; // Sound Mode 2 frequency low [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR24` [INFO] [stderr] --> src/core/memory_map.rs:18:1 [INFO] [stderr] | [INFO] [stderr] 18 | pub const NR24: u16 = 0xFF19; // Sound Mode 2 frequency high [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR30` [INFO] [stderr] --> src/core/memory_map.rs:19:1 [INFO] [stderr] | [INFO] [stderr] 19 | pub const NR30: u16 = 0xFF1A; // Sound Mode 3 sound on/off [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR31` [INFO] [stderr] --> src/core/memory_map.rs:20:1 [INFO] [stderr] | [INFO] [stderr] 20 | pub const NR31: u16 = 0xFF1B; // Sound Mode 3 sound length [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR32` [INFO] [stderr] --> src/core/memory_map.rs:21:1 [INFO] [stderr] | [INFO] [stderr] 21 | pub const NR32: u16 = 0xFF1C; // Sound Mode 3 output level [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR33` [INFO] [stderr] --> src/core/memory_map.rs:22:1 [INFO] [stderr] | [INFO] [stderr] 22 | pub const NR33: u16 = 0xFF1D; // Sound Mode 3 frequency low [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR34` [INFO] [stderr] --> src/core/memory_map.rs:23:1 [INFO] [stderr] | [INFO] [stderr] 23 | pub const NR34: u16 = 0xFF1E; // Sound Mode 3 frequency high [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR41` [INFO] [stderr] --> src/core/memory_map.rs:24:1 [INFO] [stderr] | [INFO] [stderr] 24 | pub const NR41: u16 = 0xFF20; // Sound Mode 4 sound length [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR42` [INFO] [stderr] --> src/core/memory_map.rs:25:1 [INFO] [stderr] | [INFO] [stderr] 25 | pub const NR42: u16 = 0xFF21; // Sound Mode 4 envelope [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR43` [INFO] [stderr] --> src/core/memory_map.rs:26:1 [INFO] [stderr] | [INFO] [stderr] 26 | pub const NR43: u16 = 0xFF22; // Sound Mode 4 polynomial counter [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR44` [INFO] [stderr] --> src/core/memory_map.rs:27:1 [INFO] [stderr] | [INFO] [stderr] 27 | pub const NR44: u16 = 0xFF23; // Sound Mode 4 counter/consecutive [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR50` [INFO] [stderr] --> src/core/memory_map.rs:28:1 [INFO] [stderr] | [INFO] [stderr] 28 | pub const NR50: u16 = 0xFF24; // Channel Control/Volume [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR51` [INFO] [stderr] --> src/core/memory_map.rs:29:1 [INFO] [stderr] | [INFO] [stderr] 29 | pub const NR51: u16 = 0xFF25; // Sound output terminal [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NR52` [INFO] [stderr] --> src/core/memory_map.rs:30:1 [INFO] [stderr] | [INFO] [stderr] 30 | pub const NR52: u16 = 0xFF26; // Sound on/off [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `size` [INFO] [stderr] --> src/core/rom.rs:46:2 [INFO] [stderr] | [INFO] [stderr] 46 | pub fn size(&self) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `StatusInterrupt` [INFO] [stderr] --> src/core/gpu.rs:33:1 [INFO] [stderr] | [INFO] [stderr] 33 | enum StatusInterrupt { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `set_stat` [INFO] [stderr] --> src/core/gpu.rs:550:2 [INFO] [stderr] | [INFO] [stderr] 550 | fn set_stat(&mut self, mode: StatusInterrupt) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `size` [INFO] [stderr] --> src/core/wram.rs:15:2 [INFO] [stderr] | [INFO] [stderr] 15 | pub fn size(&self) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `size` [INFO] [stderr] --> src/core/hram.rs:15:2 [INFO] [stderr] | [INFO] [stderr] 15 | pub fn size(&self) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `rom_bank` [INFO] [stderr] --> src/core/mbc/mbc2.rs:4:2 [INFO] [stderr] | [INFO] [stderr] 4 | rom_bank: u8 [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `rtc_register` [INFO] [stderr] --> src/core/mbc/mbc3.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | rtc_register: u8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `select_ram_bank` [INFO] [stderr] --> src/core/mbc/mbc3.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | select_ram_bank: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/core/helper.rs:16:32 [INFO] [stderr] | [INFO] [stderr] 16 | pub fn dump(name: &str, bytes: &Vec) { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/core/helper.rs:18:2 [INFO] [stderr] | [INFO] [stderr] 18 | file.write_all(bytes); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/core/helper.rs:28:13 [INFO] [stderr] | [INFO] [stderr] 28 | f.read_to_end(&mut temp_vec); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/core/helper.rs:58:3 [INFO] [stderr] | [INFO] [stderr] 58 | self.value = self.value | b as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.value |= b as u8` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/core/helper.rs:62:3 [INFO] [stderr] | [INFO] [stderr] 62 | self.value = self.value & !(b as u8); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.value &= !(b as u8)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: some ranges overlap [INFO] [stderr] --> src/core/cpu.rs:363:4 [INFO] [stderr] | [INFO] [stderr] 363 | 0xC3 => { let nn = self.next_pointer(memory); self.jump(nn); 4 }, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_overlapping_arm)] on by default [INFO] [stderr] note: overlaps with this [INFO] [stderr] --> src/core/cpu.rs:430:4 [INFO] [stderr] | [INFO] [stderr] 430 | 0xC3 => { self.regs.pc = self.next_pointer(memory); 4 }, [INFO] [stderr] | ^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_overlapping_arm [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/cpu.rs:155:27 [INFO] [stderr] | [INFO] [stderr] 155 | let offset = 0xFF00 | self.regs.c as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.regs.c)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/cpu.rs:161:27 [INFO] [stderr] | [INFO] [stderr] 161 | let offset = 0xFF00 | self.regs.c as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.regs.c)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/cpu.rs:167:27 [INFO] [stderr] | [INFO] [stderr] 167 | let offset = 0xFF00 | self.next_byte(memory) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.next_byte(memory))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/cpu.rs:173:27 [INFO] [stderr] | [INFO] [stderr] 173 | let offset = 0xFF00 | self.next_byte(memory) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.next_byte(memory))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/interconnect.rs:90:34 [INFO] [stderr] | [INFO] [stderr] 90 | let value = self.read(from + offset as u16); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(offset)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/interconnect.rs:91:21 [INFO] [stderr] | [INFO] [stderr] 91 | self.write(to + offset as u16, value); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(offset)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: structure field `IE` should have a snake case name such as `ie` [INFO] [stderr] --> src/core/interrupt.rs:26:2 [INFO] [stderr] | [INFO] [stderr] 26 | pub IE: MemoryRegister, // used to control intterupts [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: structure field `IF` should have a snake case name such as `if` [INFO] [stderr] --> src/core/interrupt.rs:27:2 [INFO] [stderr] | [INFO] [stderr] 27 | pub IF: MemoryRegister, // indicates which type of interrupt is set [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/disassembler.rs:93:44 [INFO] [stderr] | [INFO] [stderr] 93 | mem.read((0xFF00 as u16).wrapping_add(reg.c as u16)), [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(reg.c)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/helper.rs:81:5 [INFO] [stderr] | [INFO] [stderr] 81 | ((($h as u16) << 8) | $l as u16) [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(high)` [INFO] [stderr] | [INFO] [stderr] ::: src/core/cpu.rs:756:9 [INFO] [stderr] | [INFO] [stderr] 756 | combine!(high, low) [INFO] [stderr] | ------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/helper.rs:81:25 [INFO] [stderr] | [INFO] [stderr] 81 | ((($h as u16) << 8) | $l as u16) [INFO] [stderr] | ^^^^^^^^^ help: try: `u16::from(low)` [INFO] [stderr] | [INFO] [stderr] ::: src/core/cpu.rs:756:9 [INFO] [stderr] | [INFO] [stderr] 756 | combine!(high, low) [INFO] [stderr] | ------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/core/cpu.rs:765:16 [INFO] [stderr] | [INFO] [stderr] 765 | let carry = (a as i16 + n as i16 + c as i16) > 0xFF; [INFO] [stderr] | ^^^^^^^^ help: try: `i16::from(a)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/core/cpu.rs:765:27 [INFO] [stderr] | [INFO] [stderr] 765 | let carry = (a as i16 + n as i16 + c as i16) > 0xFF; [INFO] [stderr] | ^^^^^^^^ help: try: `i16::from(n)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/core/cpu.rs:765:38 [INFO] [stderr] | [INFO] [stderr] 765 | let carry = (a as i16 + n as i16 + c as i16) > 0xFF; [INFO] [stderr] | ^^^^^^^^ help: try: `i16::from(c)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/helper.rs:81:5 [INFO] [stderr] | [INFO] [stderr] 81 | ((($h as u16) << 8) | $l as u16) [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(self.a)` [INFO] [stderr] | [INFO] [stderr] ::: src/core/register.rs:47:9 [INFO] [stderr] | [INFO] [stderr] 47 | combine!(self.a, self.f) [INFO] [stderr] | ------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/helper.rs:81:25 [INFO] [stderr] | [INFO] [stderr] 81 | ((($h as u16) << 8) | $l as u16) [INFO] [stderr] | ^^^^^^^^^ help: try: `u16::from(self.f)` [INFO] [stderr] | [INFO] [stderr] ::: src/core/register.rs:47:9 [INFO] [stderr] | [INFO] [stderr] 47 | combine!(self.a, self.f) [INFO] [stderr] | ------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/helper.rs:81:5 [INFO] [stderr] | [INFO] [stderr] 81 | ((($h as u16) << 8) | $l as u16) [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(self.b)` [INFO] [stderr] | [INFO] [stderr] ::: src/core/register.rs:51:9 [INFO] [stderr] | [INFO] [stderr] 51 | combine!(self.b, self.c) [INFO] [stderr] | ------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/helper.rs:81:25 [INFO] [stderr] | [INFO] [stderr] 81 | ((($h as u16) << 8) | $l as u16) [INFO] [stderr] | ^^^^^^^^^ help: try: `u16::from(self.c)` [INFO] [stderr] | [INFO] [stderr] ::: src/core/register.rs:51:9 [INFO] [stderr] | [INFO] [stderr] 51 | combine!(self.b, self.c) [INFO] [stderr] | ------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/helper.rs:81:5 [INFO] [stderr] | [INFO] [stderr] 81 | ((($h as u16) << 8) | $l as u16) [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(self.d)` [INFO] [stderr] | [INFO] [stderr] ::: src/core/register.rs:55:9 [INFO] [stderr] | [INFO] [stderr] 55 | combine!(self.d, self.e) [INFO] [stderr] | ------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/helper.rs:81:25 [INFO] [stderr] | [INFO] [stderr] 81 | ((($h as u16) << 8) | $l as u16) [INFO] [stderr] | ^^^^^^^^^ help: try: `u16::from(self.e)` [INFO] [stderr] | [INFO] [stderr] ::: src/core/register.rs:55:9 [INFO] [stderr] | [INFO] [stderr] 55 | combine!(self.d, self.e) [INFO] [stderr] | ------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/helper.rs:81:5 [INFO] [stderr] | [INFO] [stderr] 81 | ((($h as u16) << 8) | $l as u16) [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(self.h)` [INFO] [stderr] | [INFO] [stderr] ::: src/core/register.rs:59:9 [INFO] [stderr] | [INFO] [stderr] 59 | combine!(self.h, self.l) [INFO] [stderr] | ------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/helper.rs:81:25 [INFO] [stderr] | [INFO] [stderr] 81 | ((($h as u16) << 8) | $l as u16) [INFO] [stderr] | ^^^^^^^^^ help: try: `u16::from(self.l)` [INFO] [stderr] | [INFO] [stderr] ::: src/core/register.rs:59:9 [INFO] [stderr] | [INFO] [stderr] 59 | combine!(self.h, self.l) [INFO] [stderr] | ------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/core/cpu.rs:778:16 [INFO] [stderr] | [INFO] [stderr] 778 | let carry = (a as i16 - n as i16 - c as i16) < 0; [INFO] [stderr] | ^^^^^^^^ help: try: `i16::from(a)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/core/cpu.rs:778:27 [INFO] [stderr] | [INFO] [stderr] 778 | let carry = (a as i16 - n as i16 - c as i16) < 0; [INFO] [stderr] | ^^^^^^^^ help: try: `i16::from(n)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/core/cpu.rs:778:38 [INFO] [stderr] | [INFO] [stderr] 778 | let carry = (a as i16 - n as i16 - c as i16) < 0; [INFO] [stderr] | ^^^^^^^^ help: try: `i16::from(c)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/core/cpu.rs:779:20 [INFO] [stderr] | [INFO] [stderr] 779 | let half_carry = (a & 0xF) as i16 - (n & 0xF) as i16 - (c as i16) < 0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i16::from(a & 0xF)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/core/cpu.rs:779:39 [INFO] [stderr] | [INFO] [stderr] 779 | let half_carry = (a & 0xF) as i16 - (n & 0xF) as i16 - (c as i16) < 0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i16::from(n & 0xF)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/core/cpu.rs:779:58 [INFO] [stderr] | [INFO] [stderr] 779 | let half_carry = (a & 0xF) as i16 - (n & 0xF) as i16 - (c as i16) < 0; [INFO] [stderr] | ^^^^^^^^^^ help: try: `i16::from(c)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/core/cpu.rs:832:20 [INFO] [stderr] | [INFO] [stderr] 832 | let half_carry = ((n & 0xF) as i16) - 1 < 0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `i16::from(n & 0xF)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/cpu.rs:849:16 [INFO] [stderr] | [INFO] [stderr] 849 | let result = match include_carry { [INFO] [stderr] | ______________________^ [INFO] [stderr] 850 | | true => { [INFO] [stderr] 851 | | (n << 1) | (self.regs.is_flag_set(Flag::Carry) as u8) [INFO] [stderr] 852 | | }, [INFO] [stderr] 853 | | false => n.rotate_left(1), [INFO] [stderr] 854 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 849 | let result = if include_carry { [INFO] [stderr] 850 | (n << 1) | (self.regs.is_flag_set(Flag::Carry) as u8) [INFO] [stderr] 851 | } else { n.rotate_left(1) }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/cpu.rs:864:16 [INFO] [stderr] | [INFO] [stderr] 864 | let result = match include_carry { [INFO] [stderr] | ______________________^ [INFO] [stderr] 865 | | true => { [INFO] [stderr] 866 | | (n >> 1) | ((self.regs.is_flag_set(Flag::Carry) as u8) << 7) [INFO] [stderr] 867 | | }, [INFO] [stderr] 868 | | false => n.rotate_right(1), [INFO] [stderr] 869 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 864 | let result = if include_carry { [INFO] [stderr] 865 | (n >> 1) | ((self.regs.is_flag_set(Flag::Carry) as u8) << 7) [INFO] [stderr] 866 | } else { n.rotate_right(1) }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/cpu.rs:888:16 [INFO] [stderr] | [INFO] [stderr] 888 | let result = match keep_bit7 { [INFO] [stderr] | ______________________^ [INFO] [stderr] 889 | | true => (n >> 1) | (n & 0x80), [INFO] [stderr] 890 | | false => n >> 1, [INFO] [stderr] 891 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if keep_bit7 { (n >> 1) | (n & 0x80) } else { n >> 1 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: casting i8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/core/cpu.rs:959:20 [INFO] [stderr] | [INFO] [stderr] 959 | let signed_val = (n as i8) as i16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i16::from((n as i8))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/core/cpu.rs:970:20 [INFO] [stderr] | [INFO] [stderr] 970 | let signed_val = (n as i8) as i16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i16::from((n as i8))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/core/cpu.rs:988:51 [INFO] [stderr] | [INFO] [stderr] 988 | let result = (self.regs.pc as i16).wrapping_add(source as i16); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i16::from(source)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/helper.rs:81:5 [INFO] [stderr] | [INFO] [stderr] 81 | ((($h as u16) << 8) | $l as u16) [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(high)` [INFO] [stderr] | [INFO] [stderr] ::: src/core/cpu.rs:51:9 [INFO] [stderr] | [INFO] [stderr] 51 | combine!(high, low) [INFO] [stderr] | ------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/helper.rs:81:25 [INFO] [stderr] | [INFO] [stderr] 81 | ((($h as u16) << 8) | $l as u16) [INFO] [stderr] | ^^^^^^^^^ help: try: `u16::from(low)` [INFO] [stderr] | [INFO] [stderr] ::: src/core/cpu.rs:51:9 [INFO] [stderr] | [INFO] [stderr] 51 | combine!(high, low) [INFO] [stderr] | ------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/core/cpu.rs:1012:51 [INFO] [stderr] | [INFO] [stderr] 1012 | let result = (self.regs.pc as i16).wrapping_add(source as i16); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i16::from(source)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/cpu.rs:1077:13 [INFO] [stderr] | [INFO] [stderr] 1077 | let bit = match self.regs.is_flag_set(Flag::Carry) { [INFO] [stderr] | ___________________^ [INFO] [stderr] 1078 | | true => 1, [INFO] [stderr] 1079 | | false => 0, [INFO] [stderr] 1080 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if self.regs.is_flag_set(Flag::Carry) { 1 } else { 0 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: some ranges overlap [INFO] [stderr] --> src/core/cpu.rs:363:4 [INFO] [stderr] | [INFO] [stderr] 363 | 0xC3 => { let nn = self.next_pointer(memory); self.jump(nn); 4 }, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_overlapping_arm)] on by default [INFO] [stderr] note: overlaps with this [INFO] [stderr] --> src/core/cpu.rs:430:4 [INFO] [stderr] | [INFO] [stderr] 430 | 0xC3 => { self.regs.pc = self.next_pointer(memory); 4 }, [INFO] [stderr] | ^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_overlapping_arm [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/cpu.rs:155:27 [INFO] [stderr] | [INFO] [stderr] 155 | let offset = 0xFF00 | self.regs.c as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.regs.c)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/cpu.rs:161:27 [INFO] [stderr] | [INFO] [stderr] 161 | let offset = 0xFF00 | self.regs.c as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.regs.c)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/cpu.rs:167:27 [INFO] [stderr] | [INFO] [stderr] 167 | let offset = 0xFF00 | self.next_byte(memory) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.next_byte(memory))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/cpu.rs:173:27 [INFO] [stderr] | [INFO] [stderr] 173 | let offset = 0xFF00 | self.next_byte(memory) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.next_byte(memory))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: structure field `Vram` should have a snake case name such as `vram` [INFO] [stderr] --> src/core/gpu.rs:84:2 [INFO] [stderr] | [INFO] [stderr] 84 | Vram: Vec, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `Oam` should have a snake case name such as `oam` [INFO] [stderr] --> src/core/gpu.rs:85:2 [INFO] [stderr] | [INFO] [stderr] 85 | Oam: Vec, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `LCDC` should have a snake case name such as `lcdc` [INFO] [stderr] --> src/core/gpu.rs:93:2 [INFO] [stderr] | [INFO] [stderr] 93 | pub LCDC: MemoryRegister, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `STAT` should have a snake case name such as `stat` [INFO] [stderr] --> src/core/gpu.rs:94:2 [INFO] [stderr] | [INFO] [stderr] 94 | pub STAT: MemoryRegister, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `LYC` should have a snake case name such as `lyc` [INFO] [stderr] --> src/core/gpu.rs:95:2 [INFO] [stderr] | [INFO] [stderr] 95 | pub LYC: MemoryRegister, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `LY` should have a snake case name such as `ly` [INFO] [stderr] --> src/core/gpu.rs:96:2 [INFO] [stderr] | [INFO] [stderr] 96 | pub LY: MemoryRegister, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `BGP` should have a snake case name such as `bgp` [INFO] [stderr] --> src/core/gpu.rs:97:2 [INFO] [stderr] | [INFO] [stderr] 97 | pub BGP: MemoryRegister, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `OBP0` should have a snake case name such as `obp0` [INFO] [stderr] --> src/core/gpu.rs:98:2 [INFO] [stderr] | [INFO] [stderr] 98 | pub OBP0: MemoryRegister, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `OBP1` should have a snake case name such as `obp1` [INFO] [stderr] --> src/core/gpu.rs:99:2 [INFO] [stderr] | [INFO] [stderr] 99 | pub OBP1: MemoryRegister, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `SCY` should have a snake case name such as `scy` [INFO] [stderr] --> src/core/gpu.rs:100:2 [INFO] [stderr] | [INFO] [stderr] 100 | pub SCY: MemoryRegister, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `SCX` should have a snake case name such as `scx` [INFO] [stderr] --> src/core/gpu.rs:101:2 [INFO] [stderr] | [INFO] [stderr] 101 | pub SCX: MemoryRegister, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `WY` should have a snake case name such as `wy` [INFO] [stderr] --> src/core/gpu.rs:102:2 [INFO] [stderr] | [INFO] [stderr] 102 | pub WY: MemoryRegister, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `WX` should have a snake case name such as `wx` [INFO] [stderr] --> src/core/gpu.rs:103:2 [INFO] [stderr] | [INFO] [stderr] 103 | pub WX: MemoryRegister, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: Negation by multiplying with -1 [INFO] [stderr] --> src/core/gpu.rs:197:18 [INFO] [stderr] | [INFO] [stderr] 197 | let x_flip = (x - 7) * -1; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::neg_multiply)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stderr] [INFO] [stderr] warning: some ranges overlap [INFO] [stderr] --> src/core/gpu.rs:253:5 [INFO] [stderr] | [INFO] [stderr] 253 | 0 ... OAM_PERIOD => { // OAM [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: overlaps with this [INFO] [stderr] --> src/core/gpu.rs:259:5 [INFO] [stderr] | [INFO] [stderr] 259 | OAM_PERIOD ... TRANSFER_PERIOD => { // Transfer [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_overlapping_arm [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/gpu.rs:325:27 [INFO] [stderr] | [INFO] [stderr] 325 | let tile_map_location = match self.LCDC.is_set(Bit::Bit3) { [INFO] [stderr] | _________________________________^ [INFO] [stderr] 326 | | true => 0x9C00, [INFO] [stderr] 327 | | false => 0x9800, [INFO] [stderr] 328 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if self.LCDC.is_set(Bit::Bit3) { 0x9C00 } else { 0x9800 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/gpu.rs:330:28 [INFO] [stderr] | [INFO] [stderr] 330 | let tile_data_location = match self.LCDC.is_set(Bit::Bit4) { [INFO] [stderr] | __________________________________^ [INFO] [stderr] 331 | | false => 0x9000, [INFO] [stderr] 332 | | true => 0x8000, [INFO] [stderr] 333 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if self.LCDC.is_set(Bit::Bit4) { 0x8000 } else { 0x9000 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `bg_priority` [INFO] [stderr] --> src/core/gpu.rs:340:12 [INFO] [stderr] | [INFO] [stderr] 340 | for i in 0..FRAME_WIDTH { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 340 | for (i, ) in bg_priority.iter_mut().enumerate().take(FRAME_WIDTH) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/gpu.rs:343:26 [INFO] [stderr] | [INFO] [stderr] 343 | let tile_map_index = (row as u16 * 32) + column as u16; [INFO] [stderr] | ^^^^^^^^^^ help: try: `u16::from(row)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/gpu.rs:343:45 [INFO] [stderr] | [INFO] [stderr] 343 | let tile_map_index = (row as u16 * 32) + column as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(column)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/gpu.rs:347:24 [INFO] [stderr] | [INFO] [stderr] 347 | let vram_location = match self.LCDC.is_set(Bit::Bit4) { [INFO] [stderr] | _________________________________^ [INFO] [stderr] 348 | | false => { [INFO] [stderr] 349 | | let adjusted = ((tile_pattern as i8) as i16) * 16; [INFO] [stderr] 350 | | let path = (tile_data_location as i16) + adjusted; [INFO] [stderr] ... | [INFO] [stderr] 355 | | }, // $8800-97FF (unsigned) [INFO] [stderr] 356 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 347 | let vram_location = if self.LCDC.is_set(Bit::Bit4) { [INFO] [stderr] 348 | (tile_pattern as u16 * 16) + tile_data_location [INFO] [stderr] 349 | } else { [INFO] [stderr] 350 | let adjusted = ((tile_pattern as i8) as i16) * 16; [INFO] [stderr] 351 | let path = (tile_data_location as i16) + adjusted; [INFO] [stderr] 352 | path as u16 [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting i8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/core/gpu.rs:349:21 [INFO] [stderr] | [INFO] [stderr] 349 | let adjusted = ((tile_pattern as i8) as i16) * 16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i16::from((tile_pattern as i8))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/gpu.rs:354:7 [INFO] [stderr] | [INFO] [stderr] 354 | (tile_pattern as u16 * 16) + tile_data_location [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(tile_pattern)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/gpu.rs:385:27 [INFO] [stderr] | [INFO] [stderr] 385 | let tile_map_location = match self.LCDC.is_set(Bit::Bit6) { [INFO] [stderr] | _________________________________^ [INFO] [stderr] 386 | | true => 0x9C00, [INFO] [stderr] 387 | | false => 0x9800 [INFO] [stderr] 388 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if self.LCDC.is_set(Bit::Bit6) { 0x9C00 } else { 0x9800 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/gpu.rs:390:28 [INFO] [stderr] | [INFO] [stderr] 390 | let tile_data_location = match self.LCDC.is_set(Bit::Bit4) { [INFO] [stderr] | __________________________________^ [INFO] [stderr] 391 | | false => 0x9000, [INFO] [stderr] 392 | | true => 0x8000, [INFO] [stderr] 393 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if self.LCDC.is_set(Bit::Bit4) { 0x8000 } else { 0x9000 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/core/gpu.rs:401:27 [INFO] [stderr] | [INFO] [stderr] 401 | let debug_line_color = ((y - window_y) as f32 * 1.77) as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(y - window_y)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/core/gpu.rs:402:30 [INFO] [stderr] | [INFO] [stderr] 402 | let mut debug_color: u32 = (debug_line_color as u32) << 16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(debug_line_color)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/core/gpu.rs:404:18 [INFO] [stderr] | [INFO] [stderr] 404 | debug_color |= (debug_line_color as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(debug_line_color)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `bg_priority` [INFO] [stderr] --> src/core/gpu.rs:406:12 [INFO] [stderr] | [INFO] [stderr] 406 | for i in 0..FRAME_WIDTH { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 406 | for (i, ) in bg_priority.iter_mut().enumerate().take(FRAME_WIDTH) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/gpu.rs:409:26 [INFO] [stderr] | [INFO] [stderr] 409 | let tile_map_index = (row as u16 * 32) + column as u16; [INFO] [stderr] | ^^^^^^^^^^ help: try: `u16::from(row)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/gpu.rs:409:45 [INFO] [stderr] | [INFO] [stderr] 409 | let tile_map_index = (row as u16 * 32) + column as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(column)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/gpu.rs:413:24 [INFO] [stderr] | [INFO] [stderr] 413 | let vram_location = match self.LCDC.is_set(Bit::Bit4) { [INFO] [stderr] | _________________________________^ [INFO] [stderr] 414 | | false => { [INFO] [stderr] 415 | | let adjusted = ((tile_pattern as i8) as i16) * 16; [INFO] [stderr] 416 | | let path = (tile_data_location as i16) + adjusted; [INFO] [stderr] ... | [INFO] [stderr] 421 | | }, // $8800-97FF (unsigned) [INFO] [stderr] 422 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 413 | let vram_location = if self.LCDC.is_set(Bit::Bit4) { [INFO] [stderr] 414 | (tile_pattern as u16 * 16) + tile_data_location [INFO] [stderr] 415 | } else { [INFO] [stderr] 416 | let adjusted = ((tile_pattern as i8) as i16) * 16; [INFO] [stderr] 417 | let path = (tile_data_location as i16) + adjusted; [INFO] [stderr] 418 | path as u16 [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting i8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/core/gpu.rs:415:21 [INFO] [stderr] | [INFO] [stderr] 415 | let adjusted = ((tile_pattern as i8) as i16) * 16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i16::from((tile_pattern as i8))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/gpu.rs:420:7 [INFO] [stderr] | [INFO] [stderr] 420 | (tile_pattern as u16 * 16) + tile_data_location [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(tile_pattern)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/gpu.rs:447:22 [INFO] [stderr] | [INFO] [stderr] 447 | let sprite_y_max = match tall_sprite_mode { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 448 | | true => 15, // 0-15 y pixels for 8x16 sprites [INFO] [stderr] 449 | | false => 7 // 0-7 y pixels for 8x8 sprites [INFO] [stderr] 450 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if tall_sprite_mode { 15 } else { 7 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/core/gpu.rs:455:4 [INFO] [stderr] | [INFO] [stderr] 455 | scanline_y as i32 >= sprite.y_pos && scanline_y as i32 <= sprite.y_pos + sprite_y_max as i32 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i32::from(scanline_y)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/core/gpu.rs:455:41 [INFO] [stderr] | [INFO] [stderr] 455 | scanline_y as i32 >= sprite.y_pos && scanline_y as i32 <= sprite.y_pos + sprite_y_max as i32 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i32::from(scanline_y)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/gpu.rs:465:19 [INFO] [stderr] | [INFO] [stderr] 465 | let lookup_y = match sprite.y_flip { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 466 | | true => { ((pixel_y as i8 - 7) * -1) as u8 }, [INFO] [stderr] 467 | | false => pixel_y [INFO] [stderr] 468 | | }; [INFO] [stderr] | |_____________^ help: consider using an if/else expression: `if sprite.y_flip { ((pixel_y as i8 - 7) * -1) as u8 } else { pixel_y }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: Negation by multiplying with -1 [INFO] [stderr] --> src/core/gpu.rs:466:16 [INFO] [stderr] | [INFO] [stderr] 466 | true => { ((pixel_y as i8 - 7) * -1) as u8 }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/gpu.rs:470:18 [INFO] [stderr] | [INFO] [stderr] 470 | let tile_id = match tall_sprite_mode { [INFO] [stderr] | ___________________________^ [INFO] [stderr] 471 | | true => { [INFO] [stderr] 472 | | // Are we displaying the top half or bottom half? [INFO] [stderr] 473 | | if (scanline_y.wrapping_sub(sprite_y) < 8) { // top half [INFO] [stderr] ... | [INFO] [stderr] 481 | | false => sprite.tile_id, [INFO] [stderr] 482 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 470 | let tile_id = if tall_sprite_mode { [INFO] [stderr] 471 | // Are we displaying the top half or bottom half? [INFO] [stderr] 472 | if (scanline_y.wrapping_sub(sprite_y) < 8) { // top half [INFO] [stderr] 473 | if sprite.y_flip { sprite.tile_id | 0x01 } [INFO] [stderr] 474 | else { sprite.tile_id & 0xFE } [INFO] [stderr] 475 | } else { // bottom half [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/gpu.rs:489:18 [INFO] [stderr] | [INFO] [stderr] 489 | let palette = match sprite.use_palette_one { [INFO] [stderr] | ___________________________^ [INFO] [stderr] 490 | | false => self.OBP0.get(), [INFO] [stderr] 491 | | true => self.OBP1.get(), [INFO] [stderr] 492 | | }; [INFO] [stderr] | |_____________^ help: consider using an if/else expression: `if sprite.use_palette_one { self.OBP1.get() } else { self.OBP0.get() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/core/gpu.rs:495:34 [INFO] [stderr] | [INFO] [stderr] 495 | let adjusted_x = (sprite_x + pixel_x as i32) as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i32::from(pixel_x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/gpu.rs:501:20 [INFO] [stderr] | [INFO] [stderr] 501 | let lookup_x = match sprite.x_flip { [INFO] [stderr] | ________________________________^ [INFO] [stderr] 502 | | true => ((pixel_x as i8 - 7) * -1) as u8, [INFO] [stderr] 503 | | false => pixel_x [INFO] [stderr] 504 | | }; [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if sprite.x_flip { ((pixel_x as i8 - 7) * -1) as u8 } else { pixel_x }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: Negation by multiplying with -1 [INFO] [stderr] --> src/core/gpu.rs:502:15 [INFO] [stderr] | [INFO] [stderr] 502 | true => ((pixel_x as i8 - 7) * -1) as u8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/core/gpu.rs:515:20 [INFO] [stderr] | [INFO] [stderr] 515 | let offset_x = adjusted_x as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i32::from(adjusted_x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/core/gpu.rs:516:20 [INFO] [stderr] | [INFO] [stderr] 516 | let offset_y = scanline_y as i32 * FRAME_WIDTH as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i32::from(scanline_y)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/core/gpu.rs:641:24 [INFO] [stderr] | [INFO] [stderr] 641 | 0 => sprite.y_pos = data as i32 - 16, [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i32::from(data)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/core/gpu.rs:642:24 [INFO] [stderr] | [INFO] [stderr] 642 | 1 => sprite.x_pos = data as i32 - 8, [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i32::from(data)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/helper.rs:81:5 [INFO] [stderr] | [INFO] [stderr] 81 | ((($h as u16) << 8) | $l as u16) [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(high)` [INFO] [stderr] | [INFO] [stderr] ::: src/core/cpu.rs:756:9 [INFO] [stderr] | [INFO] [stderr] 756 | combine!(high, low) [INFO] [stderr] | ------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/helper.rs:81:25 [INFO] [stderr] | [INFO] [stderr] 81 | ((($h as u16) << 8) | $l as u16) [INFO] [stderr] | ^^^^^^^^^ help: try: `u16::from(low)` [INFO] [stderr] | [INFO] [stderr] ::: src/core/cpu.rs:756:9 [INFO] [stderr] | [INFO] [stderr] 756 | combine!(high, low) [INFO] [stderr] | ------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/core/cpu.rs:765:16 [INFO] [stderr] | [INFO] [stderr] 765 | let carry = (a as i16 + n as i16 + c as i16) > 0xFF; [INFO] [stderr] | ^^^^^^^^ help: try: `i16::from(a)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/core/cpu.rs:765:27 [INFO] [stderr] | [INFO] [stderr] 765 | let carry = (a as i16 + n as i16 + c as i16) > 0xFF; [INFO] [stderr] | ^^^^^^^^ help: try: `i16::from(n)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/core/cpu.rs:765:38 [INFO] [stderr] | [INFO] [stderr] 765 | let carry = (a as i16 + n as i16 + c as i16) > 0xFF; [INFO] [stderr] | ^^^^^^^^ help: try: `i16::from(c)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/core/cpu.rs:778:16 [INFO] [stderr] | [INFO] [stderr] 778 | let carry = (a as i16 - n as i16 - c as i16) < 0; [INFO] [stderr] | ^^^^^^^^ help: try: `i16::from(a)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/core/cpu.rs:778:27 [INFO] [stderr] | [INFO] [stderr] 778 | let carry = (a as i16 - n as i16 - c as i16) < 0; [INFO] [stderr] | ^^^^^^^^ help: try: `i16::from(n)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/core/cpu.rs:778:38 [INFO] [stderr] | [INFO] [stderr] 778 | let carry = (a as i16 - n as i16 - c as i16) < 0; [INFO] [stderr] | ^^^^^^^^ help: try: `i16::from(c)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/core/cpu.rs:779:20 [INFO] [stderr] | [INFO] [stderr] 779 | let half_carry = (a & 0xF) as i16 - (n & 0xF) as i16 - (c as i16) < 0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i16::from(a & 0xF)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/core/cpu.rs:779:39 [INFO] [stderr] | [INFO] [stderr] 779 | let half_carry = (a & 0xF) as i16 - (n & 0xF) as i16 - (c as i16) < 0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i16::from(n & 0xF)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/core/cpu.rs:779:58 [INFO] [stderr] | [INFO] [stderr] 779 | let half_carry = (a & 0xF) as i16 - (n & 0xF) as i16 - (c as i16) < 0; [INFO] [stderr] | ^^^^^^^^^^ help: try: `i16::from(c)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/core/cpu.rs:832:20 [INFO] [stderr] | [INFO] [stderr] 832 | let half_carry = ((n & 0xF) as i16) - 1 < 0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `i16::from(n & 0xF)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/cpu.rs:849:16 [INFO] [stderr] | [INFO] [stderr] 849 | let result = match include_carry { [INFO] [stderr] | ______________________^ [INFO] [stderr] 850 | | true => { [INFO] [stderr] 851 | | (n << 1) | (self.regs.is_flag_set(Flag::Carry) as u8) [INFO] [stderr] 852 | | }, [INFO] [stderr] 853 | | false => n.rotate_left(1), [INFO] [stderr] 854 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 849 | let result = if include_carry { [INFO] [stderr] 850 | (n << 1) | (self.regs.is_flag_set(Flag::Carry) as u8) [INFO] [stderr] 851 | } else { n.rotate_left(1) }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/cpu.rs:864:16 [INFO] [stderr] | [INFO] [stderr] 864 | let result = match include_carry { [INFO] [stderr] | ______________________^ [INFO] [stderr] 865 | | true => { [INFO] [stderr] 866 | | (n >> 1) | ((self.regs.is_flag_set(Flag::Carry) as u8) << 7) [INFO] [stderr] 867 | | }, [INFO] [stderr] 868 | | false => n.rotate_right(1), [INFO] [stderr] 869 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 864 | let result = if include_carry { [INFO] [stderr] 865 | (n >> 1) | ((self.regs.is_flag_set(Flag::Carry) as u8) << 7) [INFO] [stderr] 866 | } else { n.rotate_right(1) }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/core/mbc/mbc1.rs:50:35 [INFO] [stderr] | [INFO] [stderr] 50 | let offset = (0x4000 as u32 * self.rom_bank as u32) + index as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.rom_bank)` [INFO] [stderr] | [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/cpu.rs:888:16 [INFO] [stderr] | [INFO] [stderr] 888 | let result = match keep_bit7 { [INFO] [stderr] | ______________________^ [INFO] [stderr] 889 | | true => (n >> 1) | (n & 0x80), [INFO] [stderr] 890 | | false => n >> 1, [INFO] [stderr] 891 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if keep_bit7 { (n >> 1) | (n & 0x80) } else { n >> 1 }` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/core/mbc/mbc1.rs:50:59 [INFO] [stderr] | [INFO] [stderr] 50 | let offset = (0x4000 as u32 * self.rom_bank as u32) + index as u32; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(index)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/core/mbc/mbc1.rs:56:35 [INFO] [stderr] | [INFO] [stderr] 56 | let offset = (0x2000 as u32 * self.ram_bank as u32) + index as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.ram_bank)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/core/mbc/mbc1.rs:56:59 [INFO] [stderr] | [INFO] [stderr] 56 | let offset = (0x2000 as u32 * self.ram_bank as u32) + index as u32; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(index)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/core/mbc/mbc1.rs:86:7 [INFO] [stderr] | [INFO] [stderr] 86 | self.rom_bank = self.rom_bank | (bank_id << 5); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.rom_bank |= (bank_id << 5)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/core/mbc/mbc1.rs:106:35 [INFO] [stderr] | [INFO] [stderr] 106 | let offset = (0x2000 as u32 * self.ram_bank as u32) + index as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.ram_bank)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/core/mbc/mbc1.rs:106:59 [INFO] [stderr] | [INFO] [stderr] 106 | let offset = (0x2000 as u32 * self.ram_bank as u32) + index as u32; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(index)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/core/cpu.rs:959:20 [INFO] [stderr] | [INFO] [stderr] 959 | let signed_val = (n as i8) as i16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i16::from((n as i8))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/core/cpu.rs:970:20 [INFO] [stderr] | [INFO] [stderr] 970 | let signed_val = (n as i8) as i16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i16::from((n as i8))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/core/cpu.rs:988:51 [INFO] [stderr] | [INFO] [stderr] 988 | let result = (self.regs.pc as i16).wrapping_add(source as i16); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i16::from(source)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/core/cpu.rs:1012:51 [INFO] [stderr] | [INFO] [stderr] 1012 | let result = (self.regs.pc as i16).wrapping_add(source as i16); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i16::from(source)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/cpu.rs:1077:13 [INFO] [stderr] | [INFO] [stderr] 1077 | let bit = match self.regs.is_flag_set(Flag::Carry) { [INFO] [stderr] | ___________________^ [INFO] [stderr] 1078 | | true => 1, [INFO] [stderr] 1079 | | false => 0, [INFO] [stderr] 1080 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if self.regs.is_flag_set(Flag::Carry) { 1 } else { 0 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/core/mbc/mod.rs:7:24 [INFO] [stderr] | [INFO] [stderr] 7 | fn read(&self, bytes: &Vec, address: u16) -> u8; [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/joypad.rs:37:9 [INFO] [stderr] | [INFO] [stderr] 37 | / match is_pressed { [INFO] [stderr] 38 | | true => { [INFO] [stderr] 39 | | self.button_state = self.button_state | input; [INFO] [stderr] 40 | | interrupt.request_interrupt(InterruptFlag::Joypad); [INFO] [stderr] 41 | | }, [INFO] [stderr] 42 | | false => { self.button_state = self.button_state & !input; }, [INFO] [stderr] 43 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 37 | if is_pressed { [INFO] [stderr] 38 | self.button_state = self.button_state | input; [INFO] [stderr] 39 | interrupt.request_interrupt(InterruptFlag::Joypad); [INFO] [stderr] 40 | } else { self.button_state = self.button_state & !input; } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/core/joypad.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | self.button_state = self.button_state | input; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.button_state |= input` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/core/joypad.rs:42:24 [INFO] [stderr] | [INFO] [stderr] 42 | false => { self.button_state = self.button_state & !input; }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.button_state &= !input` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/joypad.rs:47:9 [INFO] [stderr] | [INFO] [stderr] 47 | / match is_pressed { [INFO] [stderr] 48 | | true => { [INFO] [stderr] 49 | | self.directional_state = self.directional_state | input; [INFO] [stderr] 50 | | interrupt.request_interrupt(InterruptFlag::Joypad); [INFO] [stderr] 51 | | }, [INFO] [stderr] 52 | | false => { self.directional_state = self.directional_state & !input; }, [INFO] [stderr] 53 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 47 | if is_pressed { [INFO] [stderr] 48 | self.directional_state = self.directional_state | input; [INFO] [stderr] 49 | interrupt.request_interrupt(InterruptFlag::Joypad); [INFO] [stderr] 50 | } else { self.directional_state = self.directional_state & !input; } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/core/joypad.rs:49:17 [INFO] [stderr] | [INFO] [stderr] 49 | self.directional_state = self.directional_state | input; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.directional_state |= input` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/core/joypad.rs:52:24 [INFO] [stderr] | [INFO] [stderr] 52 | false => { self.directional_state = self.directional_state & !input; }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.directional_state &= !input` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: structure field `Vram` should have a snake case name such as `vram` [INFO] [stderr] --> src/core/gpu.rs:84:2 [INFO] [stderr] | [INFO] [stderr] 84 | Vram: Vec, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `Oam` should have a snake case name such as `oam` [INFO] [stderr] --> src/core/gpu.rs:85:2 [INFO] [stderr] | [INFO] [stderr] 85 | Oam: Vec, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `LCDC` should have a snake case name such as `lcdc` [INFO] [stderr] --> src/core/gpu.rs:93:2 [INFO] [stderr] | [INFO] [stderr] 93 | pub LCDC: MemoryRegister, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `STAT` should have a snake case name such as `stat` [INFO] [stderr] --> src/core/gpu.rs:94:2 [INFO] [stderr] | [INFO] [stderr] 94 | pub STAT: MemoryRegister, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `LYC` should have a snake case name such as `lyc` [INFO] [stderr] --> src/core/gpu.rs:95:2 [INFO] [stderr] | [INFO] [stderr] 95 | pub LYC: MemoryRegister, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `LY` should have a snake case name such as `ly` [INFO] [stderr] --> src/core/gpu.rs:96:2 [INFO] [stderr] | [INFO] [stderr] 96 | pub LY: MemoryRegister, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `BGP` should have a snake case name such as `bgp` [INFO] [stderr] --> src/core/gpu.rs:97:2 [INFO] [stderr] | [INFO] [stderr] 97 | pub BGP: MemoryRegister, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `OBP0` should have a snake case name such as `obp0` [INFO] [stderr] --> src/core/gpu.rs:98:2 [INFO] [stderr] | [INFO] [stderr] 98 | pub OBP0: MemoryRegister, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `OBP1` should have a snake case name such as `obp1` [INFO] [stderr] --> src/core/gpu.rs:99:2 [INFO] [stderr] | [INFO] [stderr] 99 | pub OBP1: MemoryRegister, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `SCY` should have a snake case name such as `scy` [INFO] [stderr] --> src/core/gpu.rs:100:2 [INFO] [stderr] | [INFO] [stderr] 100 | pub SCY: MemoryRegister, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `SCX` should have a snake case name such as `scx` [INFO] [stderr] --> src/core/gpu.rs:101:2 [INFO] [stderr] | [INFO] [stderr] 101 | pub SCX: MemoryRegister, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `WY` should have a snake case name such as `wy` [INFO] [stderr] --> src/core/gpu.rs:102:2 [INFO] [stderr] | [INFO] [stderr] 102 | pub WY: MemoryRegister, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `WX` should have a snake case name such as `wx` [INFO] [stderr] --> src/core/gpu.rs:103:2 [INFO] [stderr] | [INFO] [stderr] 103 | pub WX: MemoryRegister, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: Negation by multiplying with -1 [INFO] [stderr] --> src/core/gpu.rs:197:18 [INFO] [stderr] | [INFO] [stderr] 197 | let x_flip = (x - 7) * -1; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::neg_multiply)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stderr] [INFO] [stderr] warning: some ranges overlap [INFO] [stderr] --> src/core/gpu.rs:253:5 [INFO] [stderr] | [INFO] [stderr] 253 | 0 ... OAM_PERIOD => { // OAM [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: overlaps with this [INFO] [stderr] --> src/core/gpu.rs:259:5 [INFO] [stderr] | [INFO] [stderr] 259 | OAM_PERIOD ... TRANSFER_PERIOD => { // Transfer [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_overlapping_arm [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/dma.rs:27:23 [INFO] [stderr] | [INFO] [stderr] 27 | self.source = (source as u16) * 0x100; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(source)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/dma.rs:40:48 [INFO] [stderr] | [INFO] [stderr] 40 | self.source = self.source.wrapping_add(bytes as u16); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(bytes)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/dma.rs:41:58 [INFO] [stderr] | [INFO] [stderr] 41 | self.destination = self.destination.wrapping_add(bytes as u16); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(bytes)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: structure field `DIV` should have a snake case name such as `div` [INFO] [stderr] --> src/core/timer.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | DIV: MemoryRegister, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `TIMA` should have a snake case name such as `tima` [INFO] [stderr] --> src/core/timer.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | TIMA: MemoryRegister, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `TMA` should have a snake case name such as `tma` [INFO] [stderr] --> src/core/timer.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | TMA: MemoryRegister, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `TAC` should have a snake case name such as `tac` [INFO] [stderr] --> src/core/timer.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | TAC: MemoryRegister, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/gpu.rs:325:27 [INFO] [stderr] | [INFO] [stderr] 325 | let tile_map_location = match self.LCDC.is_set(Bit::Bit3) { [INFO] [stderr] | _________________________________^ [INFO] [stderr] 326 | | true => 0x9C00, [INFO] [stderr] 327 | | false => 0x9800, [INFO] [stderr] 328 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if self.LCDC.is_set(Bit::Bit3) { 0x9C00 } else { 0x9800 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/gpu.rs:330:28 [INFO] [stderr] | [INFO] [stderr] 330 | let tile_data_location = match self.LCDC.is_set(Bit::Bit4) { [INFO] [stderr] | __________________________________^ [INFO] [stderr] 331 | | false => 0x9000, [INFO] [stderr] 332 | | true => 0x8000, [INFO] [stderr] 333 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if self.LCDC.is_set(Bit::Bit4) { 0x8000 } else { 0x9000 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `bg_priority` [INFO] [stderr] --> src/core/gpu.rs:340:12 [INFO] [stderr] | [INFO] [stderr] 340 | for i in 0..FRAME_WIDTH { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 340 | for (i, ) in bg_priority.iter_mut().enumerate().take(FRAME_WIDTH) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/gpu.rs:343:26 [INFO] [stderr] | [INFO] [stderr] 343 | let tile_map_index = (row as u16 * 32) + column as u16; [INFO] [stderr] | ^^^^^^^^^^ help: try: `u16::from(row)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/gpu.rs:343:45 [INFO] [stderr] | [INFO] [stderr] 343 | let tile_map_index = (row as u16 * 32) + column as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(column)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/gpu.rs:347:24 [INFO] [stderr] | [INFO] [stderr] 347 | let vram_location = match self.LCDC.is_set(Bit::Bit4) { [INFO] [stderr] | _________________________________^ [INFO] [stderr] 348 | | false => { [INFO] [stderr] 349 | | let adjusted = ((tile_pattern as i8) as i16) * 16; [INFO] [stderr] 350 | | let path = (tile_data_location as i16) + adjusted; [INFO] [stderr] ... | [INFO] [stderr] 355 | | }, // $8800-97FF (unsigned) [INFO] [stderr] 356 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 347 | let vram_location = if self.LCDC.is_set(Bit::Bit4) { [INFO] [stderr] 348 | (tile_pattern as u16 * 16) + tile_data_location [INFO] [stderr] 349 | } else { [INFO] [stderr] 350 | let adjusted = ((tile_pattern as i8) as i16) * 16; [INFO] [stderr] 351 | let path = (tile_data_location as i16) + adjusted; [INFO] [stderr] 352 | path as u16 [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting i8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/core/gpu.rs:349:21 [INFO] [stderr] | [INFO] [stderr] 349 | let adjusted = ((tile_pattern as i8) as i16) * 16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i16::from((tile_pattern as i8))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/gpu.rs:354:7 [INFO] [stderr] | [INFO] [stderr] 354 | (tile_pattern as u16 * 16) + tile_data_location [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(tile_pattern)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/emu/emulator.rs:71:7 [INFO] [stderr] | [INFO] [stderr] 71 | if !(elapsed_time > frame_time) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `elapsed_time <= frame_time` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/gpu.rs:385:27 [INFO] [stderr] | [INFO] [stderr] 385 | let tile_map_location = match self.LCDC.is_set(Bit::Bit6) { [INFO] [stderr] | _________________________________^ [INFO] [stderr] 386 | | true => 0x9C00, [INFO] [stderr] 387 | | false => 0x9800 [INFO] [stderr] 388 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if self.LCDC.is_set(Bit::Bit6) { 0x9C00 } else { 0x9800 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/gpu.rs:390:28 [INFO] [stderr] | [INFO] [stderr] 390 | let tile_data_location = match self.LCDC.is_set(Bit::Bit4) { [INFO] [stderr] | __________________________________^ [INFO] [stderr] 391 | | false => 0x9000, [INFO] [stderr] 392 | | true => 0x8000, [INFO] [stderr] 393 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if self.LCDC.is_set(Bit::Bit4) { 0x8000 } else { 0x9000 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/core/gpu.rs:401:27 [INFO] [stderr] | [INFO] [stderr] 401 | let debug_line_color = ((y - window_y) as f32 * 1.77) as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(y - window_y)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/core/gpu.rs:402:30 [INFO] [stderr] | [INFO] [stderr] 402 | let mut debug_color: u32 = (debug_line_color as u32) << 16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(debug_line_color)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/core/gpu.rs:404:18 [INFO] [stderr] | [INFO] [stderr] 404 | debug_color |= (debug_line_color as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(debug_line_color)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `bg_priority` [INFO] [stderr] --> src/core/gpu.rs:406:12 [INFO] [stderr] | [INFO] [stderr] 406 | for i in 0..FRAME_WIDTH { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 406 | for (i, ) in bg_priority.iter_mut().enumerate().take(FRAME_WIDTH) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/gpu.rs:409:26 [INFO] [stderr] | [INFO] [stderr] 409 | let tile_map_index = (row as u16 * 32) + column as u16; [INFO] [stderr] | ^^^^^^^^^^ help: try: `u16::from(row)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/gpu.rs:409:45 [INFO] [stderr] | [INFO] [stderr] 409 | let tile_map_index = (row as u16 * 32) + column as u16; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(column)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/gpu.rs:413:24 [INFO] [stderr] | [INFO] [stderr] 413 | let vram_location = match self.LCDC.is_set(Bit::Bit4) { [INFO] [stderr] | _________________________________^ [INFO] [stderr] 414 | | false => { [INFO] [stderr] 415 | | let adjusted = ((tile_pattern as i8) as i16) * 16; [INFO] [stderr] 416 | | let path = (tile_data_location as i16) + adjusted; [INFO] [stderr] ... | [INFO] [stderr] 421 | | }, // $8800-97FF (unsigned) [INFO] [stderr] 422 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 413 | let vram_location = if self.LCDC.is_set(Bit::Bit4) { [INFO] [stderr] 414 | (tile_pattern as u16 * 16) + tile_data_location [INFO] [stderr] 415 | } else { [INFO] [stderr] 416 | let adjusted = ((tile_pattern as i8) as i16) * 16; [INFO] [stderr] 417 | let path = (tile_data_location as i16) + adjusted; [INFO] [stderr] 418 | path as u16 [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting i8 to i16 may become silently lossy if types change [INFO] [stderr] --> src/core/gpu.rs:415:21 [INFO] [stderr] | [INFO] [stderr] 415 | let adjusted = ((tile_pattern as i8) as i16) * 16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i16::from((tile_pattern as i8))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/gpu.rs:420:7 [INFO] [stderr] | [INFO] [stderr] 420 | (tile_pattern as u16 * 16) + tile_data_location [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(tile_pattern)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/gpu.rs:447:22 [INFO] [stderr] | [INFO] [stderr] 447 | let sprite_y_max = match tall_sprite_mode { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 448 | | true => 15, // 0-15 y pixels for 8x16 sprites [INFO] [stderr] 449 | | false => 7 // 0-7 y pixels for 8x8 sprites [INFO] [stderr] 450 | | }; [INFO] [stderr] | |_________^ help: consider using an if/else expression: `if tall_sprite_mode { 15 } else { 7 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/core/gpu.rs:455:4 [INFO] [stderr] | [INFO] [stderr] 455 | scanline_y as i32 >= sprite.y_pos && scanline_y as i32 <= sprite.y_pos + sprite_y_max as i32 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i32::from(scanline_y)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/core/gpu.rs:455:41 [INFO] [stderr] | [INFO] [stderr] 455 | scanline_y as i32 >= sprite.y_pos && scanline_y as i32 <= sprite.y_pos + sprite_y_max as i32 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i32::from(scanline_y)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/gpu.rs:465:19 [INFO] [stderr] | [INFO] [stderr] 465 | let lookup_y = match sprite.y_flip { [INFO] [stderr] | ____________________________^ [INFO] [stderr] 466 | | true => { ((pixel_y as i8 - 7) * -1) as u8 }, [INFO] [stderr] 467 | | false => pixel_y [INFO] [stderr] 468 | | }; [INFO] [stderr] | |_____________^ help: consider using an if/else expression: `if sprite.y_flip { ((pixel_y as i8 - 7) * -1) as u8 } else { pixel_y }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: Negation by multiplying with -1 [INFO] [stderr] --> src/core/gpu.rs:466:16 [INFO] [stderr] | [INFO] [stderr] 466 | true => { ((pixel_y as i8 - 7) * -1) as u8 }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/gpu.rs:470:18 [INFO] [stderr] | [INFO] [stderr] 470 | let tile_id = match tall_sprite_mode { [INFO] [stderr] | ___________________________^ [INFO] [stderr] 471 | | true => { [INFO] [stderr] 472 | | // Are we displaying the top half or bottom half? [INFO] [stderr] 473 | | if (scanline_y.wrapping_sub(sprite_y) < 8) { // top half [INFO] [stderr] ... | [INFO] [stderr] 481 | | false => sprite.tile_id, [INFO] [stderr] 482 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 470 | let tile_id = if tall_sprite_mode { [INFO] [stderr] 471 | // Are we displaying the top half or bottom half? [INFO] [stderr] 472 | if (scanline_y.wrapping_sub(sprite_y) < 8) { // top half [INFO] [stderr] 473 | if sprite.y_flip { sprite.tile_id | 0x01 } [INFO] [stderr] 474 | else { sprite.tile_id & 0xFE } [INFO] [stderr] 475 | } else { // bottom half [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/gpu.rs:489:18 [INFO] [stderr] | [INFO] [stderr] 489 | let palette = match sprite.use_palette_one { [INFO] [stderr] | ___________________________^ [INFO] [stderr] 490 | | false => self.OBP0.get(), [INFO] [stderr] 491 | | true => self.OBP1.get(), [INFO] [stderr] 492 | | }; [INFO] [stderr] | |_____________^ help: consider using an if/else expression: `if sprite.use_palette_one { self.OBP1.get() } else { self.OBP0.get() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/core/gpu.rs:495:34 [INFO] [stderr] | [INFO] [stderr] 495 | let adjusted_x = (sprite_x + pixel_x as i32) as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i32::from(pixel_x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/gpu.rs:501:20 [INFO] [stderr] | [INFO] [stderr] 501 | let lookup_x = match sprite.x_flip { [INFO] [stderr] | ________________________________^ [INFO] [stderr] 502 | | true => ((pixel_x as i8 - 7) * -1) as u8, [INFO] [stderr] 503 | | false => pixel_x [INFO] [stderr] 504 | | }; [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if sprite.x_flip { ((pixel_x as i8 - 7) * -1) as u8 } else { pixel_x }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: Negation by multiplying with -1 [INFO] [stderr] --> src/core/gpu.rs:502:15 [INFO] [stderr] | [INFO] [stderr] 502 | true => ((pixel_x as i8 - 7) * -1) as u8, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/core/gpu.rs:515:20 [INFO] [stderr] | [INFO] [stderr] 515 | let offset_x = adjusted_x as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i32::from(adjusted_x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/core/gpu.rs:516:20 [INFO] [stderr] | [INFO] [stderr] 516 | let offset_y = scanline_y as i32 * FRAME_WIDTH as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i32::from(scanline_y)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/core/gpu.rs:641:24 [INFO] [stderr] | [INFO] [stderr] 641 | 0 => sprite.y_pos = data as i32 - 16, [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i32::from(data)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/core/gpu.rs:642:24 [INFO] [stderr] | [INFO] [stderr] 642 | 1 => sprite.x_pos = data as i32 - 8, [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i32::from(data)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/core/mbc/mbc1.rs:50:35 [INFO] [stderr] | [INFO] [stderr] 50 | let offset = (0x4000 as u32 * self.rom_bank as u32) + index as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.rom_bank)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/core/mbc/mbc1.rs:50:59 [INFO] [stderr] | [INFO] [stderr] 50 | let offset = (0x4000 as u32 * self.rom_bank as u32) + index as u32; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(index)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/core/mbc/mbc1.rs:56:35 [INFO] [stderr] | [INFO] [stderr] 56 | let offset = (0x2000 as u32 * self.ram_bank as u32) + index as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.ram_bank)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/core/mbc/mbc1.rs:56:59 [INFO] [stderr] | [INFO] [stderr] 56 | let offset = (0x2000 as u32 * self.ram_bank as u32) + index as u32; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(index)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/core/mbc/mbc1.rs:86:7 [INFO] [stderr] | [INFO] [stderr] 86 | self.rom_bank = self.rom_bank | (bank_id << 5); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.rom_bank |= (bank_id << 5)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/core/mbc/mbc1.rs:106:35 [INFO] [stderr] | [INFO] [stderr] 106 | let offset = (0x2000 as u32 * self.ram_bank as u32) + index as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.ram_bank)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/core/mbc/mbc1.rs:106:59 [INFO] [stderr] | [INFO] [stderr] 106 | let offset = (0x2000 as u32 * self.ram_bank as u32) + index as u32; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u32::from(index)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/core/mbc/mod.rs:7:24 [INFO] [stderr] | [INFO] [stderr] 7 | fn read(&self, bytes: &Vec, address: u16) -> u8; [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/joypad.rs:37:9 [INFO] [stderr] | [INFO] [stderr] 37 | / match is_pressed { [INFO] [stderr] 38 | | true => { [INFO] [stderr] 39 | | self.button_state = self.button_state | input; [INFO] [stderr] 40 | | interrupt.request_interrupt(InterruptFlag::Joypad); [INFO] [stderr] 41 | | }, [INFO] [stderr] 42 | | false => { self.button_state = self.button_state & !input; }, [INFO] [stderr] 43 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 37 | if is_pressed { [INFO] [stderr] 38 | self.button_state = self.button_state | input; [INFO] [stderr] 39 | interrupt.request_interrupt(InterruptFlag::Joypad); [INFO] [stderr] 40 | } else { self.button_state = self.button_state & !input; } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/core/joypad.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | self.button_state = self.button_state | input; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.button_state |= input` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/core/joypad.rs:42:24 [INFO] [stderr] | [INFO] [stderr] 42 | false => { self.button_state = self.button_state & !input; }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.button_state &= !input` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/core/joypad.rs:47:9 [INFO] [stderr] | [INFO] [stderr] 47 | / match is_pressed { [INFO] [stderr] 48 | | true => { [INFO] [stderr] 49 | | self.directional_state = self.directional_state | input; [INFO] [stderr] 50 | | interrupt.request_interrupt(InterruptFlag::Joypad); [INFO] [stderr] 51 | | }, [INFO] [stderr] 52 | | false => { self.directional_state = self.directional_state & !input; }, [INFO] [stderr] 53 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 47 | if is_pressed { [INFO] [stderr] 48 | self.directional_state = self.directional_state | input; [INFO] [stderr] 49 | interrupt.request_interrupt(InterruptFlag::Joypad); [INFO] [stderr] 50 | } else { self.directional_state = self.directional_state & !input; } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/core/joypad.rs:49:17 [INFO] [stderr] | [INFO] [stderr] 49 | self.directional_state = self.directional_state | input; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.directional_state |= input` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/core/joypad.rs:52:24 [INFO] [stderr] | [INFO] [stderr] 52 | false => { self.directional_state = self.directional_state & !input; }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.directional_state &= !input` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/dma.rs:27:23 [INFO] [stderr] | [INFO] [stderr] 27 | self.source = (source as u16) * 0x100; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(source)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/dma.rs:40:48 [INFO] [stderr] | [INFO] [stderr] 40 | self.source = self.source.wrapping_add(bytes as u16); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(bytes)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/core/dma.rs:41:58 [INFO] [stderr] | [INFO] [stderr] 41 | self.destination = self.destination.wrapping_add(bytes as u16); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(bytes)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: structure field `DIV` should have a snake case name such as `div` [INFO] [stderr] --> src/core/timer.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | DIV: MemoryRegister, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `TIMA` should have a snake case name such as `tima` [INFO] [stderr] --> src/core/timer.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | TIMA: MemoryRegister, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `TMA` should have a snake case name such as `tma` [INFO] [stderr] --> src/core/timer.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | TMA: MemoryRegister, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `TAC` should have a snake case name such as `tac` [INFO] [stderr] --> src/core/timer.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | TAC: MemoryRegister, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/emu/emulator.rs:71:7 [INFO] [stderr] | [INFO] [stderr] 71 | if !(elapsed_time > frame_time) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `elapsed_time <= frame_time` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 8.83s [INFO] running `"docker" "inspect" "af70504c0d57127e3ebc45af2e7d8021be92d3cc40fbee86102202897553ed89"` [INFO] running `"docker" "rm" "-f" "af70504c0d57127e3ebc45af2e7d8021be92d3cc40fbee86102202897553ed89"` [INFO] [stdout] af70504c0d57127e3ebc45af2e7d8021be92d3cc40fbee86102202897553ed89