[INFO] cloning repository https://github.com/Cackbone/tamalib-rs [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Cackbone/tamalib-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCackbone%2Ftamalib-rs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCackbone%2Ftamalib-rs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 4488817322f8d4f54e7adc8556b55e544b48f8dc [INFO] linting Cackbone/tamalib-rs against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCackbone%2Ftamalib-rs" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Cackbone/tamalib-rs [INFO] finished tweaking git repo https://github.com/Cackbone/tamalib-rs [INFO] tweaked toml for git repo https://github.com/Cackbone/tamalib-rs written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Cackbone/tamalib-rs 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/Cackbone/tamalib-rs 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] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 74cf001183281ea0e4d2ac4c97456d66325c5daa76915a68b781e75ce77ec55e [INFO] running `Command { std: "docker" "start" "-a" "74cf001183281ea0e4d2ac4c97456d66325c5daa76915a68b781e75ce77ec55e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "74cf001183281ea0e4d2ac4c97456d66325c5daa76915a68b781e75ce77ec55e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "74cf001183281ea0e4d2ac4c97456d66325c5daa76915a68b781e75ce77ec55e", kill_on_drop: false }` [INFO] [stdout] 74cf001183281ea0e4d2ac4c97456d66325c5daa76915a68b781e75ce77ec55e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] b8f13657d56ff5bc1f6a118ad64e9b5caba0ebfbaff28524821542b2c92bf9e2 [INFO] running `Command { std: "docker" "start" "-a" "b8f13657d56ff5bc1f6a118ad64e9b5caba0ebfbaff28524821542b2c92bf9e2", kill_on_drop: false }` [INFO] [stderr] Checking inventory v0.3.20 [INFO] [stderr] Checking tamalib v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: all variants have the same postfix: `Hz` [INFO] [stdout] --> src/cpu/clock.rs:13:1 [INFO] [stdout] | [INFO] [stdout] 13 | / pub enum TimerType { [INFO] [stdout] 14 | | Timer2Hz = 0, [INFO] [stdout] 15 | | Timer4Hz = 1, [INFO] [stdout] 16 | | Timer8Hz = 2, [INFO] [stdout] ... | [INFO] [stdout] 21 | | Timer256Hz = 7 [INFO] [stdout] 22 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: remove the postfixes and use full paths to the variants instead of glob imports [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stdout] = note: `#[warn(clippy::enum_variant_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `Range::contains` implementation [INFO] [stdout] --> src/cpu/mod.rs:244:19 [INFO] [stdout] | [INFO] [stdout] 244 | } else if (addr >= MEM_DISPLAY1_ADDR && addr < MEM_DISPLAY1_ADDR + MEM_DISPLAY1_SIZE) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(MEM_DISPLAY1_ADDR..MEM_DISPLAY1_ADDR + MEM_DISPLAY1_SIZE).contains(&addr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `Range::contains` implementation [INFO] [stdout] --> src/cpu/mod.rs:245:16 [INFO] [stdout] | [INFO] [stdout] 245 | || (addr >= MEM_DISPLAY2_ADDR && addr < MEM_DISPLAY2_ADDR + MEM_DISPLAY2_SIZE) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(MEM_DISPLAY2_ADDR..MEM_DISPLAY2_ADDR + MEM_DISPLAY2_SIZE).contains(&addr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `Range::contains` implementation [INFO] [stdout] --> src/cpu/mod.rs:249:19 [INFO] [stdout] | [INFO] [stdout] 249 | } else if addr >= MEM_IO_ADDR && addr < MEM_IO_ADDR + MEM_IO_SIZE { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(MEM_IO_ADDR..MEM_IO_ADDR + MEM_IO_SIZE).contains(&addr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `Range::contains` implementation [INFO] [stdout] --> src/cpu/mod.rs:268:16 [INFO] [stdout] | [INFO] [stdout] 268 | || (addr >= MEM_DISPLAY1_ADDR && addr < MEM_DISPLAY1_ADDR + MEM_DISPLAY1_SIZE) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(MEM_DISPLAY1_ADDR..MEM_DISPLAY1_ADDR + MEM_DISPLAY1_SIZE).contains(&addr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `Range::contains` implementation [INFO] [stdout] --> src/cpu/mod.rs:269:16 [INFO] [stdout] | [INFO] [stdout] 269 | || (addr >= MEM_DISPLAY2_ADDR && addr < MEM_DISPLAY2_ADDR + MEM_DISPLAY2_SIZE) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(MEM_DISPLAY2_ADDR..MEM_DISPLAY2_ADDR + MEM_DISPLAY2_SIZE).contains(&addr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `Range::contains` implementation [INFO] [stdout] --> src/cpu/mod.rs:272:19 [INFO] [stdout] | [INFO] [stdout] 272 | } else if addr >= MEM_IO_ADDR && addr < (MEM_IO_ADDR + MEM_IO_SIZE) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(MEM_IO_ADDR..(MEM_IO_ADDR + MEM_IO_SIZE)).contains(&addr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/cpu/mod.rs:319:42 [INFO] [stdout] | [INFO] [stdout] 319 | if (value & 0x8) != 0 && !(self.clock.cpu_freq == clock::OSC3_FREQUENCY) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(self.clock.cpu_freq != clock::OSC3_FREQUENCY)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/cpu/mod.rs:322:49 [INFO] [stdout] | [INFO] [stdout] 322 | } else if (value & 0x8) == 0 && !(self.clock.cpu_freq == clock::OSC1_FREQUENCY) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(self.clock.cpu_freq != clock::OSC1_FREQUENCY)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/cpu/mod.rs:438:21 [INFO] [stdout] | [INFO] [stdout] 438 | / if value != ((self.memory[IORegister::K00K03InputRelation as usize] >> (pin as usize & 0x3) & 0x1) != 0) [INFO] [stdout] 439 | | { [INFO] [stdout] 440 | | self.generate_interrupt(InterruptId::K00K03, pin as u8 & 0x3); [INFO] [stdout] 441 | | } [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] 437 ~ 0 [INFO] [stdout] 438 | if value != ((self.memory[IORegister::K00K03InputRelation as usize] >> (pin as usize & 0x3) & 0x1) != 0) [INFO] [stdout] 439 ~ => { [INFO] [stdout] 440 | self.generate_interrupt(InterruptId::K00K03, pin as u8 & 0x3); [INFO] [stdout] 441 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: all variants have the same postfix: `Hz` [INFO] [stdout] --> src/cpu/clock.rs:13:1 [INFO] [stdout] | [INFO] [stdout] 13 | / pub enum TimerType { [INFO] [stdout] 14 | | Timer2Hz = 0, [INFO] [stdout] 15 | | Timer4Hz = 1, [INFO] [stdout] 16 | | Timer8Hz = 2, [INFO] [stdout] ... | [INFO] [stdout] 21 | | Timer256Hz = 7 [INFO] [stdout] 22 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: remove the postfixes and use full paths to the variants instead of glob imports [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stdout] = note: `#[warn(clippy::enum_variant_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/cpu/mod.rs:444:21 [INFO] [stdout] | [INFO] [stdout] 444 | / if value == false { [INFO] [stdout] 445 | | self.generate_interrupt(InterruptId::K10K13, pin as u8 & 0x3); [INFO] [stdout] 446 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 443 ~ 1 [INFO] [stdout] 444 ~ if value == false => { [INFO] [stdout] 445 | self.generate_interrupt(InterruptId::K10K13, pin as u8 & 0x3); [INFO] [stdout] 446 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/cpu/mod.rs:444:24 [INFO] [stdout] | [INFO] [stdout] 444 | if value == false { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `!value` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/cpu/mod.rs:533:17 [INFO] [stdout] | [INFO] [stdout] 533 | if ((self.memory[IORegister::ClockTimerData1 as usize] >> 0) & 0x1) == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `self.memory[IORegister::ClockTimerData1 as usize]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] = note: `#[warn(clippy::identity_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/cpu/mod.rs:606:30 [INFO] [stdout] | [INFO] [stdout] 606 | self.set_mem(((self.sp - 1) & 0xff) as usize, self.pcp() as u8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `((self.sp - 1))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/cpu/mod.rs:607:30 [INFO] [stdout] | [INFO] [stdout] 607 | self.set_mem(((self.sp - 2) & 0xff) as usize, self.pcsh() as u8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `((self.sp - 2))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/cpu/mod.rs:608:30 [INFO] [stdout] | [INFO] [stdout] 608 | self.set_mem(((self.sp - 3) & 0xff) as usize, self.pcsl() as u8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `((self.sp - 3))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/cpu/mod.rs:610:27 [INFO] [stdout] | [INFO] [stdout] 610 | self.sp = (self.sp - 3) & 0xff; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `((self.sp - 3))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/cpu/mod.rs:632:40 [INFO] [stdout] | [INFO] [stdout] 632 | state.push_str(&" ".repeat(self.call_depth as usize)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.call_depth` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/cpu/mod.rs:640:45 [INFO] [stdout] | [INFO] [stdout] 640 | state.push_str(&" ".repeat(10 - self.call_depth as usize)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.call_depth` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/cpu/mod.rs:696:9 [INFO] [stdout] | [INFO] [stdout] 696 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 696 - return false; [INFO] [stdout] 696 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/cpu/mod.rs:775:16 [INFO] [stdout] | [INFO] [stdout] 775 | | ((self.pcb() as usize) << 12); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `self.pcb()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `Range::contains` implementation [INFO] [stdout] --> src/cpu/mod.rs:244:19 [INFO] [stdout] | [INFO] [stdout] 244 | } else if (addr >= MEM_DISPLAY1_ADDR && addr < MEM_DISPLAY1_ADDR + MEM_DISPLAY1_SIZE) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(MEM_DISPLAY1_ADDR..MEM_DISPLAY1_ADDR + MEM_DISPLAY1_SIZE).contains(&addr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `Range::contains` implementation [INFO] [stdout] --> src/cpu/mod.rs:245:16 [INFO] [stdout] | [INFO] [stdout] 245 | || (addr >= MEM_DISPLAY2_ADDR && addr < MEM_DISPLAY2_ADDR + MEM_DISPLAY2_SIZE) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(MEM_DISPLAY2_ADDR..MEM_DISPLAY2_ADDR + MEM_DISPLAY2_SIZE).contains(&addr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `Range::contains` implementation [INFO] [stdout] --> src/cpu/mod.rs:249:19 [INFO] [stdout] | [INFO] [stdout] 249 | } else if addr >= MEM_IO_ADDR && addr < MEM_IO_ADDR + MEM_IO_SIZE { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(MEM_IO_ADDR..MEM_IO_ADDR + MEM_IO_SIZE).contains(&addr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/cpu/mod.rs:787:16 [INFO] [stdout] | [INFO] [stdout] 787 | | ((self.pcb() as usize) << 12); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `self.pcb()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/cpu/mod.rs:801:16 [INFO] [stdout] | [INFO] [stdout] 801 | | ((self.pcb() as usize) << 12); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `self.pcb()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `Range::contains` implementation [INFO] [stdout] --> src/cpu/mod.rs:268:16 [INFO] [stdout] | [INFO] [stdout] 268 | || (addr >= MEM_DISPLAY1_ADDR && addr < MEM_DISPLAY1_ADDR + MEM_DISPLAY1_SIZE) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(MEM_DISPLAY1_ADDR..MEM_DISPLAY1_ADDR + MEM_DISPLAY1_SIZE).contains(&addr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `Range::contains` implementation [INFO] [stdout] --> src/cpu/mod.rs:269:16 [INFO] [stdout] | [INFO] [stdout] 269 | || (addr >= MEM_DISPLAY2_ADDR && addr < MEM_DISPLAY2_ADDR + MEM_DISPLAY2_SIZE) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(MEM_DISPLAY2_ADDR..MEM_DISPLAY2_ADDR + MEM_DISPLAY2_SIZE).contains(&addr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `Range::contains` implementation [INFO] [stdout] --> src/cpu/mod.rs:272:19 [INFO] [stdout] | [INFO] [stdout] 272 | } else if addr >= MEM_IO_ADDR && addr < (MEM_IO_ADDR + MEM_IO_SIZE) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(MEM_IO_ADDR..(MEM_IO_ADDR + MEM_IO_SIZE)).contains(&addr)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/cpu/mod.rs:319:42 [INFO] [stdout] | [INFO] [stdout] 319 | if (value & 0x8) != 0 && !(self.clock.cpu_freq == clock::OSC3_FREQUENCY) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(self.clock.cpu_freq != clock::OSC3_FREQUENCY)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/cpu/mod.rs:322:49 [INFO] [stdout] | [INFO] [stdout] 322 | } else if (value & 0x8) == 0 && !(self.clock.cpu_freq == clock::OSC1_FREQUENCY) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(self.clock.cpu_freq != clock::OSC1_FREQUENCY)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/cpu/mod.rs:908:19 [INFO] [stdout] | [INFO] [stdout] 908 | let tmp = self.xh() as u16 + arg1 as u16 + (self.flags.get(Flag::C) as u8) as u16; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `self.xh()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/cpu/mod.rs:909:31 [INFO] [stdout] | [INFO] [stdout] 909 | self.x = self.xl() | (((tmp & 0xf) as u16) << 4) | (self.xp() << 8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `((tmp & 0xf))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/cpu/mod.rs:916:19 [INFO] [stdout] | [INFO] [stdout] 916 | let tmp = self.xl() as u16 + arg1 as u16 + (self.flags.get(Flag::C) as u8) as u16; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `self.xl()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/cpu/mod.rs:917:18 [INFO] [stdout] | [INFO] [stdout] 917 | self.x = ((tmp & 0xf) as u16) | (self.xh() << 4) | (self.xp() << 8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `(tmp & 0xf)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/cpu/mod.rs:924:19 [INFO] [stdout] | [INFO] [stdout] 924 | let tmp = self.yh() as u16 + arg1 as u16 + (self.flags.get(Flag::C) as u8) as u16; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `self.yh()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/cpu/mod.rs:925:31 [INFO] [stdout] | [INFO] [stdout] 925 | self.y = self.yl() | (((tmp & 0xf) as u16) << 4) | (self.yp() << 8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `((tmp & 0xf))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/cpu/mod.rs:932:19 [INFO] [stdout] | [INFO] [stdout] 932 | let tmp = self.yl() as u16 + arg1 as u16 + (self.flags.get(Flag::C) as u8) as u16; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `self.yl()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/cpu/mod.rs:933:18 [INFO] [stdout] | [INFO] [stdout] 933 | self.y = ((tmp & 0xf) as u16) | (self.yh() << 4) | (self.yp() << 8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `(tmp & 0xf)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/cpu/mod.rs:438:21 [INFO] [stdout] | [INFO] [stdout] 438 | / if value != ((self.memory[IORegister::K00K03InputRelation as usize] >> (pin as usize & 0x3) & 0x1) != 0) [INFO] [stdout] 439 | | { [INFO] [stdout] 440 | | self.generate_interrupt(InterruptId::K00K03, pin as u8 & 0x3); [INFO] [stdout] 441 | | } [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] 437 ~ 0 [INFO] [stdout] 438 | if value != ((self.memory[IORegister::K00K03InputRelation as usize] >> (pin as usize & 0x3) & 0x1) != 0) [INFO] [stdout] 439 ~ => { [INFO] [stdout] 440 | self.generate_interrupt(InterruptId::K00K03, pin as u8 & 0x3); [INFO] [stdout] 441 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/cpu/mod.rs:940:33 [INFO] [stdout] | [INFO] [stdout] 940 | self.flags.set(Flag::C, (self.xh() as u16) < (arg1 as u16)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `self.xh()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/cpu/mod.rs:444:21 [INFO] [stdout] | [INFO] [stdout] 444 | / if value == false { [INFO] [stdout] 445 | | self.generate_interrupt(InterruptId::K10K13, pin as u8 & 0x3); [INFO] [stdout] 446 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 443 ~ 1 [INFO] [stdout] 444 ~ if value == false => { [INFO] [stdout] 445 | self.generate_interrupt(InterruptId::K10K13, pin as u8 & 0x3); [INFO] [stdout] 446 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/cpu/mod.rs:941:33 [INFO] [stdout] | [INFO] [stdout] 941 | self.flags.set(Flag::Z, (self.xh() as u16) == (arg1 as u16)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `self.xh()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/cpu/mod.rs:946:33 [INFO] [stdout] | [INFO] [stdout] 946 | self.flags.set(Flag::C, (self.xl() as u16) < (arg1 as u16)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `self.xl()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/cpu/mod.rs:444:24 [INFO] [stdout] | [INFO] [stdout] 444 | if value == false { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `!value` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/cpu/mod.rs:947:33 [INFO] [stdout] | [INFO] [stdout] 947 | self.flags.set(Flag::Z, (self.xl() as u16) == (arg1 as u16)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `self.xl()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/cpu/mod.rs:952:33 [INFO] [stdout] | [INFO] [stdout] 952 | self.flags.set(Flag::C, (self.yh() as u16) < (arg1 as u16)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `self.yh()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/cpu/mod.rs:953:33 [INFO] [stdout] | [INFO] [stdout] 953 | self.flags.set(Flag::Z, (self.yh() as u16) == (arg1 as u16)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `self.yh()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/cpu/mod.rs:958:33 [INFO] [stdout] | [INFO] [stdout] 958 | self.flags.set(Flag::C, (self.yl() as u16) < (arg1 as u16)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `self.yl()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/cpu/mod.rs:959:33 [INFO] [stdout] | [INFO] [stdout] 959 | self.flags.set(Flag::Z, (self.yl() as u16) == (arg1 as u16)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `self.yl()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/cpu/mod.rs:533:17 [INFO] [stdout] | [INFO] [stdout] 533 | if ((self.memory[IORegister::ClockTimerData1 as usize] >> 0) & 0x1) == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `self.memory[IORegister::ClockTimerData1 as usize]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] = note: `#[warn(clippy::identity_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/cpu/mod.rs:606:30 [INFO] [stdout] | [INFO] [stdout] 606 | self.set_mem(((self.sp - 1) & 0xff) as usize, self.pcp() as u8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `((self.sp - 1))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/cpu/mod.rs:607:30 [INFO] [stdout] | [INFO] [stdout] 607 | self.set_mem(((self.sp - 2) & 0xff) as usize, self.pcsh() as u8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `((self.sp - 2))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/cpu/mod.rs:608:30 [INFO] [stdout] | [INFO] [stdout] 608 | self.set_mem(((self.sp - 3) & 0xff) as usize, self.pcsl() as u8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `((self.sp - 3))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/cpu/mod.rs:610:27 [INFO] [stdout] | [INFO] [stdout] 610 | self.sp = (self.sp - 3) & 0xff; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `((self.sp - 3))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/cpu/mod.rs:632:40 [INFO] [stdout] | [INFO] [stdout] 632 | state.push_str(&" ".repeat(self.call_depth as usize)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.call_depth` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stdout] --> src/cpu/mod.rs:1135:40 [INFO] [stdout] | [INFO] [stdout] 1135 | self.set_mem(self.sp as usize, self.flags.0 as u8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `self.flags.0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/cpu/mod.rs:640:45 [INFO] [stdout] | [INFO] [stdout] 640 | state.push_str(&" ".repeat(10 - self.call_depth as usize)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.call_depth` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/cpu/mod.rs:696:9 [INFO] [stdout] | [INFO] [stdout] 696 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 696 - return false; [INFO] [stdout] 696 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/cpu/mod.rs:775:16 [INFO] [stdout] | [INFO] [stdout] 775 | | ((self.pcb() as usize) << 12); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `self.pcb()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/cpu/mod.rs:787:16 [INFO] [stdout] | [INFO] [stdout] 787 | | ((self.pcb() as usize) << 12); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `self.pcb()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/cpu/mod.rs:801:16 [INFO] [stdout] | [INFO] [stdout] 801 | | ((self.pcb() as usize) << 12); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `self.pcb()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/cpu/mod.rs:908:19 [INFO] [stdout] | [INFO] [stdout] 908 | let tmp = self.xh() as u16 + arg1 as u16 + (self.flags.get(Flag::C) as u8) as u16; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `self.xh()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/cpu/mod.rs:909:31 [INFO] [stdout] | [INFO] [stdout] 909 | self.x = self.xl() | (((tmp & 0xf) as u16) << 4) | (self.xp() << 8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `((tmp & 0xf))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/cpu/mod.rs:916:19 [INFO] [stdout] | [INFO] [stdout] 916 | let tmp = self.xl() as u16 + arg1 as u16 + (self.flags.get(Flag::C) as u8) as u16; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `self.xl()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/cpu/mod.rs:917:18 [INFO] [stdout] | [INFO] [stdout] 917 | self.x = ((tmp & 0xf) as u16) | (self.xh() << 4) | (self.xp() << 8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `(tmp & 0xf)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/cpu/mod.rs:924:19 [INFO] [stdout] | [INFO] [stdout] 924 | let tmp = self.yh() as u16 + arg1 as u16 + (self.flags.get(Flag::C) as u8) as u16; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `self.yh()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/cpu/mod.rs:925:31 [INFO] [stdout] | [INFO] [stdout] 925 | self.y = self.yl() | (((tmp & 0xf) as u16) << 4) | (self.yp() << 8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `((tmp & 0xf))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/cpu/mod.rs:932:19 [INFO] [stdout] | [INFO] [stdout] 932 | let tmp = self.yl() as u16 + arg1 as u16 + (self.flags.get(Flag::C) as u8) as u16; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `self.yl()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/cpu/mod.rs:933:18 [INFO] [stdout] | [INFO] [stdout] 933 | self.y = ((tmp & 0xf) as u16) | (self.yh() << 4) | (self.yp() << 8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `(tmp & 0xf)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/cpu/mod.rs:940:33 [INFO] [stdout] | [INFO] [stdout] 940 | self.flags.set(Flag::C, (self.xh() as u16) < (arg1 as u16)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `self.xh()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/cpu/mod.rs:941:33 [INFO] [stdout] | [INFO] [stdout] 941 | self.flags.set(Flag::Z, (self.xh() as u16) == (arg1 as u16)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `self.xh()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/cpu/mod.rs:946:33 [INFO] [stdout] | [INFO] [stdout] 946 | self.flags.set(Flag::C, (self.xl() as u16) < (arg1 as u16)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `self.xl()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/cpu/mod.rs:947:33 [INFO] [stdout] | [INFO] [stdout] 947 | self.flags.set(Flag::Z, (self.xl() as u16) == (arg1 as u16)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `self.xl()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/cpu/mod.rs:952:33 [INFO] [stdout] | [INFO] [stdout] 952 | self.flags.set(Flag::C, (self.yh() as u16) < (arg1 as u16)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `self.yh()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/cpu/mod.rs:953:33 [INFO] [stdout] | [INFO] [stdout] 953 | self.flags.set(Flag::Z, (self.yh() as u16) == (arg1 as u16)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `self.yh()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/cpu/mod.rs:958:33 [INFO] [stdout] | [INFO] [stdout] 958 | self.flags.set(Flag::C, (self.yl() as u16) < (arg1 as u16)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `self.yl()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u16` -> `u16`) [INFO] [stdout] --> src/cpu/mod.rs:959:33 [INFO] [stdout] | [INFO] [stdout] 959 | self.flags.set(Flag::Z, (self.yl() as u16) == (arg1 as u16)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `self.yl()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stdout] --> src/cpu/mod.rs:1491:43 [INFO] [stdout] | [INFO] [stdout] 1491 | self.set_mem(self.x as usize, (tmp & 0xf) as u8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `((tmp & 0xf))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stdout] --> src/cpu/mod.rs:1509:47 [INFO] [stdout] | [INFO] [stdout] 1509 | self.set_mem(self.y as usize, tmp as u8); [INFO] [stdout] | ^^^^^^^^^ help: try: `tmp` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stdout] --> src/cpu/mod.rs:1513:43 [INFO] [stdout] | [INFO] [stdout] 1513 | self.set_mem(self.y as usize, (tmp & 0xf) as u8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `((tmp & 0xf))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stdout] --> src/cpu/mod.rs:1533:43 [INFO] [stdout] | [INFO] [stdout] 1533 | self.set_mem(self.x as usize, (tmp & 0xf) as u8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `((tmp & 0xf))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stdout] --> src/cpu/mod.rs:1554:43 [INFO] [stdout] | [INFO] [stdout] 1554 | self.set_mem(self.y as usize, (tmp & 0xf) as u8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `((tmp & 0xf))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stdout] --> src/cpu/mod.rs:1135:40 [INFO] [stdout] | [INFO] [stdout] 1135 | self.set_mem(self.sp as usize, self.flags.0 as u8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `self.flags.0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stdout] --> src/cpu/mod.rs:1491:43 [INFO] [stdout] | [INFO] [stdout] 1491 | self.set_mem(self.x as usize, (tmp & 0xf) as u8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `((tmp & 0xf))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stdout] --> src/cpu/mod.rs:1509:47 [INFO] [stdout] | [INFO] [stdout] 1509 | self.set_mem(self.y as usize, tmp as u8); [INFO] [stdout] | ^^^^^^^^^ help: try: `tmp` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stdout] --> src/cpu/mod.rs:1513:43 [INFO] [stdout] | [INFO] [stdout] 1513 | self.set_mem(self.y as usize, (tmp & 0xf) as u8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `((tmp & 0xf))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stdout] --> src/cpu/mod.rs:1533:43 [INFO] [stdout] | [INFO] [stdout] 1533 | self.set_mem(self.x as usize, (tmp & 0xf) as u8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `((tmp & 0xf))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stdout] --> src/cpu/mod.rs:1554:43 [INFO] [stdout] | [INFO] [stdout] 1554 | self.set_mem(self.y as usize, (tmp & 0xf) as u8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `((tmp & 0xf))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.76s [INFO] running `Command { std: "docker" "inspect" "b8f13657d56ff5bc1f6a118ad64e9b5caba0ebfbaff28524821542b2c92bf9e2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b8f13657d56ff5bc1f6a118ad64e9b5caba0ebfbaff28524821542b2c92bf9e2", kill_on_drop: false }` [INFO] [stdout] b8f13657d56ff5bc1f6a118ad64e9b5caba0ebfbaff28524821542b2c92bf9e2