[INFO] cloning repository https://github.com/toms74209200/emgb [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/toms74209200/emgb" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftoms74209200%2Femgb", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftoms74209200%2Femgb'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] d2931f1ea7045bf6a42c2d4321fd98e8fbe0e421 [INFO] linting toms74209200/emgb against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftoms74209200%2Femgb" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/toms74209200/emgb [INFO] finished tweaking git repo https://github.com/toms74209200/emgb [INFO] tweaked toml for git repo https://github.com/toms74209200/emgb written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/toms74209200/emgb on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/toms74209200/emgb already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded wasi v0.14.5+wasi-0.2.4 [INFO] [stderr] Downloaded wasip2 v1.0.0+wasi-0.2.4 [INFO] [stderr] Downloaded sdl2 v0.38.0 [INFO] [stderr] Downloaded sdl2-sys v0.38.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 83c2e1e59214e7aa334d8c3865afa31c5065c5477756fffe20f4106467461273 [INFO] running `Command { std: "docker" "start" "-a" "83c2e1e59214e7aa334d8c3865afa31c5065c5477756fffe20f4106467461273", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "83c2e1e59214e7aa334d8c3865afa31c5065c5477756fffe20f4106467461273", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "83c2e1e59214e7aa334d8c3865afa31c5065c5477756fffe20f4106467461273", kill_on_drop: false }` [INFO] [stdout] 83c2e1e59214e7aa334d8c3865afa31c5065c5477756fffe20f4106467461273 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 6f3371e3c51c3f8ea1fb45feb5c0f406ea7994cea7b0b9ab6ee4b33e200e8184 [INFO] running `Command { std: "docker" "start" "-a" "6f3371e3c51c3f8ea1fb45feb5c0f406ea7994cea7b0b9ab6ee4b33e200e8184", kill_on_drop: false }` [INFO] [stderr] Compiling zerocopy v0.8.27 [INFO] [stderr] Compiling sdl2 v0.38.0 [INFO] [stderr] Checking raw-window-handle v0.6.2 [INFO] [stderr] Compiling cc v1.2.34 [INFO] [stderr] Checking getrandom v0.3.3 [INFO] [stderr] Checking rand_core v0.9.3 [INFO] [stderr] Compiling cmake v0.1.54 [INFO] [stderr] Compiling sdl2-sys v0.38.0 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking rand v0.9.2 [INFO] [stderr] Checking emgb v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: struct `Bootrom` is never constructed [INFO] [stdout] --> src/bootrom.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct Bootrom { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `is_active`, `write`, and `read` are never used [INFO] [stdout] --> src/bootrom.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 5 | impl Bootrom { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 6 | pub fn new(rom: Box<[u8]>) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 9 | pub fn is_active(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 12 | pub fn write(&mut self, _: u16, val: u8) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 15 | pub fn read(&self, addr: u16) -> u8 { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Ctx` is never constructed [INFO] [stdout] --> src/cpu.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Ctx { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Cpu` is never constructed [INFO] [stdout] --> src/cpu.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct Cpu { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `decode` is never used [INFO] [stdout] --> src/decode.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 5 | impl cpu::Cpu { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 6 | pub fn decode(&mut self, bus: &mut peripherals::Peripherals) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `fetch` is never used [INFO] [stdout] --> src/fetch.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 4 | impl cpu::Cpu { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 5 | pub fn fetch(&mut self, bus: &peripherals::Peripherals) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `HRam` is never constructed [INFO] [stdout] --> src/hram.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct HRam(Box<[u8; 0x80]>); [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `read`, and `write` are never used [INFO] [stdout] --> src/hram.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 2 | impl HRam { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 3 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 6 | pub fn read(&self, addr: u16) -> u8 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 9 | pub fn write(&mut self, addr: u16, val: u8) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/instructions.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 5 | impl cpu::Cpu { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] 6 | pub fn nop(&mut self, bus: &mut peripherals::Peripherals) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 9 | pub fn ld(&mut self, bus: &mut peripherals::Peripherals, dst: D, src: S) [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn ld16(&mut self, bus: &mut peripherals::Peripherals, dst: D, src: S) [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn cp(&mut self, bus: &peripherals::Peripherals, src: S) [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 81 | pub fn inc(&mut self, bus: &mut peripherals::Peripherals, src: S) [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | pub fn inc16(&mut self, bus: &mut peripherals::Peripherals, src: S) [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn dec(&mut self, bus: &mut peripherals::Peripherals, src: S) [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 170 | pub fn dec16(&mut self, bus: &mut peripherals::Peripherals, src: S) [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 199 | pub fn rl(&mut self, bus: &mut peripherals::Peripherals, src: S) [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 230 | pub fn bit(&mut self, bus: &peripherals::Peripherals, bit: u8, src: S) [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 242 | pub fn push16(&mut self, bus: &mut peripherals::Peripherals, val: u16) -> Option<()> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 273 | pub fn push(&mut self, bus: &mut peripherals::Peripherals, src: Reg16) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 299 | pub fn pop16(&mut self, bus: &peripherals::Peripherals) -> Option { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 327 | pub fn pop(&mut self, bus: &mut peripherals::Peripherals, dst: Reg16) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 333 | pub fn jr(&mut self, bus: &peripherals::Peripherals) { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 349 | fn cond(&self, cond: operand::Cond) -> bool { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 357 | pub fn jr_c(&mut self, bus: &peripherals::Peripherals, c: operand::Cond) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 376 | pub fn call(&mut self, bus: &mut peripherals::Peripherals) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 396 | pub fn ret(&mut self, bus: &peripherals::Peripherals) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `IO8` is never used [INFO] [stdout] --> src/operand.rs:4:11 [INFO] [stdout] | [INFO] [stdout] 4 | pub trait IO8 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `IO16` is never used [INFO] [stdout] --> src/operand.rs:217:11 [INFO] [stdout] | [INFO] [stdout] 217 | pub trait IO16 { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Reg8` is never used [INFO] [stdout] --> src/operand.rs:328:10 [INFO] [stdout] | [INFO] [stdout] 328 | pub enum Reg8 { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Reg16` is never used [INFO] [stdout] --> src/operand.rs:338:10 [INFO] [stdout] | [INFO] [stdout] 338 | pub enum Reg16 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Imm8` is never constructed [INFO] [stdout] --> src/operand.rs:346:12 [INFO] [stdout] | [INFO] [stdout] 346 | pub struct Imm8; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Imm16` is never constructed [INFO] [stdout] --> src/operand.rs:348:12 [INFO] [stdout] | [INFO] [stdout] 348 | pub struct Imm16; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Indirect` is never used [INFO] [stdout] --> src/operand.rs:350:10 [INFO] [stdout] | [INFO] [stdout] 350 | pub enum Indirect { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Direct8` is never used [INFO] [stdout] --> src/operand.rs:359:10 [INFO] [stdout] | [INFO] [stdout] 359 | pub enum Direct8 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Direct16` is never constructed [INFO] [stdout] --> src/operand.rs:364:12 [INFO] [stdout] | [INFO] [stdout] 364 | pub struct Direct16; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Cond` is never used [INFO] [stdout] --> src/operand.rs:366:10 [INFO] [stdout] | [INFO] [stdout] 366 | pub enum Cond { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Peripherals` is never constructed [INFO] [stdout] --> src/peripherals.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Peripherals { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `read`, and `write` are never used [INFO] [stdout] --> src/peripherals.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 10 | impl Peripherals { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 11 | pub fn new(bootrom: bootrom::Bootrom) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | pub fn read(&self, addr: u16) -> u8 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn write(&mut self, addr: u16, val: u8) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Registers` is never constructed [INFO] [stdout] --> src/registers.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct Registers { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/registers.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl Registers { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] 16 | pub fn af(&self) -> u16 { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 19 | pub fn bc(&self) -> u16 { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn de(&self) -> u16 { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 25 | pub fn hl(&self) -> u16 { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 29 | pub fn write_af(&mut self, val: u16) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn write_bc(&mut self, val: u16) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | pub fn write_de(&mut self, val: u16) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn write_hl(&mut self, val: u16) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub fn zf(&self) -> bool { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 49 | pub fn nf(&self) -> bool { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 52 | pub fn hf(&self) -> bool { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn cf(&self) -> bool { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn set_zf(&mut self, zf: bool) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 66 | pub fn set_nf(&mut self, nf: bool) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 73 | pub fn set_hf(&mut self, hf: bool) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn set_cf(&mut self, cf: bool) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WRam` is never constructed [INFO] [stdout] --> src/wram.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct WRam(Box<[u8; 0x80]>); [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `read`, and `write` are never used [INFO] [stdout] --> src/wram.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 3 | impl WRam { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 4 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 7 | pub fn read(&self, addr: u16) -> u8 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 10 | pub fn write(&mut self, addr: u16, val: u8) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/instructions.rs:256:17 [INFO] [stdout] | [INFO] [stdout] 256 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 256 - return None; [INFO] [stdout] 256 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/instructions.rs:265:17 [INFO] [stdout] | [INFO] [stdout] 265 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 265 - return None; [INFO] [stdout] 265 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/instructions.rs:268:17 [INFO] [stdout] | [INFO] [stdout] 268 | return Some(STEP.store(0, std::sync::atomic::Ordering::Relaxed)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 268 - return Some(STEP.store(0, std::sync::atomic::Ordering::Relaxed)); [INFO] [stdout] 268 + Some(STEP.store(0, std::sync::atomic::Ordering::Relaxed)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/instructions.rs:268:24 [INFO] [stdout] | [INFO] [stdout] 268 | return Some(STEP.store(0, std::sync::atomic::Ordering::Relaxed)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] = note: `#[warn(clippy::unit_arg)]` on by default [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 268 ~ return { [INFO] [stdout] 269 + STEP.store(0, std::sync::atomic::Ordering::Relaxed); [INFO] [stdout] 270 + Some(()) [INFO] [stdout] 271 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/instructions.rs:322:17 [INFO] [stdout] | [INFO] [stdout] 322 | return Some(VAL16.load(std::sync::atomic::Ordering::Relaxed)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 322 - return Some(VAL16.load(std::sync::atomic::Ordering::Relaxed)); [INFO] [stdout] 322 + Some(VAL16.load(std::sync::atomic::Ordering::Relaxed)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/instructions.rs:339:21 [INFO] [stdout] | [INFO] [stdout] 339 | return STEP.store(1, std::sync::atomic::Ordering::Relaxed); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 339 - return STEP.store(1, std::sync::atomic::Ordering::Relaxed); [INFO] [stdout] 339 + STEP.store(1, std::sync::atomic::Ordering::Relaxed) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/instructions.rs:365:25 [INFO] [stdout] | [INFO] [stdout] 365 | return; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 364 - self.regs.pc = self.regs.pc.wrapping_add(v as i8 as u16); [INFO] [stdout] 365 - return; [INFO] [stdout] 364 + self.regs.pc = self.regs.pc.wrapping_add(v as i8 as u16); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/instructions.rs:402:21 [INFO] [stdout] | [INFO] [stdout] 402 | return STEP.store(1, std::sync::atomic::Ordering::Relaxed); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 402 - return STEP.store(1, std::sync::atomic::Ordering::Relaxed); [INFO] [stdout] 402 + STEP.store(1, std::sync::atomic::Ordering::Relaxed) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/operand.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | / Some(match dst { [INFO] [stdout] 22 | | Reg8::A => self.regs.a = val, [INFO] [stdout] 23 | | Reg8::B => self.regs.b = val, [INFO] [stdout] 24 | | Reg8::C => self.regs.c = val, [INFO] [stdout] ... | [INFO] [stdout] 28 | | Reg8::L => self.regs.l = val, [INFO] [stdout] 29 | | }) [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 21 ~ let _: () = match dst { [INFO] [stdout] 22 + Reg8::A => self.regs.a = val, [INFO] [stdout] 23 + Reg8::B => self.regs.b = val, [INFO] [stdout] 24 + Reg8::C => self.regs.c = val, [INFO] [stdout] 25 + Reg8::D => self.regs.d = val, [INFO] [stdout] 26 + Reg8::E => self.regs.e = val, [INFO] [stdout] 27 + Reg8::H => self.regs.h = val, [INFO] [stdout] 28 + Reg8::L => self.regs.l = val, [INFO] [stdout] 29 + }; [INFO] [stdout] 30 + Some(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/operand.rs:211:18 [INFO] [stdout] | [INFO] [stdout] 211 | 4 => Some(STEP.store(0, std::sync::atomic::Ordering::Relaxed)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 211 ~ 4 => { [INFO] [stdout] 212 + STEP.store(0, std::sync::atomic::Ordering::Relaxed); [INFO] [stdout] 213 + Some(()) [INFO] [stdout] 214 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/operand.rs:232:9 [INFO] [stdout] | [INFO] [stdout] 232 | / Some(match dst { [INFO] [stdout] 233 | | Reg16::AF => self.regs.write_af(val), [INFO] [stdout] 234 | | Reg16::BC => self.regs.write_bc(val), [INFO] [stdout] 235 | | Reg16::DE => self.regs.write_de(val), [INFO] [stdout] 236 | | Reg16::HL => self.regs.write_hl(val), [INFO] [stdout] 237 | | Reg16::SP => self.regs.sp = val, [INFO] [stdout] 238 | | }) [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 232 ~ let _: () = match dst { [INFO] [stdout] 233 + Reg16::AF => self.regs.write_af(val), [INFO] [stdout] 234 + Reg16::BC => self.regs.write_bc(val), [INFO] [stdout] 235 + Reg16::DE => self.regs.write_de(val), [INFO] [stdout] 236 + Reg16::HL => self.regs.write_hl(val), [INFO] [stdout] 237 + Reg16::SP => self.regs.sp = val, [INFO] [stdout] 238 + }; [INFO] [stdout] 239 + Some(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/operand.rs:321:18 [INFO] [stdout] | [INFO] [stdout] 321 | 4 => Some(STEP.store(0, std::sync::atomic::Ordering::Relaxed)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 321 ~ 4 => { [INFO] [stdout] 322 + STEP.store(0, std::sync::atomic::Ordering::Relaxed); [INFO] [stdout] 323 + Some(()) [INFO] [stdout] 324 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `CFF` contains a capitalized acronym [INFO] [stdout] --> src/operand.rs:354:5 [INFO] [stdout] | [INFO] [stdout] 354 | CFF, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter (notice the capitalization): `Cff` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `HLD` contains a capitalized acronym [INFO] [stdout] --> src/operand.rs:355:5 [INFO] [stdout] | [INFO] [stdout] 355 | HLD, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Hld` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `HLI` contains a capitalized acronym [INFO] [stdout] --> src/operand.rs:356:5 [INFO] [stdout] | [INFO] [stdout] 356 | HLI, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Hli` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `DFE` contains a capitalized acronym [INFO] [stdout] --> src/operand.rs:361:5 [INFO] [stdout] | [INFO] [stdout] 361 | DFE, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Dfe` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/peripherals.rs:21:17 [INFO] [stdout] | [INFO] [stdout] 21 | / if self.bootrom.is_active() { [INFO] [stdout] 22 | | self.bootrom.read(addr) [INFO] [stdout] 23 | | } else { [INFO] [stdout] 24 | | 0xff [INFO] [stdout] 25 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 20 ~ 0x0000..=0x00ff [INFO] [stdout] 21 ~ if self.bootrom.is_active() => { [INFO] [stdout] 22 | self.bootrom.read(addr) [INFO] [stdout] 23 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/peripherals.rs:21:17 [INFO] [stdout] | [INFO] [stdout] 21 | / if self.bootrom.is_active() { [INFO] [stdout] 22 | | self.bootrom.read(addr) [INFO] [stdout] 23 | | } else { [INFO] [stdout] 24 | | 0xff [INFO] [stdout] 25 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 20 ~ 0x0000..=0x00ff [INFO] [stdout] 21 ~ if self.bootrom.is_active() => { [INFO] [stdout] 22 | self.bootrom.read(addr) [INFO] [stdout] 23 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Bootrom` is never constructed [INFO] [stdout] --> src/bootrom.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct Bootrom { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `is_active`, `write`, and `read` are never used [INFO] [stdout] --> src/bootrom.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 5 | impl Bootrom { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 6 | pub fn new(rom: Box<[u8]>) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 9 | pub fn is_active(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 12 | pub fn write(&mut self, _: u16, val: u8) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 15 | pub fn read(&self, addr: u16) -> u8 { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `HRam` is never constructed [INFO] [stdout] --> src/hram.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct HRam(Box<[u8; 0x80]>); [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `read`, and `write` are never used [INFO] [stdout] --> src/hram.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 2 | impl HRam { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 3 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 6 | pub fn read(&self, addr: u16) -> u8 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 9 | pub fn write(&mut self, addr: u16, val: u8) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Peripherals` is never constructed [INFO] [stdout] --> src/peripherals.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Peripherals { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `read`, and `write` are never used [INFO] [stdout] --> src/peripherals.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 10 | impl Peripherals { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 11 | pub fn new(bootrom: bootrom::Bootrom) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | pub fn read(&self, addr: u16) -> u8 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn write(&mut self, addr: u16, val: u8) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WRam` is never constructed [INFO] [stdout] --> src/wram.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct WRam(Box<[u8; 0x80]>); [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `read`, and `write` are never used [INFO] [stdout] --> src/wram.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 3 | impl WRam { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 4 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 7 | pub fn read(&self, addr: u16) -> u8 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 10 | pub fn write(&mut self, addr: u16, val: u8) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/peripherals.rs:21:17 [INFO] [stdout] | [INFO] [stdout] 21 | / if self.bootrom.is_active() { [INFO] [stdout] 22 | | self.bootrom.read(addr) [INFO] [stdout] 23 | | } else { [INFO] [stdout] 24 | | 0xff [INFO] [stdout] 25 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 20 ~ 0x0000..=0x00ff [INFO] [stdout] 21 ~ if self.bootrom.is_active() => { [INFO] [stdout] 22 | self.bootrom.read(addr) [INFO] [stdout] 23 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `BC`, `DE`, `CFF`, `HLD`, and `HLI` are never constructed [INFO] [stdout] --> src/operand.rs:351:5 [INFO] [stdout] | [INFO] [stdout] 350 | pub enum Indirect { [INFO] [stdout] | -------- variants in this enum [INFO] [stdout] 351 | BC, [INFO] [stdout] | ^^ [INFO] [stdout] 352 | DE, [INFO] [stdout] | ^^ [INFO] [stdout] 353 | HL, [INFO] [stdout] 354 | CFF, [INFO] [stdout] | ^^^ [INFO] [stdout] 355 | HLD, [INFO] [stdout] | ^^^ [INFO] [stdout] 356 | HLI, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Indirect` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `DFE` is never constructed [INFO] [stdout] --> src/operand.rs:361:5 [INFO] [stdout] | [INFO] [stdout] 359 | pub enum Direct8 { [INFO] [stdout] | ------- variant in this enum [INFO] [stdout] 360 | D, [INFO] [stdout] 361 | DFE, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Direct8` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Z` is never constructed [INFO] [stdout] --> src/operand.rs:368:5 [INFO] [stdout] | [INFO] [stdout] 366 | pub enum Cond { [INFO] [stdout] | ---- variant in this enum [INFO] [stdout] 367 | NZ, [INFO] [stdout] 368 | Z, [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `Cond` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/fetch.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | assert_eq!(cpu.ctx.cb, false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_assert_comparison)]` on by default [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 32 - assert_eq!(cpu.ctx.cb, false); [INFO] [stdout] 32 + assert!(!cpu.ctx.cb); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/instructions.rs:256:17 [INFO] [stdout] | [INFO] [stdout] 256 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 256 - return None; [INFO] [stdout] 256 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/instructions.rs:265:17 [INFO] [stdout] | [INFO] [stdout] 265 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 265 - return None; [INFO] [stdout] 265 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/instructions.rs:268:17 [INFO] [stdout] | [INFO] [stdout] 268 | return Some(STEP.store(0, std::sync::atomic::Ordering::Relaxed)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 268 - return Some(STEP.store(0, std::sync::atomic::Ordering::Relaxed)); [INFO] [stdout] 268 + Some(STEP.store(0, std::sync::atomic::Ordering::Relaxed)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/instructions.rs:268:24 [INFO] [stdout] | [INFO] [stdout] 268 | return Some(STEP.store(0, std::sync::atomic::Ordering::Relaxed)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] = note: `#[warn(clippy::unit_arg)]` on by default [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 268 ~ return { [INFO] [stdout] 269 + STEP.store(0, std::sync::atomic::Ordering::Relaxed); [INFO] [stdout] 270 + Some(()) [INFO] [stdout] 271 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/instructions.rs:322:17 [INFO] [stdout] | [INFO] [stdout] 322 | return Some(VAL16.load(std::sync::atomic::Ordering::Relaxed)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 322 - return Some(VAL16.load(std::sync::atomic::Ordering::Relaxed)); [INFO] [stdout] 322 + Some(VAL16.load(std::sync::atomic::Ordering::Relaxed)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/instructions.rs:339:21 [INFO] [stdout] | [INFO] [stdout] 339 | return STEP.store(1, std::sync::atomic::Ordering::Relaxed); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 339 - return STEP.store(1, std::sync::atomic::Ordering::Relaxed); [INFO] [stdout] 339 + STEP.store(1, std::sync::atomic::Ordering::Relaxed) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/instructions.rs:365:25 [INFO] [stdout] | [INFO] [stdout] 365 | return; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 364 - self.regs.pc = self.regs.pc.wrapping_add(v as i8 as u16); [INFO] [stdout] 365 - return; [INFO] [stdout] 364 + self.regs.pc = self.regs.pc.wrapping_add(v as i8 as u16); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/instructions.rs:402:21 [INFO] [stdout] | [INFO] [stdout] 402 | return STEP.store(1, std::sync::atomic::Ordering::Relaxed); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 402 - return STEP.store(1, std::sync::atomic::Ordering::Relaxed); [INFO] [stdout] 402 + STEP.store(1, std::sync::atomic::Ordering::Relaxed) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/operand.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | / Some(match dst { [INFO] [stdout] 22 | | Reg8::A => self.regs.a = val, [INFO] [stdout] 23 | | Reg8::B => self.regs.b = val, [INFO] [stdout] 24 | | Reg8::C => self.regs.c = val, [INFO] [stdout] ... | [INFO] [stdout] 28 | | Reg8::L => self.regs.l = val, [INFO] [stdout] 29 | | }) [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 21 ~ let _: () = match dst { [INFO] [stdout] 22 + Reg8::A => self.regs.a = val, [INFO] [stdout] 23 + Reg8::B => self.regs.b = val, [INFO] [stdout] 24 + Reg8::C => self.regs.c = val, [INFO] [stdout] 25 + Reg8::D => self.regs.d = val, [INFO] [stdout] 26 + Reg8::E => self.regs.e = val, [INFO] [stdout] 27 + Reg8::H => self.regs.h = val, [INFO] [stdout] 28 + Reg8::L => self.regs.l = val, [INFO] [stdout] 29 + }; [INFO] [stdout] 30 + Some(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/operand.rs:211:18 [INFO] [stdout] | [INFO] [stdout] 211 | 4 => Some(STEP.store(0, std::sync::atomic::Ordering::Relaxed)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 211 ~ 4 => { [INFO] [stdout] 212 + STEP.store(0, std::sync::atomic::Ordering::Relaxed); [INFO] [stdout] 213 + Some(()) [INFO] [stdout] 214 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/operand.rs:232:9 [INFO] [stdout] | [INFO] [stdout] 232 | / Some(match dst { [INFO] [stdout] 233 | | Reg16::AF => self.regs.write_af(val), [INFO] [stdout] 234 | | Reg16::BC => self.regs.write_bc(val), [INFO] [stdout] 235 | | Reg16::DE => self.regs.write_de(val), [INFO] [stdout] 236 | | Reg16::HL => self.regs.write_hl(val), [INFO] [stdout] 237 | | Reg16::SP => self.regs.sp = val, [INFO] [stdout] 238 | | }) [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 232 ~ let _: () = match dst { [INFO] [stdout] 233 + Reg16::AF => self.regs.write_af(val), [INFO] [stdout] 234 + Reg16::BC => self.regs.write_bc(val), [INFO] [stdout] 235 + Reg16::DE => self.regs.write_de(val), [INFO] [stdout] 236 + Reg16::HL => self.regs.write_hl(val), [INFO] [stdout] 237 + Reg16::SP => self.regs.sp = val, [INFO] [stdout] 238 + }; [INFO] [stdout] 239 + Some(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/operand.rs:321:18 [INFO] [stdout] | [INFO] [stdout] 321 | 4 => Some(STEP.store(0, std::sync::atomic::Ordering::Relaxed)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 321 ~ 4 => { [INFO] [stdout] 322 + STEP.store(0, std::sync::atomic::Ordering::Relaxed); [INFO] [stdout] 323 + Some(()) [INFO] [stdout] 324 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `CFF` contains a capitalized acronym [INFO] [stdout] --> src/operand.rs:354:5 [INFO] [stdout] | [INFO] [stdout] 354 | CFF, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter (notice the capitalization): `Cff` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `HLD` contains a capitalized acronym [INFO] [stdout] --> src/operand.rs:355:5 [INFO] [stdout] | [INFO] [stdout] 355 | HLD, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Hld` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `HLI` contains a capitalized acronym [INFO] [stdout] --> src/operand.rs:356:5 [INFO] [stdout] | [INFO] [stdout] 356 | HLI, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Hli` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `DFE` contains a capitalized acronym [INFO] [stdout] --> src/operand.rs:361:5 [INFO] [stdout] | [INFO] [stdout] 361 | DFE, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Dfe` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/peripherals.rs:21:17 [INFO] [stdout] | [INFO] [stdout] 21 | / if self.bootrom.is_active() { [INFO] [stdout] 22 | | self.bootrom.read(addr) [INFO] [stdout] 23 | | } else { [INFO] [stdout] 24 | | 0xff [INFO] [stdout] 25 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 20 ~ 0x0000..=0x00ff [INFO] [stdout] 21 ~ if self.bootrom.is_active() => { [INFO] [stdout] 22 | self.bootrom.read(addr) [INFO] [stdout] 23 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/registers.rs:95:9 [INFO] [stdout] | [INFO] [stdout] 95 | regs.a = 0x5a; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `registers::Registers { a: 0x5a, f: 0xa5, ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/registers.rs:94:9 [INFO] [stdout] | [INFO] [stdout] 94 | let mut regs = Registers::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] = note: `#[warn(clippy::field_reassign_with_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/registers.rs:106:9 [INFO] [stdout] | [INFO] [stdout] 106 | regs.b = 0x5a; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `registers::Registers { b: 0x5a, c: 0xa5, ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/registers.rs:105:9 [INFO] [stdout] | [INFO] [stdout] 105 | let mut regs = Registers::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/registers.rs:117:9 [INFO] [stdout] | [INFO] [stdout] 117 | regs.d = 0x5a; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `registers::Registers { d: 0x5a, e: 0xa5, ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/registers.rs:116:9 [INFO] [stdout] | [INFO] [stdout] 116 | let mut regs = Registers::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/registers.rs:128:9 [INFO] [stdout] | [INFO] [stdout] 128 | regs.h = 0x5a; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `registers::Registers { h: 0x5a, l: 0xa5, ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/registers.rs:127:9 [INFO] [stdout] | [INFO] [stdout] 127 | let mut regs = Registers::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/registers.rs:139:9 [INFO] [stdout] | [INFO] [stdout] 139 | regs.f = 0b_1000_0000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `registers::Registers { f: 0b_1000_0000, ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/registers.rs:138:9 [INFO] [stdout] | [INFO] [stdout] 138 | let mut regs = Registers::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/registers.rs:149:9 [INFO] [stdout] | [INFO] [stdout] 149 | regs.f = 0b_0100_0000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `registers::Registers { f: 0b_0100_0000, ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/registers.rs:148:9 [INFO] [stdout] | [INFO] [stdout] 148 | let mut regs = Registers::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/registers.rs:159:9 [INFO] [stdout] | [INFO] [stdout] 159 | regs.f = 0b_0010_0000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `registers::Registers { f: 0b_0010_0000, ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/registers.rs:158:9 [INFO] [stdout] | [INFO] [stdout] 158 | let mut regs = Registers::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/registers.rs:169:9 [INFO] [stdout] | [INFO] [stdout] 169 | regs.f = 0b_0001_0000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `registers::Registers { f: 0b_0001_0000, ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/registers.rs:168:9 [INFO] [stdout] | [INFO] [stdout] 168 | let mut regs = Registers::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 14s [INFO] running `Command { std: "docker" "inspect" "6f3371e3c51c3f8ea1fb45feb5c0f406ea7994cea7b0b9ab6ee4b33e200e8184", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6f3371e3c51c3f8ea1fb45feb5c0f406ea7994cea7b0b9ab6ee4b33e200e8184", kill_on_drop: false }` [INFO] [stdout] 6f3371e3c51c3f8ea1fb45feb5c0f406ea7994cea7b0b9ab6ee4b33e200e8184