[INFO] cloning repository https://github.com/maxcohn/gb-emu [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/maxcohn/gb-emu" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmaxcohn%2Fgb-emu", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmaxcohn%2Fgb-emu'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 0dc4e06acec1b402911781fe707eb72deaf7be72 [INFO] linting maxcohn/gb-emu against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmaxcohn%2Fgb-emu" "/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/maxcohn/gb-emu [INFO] finished tweaking git repo https://github.com/maxcohn/gb-emu [INFO] tweaked toml for git repo https://github.com/maxcohn/gb-emu written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/maxcohn/gb-emu 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/maxcohn/gb-emu 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] 8a453db7d2843968fde8f6216eda3cd33b489b178436247dcf134de3f382c641 [INFO] running `Command { std: "docker" "start" "-a" "8a453db7d2843968fde8f6216eda3cd33b489b178436247dcf134de3f382c641", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "8a453db7d2843968fde8f6216eda3cd33b489b178436247dcf134de3f382c641", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8a453db7d2843968fde8f6216eda3cd33b489b178436247dcf134de3f382c641", kill_on_drop: false }` [INFO] [stdout] 8a453db7d2843968fde8f6216eda3cd33b489b178436247dcf134de3f382c641 [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] fd0eff2c6937abf237ab39997207aa9ef635be10a3d4a2f34c43b04b15341d67 [INFO] running `Command { std: "docker" "start" "-a" "fd0eff2c6937abf237ab39997207aa9ef635be10a3d4a2f34c43b04b15341d67", kill_on_drop: false }` [INFO] [stderr] Checking gb-emu v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `crate::cartridge::Cartridge` [INFO] [stdout] --> src/memory.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | use crate::cartridge::Cartridge; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/cpu.rs:172:13 [INFO] [stdout] | [INFO] [stdout] 172 | memory: memory,//Memory::new(), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `memory` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/cpu.rs:180:13 [INFO] [stdout] | [INFO] [stdout] 180 | registers: registers, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `registers` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/cpu.rs:181:13 [INFO] [stdout] | [INFO] [stdout] 181 | memory: memory,//Memory::new(), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `memory` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `cartridge::Cartridge` [INFO] [stdout] --> src/main.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use cartridge::Cartridge; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::cartridge::Cartridge` [INFO] [stdout] --> src/memory.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | use crate::cartridge::Cartridge; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/cpu.rs:172:13 [INFO] [stdout] | [INFO] [stdout] 172 | memory: memory,//Memory::new(), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `memory` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/cpu.rs:180:13 [INFO] [stdout] | [INFO] [stdout] 180 | registers: registers, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `registers` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/cpu.rs:181:13 [INFO] [stdout] | [INFO] [stdout] 181 | memory: memory,//Memory::new(), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `memory` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `cartridge::Cartridge` [INFO] [stdout] --> src/main.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use cartridge::Cartridge; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cycles` [INFO] [stdout] --> src/cpu.rs:1016:21 [INFO] [stdout] | [INFO] [stdout] 1016 | let cycles = self.exec_cb(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cycles` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cycles_passed` [INFO] [stdout] --> src/cpu.rs:1128:13 [INFO] [stdout] | [INFO] [stdout] 1128 | let cycles_passed = OP_CYCLES[cur_op as usize]; [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cycles_passed` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/main.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 35 | for i in 100..500 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `print_registers`, `get_af`, `get_flag_sub`, and `get_flag_half_carry` are never used [INFO] [stdout] --> src/registers.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 21 | impl Registers { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 39 | pub fn print_registers(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 83 | pub fn get_af(&self) -> u16 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 177 | pub fn get_flag_sub(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 181 | pub fn get_flag_half_carry(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CB_LENGTHS` is never used [INFO] [stdout] --> src/cpu.rs:73:7 [INFO] [stdout] | [INFO] [stdout] 73 | const CB_LENGTHS: [u8; 0x100] = [ [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new` and `new_empty_mem` are never used [INFO] [stdout] --> src/cpu.rs:169:12 [INFO] [stdout] | [INFO] [stdout] 167 | impl CPU { [INFO] [stdout] | -------- associated functions in this implementation [INFO] [stdout] 168 | /// Create a new CPU struct [INFO] [stdout] 169 | pub fn new(memory: Memory) -> CPU { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 189 | fn new_empty_mem() -> CPU { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/memory.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 45 | if addr >= 0xE000 && addr <= 0xFDFF { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0xE000..=0xFDFF).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 `RangeInclusive::contains` implementation [INFO] [stdout] --> src/memory.rs:48:19 [INFO] [stdout] | [INFO] [stdout] 48 | } else if addr >= 0xFEA0 && addr <= 0xFEFF { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0xFEA0..=0xFEFF).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 `RangeInclusive::contains` implementation [INFO] [stdout] --> src/memory.rs:60:12 [INFO] [stdout] | [INFO] [stdout] 60 | if addr >= 0xE000 && addr <= 0xFDFF { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0xE000..=0xFDFF).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 `RangeInclusive::contains` implementation [INFO] [stdout] --> src/memory.rs:63:19 [INFO] [stdout] | [INFO] [stdout] 63 | } else if addr >= 0xFEA0 && addr <= 0xFEFF { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0xFEA0..=0xFEFF).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: name `CPU` contains a capitalized acronym [INFO] [stdout] --> src/cpu.rs:158:12 [INFO] [stdout] | [INFO] [stdout] 158 | pub struct CPU { [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Cpu` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/cpu.rs:469:29 [INFO] [stdout] | [INFO] [stdout] 469 | 0x20 => !(self.registers.get_flag_zero() != 0), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(self.registers.get_flag_zero() == 0)` [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.rs:471:29 [INFO] [stdout] | [INFO] [stdout] 471 | 0x30 => !(self.registers.get_flag_carry() != 0), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(self.registers.get_flag_carry() == 0)` [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 boolean expression can be simplified [INFO] [stdout] --> src/cpu.rs:889:29 [INFO] [stdout] | [INFO] [stdout] 889 | 0xC0 => !(self.registers.get_flag_zero() != 0), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(self.registers.get_flag_zero() == 0)` [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 boolean expression can be simplified [INFO] [stdout] --> src/cpu.rs:891:29 [INFO] [stdout] | [INFO] [stdout] 891 | 0xD0 => !(self.registers.get_flag_carry() != 0), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(self.registers.get_flag_carry() == 0)` [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 boolean expression can be simplified [INFO] [stdout] --> src/cpu.rs:926:29 [INFO] [stdout] | [INFO] [stdout] 926 | 0xC2 => !(self.registers.get_flag_zero() != 0), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(self.registers.get_flag_zero() == 0)` [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 boolean expression can be simplified [INFO] [stdout] --> src/cpu.rs:928:29 [INFO] [stdout] | [INFO] [stdout] 928 | 0xD2 => !(self.registers.get_flag_carry() != 0), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(self.registers.get_flag_carry() == 0)` [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 boolean expression can be simplified [INFO] [stdout] --> src/cpu.rs:951:29 [INFO] [stdout] | [INFO] [stdout] 951 | 0xC4 => !(self.registers.get_flag_zero() != 0), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(self.registers.get_flag_zero() == 0)` [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 boolean expression can be simplified [INFO] [stdout] --> src/cpu.rs:953:29 [INFO] [stdout] | [INFO] [stdout] 953 | 0xD4 => !(self.registers.get_flag_carry() != 0), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(self.registers.get_flag_carry() == 0)` [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 the result of `i8::abs()` to u16 [INFO] [stdout] --> src/cpu.rs:459:41 [INFO] [stdout] | [INFO] [stdout] 459 | cur_pc.wrapping_sub(imm.abs() as u16) [INFO] [stdout] | ^^^^^^^^^ help: replace with: `imm.unsigned_abs()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_abs_to_unsigned [INFO] [stdout] = note: `#[warn(clippy::cast_abs_to_unsigned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/cpu.rs:1235:9 [INFO] [stdout] | [INFO] [stdout] 1235 | return CB_CYCLES[cur_op as usize]; [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] 1235 - return CB_CYCLES[cur_op as usize]; [INFO] [stdout] 1235 + CB_CYCLES[cur_op as usize] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cycles` [INFO] [stdout] --> src/cpu.rs:1016:21 [INFO] [stdout] | [INFO] [stdout] 1016 | let cycles = self.exec_cb(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cycles` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cycles_passed` [INFO] [stdout] --> src/cpu.rs:1128:13 [INFO] [stdout] | [INFO] [stdout] 1128 | let cycles_passed = OP_CYCLES[cur_op as usize]; [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cycles_passed` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/main.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 38 | std::io::stdin().read_line(&mut s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 38 | let _ = std::io::stdin().read_line(&mut s); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/main.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 35 | for i in 100..500 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `print_registers` is never used [INFO] [stdout] --> src/registers.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 21 | impl Registers { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 39 | pub fn print_registers(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CB_LENGTHS` is never used [INFO] [stdout] --> src/cpu.rs:73:7 [INFO] [stdout] | [INFO] [stdout] 73 | const CB_LENGTHS: [u8; 0x100] = [ [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/cpu.rs:169:12 [INFO] [stdout] | [INFO] [stdout] 167 | impl CPU { [INFO] [stdout] | -------- associated function in this implementation [INFO] [stdout] 168 | /// Create a new CPU struct [INFO] [stdout] 169 | pub fn new(memory: Memory) -> CPU { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rlc` is never used [INFO] [stdout] --> src/cpu.rs:1596:8 [INFO] [stdout] | [INFO] [stdout] 1596 | fn rlc() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/registers.rs:251:9 [INFO] [stdout] | [INFO] [stdout] 251 | return r; [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] 251 - return r; [INFO] [stdout] 251 + r [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/memory.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 45 | if addr >= 0xE000 && addr <= 0xFDFF { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0xE000..=0xFDFF).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 `RangeInclusive::contains` implementation [INFO] [stdout] --> src/memory.rs:48:19 [INFO] [stdout] | [INFO] [stdout] 48 | } else if addr >= 0xFEA0 && addr <= 0xFEFF { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0xFEA0..=0xFEFF).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 `RangeInclusive::contains` implementation [INFO] [stdout] --> src/memory.rs:60:12 [INFO] [stdout] | [INFO] [stdout] 60 | if addr >= 0xE000 && addr <= 0xFDFF { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0xE000..=0xFDFF).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 `RangeInclusive::contains` implementation [INFO] [stdout] --> src/memory.rs:63:19 [INFO] [stdout] | [INFO] [stdout] 63 | } else if addr >= 0xFEA0 && addr <= 0xFEFF { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0xFEA0..=0xFEFF).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: name `CPU` contains a capitalized acronym [INFO] [stdout] --> src/cpu.rs:158:12 [INFO] [stdout] | [INFO] [stdout] 158 | pub struct CPU { [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Cpu` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/cpu.rs:469:29 [INFO] [stdout] | [INFO] [stdout] 469 | 0x20 => !(self.registers.get_flag_zero() != 0), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(self.registers.get_flag_zero() == 0)` [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.rs:471:29 [INFO] [stdout] | [INFO] [stdout] 471 | 0x30 => !(self.registers.get_flag_carry() != 0), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(self.registers.get_flag_carry() == 0)` [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 boolean expression can be simplified [INFO] [stdout] --> src/cpu.rs:889:29 [INFO] [stdout] | [INFO] [stdout] 889 | 0xC0 => !(self.registers.get_flag_zero() != 0), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(self.registers.get_flag_zero() == 0)` [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 boolean expression can be simplified [INFO] [stdout] --> src/cpu.rs:891:29 [INFO] [stdout] | [INFO] [stdout] 891 | 0xD0 => !(self.registers.get_flag_carry() != 0), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(self.registers.get_flag_carry() == 0)` [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 boolean expression can be simplified [INFO] [stdout] --> src/cpu.rs:926:29 [INFO] [stdout] | [INFO] [stdout] 926 | 0xC2 => !(self.registers.get_flag_zero() != 0), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(self.registers.get_flag_zero() == 0)` [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 boolean expression can be simplified [INFO] [stdout] --> src/cpu.rs:928:29 [INFO] [stdout] | [INFO] [stdout] 928 | 0xD2 => !(self.registers.get_flag_carry() != 0), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(self.registers.get_flag_carry() == 0)` [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 boolean expression can be simplified [INFO] [stdout] --> src/cpu.rs:951:29 [INFO] [stdout] | [INFO] [stdout] 951 | 0xC4 => !(self.registers.get_flag_zero() != 0), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(self.registers.get_flag_zero() == 0)` [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 boolean expression can be simplified [INFO] [stdout] --> src/cpu.rs:953:29 [INFO] [stdout] | [INFO] [stdout] 953 | 0xD4 => !(self.registers.get_flag_carry() != 0), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(self.registers.get_flag_carry() == 0)` [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 the result of `i8::abs()` to u16 [INFO] [stdout] --> src/cpu.rs:459:41 [INFO] [stdout] | [INFO] [stdout] 459 | cur_pc.wrapping_sub(imm.abs() as u16) [INFO] [stdout] | ^^^^^^^^^ help: replace with: `imm.unsigned_abs()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_abs_to_unsigned [INFO] [stdout] = note: `#[warn(clippy::cast_abs_to_unsigned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/cpu.rs:1235:9 [INFO] [stdout] | [INFO] [stdout] 1235 | return CB_CYCLES[cur_op as usize]; [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] 1235 - return CB_CYCLES[cur_op as usize]; [INFO] [stdout] 1235 + CB_CYCLES[cur_op as usize] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric method [INFO] [stdout] --> src/cpu.rs:1427:30 [INFO] [stdout] | [INFO] [stdout] 1427 | cpu.registers.set_hl(u16::max_value()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 1427 - cpu.registers.set_hl(u16::max_value()); [INFO] [stdout] 1427 + cpu.registers.set_hl(u16::MAX); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric method [INFO] [stdout] --> src/cpu.rs:1492:30 [INFO] [stdout] | [INFO] [stdout] 1492 | cpu.registers.set_hl(u16::max_value()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 1492 - cpu.registers.set_hl(u16::max_value()); [INFO] [stdout] 1492 + cpu.registers.set_hl(u16::MAX); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric method [INFO] [stdout] --> src/cpu.rs:1505:20 [INFO] [stdout] | [INFO] [stdout] 1505 | assert_eq!(u16::max_value() - 1, cpu.registers.get_hl()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 1505 - assert_eq!(u16::max_value() - 1, cpu.registers.get_hl()); [INFO] [stdout] 1505 + assert_eq!(u16::MAX - 1, cpu.registers.get_hl()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric method [INFO] [stdout] --> src/cpu.rs:1507:20 [INFO] [stdout] | [INFO] [stdout] 1507 | assert_eq!(u16::max_value(), cpu.registers.get_sp()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 1507 - assert_eq!(u16::max_value(), cpu.registers.get_sp()); [INFO] [stdout] 1507 + assert_eq!(u16::MAX, cpu.registers.get_sp()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/main.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 38 | std::io::stdin().read_line(&mut s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 38 | let _ = std::io::stdin().read_line(&mut s); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.55s [INFO] running `Command { std: "docker" "inspect" "fd0eff2c6937abf237ab39997207aa9ef635be10a3d4a2f34c43b04b15341d67", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fd0eff2c6937abf237ab39997207aa9ef635be10a3d4a2f34c43b04b15341d67", kill_on_drop: false }` [INFO] [stdout] fd0eff2c6937abf237ab39997207aa9ef635be10a3d4a2f34c43b04b15341d67