[INFO] updating cached repository Matt-Hurd/42-GBmu [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/Matt-Hurd/42-GBmu [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/Matt-Hurd/42-GBmu" "work/ex/clippy-test-run/sources/stable/gh/Matt-Hurd/42-GBmu"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/Matt-Hurd/42-GBmu'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/Matt-Hurd/42-GBmu" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Matt-Hurd/42-GBmu"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Matt-Hurd/42-GBmu'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 7735270bda03198ba002691093525e6afc9828f6 [INFO] sha for GitHub repo Matt-Hurd/42-GBmu: 7735270bda03198ba002691093525e6afc9828f6 [INFO] validating manifest of Matt-Hurd/42-GBmu 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 Matt-Hurd/42-GBmu 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 Matt-Hurd/42-GBmu [INFO] finished frobbing Matt-Hurd/42-GBmu [INFO] frobbed toml for Matt-Hurd/42-GBmu written to work/ex/clippy-test-run/sources/stable/gh/Matt-Hurd/42-GBmu/Cargo.toml [INFO] started frobbing Matt-Hurd/42-GBmu [INFO] finished frobbing Matt-Hurd/42-GBmu [INFO] frobbed toml for Matt-Hurd/42-GBmu written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Matt-Hurd/42-GBmu/Cargo.toml [INFO] crate Matt-Hurd/42-GBmu 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 Matt-Hurd/42-GBmu against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/Matt-Hurd/42-GBmu:/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] 263a304191aa533477f63b58aabda8eedf3f4a7a75f45bdbec8a82f8017d99d8 [INFO] running `"docker" "start" "-a" "263a304191aa533477f63b58aabda8eedf3f4a7a75f45bdbec8a82f8017d99d8"` [INFO] [stderr] Checking dylib v0.0.1 [INFO] [stderr] Compiling minifb v0.9.0 [INFO] [stderr] Checking x11-dl v2.2.1 [INFO] [stderr] Checking gbmu v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> src/debugger/simple_debug.rs:65:13 [INFO] [stderr] | [INFO] [stderr] 65 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::println_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> src/debugger/simple_debug.rs:84:13 [INFO] [stderr] | [INFO] [stderr] 84 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> src/debugger/simple_debug.rs:65:13 [INFO] [stderr] | [INFO] [stderr] 65 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::println_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> src/debugger/simple_debug.rs:84:13 [INFO] [stderr] | [INFO] [stderr] 84 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:88:21 [INFO] [stderr] | [INFO] [stderr] 88 | return self.bios[addr as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.bios[addr as usize]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:90:21 [INFO] [stderr] | [INFO] [stderr] 90 | return self.rom[addr as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.rom[addr as usize]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:94:36 [INFO] [stderr] | [INFO] [stderr] 94 | 0x00FF ... 0x3FFF => return self.rom[addr as usize], [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.rom[addr as usize]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:96:36 [INFO] [stderr] | [INFO] [stderr] 96 | 0x4000 ... 0x7FFF => return self.rom[addr as usize], [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.rom[addr as usize]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:98:36 [INFO] [stderr] | [INFO] [stderr] 98 | 0x8000 ... 0x9FFF => return self.gpu.rb(addr & 0x1FFF), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.gpu.rb(addr & 0x1FFF)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:100:36 [INFO] [stderr] | [INFO] [stderr] 100 | 0xA000 ... 0xBFFF => return self.eram[(addr & 0x1FFF) as usize], [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.eram[(addr & 0x1FFF) as usize]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:102:36 [INFO] [stderr] | [INFO] [stderr] 102 | 0xC000 ... 0xDFFF => return self.wram[(addr & 0x1FFF) as usize], [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.wram[(addr & 0x1FFF) as usize]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:104:36 [INFO] [stderr] | [INFO] [stderr] 104 | 0xE000 ... 0xFDFF => return self.wram[(addr & 0x1FFF) as usize], [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.wram[(addr & 0x1FFF) as usize]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:106:36 [INFO] [stderr] | [INFO] [stderr] 106 | 0xFE00 ... 0xFE9F => return self.gpu.roam((addr & 0xFF) as u8), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.gpu.roam((addr & 0xFF) as u8)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:107:36 [INFO] [stderr] | [INFO] [stderr] 107 | 0xFEA0 ... 0xFEFF => return 0, [INFO] [stderr] | ^^^^^^^^ help: remove `return` as shown: `0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:111:29 [INFO] [stderr] | [INFO] [stderr] 111 | 0x10 => return self.keys[0], [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.keys[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:112:29 [INFO] [stderr] | [INFO] [stderr] 112 | 0x20 => return self.keys[1], [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.keys[1]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:113:29 [INFO] [stderr] | [INFO] [stderr] 113 | _ => return 0xF, [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `0xF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:117:36 [INFO] [stderr] | [INFO] [stderr] 117 | 0xFF0F => return self.iflags, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.iflags` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:119:36 [INFO] [stderr] | [INFO] [stderr] 119 | 0xFF01 => return 0, [INFO] [stderr] | ^^^^^^^^ help: remove `return` as shown: `0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:120:36 [INFO] [stderr] | [INFO] [stderr] 120 | 0xFF02 ... 0xFF7F => return self.gpu.rb(addr), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.gpu.rb(addr)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:122:36 [INFO] [stderr] | [INFO] [stderr] 122 | 0xFF80 ... 0xFFFE => return self.hram[(addr & 0x7F) as usize], [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.hram[(addr & 0x7F) as usize]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:123:36 [INFO] [stderr] | [INFO] [stderr] 123 | 0xFFFF => return self.ienable, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.ienable` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:124:36 [INFO] [stderr] | [INFO] [stderr] 124 | _ => return 0, [INFO] [stderr] | ^^^^^^^^ help: remove `return` as shown: `0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:130:9 [INFO] [stderr] | [INFO] [stderr] 130 | return self.rb(addr) as u16 + ((self.rb(addr + 1) as u16) << 8); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.rb(addr) as u16 + ((self.rb(addr + 1) as u16) << 8)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/z80/mmu.rs:160:56 [INFO] [stderr] | [INFO] [stderr] 160 | 0xFF00 => self.column = val & 0b00110000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0011_0000` [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/z80/ops/misc.rs:145:32 [INFO] [stderr] | [INFO] [stderr] 145 | z80.r.set_half_carry(val & 0b00011111 == 0b00010000); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0001_1111` [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/z80/ops/misc.rs:145:46 [INFO] [stderr] | [INFO] [stderr] 145 | z80.r.set_half_carry(val & 0b00011111 == 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: operator precedence can trip the unwary [INFO] [stderr] --> src/z80/ops/adc.rs:30:8 [INFO] [stderr] | [INFO] [stderr] 30 | if (val & 0xF) + (z80.r.a & 0xF) & 0x10 != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `((val & 0xF) + (z80.r.a & 0xF)) & 0x10` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::precedence)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/z80/ops/rotate.rs:152:23 [INFO] [stderr] | [INFO] [stderr] 152 | let extra = val & 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/z80/ops/rotate.rs:153:18 [INFO] [stderr] | [INFO] [stderr] 153 | val = (val & 0b01111111) << 1; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0111_1111` [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/z80/ops/res.rs:23:12 [INFO] [stderr] | [INFO] [stderr] 23 | val |= 0b11111111 ^ (0b1 << bit_val); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1111_1111` [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: unneeded return statement [INFO] [stderr] --> src/z80/gpu.rs:145:24 [INFO] [stderr] | [INFO] [stderr] 145 | 0b00 => return 0xFFFFFF, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `0xFFFFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/gpu.rs:146:24 [INFO] [stderr] | [INFO] [stderr] 146 | 0b01 => return 0xAAAAAA, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `0xAAAAAA` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/gpu.rs:147:24 [INFO] [stderr] | [INFO] [stderr] 147 | 0b10 => return 0x555555, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `0x555555` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/gpu.rs:148:24 [INFO] [stderr] | [INFO] [stderr] 148 | 0b11 => return 0x000000, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `0x000000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/gpu.rs:149:24 [INFO] [stderr] | [INFO] [stderr] 149 | _ => return 0x000000, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `0x000000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/z80/gpu.rs:140:36 [INFO] [stderr] | [INFO] [stderr] 140 | 0b10 => (self.bgp & 0b110000) >> 4, [INFO] [stderr] | ^^^^^^^^ help: consider: `0b11_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/z80/gpu.rs:141:36 [INFO] [stderr] | [INFO] [stderr] 141 | 0b11 => (self.bgp & 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/z80/gpu.rs:145:31 [INFO] [stderr] | [INFO] [stderr] 145 | 0b00 => return 0xFFFFFF, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x00FF_FFFF` [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/z80/gpu.rs:146:31 [INFO] [stderr] | [INFO] [stderr] 146 | 0b01 => return 0xAAAAAA, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x00AA_AAAA` [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/z80/gpu.rs:147:31 [INFO] [stderr] | [INFO] [stderr] 147 | 0b10 => return 0x555555, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0055_5555` [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/z80/gpu.rs:148:31 [INFO] [stderr] | [INFO] [stderr] 148 | 0b11 => return 0x000000, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0000_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/z80/gpu.rs:149:31 [INFO] [stderr] | [INFO] [stderr] 149 | _ => return 0x000000, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0000_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: unneeded return statement [INFO] [stderr] --> src/z80/gpu.rs:200:9 [INFO] [stderr] | [INFO] [stderr] 200 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/z80/gpu.rs:192:20 [INFO] [stderr] | [INFO] [stderr] 192 | } else { [INFO] [stderr] | ____________________^ [INFO] [stderr] 193 | | if self.stat.mode != 0 { [INFO] [stderr] 194 | | self.stat.mode = 0; [INFO] [stderr] 195 | | // println!("Mode Change: 0"); [INFO] [stderr] 196 | | self.render_scanline(); [INFO] [stderr] 197 | | } [INFO] [stderr] 198 | | } [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] 192 | } else if self.stat.mode != 0 { [INFO] [stderr] 193 | self.stat.mode = 0; [INFO] [stderr] 194 | // println!("Mode Change: 0"); [INFO] [stderr] 195 | self.render_scanline(); [INFO] [stderr] 196 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/gpu.rs:209:9 [INFO] [stderr] | [INFO] [stderr] 209 | return pixel; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `pixel` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/z80/gpu.rs:237:13 [INFO] [stderr] | [INFO] [stderr] 237 | / if sprites.len() < 10 [INFO] [stderr] 238 | | { [INFO] [stderr] 239 | | if self.oam[sprite_num][0] != 0 || self.oam[sprite_num][1] != 0 { //ensure it is on screen [INFO] [stderr] 240 | | if self.oam[sprite_num][0] > line && self.oam[sprite_num][0] <= line + 8 { [INFO] [stderr] ... | [INFO] [stderr] 243 | | } [INFO] [stderr] 244 | | } [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] 237 | if sprites.len() < 10 && (self.oam[sprite_num][0] != 0 || self.oam[sprite_num][1] != 0) { //ensure it is on screen [INFO] [stderr] 238 | if self.oam[sprite_num][0] > line && self.oam[sprite_num][0] <= line + 8 { [INFO] [stderr] 239 | sprites.push(sprite_num); [INFO] [stderr] 240 | } [INFO] [stderr] 241 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/z80/gpu.rs:268:73 [INFO] [stderr] | [INFO] [stderr] 268 | if item[1] != 0 || (item[0] != 0 && sprite[3] & 0b10000000 == 0) { [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: unneeded return statement [INFO] [stderr] --> src/z80/gpu.rs:284:9 [INFO] [stderr] | [INFO] [stderr] 284 | / return match addr { [INFO] [stderr] 285 | | 0x0000 ... 0x17FF => return self.tiles[(addr / 16) as usize][(addr % 16) as usize], [INFO] [stderr] 286 | | 0x1800 ... 0x2000 => { [INFO] [stderr] 287 | | let map_addr = addr % 0x1800; [INFO] [stderr] ... | [INFO] [stderr] 302 | | _ => return 0, [INFO] [stderr] 303 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 284 | match addr { [INFO] [stderr] 285 | 0x0000 ... 0x17FF => return self.tiles[(addr / 16) as usize][(addr % 16) as usize], [INFO] [stderr] 286 | 0x1800 ... 0x2000 => { [INFO] [stderr] 287 | let map_addr = addr % 0x1800; [INFO] [stderr] 288 | self.map[(map_addr / 32) as usize][(map_addr % 32) as usize] [INFO] [stderr] 289 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/gpu.rs:335:9 [INFO] [stderr] | [INFO] [stderr] 335 | return self.oam[(addr / 4) as usize][(addr % 4) as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.oam[(addr / 4) as usize][(addr % 4) as usize]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mod.rs:117:9 [INFO] [stderr] | [INFO] [stderr] 117 | return 4 [INFO] [stderr] | ^^^^^^^^ help: remove `return` as shown: `4` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:88:21 [INFO] [stderr] | [INFO] [stderr] 88 | return self.bios[addr as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.bios[addr as usize]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:90:21 [INFO] [stderr] | [INFO] [stderr] 90 | return self.rom[addr as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.rom[addr as usize]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:94:36 [INFO] [stderr] | [INFO] [stderr] 94 | 0x00FF ... 0x3FFF => return self.rom[addr as usize], [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.rom[addr as usize]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:96:36 [INFO] [stderr] | [INFO] [stderr] 96 | 0x4000 ... 0x7FFF => return self.rom[addr as usize], [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.rom[addr as usize]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:98:36 [INFO] [stderr] | [INFO] [stderr] 98 | 0x8000 ... 0x9FFF => return self.gpu.rb(addr & 0x1FFF), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.gpu.rb(addr & 0x1FFF)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/debugger/simple_debug.rs:161:17 [INFO] [stderr] | [INFO] [stderr] 161 | / if split[0] == "break" { [INFO] [stderr] 162 | | if split.len() > 1 { [INFO] [stderr] 163 | | for point in 1 .. split.len() { [INFO] [stderr] 164 | | let val = u16::from_str_radix(split[point], 16); [INFO] [stderr] ... | [INFO] [stderr] 173 | | } [INFO] [stderr] 174 | | } [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] 161 | if split[0] == "break" && split.len() > 1 { [INFO] [stderr] 162 | for point in 1 .. split.len() { [INFO] [stderr] 163 | let val = u16::from_str_radix(split[point], 16); [INFO] [stderr] 164 | match val { [INFO] [stderr] 165 | Ok(n) => { [INFO] [stderr] 166 | println!("Adding breakpoint at 0x{:04X}", n); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/debugger/simple_debug.rs:175:17 [INFO] [stderr] | [INFO] [stderr] 175 | / if split[0] == "rmb" { [INFO] [stderr] 176 | | if split.len() > 1 { [INFO] [stderr] 177 | | for point in 1 .. split.len() { [INFO] [stderr] 178 | | let val = u16::from_str_radix(split[point], 16); [INFO] [stderr] ... | [INFO] [stderr] 187 | | } [INFO] [stderr] 188 | | } [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] 175 | if split[0] == "rmb" && split.len() > 1 { [INFO] [stderr] 176 | for point in 1 .. split.len() { [INFO] [stderr] 177 | let val = u16::from_str_radix(split[point], 16); [INFO] [stderr] 178 | match val { [INFO] [stderr] 179 | Ok(n) => { [INFO] [stderr] 180 | println!("Removing breakpoint at 0x{:04X}", n); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:100:36 [INFO] [stderr] | [INFO] [stderr] 100 | 0xA000 ... 0xBFFF => return self.eram[(addr & 0x1FFF) as usize], [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.eram[(addr & 0x1FFF) as usize]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:102:36 [INFO] [stderr] | [INFO] [stderr] 102 | 0xC000 ... 0xDFFF => return self.wram[(addr & 0x1FFF) as usize], [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.wram[(addr & 0x1FFF) as usize]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:104:36 [INFO] [stderr] | [INFO] [stderr] 104 | 0xE000 ... 0xFDFF => return self.wram[(addr & 0x1FFF) as usize], [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.wram[(addr & 0x1FFF) as usize]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:106:36 [INFO] [stderr] | [INFO] [stderr] 106 | 0xFE00 ... 0xFE9F => return self.gpu.roam((addr & 0xFF) as u8), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.gpu.roam((addr & 0xFF) as u8)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:107:36 [INFO] [stderr] | [INFO] [stderr] 107 | 0xFEA0 ... 0xFEFF => return 0, [INFO] [stderr] | ^^^^^^^^ help: remove `return` as shown: `0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:111:29 [INFO] [stderr] | [INFO] [stderr] 111 | 0x10 => return self.keys[0], [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.keys[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:112:29 [INFO] [stderr] | [INFO] [stderr] 112 | 0x20 => return self.keys[1], [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.keys[1]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:113:29 [INFO] [stderr] | [INFO] [stderr] 113 | _ => return 0xF, [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `0xF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:117:36 [INFO] [stderr] | [INFO] [stderr] 117 | 0xFF0F => return self.iflags, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.iflags` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:119:36 [INFO] [stderr] | [INFO] [stderr] 119 | 0xFF01 => return 0, [INFO] [stderr] | ^^^^^^^^ help: remove `return` as shown: `0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:120:36 [INFO] [stderr] | [INFO] [stderr] 120 | 0xFF02 ... 0xFF7F => return self.gpu.rb(addr), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.gpu.rb(addr)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:122:36 [INFO] [stderr] | [INFO] [stderr] 122 | 0xFF80 ... 0xFFFE => return self.hram[(addr & 0x7F) as usize], [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.hram[(addr & 0x7F) as usize]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:123:36 [INFO] [stderr] | [INFO] [stderr] 123 | 0xFFFF => return self.ienable, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.ienable` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:124:36 [INFO] [stderr] | [INFO] [stderr] 124 | _ => return 0, [INFO] [stderr] | ^^^^^^^^ help: remove `return` as shown: `0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mmu.rs:130:9 [INFO] [stderr] | [INFO] [stderr] 130 | return self.rb(addr) as u16 + ((self.rb(addr + 1) as u16) << 8); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.rb(addr) as u16 + ((self.rb(addr + 1) as u16) << 8)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/z80/mmu.rs:160:56 [INFO] [stderr] | [INFO] [stderr] 160 | 0xFF00 => self.column = val & 0b00110000, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0011_0000` [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/z80/ops/misc.rs:145:32 [INFO] [stderr] | [INFO] [stderr] 145 | z80.r.set_half_carry(val & 0b00011111 == 0b00010000); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0001_1111` [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/z80/ops/misc.rs:145:46 [INFO] [stderr] | [INFO] [stderr] 145 | z80.r.set_half_carry(val & 0b00011111 == 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: operator precedence can trip the unwary [INFO] [stderr] --> src/z80/ops/adc.rs:30:8 [INFO] [stderr] | [INFO] [stderr] 30 | if (val & 0xF) + (z80.r.a & 0xF) & 0x10 != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `((val & 0xF) + (z80.r.a & 0xF)) & 0x10` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::precedence)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/z80/ops/rotate.rs:152:23 [INFO] [stderr] | [INFO] [stderr] 152 | let extra = val & 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/z80/ops/rotate.rs:153:18 [INFO] [stderr] | [INFO] [stderr] 153 | val = (val & 0b01111111) << 1; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0111_1111` [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/z80/ops/res.rs:23:12 [INFO] [stderr] | [INFO] [stderr] 23 | val |= 0b11111111 ^ (0b1 << bit_val); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1111_1111` [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: unneeded return statement [INFO] [stderr] --> src/z80/gpu.rs:145:24 [INFO] [stderr] | [INFO] [stderr] 145 | 0b00 => return 0xFFFFFF, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `0xFFFFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/gpu.rs:146:24 [INFO] [stderr] | [INFO] [stderr] 146 | 0b01 => return 0xAAAAAA, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `0xAAAAAA` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/gpu.rs:147:24 [INFO] [stderr] | [INFO] [stderr] 147 | 0b10 => return 0x555555, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `0x555555` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/gpu.rs:148:24 [INFO] [stderr] | [INFO] [stderr] 148 | 0b11 => return 0x000000, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `0x000000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/gpu.rs:149:24 [INFO] [stderr] | [INFO] [stderr] 149 | _ => return 0x000000, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `0x000000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/z80/gpu.rs:140:36 [INFO] [stderr] | [INFO] [stderr] 140 | 0b10 => (self.bgp & 0b110000) >> 4, [INFO] [stderr] | ^^^^^^^^ help: consider: `0b11_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/z80/gpu.rs:141:36 [INFO] [stderr] | [INFO] [stderr] 141 | 0b11 => (self.bgp & 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/z80/gpu.rs:145:31 [INFO] [stderr] | [INFO] [stderr] 145 | 0b00 => return 0xFFFFFF, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x00FF_FFFF` [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/z80/gpu.rs:146:31 [INFO] [stderr] | [INFO] [stderr] 146 | 0b01 => return 0xAAAAAA, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x00AA_AAAA` [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/z80/gpu.rs:147:31 [INFO] [stderr] | [INFO] [stderr] 147 | 0b10 => return 0x555555, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0055_5555` [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/z80/gpu.rs:148:31 [INFO] [stderr] | [INFO] [stderr] 148 | 0b11 => return 0x000000, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0000_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/z80/gpu.rs:149:31 [INFO] [stderr] | [INFO] [stderr] 149 | _ => return 0x000000, [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0000_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: unneeded return statement [INFO] [stderr] --> src/z80/gpu.rs:200:9 [INFO] [stderr] | [INFO] [stderr] 200 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/z80/gpu.rs:192:20 [INFO] [stderr] | [INFO] [stderr] 192 | } else { [INFO] [stderr] | ____________________^ [INFO] [stderr] 193 | | if self.stat.mode != 0 { [INFO] [stderr] 194 | | self.stat.mode = 0; [INFO] [stderr] 195 | | // println!("Mode Change: 0"); [INFO] [stderr] 196 | | self.render_scanline(); [INFO] [stderr] 197 | | } [INFO] [stderr] 198 | | } [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] 192 | } else if self.stat.mode != 0 { [INFO] [stderr] 193 | self.stat.mode = 0; [INFO] [stderr] 194 | // println!("Mode Change: 0"); [INFO] [stderr] 195 | self.render_scanline(); [INFO] [stderr] 196 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/gpu.rs:209:9 [INFO] [stderr] | [INFO] [stderr] 209 | return pixel; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `pixel` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/z80/gpu.rs:237:13 [INFO] [stderr] | [INFO] [stderr] 237 | / if sprites.len() < 10 [INFO] [stderr] 238 | | { [INFO] [stderr] 239 | | if self.oam[sprite_num][0] != 0 || self.oam[sprite_num][1] != 0 { //ensure it is on screen [INFO] [stderr] 240 | | if self.oam[sprite_num][0] > line && self.oam[sprite_num][0] <= line + 8 { [INFO] [stderr] ... | [INFO] [stderr] 243 | | } [INFO] [stderr] 244 | | } [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] 237 | if sprites.len() < 10 && (self.oam[sprite_num][0] != 0 || self.oam[sprite_num][1] != 0) { //ensure it is on screen [INFO] [stderr] 238 | if self.oam[sprite_num][0] > line && self.oam[sprite_num][0] <= line + 8 { [INFO] [stderr] 239 | sprites.push(sprite_num); [INFO] [stderr] 240 | } [INFO] [stderr] 241 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/z80/gpu.rs:268:73 [INFO] [stderr] | [INFO] [stderr] 268 | if item[1] != 0 || (item[0] != 0 && sprite[3] & 0b10000000 == 0) { [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: unneeded return statement [INFO] [stderr] --> src/z80/gpu.rs:284:9 [INFO] [stderr] | [INFO] [stderr] 284 | / return match addr { [INFO] [stderr] 285 | | 0x0000 ... 0x17FF => return self.tiles[(addr / 16) as usize][(addr % 16) as usize], [INFO] [stderr] 286 | | 0x1800 ... 0x2000 => { [INFO] [stderr] 287 | | let map_addr = addr % 0x1800; [INFO] [stderr] ... | [INFO] [stderr] 302 | | _ => return 0, [INFO] [stderr] 303 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 284 | match addr { [INFO] [stderr] 285 | 0x0000 ... 0x17FF => return self.tiles[(addr / 16) as usize][(addr % 16) as usize], [INFO] [stderr] 286 | 0x1800 ... 0x2000 => { [INFO] [stderr] 287 | let map_addr = addr % 0x1800; [INFO] [stderr] 288 | self.map[(map_addr / 32) as usize][(map_addr % 32) as usize] [INFO] [stderr] 289 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/debugger/simple_debug.rs:189:17 [INFO] [stderr] | [INFO] [stderr] 189 | / if split[0] == "skip" { [INFO] [stderr] 190 | | if split.len() == 2 { [INFO] [stderr] 191 | | for point in 1 .. split.len() { [INFO] [stderr] 192 | | let val = u16::from_str_radix(split[point], 10); [INFO] [stderr] ... | [INFO] [stderr] 201 | | } [INFO] [stderr] 202 | | } [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] 189 | if split[0] == "skip" && split.len() == 2 { [INFO] [stderr] 190 | for point in 1 .. split.len() { [INFO] [stderr] 191 | let val = u16::from_str_radix(split[point], 10); [INFO] [stderr] 192 | match val { [INFO] [stderr] 193 | Ok(n) => { [INFO] [stderr] 194 | println!("Skipping {} breakpoints", n); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/gpu.rs:335:9 [INFO] [stderr] | [INFO] [stderr] 335 | return self.oam[(addr / 4) as usize][(addr % 4) as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.oam[(addr / 4) as usize][(addr % 4) as usize]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/z80/mod.rs:117:9 [INFO] [stderr] | [INFO] [stderr] 117 | return 4 [INFO] [stderr] | ^^^^^^^^ help: remove `return` as shown: `4` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/debugger/simple_debug.rs:161:17 [INFO] [stderr] | [INFO] [stderr] 161 | / if split[0] == "break" { [INFO] [stderr] 162 | | if split.len() > 1 { [INFO] [stderr] 163 | | for point in 1 .. split.len() { [INFO] [stderr] 164 | | let val = u16::from_str_radix(split[point], 16); [INFO] [stderr] ... | [INFO] [stderr] 173 | | } [INFO] [stderr] 174 | | } [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] 161 | if split[0] == "break" && split.len() > 1 { [INFO] [stderr] 162 | for point in 1 .. split.len() { [INFO] [stderr] 163 | let val = u16::from_str_radix(split[point], 16); [INFO] [stderr] 164 | match val { [INFO] [stderr] 165 | Ok(n) => { [INFO] [stderr] 166 | println!("Adding breakpoint at 0x{:04X}", n); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/debugger/simple_debug.rs:175:17 [INFO] [stderr] | [INFO] [stderr] 175 | / if split[0] == "rmb" { [INFO] [stderr] 176 | | if split.len() > 1 { [INFO] [stderr] 177 | | for point in 1 .. split.len() { [INFO] [stderr] 178 | | let val = u16::from_str_radix(split[point], 16); [INFO] [stderr] ... | [INFO] [stderr] 187 | | } [INFO] [stderr] 188 | | } [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] 175 | if split[0] == "rmb" && split.len() > 1 { [INFO] [stderr] 176 | for point in 1 .. split.len() { [INFO] [stderr] 177 | let val = u16::from_str_radix(split[point], 16); [INFO] [stderr] 178 | match val { [INFO] [stderr] 179 | Ok(n) => { [INFO] [stderr] 180 | println!("Removing breakpoint at 0x{:04X}", n); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/debugger/simple_debug.rs:189:17 [INFO] [stderr] | [INFO] [stderr] 189 | / if split[0] == "skip" { [INFO] [stderr] 190 | | if split.len() == 2 { [INFO] [stderr] 191 | | for point in 1 .. split.len() { [INFO] [stderr] 192 | | let val = u16::from_str_radix(split[point], 10); [INFO] [stderr] ... | [INFO] [stderr] 201 | | } [INFO] [stderr] 202 | | } [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] 189 | if split[0] == "skip" && split.len() == 2 { [INFO] [stderr] 190 | for point in 1 .. split.len() { [INFO] [stderr] 191 | let val = u16::from_str_radix(split[point], 10); [INFO] [stderr] 192 | match val { [INFO] [stderr] 193 | Ok(n) => { [INFO] [stderr] 194 | println!("Skipping {} breakpoints", n); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unused variable: `result` [INFO] [stderr] --> src/main.rs:19:9 [INFO] [stderr] | [INFO] [stderr] 19 | let result = z80.mmu.load(rom_path); [INFO] [stderr] | ^^^^^^ help: consider using `_result` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `result` [INFO] [stderr] --> src/main.rs:44:9 [INFO] [stderr] | [INFO] [stderr] 44 | let result = core.mmu.load(path::PathBuf::from(&args[1])); [INFO] [stderr] | ^^^^^^ help: consider using `_result` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `y` [INFO] [stderr] --> src/z80/gpu.rs:262:25 [INFO] [stderr] | [INFO] [stderr] 262 | for y in 0 .. size { [INFO] [stderr] | ^ help: consider using `_y` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `err` [INFO] [stderr] --> src/debugger/simple_debug.rs:170:37 [INFO] [stderr] | [INFO] [stderr] 170 | Err(err) => println!("Invalid breakpoint {}", split[point]), [INFO] [stderr] | ^^^ help: consider using `_err` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `err` [INFO] [stderr] --> src/debugger/simple_debug.rs:184:37 [INFO] [stderr] | [INFO] [stderr] 184 | Err(err) => println!("Invalid breakpoint {}", split[point]), [INFO] [stderr] | ^^^ help: consider using `_err` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `err` [INFO] [stderr] --> src/debugger/simple_debug.rs:198:37 [INFO] [stderr] | [INFO] [stderr] 198 | Err(err) => println!("Invalid Number: {}", split[point]), [INFO] [stderr] | ^^^ help: consider using `_err` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `result` [INFO] [stderr] --> src/main.rs:19:9 [INFO] [stderr] | [INFO] [stderr] 19 | let result = z80.mmu.load(rom_path); [INFO] [stderr] | ^^^^^^ help: consider using `_result` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `result` [INFO] [stderr] --> src/main.rs:44:9 [INFO] [stderr] | [INFO] [stderr] 44 | let result = core.mmu.load(path::PathBuf::from(&args[1])); [INFO] [stderr] | ^^^^^^ help: consider using `_result` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `y` [INFO] [stderr] --> src/z80/gpu.rs:262:25 [INFO] [stderr] | [INFO] [stderr] 262 | for y in 0 .. size { [INFO] [stderr] | ^ help: consider using `_y` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `err` [INFO] [stderr] --> src/debugger/simple_debug.rs:170:37 [INFO] [stderr] | [INFO] [stderr] 170 | Err(err) => println!("Invalid breakpoint {}", split[point]), [INFO] [stderr] | ^^^ help: consider using `_err` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `err` [INFO] [stderr] --> src/debugger/simple_debug.rs:184:37 [INFO] [stderr] | [INFO] [stderr] 184 | Err(err) => println!("Invalid breakpoint {}", split[point]), [INFO] [stderr] | ^^^ help: consider using `_err` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `err` [INFO] [stderr] --> src/debugger/simple_debug.rs:198:37 [INFO] [stderr] | [INFO] [stderr] 198 | Err(err) => println!("Invalid Number: {}", split[point]), [INFO] [stderr] | ^^^ help: consider using `_err` instead [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_subtract` [INFO] [stderr] --> src/z80/registers.rs:133:5 [INFO] [stderr] | [INFO] [stderr] 133 | pub fn get_subtract(&mut self) -> u8 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_half_carry` [INFO] [stderr] --> src/z80/registers.rs:140:5 [INFO] [stderr] | [INFO] [stderr] 140 | pub fn get_half_carry(&mut self) -> u8 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `backup_registers` [INFO] [stderr] --> src/z80/mod.rs:51:5 [INFO] [stderr] | [INFO] [stderr] 51 | pub fn backup_registers(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `restore_registers` [INFO] [stderr] --> src/z80/mod.rs:62:5 [INFO] [stderr] | [INFO] [stderr] 62 | pub fn restore_registers(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `debug_print_stack` [INFO] [stderr] --> src/z80/mod.rs:76:5 [INFO] [stderr] | [INFO] [stderr] 76 | pub fn debug_print_stack(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: some ranges overlap [INFO] [stderr] --> src/z80/mmu.rs:86:13 [INFO] [stderr] | [INFO] [stderr] 86 | 0x0000 ... 0x00FF => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_overlapping_arm)] on by default [INFO] [stderr] note: overlaps with this [INFO] [stderr] --> src/z80/mmu.rs:94:13 [INFO] [stderr] | [INFO] [stderr] 94 | 0x00FF ... 0x3FFF => return self.rom[addr as usize], [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/z80/mmu.rs:130:16 [INFO] [stderr] | [INFO] [stderr] 130 | return self.rb(addr) as u16 + ((self.rb(addr + 1) as u16) << 8); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.rb(addr))` [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/z80/mmu.rs:130:40 [INFO] [stderr] | [INFO] [stderr] 130 | return self.rb(addr) as u16 + ((self.rb(addr + 1) as u16) << 8); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.rb(addr + 1))` [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: some ranges overlap [INFO] [stderr] --> src/z80/mmu.rs:138:13 [INFO] [stderr] | [INFO] [stderr] 138 | 0x0000 ... 0x00FF => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: overlaps with this [INFO] [stderr] --> src/z80/mmu.rs:146:13 [INFO] [stderr] | [INFO] [stderr] 146 | 0x00FF ... 0x3FFF => self.rom[addr as usize] = val, [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/z80/ops/add.rs:51:15 [INFO] [stderr] | [INFO] [stderr] 51 | let val = z80.mmu.rb(z80.r.pc) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(z80.mmu.rb(z80.r.pc))` [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/z80/ops/ld.rs:46:25 [INFO] [stderr] | [INFO] [stderr] 46 | z80.mmu.wb(0xFF00 + z80.r.c as u16, z80.r.a); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u16::from(z80.r.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/z80/ops/ld.rs:80:16 [INFO] [stderr] | [INFO] [stderr] 80 | let addr = z80.mmu.rb(z80.r.pc) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(z80.mmu.rb(z80.r.pc))` [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/z80/ops/ld.rs:120:35 [INFO] [stderr] | [INFO] [stderr] 120 | z80.r.a = z80.mmu.rb(0xFF00 + z80.r.c as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u16::from(z80.r.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/z80/ops/ld.rs:132:35 [INFO] [stderr] | [INFO] [stderr] 132 | z80.r.a = z80.mmu.rb(0xFF00 | addr as u16); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(addr)` [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: bit mask could be simplified with a call to `trailing_zeros` [INFO] [stderr] --> src/z80/ops/misc.rs:168:26 [INFO] [stderr] | [INFO] [stderr] 168 | z80.r.set_half_carry((val & 0xF) == 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `val.trailing_zeros() >= 4` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::verbose_bit_mask)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#verbose_bit_mask [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/z80/ops/adc.rs:27:8 [INFO] [stderr] | [INFO] [stderr] 27 | if (val as u16) + (z80.r.a as u16) + (z80.r.get_carry() as u16) > 0xFF { [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(val)` [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/z80/ops/adc.rs:27:23 [INFO] [stderr] | [INFO] [stderr] 27 | if (val as u16) + (z80.r.a as u16) + (z80.r.get_carry() as u16) > 0xFF { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u16::from(z80.r.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 u16 may become silently lossy if types change [INFO] [stderr] --> src/z80/ops/adc.rs:27:42 [INFO] [stderr] | [INFO] [stderr] 27 | if (val as u16) + (z80.r.a as u16) + (z80.r.get_carry() as u16) > 0xFF { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(z80.r.get_carry())` [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/z80/ops/jump.rs:23:25 [INFO] [stderr] | [INFO] [stderr] 23 | z80.r.pc -= (255 - i + 1) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(255 - i + 1)` [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/z80/ops/jump.rs:25:25 [INFO] [stderr] | [INFO] [stderr] 25 | z80.r.pc += i as u16; [INFO] [stderr] | ^^^^^^^^ help: try: `u16::from(i)` [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] error: incompatible bit mask: `_ & 240` can never be equal to `1` [INFO] [stderr] --> src/z80/ops/rotate.rs:20:8 [INFO] [stderr] | [INFO] [stderr] 20 | if op & 0xF0 != 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::bad_bit_mask)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bad_bit_mask [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/z80/ops/rotate.rs:65:5 [INFO] [stderr] | [INFO] [stderr] 65 | val = val >> 1; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `val >>= 1` [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] error: incompatible bit mask: `_ & 240` can never be equal to `1` [INFO] [stderr] --> src/z80/ops/rotate.rs:66:8 [INFO] [stderr] | [INFO] [stderr] 66 | if op & 0xF0 != 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bad_bit_mask [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/z80/registers.rs:55:10 [INFO] [stderr] | [INFO] [stderr] 55 | ((self.h as u16) << 8) + (self.l as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(self.h)` [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/z80/registers.rs:55:34 [INFO] [stderr] | [INFO] [stderr] 55 | ((self.h as u16) << 8) + (self.l as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(self.l)` [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/z80/registers.rs:59:10 [INFO] [stderr] | [INFO] [stderr] 59 | ((self.b as u16) << 8) + (self.c as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(self.b)` [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/z80/registers.rs:59:34 [INFO] [stderr] | [INFO] [stderr] 59 | ((self.b as u16) << 8) + (self.c as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(self.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/z80/registers.rs:63:10 [INFO] [stderr] | [INFO] [stderr] 63 | ((self.d as u16) << 8) + (self.e as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(self.d)` [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/z80/registers.rs:63:34 [INFO] [stderr] | [INFO] [stderr] 63 | ((self.d as u16) << 8) + (self.e as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(self.e)` [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/z80/registers.rs:67:10 [INFO] [stderr] | [INFO] [stderr] 67 | ((self.a as u16) << 8) + (self.f as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(self.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 u16 may become silently lossy if types change [INFO] [stderr] --> src/z80/registers.rs:67:34 [INFO] [stderr] | [INFO] [stderr] 67 | ((self.a as u16) << 8) + (self.f as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(self.f)` [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: `get_subtract` [INFO] [stderr] --> src/z80/registers.rs:133:5 [INFO] [stderr] | [INFO] [stderr] 133 | pub fn get_subtract(&mut self) -> u8 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_half_carry` [INFO] [stderr] --> src/z80/registers.rs:140:5 [INFO] [stderr] | [INFO] [stderr] 140 | pub fn get_half_carry(&mut self) -> u8 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `backup_registers` [INFO] [stderr] --> src/z80/mod.rs:51:5 [INFO] [stderr] | [INFO] [stderr] 51 | pub fn backup_registers(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `restore_registers` [INFO] [stderr] --> src/z80/mod.rs:62:5 [INFO] [stderr] | [INFO] [stderr] 62 | pub fn restore_registers(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `debug_print_stack` [INFO] [stderr] --> src/z80/mod.rs:76:5 [INFO] [stderr] | [INFO] [stderr] 76 | pub fn debug_print_stack(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/z80/gpu.rs:33:40 [INFO] [stderr] | [INFO] [stderr] 33 | self.lcd_enable = if val & 0x80 != 0 { true } else { false }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `val & 0x80 != 0` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/z80/gpu.rs:34:40 [INFO] [stderr] | [INFO] [stderr] 34 | self.window_tile_map_address = if val & 0x40 != 0 { true } else { false }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `val & 0x40 != 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/z80/gpu.rs:35:40 [INFO] [stderr] | [INFO] [stderr] 35 | self.window_enable = if val & 0x20 != 0 { true } else { false }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `val & 0x20 != 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/z80/gpu.rs:36:40 [INFO] [stderr] | [INFO] [stderr] 36 | self.bg_window_tile_data = if val & 0x10 != 0 { true } else { false }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `val & 0x10 != 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/z80/gpu.rs:37:40 [INFO] [stderr] | [INFO] [stderr] 37 | self.bg_tile_map_address = if val & 0x08 != 0 { true } else { false }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `val & 0x08 != 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/z80/gpu.rs:38:40 [INFO] [stderr] | [INFO] [stderr] 38 | self.obj_size = if val & 0x04 != 0 { true } else { false }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `val & 0x04 != 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/z80/gpu.rs:39:40 [INFO] [stderr] | [INFO] [stderr] 39 | self.obj_enable = if val & 0x02 != 0 { true } else { false }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `val & 0x02 != 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/z80/gpu.rs:40:40 [INFO] [stderr] | [INFO] [stderr] 40 | self.bg_enable = if val & 0x01 != 0 { true } else { false }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `val & 0x01 != 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/z80/gpu.rs:71:41 [INFO] [stderr] | [INFO] [stderr] 71 | self.ly_interrupt = if val & 0x40 != 0 { true } else { false }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `val & 0x40 != 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/z80/gpu.rs:72:41 [INFO] [stderr] | [INFO] [stderr] 72 | self.mode_2_oam_interrupt = if val & 0x20 != 0 { true } else { false }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `val & 0x20 != 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/z80/gpu.rs:73:41 [INFO] [stderr] | [INFO] [stderr] 73 | self.mode_1_vblank_interrupt = if val & 0x10 != 0 { true } else { false }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `val & 0x10 != 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/z80/gpu.rs:74:41 [INFO] [stderr] | [INFO] [stderr] 74 | self.mode_0_hblank_interrupt = if val & 0x08 != 0 { true } else { false }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `val & 0x08 != 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/z80/gpu.rs:75:41 [INFO] [stderr] | [INFO] [stderr] 75 | self.ly_flag = if val & 0x04 != 0 { true } else { false }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `val & 0x04 != 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: some ranges overlap [INFO] [stderr] --> src/z80/mmu.rs:86:13 [INFO] [stderr] | [INFO] [stderr] 86 | 0x0000 ... 0x00FF => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_overlapping_arm)] on by default [INFO] [stderr] note: overlaps with this [INFO] [stderr] --> src/z80/mmu.rs:94:13 [INFO] [stderr] | [INFO] [stderr] 94 | 0x00FF ... 0x3FFF => return self.rom[addr as usize], [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/z80/mmu.rs:130:16 [INFO] [stderr] | [INFO] [stderr] 130 | return self.rb(addr) as u16 + ((self.rb(addr + 1) as u16) << 8); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.rb(addr))` [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/z80/mmu.rs:130:40 [INFO] [stderr] | [INFO] [stderr] 130 | return self.rb(addr) as u16 + ((self.rb(addr + 1) as u16) << 8); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.rb(addr + 1))` [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: some ranges overlap [INFO] [stderr] --> src/z80/mmu.rs:138:13 [INFO] [stderr] | [INFO] [stderr] 138 | 0x0000 ... 0x00FF => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: overlaps with this [INFO] [stderr] --> src/z80/mmu.rs:146:13 [INFO] [stderr] | [INFO] [stderr] 146 | 0x00FF ... 0x3FFF => self.rom[addr as usize] = val, [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/z80/ops/add.rs:51:15 [INFO] [stderr] | [INFO] [stderr] 51 | let val = z80.mmu.rb(z80.r.pc) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(z80.mmu.rb(z80.r.pc))` [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/z80/gpu.rs:213:45 [INFO] [stderr] | [INFO] [stderr] 213 | for pixel_x in start_x .. start_x + count as u16 { [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(count)` [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/z80/gpu.rs:216:35 [INFO] [stderr] | [INFO] [stderr] 216 | tile_map = (384 - tile_map as u16) as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(tile_map)` [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/z80/ops/ld.rs:46:25 [INFO] [stderr] | [INFO] [stderr] 46 | z80.mmu.wb(0xFF00 + z80.r.c as u16, z80.r.a); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u16::from(z80.r.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/z80/ops/ld.rs:80:16 [INFO] [stderr] | [INFO] [stderr] 80 | let addr = z80.mmu.rb(z80.r.pc) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(z80.mmu.rb(z80.r.pc))` [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/z80/ops/ld.rs:120:35 [INFO] [stderr] | [INFO] [stderr] 120 | z80.r.a = z80.mmu.rb(0xFF00 + z80.r.c as u16); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u16::from(z80.r.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/z80/ops/ld.rs:132:35 [INFO] [stderr] | [INFO] [stderr] 132 | z80.r.a = z80.mmu.rb(0xFF00 | addr as u16); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(addr)` [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/z80/gpu.rs:233:26 [INFO] [stderr] | [INFO] [stderr] 233 | let fifo_start = self.scx as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(self.scx)` [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/z80/gpu.rs:248:34 [INFO] [stderr] | [INFO] [stderr] 248 | let fifo_start = (x + self.scx + 8) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(x + self.scx + 8)` [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 `sprite_num` is used to index `sprites` [INFO] [stderr] --> src/z80/gpu.rs:251:31 [INFO] [stderr] | [INFO] [stderr] 251 | for sprite_num in 0 .. sprites.len() { [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] 251 | for (sprite_num, ) in sprites.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/z80/gpu.rs:279:26 [INFO] [stderr] | [INFO] [stderr] 279 | self.screen[((self.ly as u32) * 160 + (x as u32)) as usize] = self.translate_bg_color(pixel); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(self.ly)` [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/z80/gpu.rs:279:51 [INFO] [stderr] | [INFO] [stderr] 279 | self.screen[((self.ly as u32) * 160 + (x as u32)) as usize] = self.translate_bg_color(pixel); [INFO] [stderr] | ^^^^^^^^^^ help: try: `u32::from(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: bit mask could be simplified with a call to `trailing_zeros` [INFO] [stderr] --> src/z80/ops/misc.rs:168:26 [INFO] [stderr] | [INFO] [stderr] 168 | z80.r.set_half_carry((val & 0xF) == 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `val.trailing_zeros() >= 4` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::verbose_bit_mask)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#verbose_bit_mask [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/z80/ops/adc.rs:27:8 [INFO] [stderr] | [INFO] [stderr] 27 | if (val as u16) + (z80.r.a as u16) + (z80.r.get_carry() as u16) > 0xFF { [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(val)` [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/z80/ops/adc.rs:27:23 [INFO] [stderr] | [INFO] [stderr] 27 | if (val as u16) + (z80.r.a as u16) + (z80.r.get_carry() as u16) > 0xFF { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u16::from(z80.r.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 u16 may become silently lossy if types change [INFO] [stderr] --> src/z80/ops/adc.rs:27:42 [INFO] [stderr] | [INFO] [stderr] 27 | if (val as u16) + (z80.r.a as u16) + (z80.r.get_carry() as u16) > 0xFF { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(z80.r.get_carry())` [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/z80/ops/jump.rs:23:25 [INFO] [stderr] | [INFO] [stderr] 23 | z80.r.pc -= (255 - i + 1) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(255 - i + 1)` [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/z80/ops/jump.rs:25:25 [INFO] [stderr] | [INFO] [stderr] 25 | z80.r.pc += i as u16; [INFO] [stderr] | ^^^^^^^^ help: try: `u16::from(i)` [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] error: incompatible bit mask: `_ & 240` can never be equal to `1` [INFO] [stderr] --> src/z80/ops/rotate.rs:20:8 [INFO] [stderr] | [INFO] [stderr] 20 | if op & 0xF0 != 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::bad_bit_mask)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bad_bit_mask [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/z80/ops/rotate.rs:65:5 [INFO] [stderr] | [INFO] [stderr] 65 | val = val >> 1; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `val >>= 1` [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] error: incompatible bit mask: `_ & 240` can never be equal to `1` [INFO] [stderr] --> src/z80/ops/rotate.rs:66:8 [INFO] [stderr] | [INFO] [stderr] 66 | if op & 0xF0 != 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bad_bit_mask [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/z80/mod.rs:94:12 [INFO] [stderr] | [INFO] [stderr] 94 | if self.r.ime == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.r.ime` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/z80/registers.rs:55:10 [INFO] [stderr] | [INFO] [stderr] 55 | ((self.h as u16) << 8) + (self.l as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(self.h)` [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/z80/registers.rs:55:34 [INFO] [stderr] | [INFO] [stderr] 55 | ((self.h as u16) << 8) + (self.l as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(self.l)` [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/z80/mod.rs:178:50 [INFO] [stderr] | [INFO] [stderr] 178 | self.clock.m = self.clock.m.wrapping_add(self.r.m as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(self.r.m)` [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/z80/mod.rs:179:50 [INFO] [stderr] | [INFO] [stderr] 179 | self.clock.t = self.clock.t.wrapping_add(self.r.t as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(self.r.t)` [INFO] [stderr] | [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/z80/registers.rs:59:10 [INFO] [stderr] | [INFO] [stderr] 59 | ((self.b as u16) << 8) + (self.c as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(self.b)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [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] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/z80/registers.rs:59:34 [INFO] [stderr] | [INFO] [stderr] 59 | ((self.b as u16) << 8) + (self.c as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(self.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/z80/registers.rs:63:10 [INFO] [stderr] | [INFO] [stderr] 63 | ((self.d as u16) << 8) + (self.e as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(self.d)` [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/z80/registers.rs:63:34 [INFO] [stderr] | [INFO] [stderr] 63 | ((self.d as u16) << 8) + (self.e as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(self.e)` [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/z80/registers.rs:67:10 [INFO] [stderr] | [INFO] [stderr] 67 | ((self.a as u16) << 8) + (self.f as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(self.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 u16 may become silently lossy if types change [INFO] [stderr] --> src/z80/registers.rs:67:34 [INFO] [stderr] | [INFO] [stderr] 67 | ((self.a as u16) << 8) + (self.f as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(self.f)` [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 if-then-else expression returns a bool literal [INFO] [stderr] --> src/z80/gpu.rs:33:40 [INFO] [stderr] | [INFO] [stderr] 33 | self.lcd_enable = if val & 0x80 != 0 { true } else { false }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `val & 0x80 != 0` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/z80/gpu.rs:34:40 [INFO] [stderr] | [INFO] [stderr] 34 | self.window_tile_map_address = if val & 0x40 != 0 { true } else { false }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `val & 0x40 != 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/z80/gpu.rs:35:40 [INFO] [stderr] | [INFO] [stderr] 35 | self.window_enable = if val & 0x20 != 0 { true } else { false }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `val & 0x20 != 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/z80/gpu.rs:36:40 [INFO] [stderr] | [INFO] [stderr] 36 | self.bg_window_tile_data = if val & 0x10 != 0 { true } else { false }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `val & 0x10 != 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/z80/gpu.rs:37:40 [INFO] [stderr] | [INFO] [stderr] 37 | self.bg_tile_map_address = if val & 0x08 != 0 { true } else { false }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `val & 0x08 != 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/z80/gpu.rs:38:40 [INFO] [stderr] | [INFO] [stderr] 38 | self.obj_size = if val & 0x04 != 0 { true } else { false }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `val & 0x04 != 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/z80/gpu.rs:39:40 [INFO] [stderr] | [INFO] [stderr] 39 | self.obj_enable = if val & 0x02 != 0 { true } else { false }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `val & 0x02 != 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/z80/gpu.rs:40:40 [INFO] [stderr] | [INFO] [stderr] 40 | self.bg_enable = if val & 0x01 != 0 { true } else { false }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `val & 0x01 != 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/z80/gpu.rs:71:41 [INFO] [stderr] | [INFO] [stderr] 71 | self.ly_interrupt = if val & 0x40 != 0 { true } else { false }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `val & 0x40 != 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/z80/gpu.rs:72:41 [INFO] [stderr] | [INFO] [stderr] 72 | self.mode_2_oam_interrupt = if val & 0x20 != 0 { true } else { false }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `val & 0x20 != 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/z80/gpu.rs:73:41 [INFO] [stderr] | [INFO] [stderr] 73 | self.mode_1_vblank_interrupt = if val & 0x10 != 0 { true } else { false }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `val & 0x10 != 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/z80/gpu.rs:74:41 [INFO] [stderr] | [INFO] [stderr] 74 | self.mode_0_hblank_interrupt = if val & 0x08 != 0 { true } else { false }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `val & 0x08 != 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/z80/gpu.rs:75:41 [INFO] [stderr] | [INFO] [stderr] 75 | self.ly_flag = if val & 0x04 != 0 { true } else { false }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `val & 0x04 != 0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/z80/gpu.rs:213:45 [INFO] [stderr] | [INFO] [stderr] 213 | for pixel_x in start_x .. start_x + count as u16 { [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u16::from(count)` [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/z80/gpu.rs:216:35 [INFO] [stderr] | [INFO] [stderr] 216 | tile_map = (384 - tile_map as u16) as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(tile_map)` [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/z80/gpu.rs:233:26 [INFO] [stderr] | [INFO] [stderr] 233 | let fifo_start = self.scx as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(self.scx)` [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/z80/gpu.rs:248:34 [INFO] [stderr] | [INFO] [stderr] 248 | let fifo_start = (x + self.scx + 8) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(x + self.scx + 8)` [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 `sprite_num` is used to index `sprites` [INFO] [stderr] --> src/z80/gpu.rs:251:31 [INFO] [stderr] | [INFO] [stderr] 251 | for sprite_num in 0 .. sprites.len() { [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] 251 | for (sprite_num, ) in sprites.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/z80/gpu.rs:279:26 [INFO] [stderr] | [INFO] [stderr] 279 | self.screen[((self.ly as u32) * 160 + (x as u32)) as usize] = self.translate_bg_color(pixel); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(self.ly)` [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/z80/gpu.rs:279:51 [INFO] [stderr] | [INFO] [stderr] 279 | self.screen[((self.ly as u32) * 160 + (x as u32)) as usize] = self.translate_bg_color(pixel); [INFO] [stderr] | ^^^^^^^^^^ help: try: `u32::from(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 u16 may become silently lossy if types change [INFO] [stderr] --> src/debugger/simple_debug.rs:36:26 [INFO] [stderr] | [INFO] [stderr] 36 | let mut opcode = z80.mmu.rb(z80.r.pc) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(z80.mmu.rb(z80.r.pc))` [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/debugger/simple_debug.rs:38:38 [INFO] [stderr] | [INFO] [stderr] 38 | opcode = (opcode << 8) + z80.mmu.rb(z80.r.pc + 1) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(z80.mmu.rb(z80.r.pc + 1))` [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 function has a cyclomatic complexity of 27 [INFO] [stderr] --> src/debugger/simple_debug.rs:108:5 [INFO] [stderr] | [INFO] [stderr] 108 | / pub fn step(&mut self, z80: &mut z80::Z80) { [INFO] [stderr] 109 | | // if z80.count > 35260 { [INFO] [stderr] 110 | | // self.enable(z80); [INFO] [stderr] 111 | | // } [INFO] [stderr] ... | [INFO] [stderr] 204 | | } [INFO] [stderr] 205 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/debugger/simple_debug.rs:160:40 [INFO] [stderr] | [INFO] [stderr] 160 | let split = line.split(" ").collect::>(); [INFO] [stderr] | ^^^ help: try using a char instead: `' '` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: the loop variable `point` is only used to index `split`. [INFO] [stderr] --> src/debugger/simple_debug.rs:163:38 [INFO] [stderr] | [INFO] [stderr] 163 | for point in 1 .. split.len() { [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] 163 | for in split.iter().skip(1) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/z80/mod.rs:94:12 [INFO] [stderr] | [INFO] [stderr] 94 | if self.r.ime == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.r.ime` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: the loop variable `point` is only used to index `split`. [INFO] [stderr] --> src/debugger/simple_debug.rs:177:38 [INFO] [stderr] | [INFO] [stderr] 177 | for point in 1 .. split.len() { [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] 177 | for in split.iter().skip(1) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `point` is only used to index `split`. [INFO] [stderr] --> src/debugger/simple_debug.rs:191:38 [INFO] [stderr] | [INFO] [stderr] 191 | for point in 1 .. split.len() { [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] 191 | for in split.iter().skip(1) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/z80/mod.rs:178:50 [INFO] [stderr] | [INFO] [stderr] 178 | self.clock.m = self.clock.m.wrapping_add(self.r.m as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(self.r.m)` [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/z80/mod.rs:179:50 [INFO] [stderr] | [INFO] [stderr] 179 | self.clock.t = self.clock.t.wrapping_add(self.r.t as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u32::from(self.r.t)` [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: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/main.rs:81:9 [INFO] [stderr] | [INFO] [stderr] 81 | window.get_keys().map(|keys| { [INFO] [stderr] | _________^ [INFO] [stderr] | |_________| [INFO] [stderr] | || [INFO] [stderr] 82 | || for t in keys { [INFO] [stderr] 83 | || match t { [INFO] [stderr] 84 | || Key::Up => core.mmu.keys[1] &= 0b1011, [INFO] [stderr] ... || [INFO] [stderr] 95 | || } [INFO] [stderr] 96 | || }); [INFO] [stderr] | ||__________^- help: try this: `if let Some(keys) = window.get_keys() { ... }` [INFO] [stderr] | |___________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `gbmu`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/debugger/simple_debug.rs:36:26 [INFO] [stderr] | [INFO] [stderr] 36 | let mut opcode = z80.mmu.rb(z80.r.pc) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(z80.mmu.rb(z80.r.pc))` [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/debugger/simple_debug.rs:38:38 [INFO] [stderr] | [INFO] [stderr] 38 | opcode = (opcode << 8) + z80.mmu.rb(z80.r.pc + 1) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(z80.mmu.rb(z80.r.pc + 1))` [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 function has a cyclomatic complexity of 27 [INFO] [stderr] --> src/debugger/simple_debug.rs:108:5 [INFO] [stderr] | [INFO] [stderr] 108 | / pub fn step(&mut self, z80: &mut z80::Z80) { [INFO] [stderr] 109 | | // if z80.count > 35260 { [INFO] [stderr] 110 | | // self.enable(z80); [INFO] [stderr] 111 | | // } [INFO] [stderr] ... | [INFO] [stderr] 204 | | } [INFO] [stderr] 205 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/debugger/simple_debug.rs:160:40 [INFO] [stderr] | [INFO] [stderr] 160 | let split = line.split(" ").collect::>(); [INFO] [stderr] | ^^^ help: try using a char instead: `' '` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: the loop variable `point` is only used to index `split`. [INFO] [stderr] --> src/debugger/simple_debug.rs:163:38 [INFO] [stderr] | [INFO] [stderr] 163 | for point in 1 .. split.len() { [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] 163 | for in split.iter().skip(1) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `point` is only used to index `split`. [INFO] [stderr] --> src/debugger/simple_debug.rs:177:38 [INFO] [stderr] | [INFO] [stderr] 177 | for point in 1 .. split.len() { [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] 177 | for in split.iter().skip(1) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `point` is only used to index `split`. [INFO] [stderr] --> src/debugger/simple_debug.rs:191:38 [INFO] [stderr] | [INFO] [stderr] 191 | for point in 1 .. split.len() { [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] 191 | for in split.iter().skip(1) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/main.rs:81:9 [INFO] [stderr] | [INFO] [stderr] 81 | window.get_keys().map(|keys| { [INFO] [stderr] | _________^ [INFO] [stderr] | |_________| [INFO] [stderr] | || [INFO] [stderr] 82 | || for t in keys { [INFO] [stderr] 83 | || match t { [INFO] [stderr] 84 | || Key::Up => core.mmu.keys[1] &= 0b1011, [INFO] [stderr] ... || [INFO] [stderr] 95 | || } [INFO] [stderr] 96 | || }); [INFO] [stderr] | ||__________^- help: try this: `if let Some(keys) = window.get_keys() { ... }` [INFO] [stderr] | |___________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `gbmu`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "263a304191aa533477f63b58aabda8eedf3f4a7a75f45bdbec8a82f8017d99d8"` [INFO] running `"docker" "rm" "-f" "263a304191aa533477f63b58aabda8eedf3f4a7a75f45bdbec8a82f8017d99d8"` [INFO] [stdout] 263a304191aa533477f63b58aabda8eedf3f4a7a75f45bdbec8a82f8017d99d8