[INFO] cloning repository https://github.com/tawandachiteshe/crust-6502-emulator [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/tawandachiteshe/crust-6502-emulator" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftawandachiteshe%2Fcrust-6502-emulator", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftawandachiteshe%2Fcrust-6502-emulator'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 439b34ea1955f7aaf6bd4e2a81651e4f1ad3d65e [INFO] testing tawandachiteshe/crust-6502-emulator against try#b83b707f97d809763b7861afa7638871f3339a33 for pr-145838-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftawandachiteshe%2Fcrust-6502-emulator" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/tawandachiteshe/crust-6502-emulator [INFO] finished tweaking git repo https://github.com/tawandachiteshe/crust-6502-emulator [INFO] tweaked toml for git repo https://github.com/tawandachiteshe/crust-6502-emulator written to /workspace/builds/worker-1-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/tawandachiteshe/crust-6502-emulator on toolchain b83b707f97d809763b7861afa7638871f3339a33 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b83b707f97d809763b7861afa7638871f3339a33" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/tawandachiteshe/crust-6502-emulator 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" "+b83b707f97d809763b7861afa7638871f3339a33" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+b83b707f97d809763b7861afa7638871f3339a33" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 32acb7e18abc9ee39b86f7474373d63332e44dde57e9d8d48df8f773bd9bdd6b [INFO] running `Command { std: "docker" "start" "-a" "32acb7e18abc9ee39b86f7474373d63332e44dde57e9d8d48df8f773bd9bdd6b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "32acb7e18abc9ee39b86f7474373d63332e44dde57e9d8d48df8f773bd9bdd6b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "32acb7e18abc9ee39b86f7474373d63332e44dde57e9d8d48df8f773bd9bdd6b", kill_on_drop: false }` [INFO] [stdout] 32acb7e18abc9ee39b86f7474373d63332e44dde57e9d8d48df8f773bd9bdd6b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+b83b707f97d809763b7861afa7638871f3339a33" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 12008005ade1663050caf932c4ebdb5db0b8cbcfa6d5956817b1ccdc36868cc6 [INFO] running `Command { std: "docker" "start" "-a" "12008005ade1663050caf932c4ebdb5db0b8cbcfa6d5956817b1ccdc36868cc6", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.72 [INFO] [stderr] Compiling unicode-ident v1.0.12 [INFO] [stderr] Compiling pkg-config v0.3.28 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling libc v0.2.151 [INFO] [stderr] Compiling xml-rs v0.8.19 [INFO] [stderr] Compiling autocfg v1.1.0 [INFO] [stderr] Compiling once_cell v1.19.0 [INFO] [stderr] Compiling bitflags v1.3.2 [INFO] [stderr] Compiling lazy_static v1.4.0 [INFO] [stderr] Compiling smallvec v1.11.2 [INFO] [stderr] Compiling scoped-tls v1.0.1 [INFO] [stderr] Compiling rustix v0.38.28 [INFO] [stderr] Compiling downcast-rs v1.2.0 [INFO] [stderr] Compiling linux-raw-sys v0.4.12 [INFO] [stderr] Compiling libloading v0.8.1 [INFO] [stderr] Compiling bitflags v2.4.1 [INFO] [stderr] Compiling xcursor v0.3.5 [INFO] [stderr] Compiling cty v0.2.2 [INFO] [stderr] Compiling fastrand v2.0.1 [INFO] [stderr] Compiling raw-window-handle v0.4.3 [INFO] [stderr] Compiling concat-string v1.0.1 [INFO] [stderr] Compiling dlib v0.5.2 [INFO] [stderr] Compiling memoffset v0.6.5 [INFO] [stderr] Compiling wayland-sys v0.29.5 [INFO] [stderr] Compiling x11-dl v2.21.0 [INFO] [stderr] Compiling quote v1.0.33 [INFO] [stderr] Compiling cc v1.0.83 [INFO] [stderr] Compiling wayland-scanner v0.29.5 [INFO] [stderr] Compiling minifb v0.25.0 [INFO] [stderr] Compiling nix v0.24.3 [INFO] [stderr] Compiling wayland-client v0.29.5 [INFO] [stderr] Compiling wayland-protocols v0.29.5 [INFO] [stderr] Compiling tempfile v3.9.0 [INFO] [stderr] Compiling wayland-commons v0.29.5 [INFO] [stderr] Compiling wayland-cursor v0.29.5 [INFO] [stderr] Compiling crust-6502-emulator v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `RefCell` and `RefMut` [INFO] [stdout] --> src/main.rs:1:17 [INFO] [stdout] | [INFO] [stdout] 1 | use std::cell::{RefCell, RefMut}; [INFO] [stdout] | ^^^^^^^ ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashMap` [INFO] [stdout] --> src/main.rs:2:41 [INFO] [stdout] | [INFO] [stdout] 2 | use std::collections::{Bound, BTreeMap, HashMap}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::BitOr` [INFO] [stdout] --> src/main.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::ops::BitOr; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::rc::Rc` [INFO] [stdout] --> src/main.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::FLAGS6502::B` [INFO] [stdout] --> src/main.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::FLAGS6502::B; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `#[macro_use]` import [INFO] [stdout] --> src/main.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | #[macro_use(concat_string)] [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `cpu6502` should have an upper camel case name [INFO] [stdout] --> src/main.rs:72:8 [INFO] [stdout] | [INFO] [stdout] 72 | struct cpu6502 { [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cpu6502` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `cpu` should have an upper camel case name [INFO] [stdout] --> src/main.rs:96:6 [INFO] [stdout] | [INFO] [stdout] 96 | type cpu = cpu6502; [INFO] [stdout] | ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/main.rs:1753:24 [INFO] [stdout] | [INFO] [stdout] 1753 | cpu.addr_abs = ((hi << 8) | lo); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1753 - cpu.addr_abs = ((hi << 8) | lo); [INFO] [stdout] 1753 + cpu.addr_abs = (hi << 8) | lo; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/main.rs:1790:27 [INFO] [stdout] | [INFO] [stdout] 1790 | let lo = cpu.read(((t + (cpu.x as u16)) & 0x00FF)) as u16; [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1790 - let lo = cpu.read(((t + (cpu.x as u16)) & 0x00FF)) as u16; [INFO] [stdout] 1790 + let lo = cpu.read((t + (cpu.x as u16)) & 0x00FF) as u16; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/main.rs:1791:27 [INFO] [stdout] | [INFO] [stdout] 1791 | let hi = cpu.read(((t + ((cpu.x as u16) + 1u16)) & 0x00FF)) as u16; [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1791 - let hi = cpu.read(((t + ((cpu.x as u16) + 1u16)) & 0x00FF)) as u16; [INFO] [stdout] 1791 + let hi = cpu.read((t + ((cpu.x as u16) + 1u16)) & 0x00FF) as u16; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/main.rs:1803:27 [INFO] [stdout] | [INFO] [stdout] 1803 | let lo = cpu.read((t & 0x00FF)) as u16; [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1803 - let lo = cpu.read((t & 0x00FF)) as u16; [INFO] [stdout] 1803 + let lo = cpu.read(t & 0x00FF) as u16; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/main.rs:1804:27 [INFO] [stdout] | [INFO] [stdout] 1804 | let hi = cpu.read(((t + 1) & 0x00FF)) as u16; [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1804 - let hi = cpu.read(((t + 1) & 0x00FF)) as u16; [INFO] [stdout] 1804 + let hi = cpu.read((t + 1) & 0x00FF) as u16; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/main.rs:1806:24 [INFO] [stdout] | [INFO] [stdout] 1806 | cpu.addr_abs = ((hi << 8) | lo); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1806 - cpu.addr_abs = ((hi << 8) | lo); [INFO] [stdout] 1806 + cpu.addr_abs = (hi << 8) | lo; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/main.rs:1823:20 [INFO] [stdout] | [INFO] [stdout] 1823 | cpu.temp = ((cpu.a as u16) + (cpu.fetched as u16) + (cpu.get_flag(FLAGS6502::C) as u16)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1823 - cpu.temp = ((cpu.a as u16) + (cpu.fetched as u16) + (cpu.get_flag(FLAGS6502::C) as u16)); [INFO] [stdout] 1823 + cpu.temp = (cpu.a as u16) + (cpu.fetched as u16) + (cpu.get_flag(FLAGS6502::C) as u16); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/main.rs:1857:20 [INFO] [stdout] | [INFO] [stdout] 1857 | cpu.temp = ((cpu.fetched as u16) << 1); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1857 - cpu.temp = ((cpu.fetched as u16) << 1); [INFO] [stdout] 1857 + cpu.temp = (cpu.fetched as u16) << 1; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/main.rs:1887:16 [INFO] [stdout] | [INFO] [stdout] 1887 | if ((cpu.addr_abs & 0xFF00) != (cpu.pc & 0xFF00)) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1887 - if ((cpu.addr_abs & 0xFF00) != (cpu.pc & 0xFF00)) { [INFO] [stdout] 1887 + if (cpu.addr_abs & 0xFF00) != (cpu.pc & 0xFF00) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/main.rs:2328:20 [INFO] [stdout] | [INFO] [stdout] 2328 | cpu.temp = ((cpu.a as u16) + value + (cpu.get_flag(FLAGS6502::C) as u16)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 2328 - cpu.temp = ((cpu.a as u16) + value + (cpu.get_flag(FLAGS6502::C) as u16)); [INFO] [stdout] 2328 + cpu.temp = (cpu.a as u16) + value + (cpu.get_flag(FLAGS6502::C) as u16); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/main.rs:2330:36 [INFO] [stdout] | [INFO] [stdout] 2330 | cpu.set_flag(FLAGS6502::Z, ((cpu.temp & 0x00FF) == 0)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 2330 - cpu.set_flag(FLAGS6502::Z, ((cpu.temp & 0x00FF) == 0)); [INFO] [stdout] 2330 + cpu.set_flag(FLAGS6502::Z, (cpu.temp & 0x00FF) == 0); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/main.rs:2453:28 [INFO] [stdout] | [INFO] [stdout] 2453 | self.cycles += (additional_cycle1 & additional_cycle2); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 2453 - self.cycles += (additional_cycle1 & additional_cycle2); [INFO] [stdout] 2453 + self.cycles += additional_cycle1 & additional_cycle2; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/main.rs:2489:19 [INFO] [stdout] | [INFO] [stdout] 2489 | self.pc = ((hi << 8) | lo); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 2489 - self.pc = ((hi << 8) | lo); [INFO] [stdout] 2489 + self.pc = (hi << 8) | lo; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/main.rs:2511:12 [INFO] [stdout] | [INFO] [stdout] 2511 | if (self.get_flag(FLAGS6502::I) == 0) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 2511 - if (self.get_flag(FLAGS6502::I) == 0) { [INFO] [stdout] 2511 + if self.get_flag(FLAGS6502::I) == 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/main.rs:2515:17 [INFO] [stdout] | [INFO] [stdout] 2515 | (0x0100u16 + self.stkp as u16), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 2515 - (0x0100u16 + self.stkp as u16), [INFO] [stdout] 2515 + 0x0100u16 + self.stkp as u16, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/main.rs:2519:24 [INFO] [stdout] | [INFO] [stdout] 2519 | self.write((0x0100u16 + self.stkp as u16), (self.pc & 0x00FF) as u8); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 2519 - self.write((0x0100u16 + self.stkp as u16), (self.pc & 0x00FF) as u8); [INFO] [stdout] 2519 + self.write(0x0100u16 + self.stkp as u16, (self.pc & 0x00FF) as u8); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `read_only` [INFO] [stdout] --> src/main.rs:32:31 [INFO] [stdout] | [INFO] [stdout] 32 | fn read(&self, addr: u16, read_only: bool) -> u8 { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_read_only` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/main.rs:2423:12 [INFO] [stdout] | [INFO] [stdout] 2423 | fn XXX(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `value` is never read [INFO] [stdout] --> src/main.rs:2583:17 [INFO] [stdout] | [INFO] [stdout] 2583 | let mut value = 0x00u8; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `lo` is never read [INFO] [stdout] --> src/main.rs:2584:17 [INFO] [stdout] | [INFO] [stdout] 2584 | let mut lo = 0x00u8; [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `hi` is never read [INFO] [stdout] --> src/main.rs:2585:17 [INFO] [stdout] | [INFO] [stdout] 2585 | let mut hi = 0x00u8; [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `line_addr` is never read [INFO] [stdout] --> src/main.rs:2587:17 [INFO] [stdout] | [INFO] [stdout] 2587 | let mut line_addr = 0u16; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `hi` is never read [INFO] [stdout] --> src/main.rs:2614:17 [INFO] [stdout] | [INFO] [stdout] 2614 | hi = 0x00; [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `hi` is never read [INFO] [stdout] --> src/main.rs:2620:17 [INFO] [stdout] | [INFO] [stdout] 2620 | hi = 0x00; [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `hi` is never read [INFO] [stdout] --> src/main.rs:2626:17 [INFO] [stdout] | [INFO] [stdout] 2626 | hi = 0x00; [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `hi` is never read [INFO] [stdout] --> src/main.rs:2632:17 [INFO] [stdout] | [INFO] [stdout] 2632 | hi = 0x00; [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `hi` is never read [INFO] [stdout] --> src/main.rs:2638:17 [INFO] [stdout] | [INFO] [stdout] 2638 | hi = 0x00; [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `stop` [INFO] [stdout] --> src/main.rs:2581:43 [INFO] [stdout] | [INFO] [stdout] 2581 | fn disassemble(&mut self, start: u16, stop: u16) -> BTreeMap { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_stop` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `row` [INFO] [stdout] --> src/main.rs:2766:9 [INFO] [stdout] | [INFO] [stdout] 2766 | for row in 0..rows { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_row` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `column` [INFO] [stdout] --> src/main.rs:2769:13 [INFO] [stdout] | [INFO] [stdout] 2769 | for column in 0..columns { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_column` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:2761:9 [INFO] [stdout] | [INFO] [stdout] 2761 | let mut ram_x = x as usize; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `line_y` is never read [INFO] [stdout] --> src/main.rs:2803:5 [INFO] [stdout] | [INFO] [stdout] 2803 | line_y = (lines >> 1) * 10 + y; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/main.rs:2805:17 [INFO] [stdout] | [INFO] [stdout] 2805 | if let Some(instruction) = map_lines.get(&cpu.pc) { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:2824:9 [INFO] [stdout] | [INFO] [stdout] 2824 | let mut code_assemble_bin = String::from("A2 0A 8E 00 00 A2 03 8E 01 00 AC 00 00 A9 00 18 6D 01 00 88 D0 FA 8D 02 00 EA EA EA"); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `irq`, `nmi`, and `connect_bus` are never used [INFO] [stdout] --> src/main.rs:2510:8 [INFO] [stdout] | [INFO] [stdout] 98 | impl cpu6502 { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 2510 | fn irq(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 2541 | fn nmi(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 2576 | fn connect_bus(&mut self, bus: Bus) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `to_hex` is never used [INFO] [stdout] --> src/main.rs:2709:4 [INFO] [stdout] | [INFO] [stdout] 2709 | fn to_hex(number: T, d: u16) -> String { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_cpu` is never used [INFO] [stdout] --> src/main.rs:2723:4 [INFO] [stdout] | [INFO] [stdout] 2723 | fn print_cpu(cpu: &mut cpu6502) [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/main.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 27 | if addr >= 0x0000 && addr <= 0xFFFF { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/main.rs:27:30 [INFO] [stdout] | [INFO] [stdout] 27 | if addr >= 0x0000 && addr <= 0xFFFF { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/main.rs:33:12 [INFO] [stdout] | [INFO] [stdout] 33 | if addr >= 0x0000 && addr <= 0xFFFF { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/main.rs:33:30 [INFO] [stdout] | [INFO] [stdout] 33 | if addr >= 0x0000 && addr <= 0xFFFF { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `IMP` should have a snake case name [INFO] [stdout] --> src/main.rs:1676:8 [INFO] [stdout] | [INFO] [stdout] 1676 | fn IMP(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `imp` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `IMM` should have a snake case name [INFO] [stdout] --> src/main.rs:1680:8 [INFO] [stdout] | [INFO] [stdout] 1680 | fn IMM(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `imm` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `ZP0` should have a snake case name [INFO] [stdout] --> src/main.rs:1685:8 [INFO] [stdout] | [INFO] [stdout] 1685 | fn ZP0(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `zp0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `ZPX` should have a snake case name [INFO] [stdout] --> src/main.rs:1693:8 [INFO] [stdout] | [INFO] [stdout] 1693 | fn ZPX(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `zpx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `ZPY` should have a snake case name [INFO] [stdout] --> src/main.rs:1701:8 [INFO] [stdout] | [INFO] [stdout] 1701 | fn ZPY(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `zpy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `REL` should have a snake case name [INFO] [stdout] --> src/main.rs:1708:8 [INFO] [stdout] | [INFO] [stdout] 1708 | fn REL(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `rel` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `ABS` should have a snake case name [INFO] [stdout] --> src/main.rs:1718:8 [INFO] [stdout] | [INFO] [stdout] 1718 | fn ABS(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `abs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `ABX` should have a snake case name [INFO] [stdout] --> src/main.rs:1730:8 [INFO] [stdout] | [INFO] [stdout] 1730 | fn ABX(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `abx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `ABY` should have a snake case name [INFO] [stdout] --> src/main.rs:1747:8 [INFO] [stdout] | [INFO] [stdout] 1747 | fn ABY(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `aby` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `IND` should have a snake case name [INFO] [stdout] --> src/main.rs:1764:8 [INFO] [stdout] | [INFO] [stdout] 1764 | fn IND(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `ind` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `IZX` should have a snake case name [INFO] [stdout] --> src/main.rs:1786:8 [INFO] [stdout] | [INFO] [stdout] 1786 | fn IZX(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case (notice the capitalization): `izx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `IZY` should have a snake case name [INFO] [stdout] --> src/main.rs:1799:8 [INFO] [stdout] | [INFO] [stdout] 1799 | fn IZY(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case (notice the capitalization): `izy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `ADC` should have a snake case name [INFO] [stdout] --> src/main.rs:1817:8 [INFO] [stdout] | [INFO] [stdout] 1817 | fn ADC(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `adc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `AND` should have a snake case name [INFO] [stdout] --> src/main.rs:1848:8 [INFO] [stdout] | [INFO] [stdout] 1848 | fn AND(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `and` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `ASL` should have a snake case name [INFO] [stdout] --> src/main.rs:1855:8 [INFO] [stdout] | [INFO] [stdout] 1855 | fn ASL(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `asl` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/main.rs:1861:12 [INFO] [stdout] | [INFO] [stdout] 1861 | if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 1861 - if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP { [INFO] [stdout] 1861 + if std::ptr::fn_addr_eq(cpu.lookup[cpu.opcode as usize].addr_mode, cpu6502::IMP as for<'a> fn(&'a mut cpu6502) -> u8) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `BCC` should have a snake case name [INFO] [stdout] --> src/main.rs:1869:8 [INFO] [stdout] | [INFO] [stdout] 1869 | fn BCC(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `bcc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `BCS` should have a snake case name [INFO] [stdout] --> src/main.rs:1882:8 [INFO] [stdout] | [INFO] [stdout] 1882 | fn BCS(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `bcs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `BEQ` should have a snake case name [INFO] [stdout] --> src/main.rs:1895:8 [INFO] [stdout] | [INFO] [stdout] 1895 | fn BEQ(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `beq` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `BIT` should have a snake case name [INFO] [stdout] --> src/main.rs:1908:8 [INFO] [stdout] | [INFO] [stdout] 1908 | fn BIT(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `bit` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `BMI` should have a snake case name [INFO] [stdout] --> src/main.rs:1918:8 [INFO] [stdout] | [INFO] [stdout] 1918 | fn BMI(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `bmi` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `BNE` should have a snake case name [INFO] [stdout] --> src/main.rs:1932:8 [INFO] [stdout] | [INFO] [stdout] 1932 | fn BNE(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `bne` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `BPL` should have a snake case name [INFO] [stdout] --> src/main.rs:1947:8 [INFO] [stdout] | [INFO] [stdout] 1947 | fn BPL(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `bpl` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `BRK` should have a snake case name [INFO] [stdout] --> src/main.rs:1963:8 [INFO] [stdout] | [INFO] [stdout] 1963 | fn BRK(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `brk` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `BVC` should have a snake case name [INFO] [stdout] --> src/main.rs:1982:8 [INFO] [stdout] | [INFO] [stdout] 1982 | fn BVC(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `bvc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `BVS` should have a snake case name [INFO] [stdout] --> src/main.rs:2000:8 [INFO] [stdout] | [INFO] [stdout] 2000 | fn BVS(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `bvs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `CLC` should have a snake case name [INFO] [stdout] --> src/main.rs:2019:8 [INFO] [stdout] | [INFO] [stdout] 2019 | fn CLC(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `clc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `CLD` should have a snake case name [INFO] [stdout] --> src/main.rs:2026:8 [INFO] [stdout] | [INFO] [stdout] 2026 | fn CLD(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `cld` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `CLI` should have a snake case name [INFO] [stdout] --> src/main.rs:2032:8 [INFO] [stdout] | [INFO] [stdout] 2032 | fn CLI(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `cli` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `CLV` should have a snake case name [INFO] [stdout] --> src/main.rs:2037:8 [INFO] [stdout] | [INFO] [stdout] 2037 | fn CLV(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `clv` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `CMP` should have a snake case name [INFO] [stdout] --> src/main.rs:2043:8 [INFO] [stdout] | [INFO] [stdout] 2043 | fn CMP(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `cmp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `CPX` should have a snake case name [INFO] [stdout] --> src/main.rs:2054:8 [INFO] [stdout] | [INFO] [stdout] 2054 | fn CPX(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `cpx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `CPY` should have a snake case name [INFO] [stdout] --> src/main.rs:2064:8 [INFO] [stdout] | [INFO] [stdout] 2064 | fn CPY(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `cpy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `DEC` should have a snake case name [INFO] [stdout] --> src/main.rs:2074:8 [INFO] [stdout] | [INFO] [stdout] 2074 | fn DEC(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `dec` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `DEX` should have a snake case name [INFO] [stdout] --> src/main.rs:2084:8 [INFO] [stdout] | [INFO] [stdout] 2084 | fn DEX(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `dex` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `DEY` should have a snake case name [INFO] [stdout] --> src/main.rs:2093:8 [INFO] [stdout] | [INFO] [stdout] 2093 | fn DEY(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `dey` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `EOR` should have a snake case name [INFO] [stdout] --> src/main.rs:2102:8 [INFO] [stdout] | [INFO] [stdout] 2102 | fn EOR(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `eor` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `INC` should have a snake case name [INFO] [stdout] --> src/main.rs:2113:8 [INFO] [stdout] | [INFO] [stdout] 2113 | fn INC(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `inc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `INX` should have a snake case name [INFO] [stdout] --> src/main.rs:2124:8 [INFO] [stdout] | [INFO] [stdout] 2124 | fn INX(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `inx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `INY` should have a snake case name [INFO] [stdout] --> src/main.rs:2134:8 [INFO] [stdout] | [INFO] [stdout] 2134 | fn INY(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `iny` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `JMP` should have a snake case name [INFO] [stdout] --> src/main.rs:2143:8 [INFO] [stdout] | [INFO] [stdout] 2143 | fn JMP(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `jmp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `JSR` should have a snake case name [INFO] [stdout] --> src/main.rs:2149:8 [INFO] [stdout] | [INFO] [stdout] 2149 | fn JSR(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `jsr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `LDA` should have a snake case name [INFO] [stdout] --> src/main.rs:2163:8 [INFO] [stdout] | [INFO] [stdout] 2163 | fn LDA(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `lda` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `LDX` should have a snake case name [INFO] [stdout] --> src/main.rs:2171:8 [INFO] [stdout] | [INFO] [stdout] 2171 | fn LDX(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `ldx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `LDY` should have a snake case name [INFO] [stdout] --> src/main.rs:2180:8 [INFO] [stdout] | [INFO] [stdout] 2180 | fn LDY(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `ldy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `LSR` should have a snake case name [INFO] [stdout] --> src/main.rs:2188:8 [INFO] [stdout] | [INFO] [stdout] 2188 | fn LSR(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `lsr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/main.rs:2196:12 [INFO] [stdout] | [INFO] [stdout] 2196 | if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 2196 - if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP { [INFO] [stdout] 2196 + if std::ptr::fn_addr_eq(cpu.lookup[cpu.opcode as usize].addr_mode, cpu6502::IMP as for<'a> fn(&'a mut cpu6502) -> u8) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `NOP` should have a snake case name [INFO] [stdout] --> src/main.rs:2205:8 [INFO] [stdout] | [INFO] [stdout] 2205 | fn NOP(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `nop` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `ORA` should have a snake case name [INFO] [stdout] --> src/main.rs:2219:8 [INFO] [stdout] | [INFO] [stdout] 2219 | fn ORA(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `ora` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `PHA` should have a snake case name [INFO] [stdout] --> src/main.rs:2227:8 [INFO] [stdout] | [INFO] [stdout] 2227 | fn PHA(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `pha` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `PHP` should have a snake case name [INFO] [stdout] --> src/main.rs:2233:8 [INFO] [stdout] | [INFO] [stdout] 2233 | fn PHP(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `php` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `PLA` should have a snake case name [INFO] [stdout] --> src/main.rs:2241:8 [INFO] [stdout] | [INFO] [stdout] 2241 | fn PLA(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `pla` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `PLP` should have a snake case name [INFO] [stdout] --> src/main.rs:2250:8 [INFO] [stdout] | [INFO] [stdout] 2250 | fn PLP(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `plp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `ROL` should have a snake case name [INFO] [stdout] --> src/main.rs:2259:8 [INFO] [stdout] | [INFO] [stdout] 2259 | fn ROL(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `rol` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/main.rs:2267:12 [INFO] [stdout] | [INFO] [stdout] 2267 | if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 2267 - if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP { [INFO] [stdout] 2267 + if std::ptr::fn_addr_eq(cpu.lookup[cpu.opcode as usize].addr_mode, cpu6502::IMP as for<'a> fn(&'a mut cpu6502) -> u8) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `ROR` should have a snake case name [INFO] [stdout] --> src/main.rs:2276:8 [INFO] [stdout] | [INFO] [stdout] 2276 | fn ROR(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `ror` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/main.rs:2284:12 [INFO] [stdout] | [INFO] [stdout] 2284 | if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 2284 - if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP { [INFO] [stdout] 2284 + if std::ptr::fn_addr_eq(cpu.lookup[cpu.opcode as usize].addr_mode, cpu6502::IMP as for<'a> fn(&'a mut cpu6502) -> u8) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `RTI` should have a snake case name [INFO] [stdout] --> src/main.rs:2294:8 [INFO] [stdout] | [INFO] [stdout] 2294 | fn RTI(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `rti` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `RTS` should have a snake case name [INFO] [stdout] --> src/main.rs:2309:8 [INFO] [stdout] | [INFO] [stdout] 2309 | fn RTS(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `rts` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `SBC` should have a snake case name [INFO] [stdout] --> src/main.rs:2319:8 [INFO] [stdout] | [INFO] [stdout] 2319 | fn SBC(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `sbc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `SEC` should have a snake case name [INFO] [stdout] --> src/main.rs:2337:8 [INFO] [stdout] | [INFO] [stdout] 2337 | fn SEC(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `sec` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `SED` should have a snake case name [INFO] [stdout] --> src/main.rs:2342:8 [INFO] [stdout] | [INFO] [stdout] 2342 | fn SED(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `sed` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `SEI` should have a snake case name [INFO] [stdout] --> src/main.rs:2347:8 [INFO] [stdout] | [INFO] [stdout] 2347 | fn SEI(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `sei` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `STA` should have a snake case name [INFO] [stdout] --> src/main.rs:2353:8 [INFO] [stdout] | [INFO] [stdout] 2353 | fn STA(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `sta` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `STX` should have a snake case name [INFO] [stdout] --> src/main.rs:2359:8 [INFO] [stdout] | [INFO] [stdout] 2359 | fn STX(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `stx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `STY` should have a snake case name [INFO] [stdout] --> src/main.rs:2364:8 [INFO] [stdout] | [INFO] [stdout] 2364 | fn STY(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `sty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `TAX` should have a snake case name [INFO] [stdout] --> src/main.rs:2369:8 [INFO] [stdout] | [INFO] [stdout] 2369 | fn TAX(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `tax` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `TAY` should have a snake case name [INFO] [stdout] --> src/main.rs:2377:8 [INFO] [stdout] | [INFO] [stdout] 2377 | fn TAY(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `tay` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `TSX` should have a snake case name [INFO] [stdout] --> src/main.rs:2385:8 [INFO] [stdout] | [INFO] [stdout] 2385 | fn TSX(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `tsx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `TXA` should have a snake case name [INFO] [stdout] --> src/main.rs:2395:8 [INFO] [stdout] | [INFO] [stdout] 2395 | fn TXA(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `txa` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `TXS` should have a snake case name [INFO] [stdout] --> src/main.rs:2405:8 [INFO] [stdout] | [INFO] [stdout] 2405 | fn TXS(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `txs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `TYA` should have a snake case name [INFO] [stdout] --> src/main.rs:2412:8 [INFO] [stdout] | [INFO] [stdout] 2412 | fn TYA(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `tya` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `XXX` should have a snake case name [INFO] [stdout] --> src/main.rs:2423:8 [INFO] [stdout] | [INFO] [stdout] 2423 | fn XXX(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case (notice the capitalization): `xxx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/main.rs:2565:13 [INFO] [stdout] | [INFO] [stdout] 2565 | if !(self.lookup[self.opcode as usize].addr_mode == cpu::IMP) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 2565 - if !(self.lookup[self.opcode as usize].addr_mode == cpu::IMP) { [INFO] [stdout] 2565 + if !std::ptr::fn_addr_eq(self.lookup[self.opcode as usize].addr_mode, cpu::IMP as for<'a> fn(&'a mut cpu6502) -> u8) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/main.rs:2601:16 [INFO] [stdout] | [INFO] [stdout] 2601 | if self.lookup[opcode].addr_mode == cpu::IMP [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 2601 - if self.lookup[opcode].addr_mode == cpu::IMP [INFO] [stdout] 2601 + if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::IMP as for<'a> fn(&'a mut cpu6502) -> u8) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/main.rs:2604:23 [INFO] [stdout] | [INFO] [stdout] 2604 | } else if self.lookup[opcode].addr_mode == cpu::IMM [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 2604 - } else if self.lookup[opcode].addr_mode == cpu::IMM [INFO] [stdout] 2604 + } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::IMM as for<'a> fn(&'a mut cpu6502) -> u8) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/main.rs:2610:23 [INFO] [stdout] | [INFO] [stdout] 2610 | } else if self.lookup[opcode].addr_mode == cpu::ZP0 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 2610 - } else if self.lookup[opcode].addr_mode == cpu::ZP0 [INFO] [stdout] 2610 + } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::ZP0 as for<'a> fn(&'a mut cpu6502) -> u8) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/main.rs:2616:23 [INFO] [stdout] | [INFO] [stdout] 2616 | } else if self.lookup[opcode].addr_mode == cpu::ZPX [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 2616 - } else if self.lookup[opcode].addr_mode == cpu::ZPX [INFO] [stdout] 2616 + } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::ZPX as for<'a> fn(&'a mut cpu6502) -> u8) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/main.rs:2622:23 [INFO] [stdout] | [INFO] [stdout] 2622 | } else if self.lookup[opcode].addr_mode == cpu::ZPY [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 2622 - } else if self.lookup[opcode].addr_mode == cpu::ZPY [INFO] [stdout] 2622 + } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::ZPY as for<'a> fn(&'a mut cpu6502) -> u8) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/main.rs:2628:23 [INFO] [stdout] | [INFO] [stdout] 2628 | } else if self.lookup[opcode].addr_mode == cpu::IZX [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 2628 - } else if self.lookup[opcode].addr_mode == cpu::IZX [INFO] [stdout] 2628 + } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::IZX as for<'a> fn(&'a mut cpu6502) -> u8) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/main.rs:2634:23 [INFO] [stdout] | [INFO] [stdout] 2634 | } else if self.lookup[opcode].addr_mode == cpu::IZY [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 2634 - } else if self.lookup[opcode].addr_mode == cpu::IZY [INFO] [stdout] 2634 + } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::IZY as for<'a> fn(&'a mut cpu6502) -> u8) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/main.rs:2640:23 [INFO] [stdout] | [INFO] [stdout] 2640 | } else if self.lookup[opcode].addr_mode == cpu::ABS [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 2640 - } else if self.lookup[opcode].addr_mode == cpu::ABS [INFO] [stdout] 2640 + } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::ABS as for<'a> fn(&'a mut cpu6502) -> u8) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/main.rs:2647:23 [INFO] [stdout] | [INFO] [stdout] 2647 | } else if self.lookup[opcode].addr_mode == cpu::ABX [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 2647 - } else if self.lookup[opcode].addr_mode == cpu::ABX [INFO] [stdout] 2647 + } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::ABX as for<'a> fn(&'a mut cpu6502) -> u8) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/main.rs:2654:23 [INFO] [stdout] | [INFO] [stdout] 2654 | } else if self.lookup[opcode].addr_mode == cpu::ABY [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 2654 - } else if self.lookup[opcode].addr_mode == cpu::ABY [INFO] [stdout] 2654 + } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::ABY as for<'a> fn(&'a mut cpu6502) -> u8) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/main.rs:2661:23 [INFO] [stdout] | [INFO] [stdout] 2661 | } else if self.lookup[opcode].addr_mode == cpu::IND [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 2661 - } else if self.lookup[opcode].addr_mode == cpu::IND [INFO] [stdout] 2661 + } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::IND as for<'a> fn(&'a mut cpu6502) -> u8) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/main.rs:2668:23 [INFO] [stdout] | [INFO] [stdout] 2668 | } else if self.lookup[opcode].addr_mode == cpu::REL [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 2668 - } else if self.lookup[opcode].addr_mode == cpu::REL [INFO] [stdout] 2668 + } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::REL as for<'a> fn(&'a mut cpu6502) -> u8) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 36.21s [INFO] running `Command { std: "docker" "inspect" "12008005ade1663050caf932c4ebdb5db0b8cbcfa6d5956817b1ccdc36868cc6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "12008005ade1663050caf932c4ebdb5db0b8cbcfa6d5956817b1ccdc36868cc6", kill_on_drop: false }` [INFO] [stdout] 12008005ade1663050caf932c4ebdb5db0b8cbcfa6d5956817b1ccdc36868cc6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+b83b707f97d809763b7861afa7638871f3339a33" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a5997a215d6f9963519d16164a1093b0cc37dc66e982da987aa43b6b5901ef73 [INFO] running `Command { std: "docker" "start" "-a" "a5997a215d6f9963519d16164a1093b0cc37dc66e982da987aa43b6b5901ef73", kill_on_drop: false }` [INFO] [stderr] Compiling crust-6502-emulator v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `RefCell` and `RefMut` [INFO] [stdout] --> src/main.rs:1:17 [INFO] [stdout] | [INFO] [stdout] 1 | use std::cell::{RefCell, RefMut}; [INFO] [stdout] | ^^^^^^^ ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashMap` [INFO] [stdout] --> src/main.rs:2:41 [INFO] [stdout] | [INFO] [stdout] 2 | use std::collections::{Bound, BTreeMap, HashMap}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::BitOr` [INFO] [stdout] --> src/main.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::ops::BitOr; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::rc::Rc` [INFO] [stdout] --> src/main.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::FLAGS6502::B` [INFO] [stdout] --> src/main.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::FLAGS6502::B; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `#[macro_use]` import [INFO] [stdout] --> src/main.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | #[macro_use(concat_string)] [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `cpu6502` should have an upper camel case name [INFO] [stdout] --> src/main.rs:72:8 [INFO] [stdout] | [INFO] [stdout] 72 | struct cpu6502 { [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cpu6502` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `cpu` should have an upper camel case name [INFO] [stdout] --> src/main.rs:96:6 [INFO] [stdout] | [INFO] [stdout] 96 | type cpu = cpu6502; [INFO] [stdout] | ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/main.rs:1753:24 [INFO] [stdout] | [INFO] [stdout] 1753 | cpu.addr_abs = ((hi << 8) | lo); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1753 - cpu.addr_abs = ((hi << 8) | lo); [INFO] [stdout] 1753 + cpu.addr_abs = (hi << 8) | lo; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/main.rs:1790:27 [INFO] [stdout] | [INFO] [stdout] 1790 | let lo = cpu.read(((t + (cpu.x as u16)) & 0x00FF)) as u16; [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1790 - let lo = cpu.read(((t + (cpu.x as u16)) & 0x00FF)) as u16; [INFO] [stdout] 1790 + let lo = cpu.read((t + (cpu.x as u16)) & 0x00FF) as u16; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/main.rs:1791:27 [INFO] [stdout] | [INFO] [stdout] 1791 | let hi = cpu.read(((t + ((cpu.x as u16) + 1u16)) & 0x00FF)) as u16; [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1791 - let hi = cpu.read(((t + ((cpu.x as u16) + 1u16)) & 0x00FF)) as u16; [INFO] [stdout] 1791 + let hi = cpu.read((t + ((cpu.x as u16) + 1u16)) & 0x00FF) as u16; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/main.rs:1803:27 [INFO] [stdout] | [INFO] [stdout] 1803 | let lo = cpu.read((t & 0x00FF)) as u16; [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1803 - let lo = cpu.read((t & 0x00FF)) as u16; [INFO] [stdout] 1803 + let lo = cpu.read(t & 0x00FF) as u16; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/main.rs:1804:27 [INFO] [stdout] | [INFO] [stdout] 1804 | let hi = cpu.read(((t + 1) & 0x00FF)) as u16; [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1804 - let hi = cpu.read(((t + 1) & 0x00FF)) as u16; [INFO] [stdout] 1804 + let hi = cpu.read((t + 1) & 0x00FF) as u16; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/main.rs:1806:24 [INFO] [stdout] | [INFO] [stdout] 1806 | cpu.addr_abs = ((hi << 8) | lo); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1806 - cpu.addr_abs = ((hi << 8) | lo); [INFO] [stdout] 1806 + cpu.addr_abs = (hi << 8) | lo; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/main.rs:1823:20 [INFO] [stdout] | [INFO] [stdout] 1823 | cpu.temp = ((cpu.a as u16) + (cpu.fetched as u16) + (cpu.get_flag(FLAGS6502::C) as u16)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1823 - cpu.temp = ((cpu.a as u16) + (cpu.fetched as u16) + (cpu.get_flag(FLAGS6502::C) as u16)); [INFO] [stdout] 1823 + cpu.temp = (cpu.a as u16) + (cpu.fetched as u16) + (cpu.get_flag(FLAGS6502::C) as u16); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/main.rs:1857:20 [INFO] [stdout] | [INFO] [stdout] 1857 | cpu.temp = ((cpu.fetched as u16) << 1); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1857 - cpu.temp = ((cpu.fetched as u16) << 1); [INFO] [stdout] 1857 + cpu.temp = (cpu.fetched as u16) << 1; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/main.rs:1887:16 [INFO] [stdout] | [INFO] [stdout] 1887 | if ((cpu.addr_abs & 0xFF00) != (cpu.pc & 0xFF00)) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 1887 - if ((cpu.addr_abs & 0xFF00) != (cpu.pc & 0xFF00)) { [INFO] [stdout] 1887 + if (cpu.addr_abs & 0xFF00) != (cpu.pc & 0xFF00) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/main.rs:2328:20 [INFO] [stdout] | [INFO] [stdout] 2328 | cpu.temp = ((cpu.a as u16) + value + (cpu.get_flag(FLAGS6502::C) as u16)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 2328 - cpu.temp = ((cpu.a as u16) + value + (cpu.get_flag(FLAGS6502::C) as u16)); [INFO] [stdout] 2328 + cpu.temp = (cpu.a as u16) + value + (cpu.get_flag(FLAGS6502::C) as u16); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/main.rs:2330:36 [INFO] [stdout] | [INFO] [stdout] 2330 | cpu.set_flag(FLAGS6502::Z, ((cpu.temp & 0x00FF) == 0)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 2330 - cpu.set_flag(FLAGS6502::Z, ((cpu.temp & 0x00FF) == 0)); [INFO] [stdout] 2330 + cpu.set_flag(FLAGS6502::Z, (cpu.temp & 0x00FF) == 0); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/main.rs:2453:28 [INFO] [stdout] | [INFO] [stdout] 2453 | self.cycles += (additional_cycle1 & additional_cycle2); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 2453 - self.cycles += (additional_cycle1 & additional_cycle2); [INFO] [stdout] 2453 + self.cycles += additional_cycle1 & additional_cycle2; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/main.rs:2489:19 [INFO] [stdout] | [INFO] [stdout] 2489 | self.pc = ((hi << 8) | lo); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 2489 - self.pc = ((hi << 8) | lo); [INFO] [stdout] 2489 + self.pc = (hi << 8) | lo; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/main.rs:2511:12 [INFO] [stdout] | [INFO] [stdout] 2511 | if (self.get_flag(FLAGS6502::I) == 0) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 2511 - if (self.get_flag(FLAGS6502::I) == 0) { [INFO] [stdout] 2511 + if self.get_flag(FLAGS6502::I) == 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/main.rs:2515:17 [INFO] [stdout] | [INFO] [stdout] 2515 | (0x0100u16 + self.stkp as u16), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 2515 - (0x0100u16 + self.stkp as u16), [INFO] [stdout] 2515 + 0x0100u16 + self.stkp as u16, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around method argument [INFO] [stdout] --> src/main.rs:2519:24 [INFO] [stdout] | [INFO] [stdout] 2519 | self.write((0x0100u16 + self.stkp as u16), (self.pc & 0x00FF) as u8); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 2519 - self.write((0x0100u16 + self.stkp as u16), (self.pc & 0x00FF) as u8); [INFO] [stdout] 2519 + self.write(0x0100u16 + self.stkp as u16, (self.pc & 0x00FF) as u8); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `read_only` [INFO] [stdout] --> src/main.rs:32:31 [INFO] [stdout] | [INFO] [stdout] 32 | fn read(&self, addr: u16, read_only: bool) -> u8 { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_read_only` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/main.rs:2423:12 [INFO] [stdout] | [INFO] [stdout] 2423 | fn XXX(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `value` is never read [INFO] [stdout] --> src/main.rs:2583:17 [INFO] [stdout] | [INFO] [stdout] 2583 | let mut value = 0x00u8; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `lo` is never read [INFO] [stdout] --> src/main.rs:2584:17 [INFO] [stdout] | [INFO] [stdout] 2584 | let mut lo = 0x00u8; [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `hi` is never read [INFO] [stdout] --> src/main.rs:2585:17 [INFO] [stdout] | [INFO] [stdout] 2585 | let mut hi = 0x00u8; [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `line_addr` is never read [INFO] [stdout] --> src/main.rs:2587:17 [INFO] [stdout] | [INFO] [stdout] 2587 | let mut line_addr = 0u16; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `hi` is never read [INFO] [stdout] --> src/main.rs:2614:17 [INFO] [stdout] | [INFO] [stdout] 2614 | hi = 0x00; [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `hi` is never read [INFO] [stdout] --> src/main.rs:2620:17 [INFO] [stdout] | [INFO] [stdout] 2620 | hi = 0x00; [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `hi` is never read [INFO] [stdout] --> src/main.rs:2626:17 [INFO] [stdout] | [INFO] [stdout] 2626 | hi = 0x00; [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `hi` is never read [INFO] [stdout] --> src/main.rs:2632:17 [INFO] [stdout] | [INFO] [stdout] 2632 | hi = 0x00; [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `hi` is never read [INFO] [stdout] --> src/main.rs:2638:17 [INFO] [stdout] | [INFO] [stdout] 2638 | hi = 0x00; [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `stop` [INFO] [stdout] --> src/main.rs:2581:43 [INFO] [stdout] | [INFO] [stdout] 2581 | fn disassemble(&mut self, start: u16, stop: u16) -> BTreeMap { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_stop` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `row` [INFO] [stdout] --> src/main.rs:2766:9 [INFO] [stdout] | [INFO] [stdout] 2766 | for row in 0..rows { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_row` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `column` [INFO] [stdout] --> src/main.rs:2769:13 [INFO] [stdout] | [INFO] [stdout] 2769 | for column in 0..columns { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_column` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:2761:9 [INFO] [stdout] | [INFO] [stdout] 2761 | let mut ram_x = x as usize; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `line_y` is never read [INFO] [stdout] --> src/main.rs:2803:5 [INFO] [stdout] | [INFO] [stdout] 2803 | line_y = (lines >> 1) * 10 + y; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/main.rs:2805:17 [INFO] [stdout] | [INFO] [stdout] 2805 | if let Some(instruction) = map_lines.get(&cpu.pc) { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:2824:9 [INFO] [stdout] | [INFO] [stdout] 2824 | let mut code_assemble_bin = String::from("A2 0A 8E 00 00 A2 03 8E 01 00 AC 00 00 A9 00 18 6D 01 00 88 D0 FA 8D 02 00 EA EA EA"); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `irq`, `nmi`, and `connect_bus` are never used [INFO] [stdout] --> src/main.rs:2510:8 [INFO] [stdout] | [INFO] [stdout] 98 | impl cpu6502 { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 2510 | fn irq(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 2541 | fn nmi(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 2576 | fn connect_bus(&mut self, bus: Bus) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `to_hex` is never used [INFO] [stdout] --> src/main.rs:2709:4 [INFO] [stdout] | [INFO] [stdout] 2709 | fn to_hex(number: T, d: u16) -> String { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_cpu` is never used [INFO] [stdout] --> src/main.rs:2723:4 [INFO] [stdout] | [INFO] [stdout] 2723 | fn print_cpu(cpu: &mut cpu6502) [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/main.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 27 | if addr >= 0x0000 && addr <= 0xFFFF { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/main.rs:27:30 [INFO] [stdout] | [INFO] [stdout] 27 | if addr >= 0x0000 && addr <= 0xFFFF { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/main.rs:33:12 [INFO] [stdout] | [INFO] [stdout] 33 | if addr >= 0x0000 && addr <= 0xFFFF { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/main.rs:33:30 [INFO] [stdout] | [INFO] [stdout] 33 | if addr >= 0x0000 && addr <= 0xFFFF { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `IMP` should have a snake case name [INFO] [stdout] --> src/main.rs:1676:8 [INFO] [stdout] | [INFO] [stdout] 1676 | fn IMP(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `imp` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `IMM` should have a snake case name [INFO] [stdout] --> src/main.rs:1680:8 [INFO] [stdout] | [INFO] [stdout] 1680 | fn IMM(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `imm` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `ZP0` should have a snake case name [INFO] [stdout] --> src/main.rs:1685:8 [INFO] [stdout] | [INFO] [stdout] 1685 | fn ZP0(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `zp0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `ZPX` should have a snake case name [INFO] [stdout] --> src/main.rs:1693:8 [INFO] [stdout] | [INFO] [stdout] 1693 | fn ZPX(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `zpx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `ZPY` should have a snake case name [INFO] [stdout] --> src/main.rs:1701:8 [INFO] [stdout] | [INFO] [stdout] 1701 | fn ZPY(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `zpy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `REL` should have a snake case name [INFO] [stdout] --> src/main.rs:1708:8 [INFO] [stdout] | [INFO] [stdout] 1708 | fn REL(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `rel` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `ABS` should have a snake case name [INFO] [stdout] --> src/main.rs:1718:8 [INFO] [stdout] | [INFO] [stdout] 1718 | fn ABS(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `abs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `ABX` should have a snake case name [INFO] [stdout] --> src/main.rs:1730:8 [INFO] [stdout] | [INFO] [stdout] 1730 | fn ABX(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `abx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `ABY` should have a snake case name [INFO] [stdout] --> src/main.rs:1747:8 [INFO] [stdout] | [INFO] [stdout] 1747 | fn ABY(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `aby` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `IND` should have a snake case name [INFO] [stdout] --> src/main.rs:1764:8 [INFO] [stdout] | [INFO] [stdout] 1764 | fn IND(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `ind` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `IZX` should have a snake case name [INFO] [stdout] --> src/main.rs:1786:8 [INFO] [stdout] | [INFO] [stdout] 1786 | fn IZX(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case (notice the capitalization): `izx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `IZY` should have a snake case name [INFO] [stdout] --> src/main.rs:1799:8 [INFO] [stdout] | [INFO] [stdout] 1799 | fn IZY(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case (notice the capitalization): `izy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `ADC` should have a snake case name [INFO] [stdout] --> src/main.rs:1817:8 [INFO] [stdout] | [INFO] [stdout] 1817 | fn ADC(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `adc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `AND` should have a snake case name [INFO] [stdout] --> src/main.rs:1848:8 [INFO] [stdout] | [INFO] [stdout] 1848 | fn AND(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `and` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `ASL` should have a snake case name [INFO] [stdout] --> src/main.rs:1855:8 [INFO] [stdout] | [INFO] [stdout] 1855 | fn ASL(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `asl` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/main.rs:1861:12 [INFO] [stdout] | [INFO] [stdout] 1861 | if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 1861 - if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP { [INFO] [stdout] 1861 + if std::ptr::fn_addr_eq(cpu.lookup[cpu.opcode as usize].addr_mode, cpu6502::IMP as for<'a> fn(&'a mut cpu6502) -> u8) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `BCC` should have a snake case name [INFO] [stdout] --> src/main.rs:1869:8 [INFO] [stdout] | [INFO] [stdout] 1869 | fn BCC(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `bcc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `BCS` should have a snake case name [INFO] [stdout] --> src/main.rs:1882:8 [INFO] [stdout] | [INFO] [stdout] 1882 | fn BCS(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `bcs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `BEQ` should have a snake case name [INFO] [stdout] --> src/main.rs:1895:8 [INFO] [stdout] | [INFO] [stdout] 1895 | fn BEQ(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `beq` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `BIT` should have a snake case name [INFO] [stdout] --> src/main.rs:1908:8 [INFO] [stdout] | [INFO] [stdout] 1908 | fn BIT(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `bit` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `BMI` should have a snake case name [INFO] [stdout] --> src/main.rs:1918:8 [INFO] [stdout] | [INFO] [stdout] 1918 | fn BMI(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `bmi` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `BNE` should have a snake case name [INFO] [stdout] --> src/main.rs:1932:8 [INFO] [stdout] | [INFO] [stdout] 1932 | fn BNE(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `bne` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `BPL` should have a snake case name [INFO] [stdout] --> src/main.rs:1947:8 [INFO] [stdout] | [INFO] [stdout] 1947 | fn BPL(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `bpl` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `BRK` should have a snake case name [INFO] [stdout] --> src/main.rs:1963:8 [INFO] [stdout] | [INFO] [stdout] 1963 | fn BRK(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `brk` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `BVC` should have a snake case name [INFO] [stdout] --> src/main.rs:1982:8 [INFO] [stdout] | [INFO] [stdout] 1982 | fn BVC(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `bvc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `BVS` should have a snake case name [INFO] [stdout] --> src/main.rs:2000:8 [INFO] [stdout] | [INFO] [stdout] 2000 | fn BVS(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `bvs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `CLC` should have a snake case name [INFO] [stdout] --> src/main.rs:2019:8 [INFO] [stdout] | [INFO] [stdout] 2019 | fn CLC(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `clc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `CLD` should have a snake case name [INFO] [stdout] --> src/main.rs:2026:8 [INFO] [stdout] | [INFO] [stdout] 2026 | fn CLD(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `cld` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `CLI` should have a snake case name [INFO] [stdout] --> src/main.rs:2032:8 [INFO] [stdout] | [INFO] [stdout] 2032 | fn CLI(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `cli` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `CLV` should have a snake case name [INFO] [stdout] --> src/main.rs:2037:8 [INFO] [stdout] | [INFO] [stdout] 2037 | fn CLV(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `clv` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `CMP` should have a snake case name [INFO] [stdout] --> src/main.rs:2043:8 [INFO] [stdout] | [INFO] [stdout] 2043 | fn CMP(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `cmp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `CPX` should have a snake case name [INFO] [stdout] --> src/main.rs:2054:8 [INFO] [stdout] | [INFO] [stdout] 2054 | fn CPX(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `cpx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `CPY` should have a snake case name [INFO] [stdout] --> src/main.rs:2064:8 [INFO] [stdout] | [INFO] [stdout] 2064 | fn CPY(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `cpy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `DEC` should have a snake case name [INFO] [stdout] --> src/main.rs:2074:8 [INFO] [stdout] | [INFO] [stdout] 2074 | fn DEC(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `dec` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `DEX` should have a snake case name [INFO] [stdout] --> src/main.rs:2084:8 [INFO] [stdout] | [INFO] [stdout] 2084 | fn DEX(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `dex` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `DEY` should have a snake case name [INFO] [stdout] --> src/main.rs:2093:8 [INFO] [stdout] | [INFO] [stdout] 2093 | fn DEY(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `dey` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `EOR` should have a snake case name [INFO] [stdout] --> src/main.rs:2102:8 [INFO] [stdout] | [INFO] [stdout] 2102 | fn EOR(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `eor` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `INC` should have a snake case name [INFO] [stdout] --> src/main.rs:2113:8 [INFO] [stdout] | [INFO] [stdout] 2113 | fn INC(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `inc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `INX` should have a snake case name [INFO] [stdout] --> src/main.rs:2124:8 [INFO] [stdout] | [INFO] [stdout] 2124 | fn INX(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `inx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `INY` should have a snake case name [INFO] [stdout] --> src/main.rs:2134:8 [INFO] [stdout] | [INFO] [stdout] 2134 | fn INY(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `iny` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `JMP` should have a snake case name [INFO] [stdout] --> src/main.rs:2143:8 [INFO] [stdout] | [INFO] [stdout] 2143 | fn JMP(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `jmp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `JSR` should have a snake case name [INFO] [stdout] --> src/main.rs:2149:8 [INFO] [stdout] | [INFO] [stdout] 2149 | fn JSR(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `jsr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `LDA` should have a snake case name [INFO] [stdout] --> src/main.rs:2163:8 [INFO] [stdout] | [INFO] [stdout] 2163 | fn LDA(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `lda` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `LDX` should have a snake case name [INFO] [stdout] --> src/main.rs:2171:8 [INFO] [stdout] | [INFO] [stdout] 2171 | fn LDX(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `ldx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `LDY` should have a snake case name [INFO] [stdout] --> src/main.rs:2180:8 [INFO] [stdout] | [INFO] [stdout] 2180 | fn LDY(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `ldy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `LSR` should have a snake case name [INFO] [stdout] --> src/main.rs:2188:8 [INFO] [stdout] | [INFO] [stdout] 2188 | fn LSR(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `lsr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/main.rs:2196:12 [INFO] [stdout] | [INFO] [stdout] 2196 | if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 2196 - if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP { [INFO] [stdout] 2196 + if std::ptr::fn_addr_eq(cpu.lookup[cpu.opcode as usize].addr_mode, cpu6502::IMP as for<'a> fn(&'a mut cpu6502) -> u8) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `NOP` should have a snake case name [INFO] [stdout] --> src/main.rs:2205:8 [INFO] [stdout] | [INFO] [stdout] 2205 | fn NOP(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `nop` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `ORA` should have a snake case name [INFO] [stdout] --> src/main.rs:2219:8 [INFO] [stdout] | [INFO] [stdout] 2219 | fn ORA(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `ora` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `PHA` should have a snake case name [INFO] [stdout] --> src/main.rs:2227:8 [INFO] [stdout] | [INFO] [stdout] 2227 | fn PHA(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `pha` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `PHP` should have a snake case name [INFO] [stdout] --> src/main.rs:2233:8 [INFO] [stdout] | [INFO] [stdout] 2233 | fn PHP(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `php` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `PLA` should have a snake case name [INFO] [stdout] --> src/main.rs:2241:8 [INFO] [stdout] | [INFO] [stdout] 2241 | fn PLA(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `pla` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `PLP` should have a snake case name [INFO] [stdout] --> src/main.rs:2250:8 [INFO] [stdout] | [INFO] [stdout] 2250 | fn PLP(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `plp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `ROL` should have a snake case name [INFO] [stdout] --> src/main.rs:2259:8 [INFO] [stdout] | [INFO] [stdout] 2259 | fn ROL(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `rol` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/main.rs:2267:12 [INFO] [stdout] | [INFO] [stdout] 2267 | if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 2267 - if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP { [INFO] [stdout] 2267 + if std::ptr::fn_addr_eq(cpu.lookup[cpu.opcode as usize].addr_mode, cpu6502::IMP as for<'a> fn(&'a mut cpu6502) -> u8) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `ROR` should have a snake case name [INFO] [stdout] --> src/main.rs:2276:8 [INFO] [stdout] | [INFO] [stdout] 2276 | fn ROR(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `ror` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/main.rs:2284:12 [INFO] [stdout] | [INFO] [stdout] 2284 | if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 2284 - if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP { [INFO] [stdout] 2284 + if std::ptr::fn_addr_eq(cpu.lookup[cpu.opcode as usize].addr_mode, cpu6502::IMP as for<'a> fn(&'a mut cpu6502) -> u8) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `RTI` should have a snake case name [INFO] [stdout] --> src/main.rs:2294:8 [INFO] [stdout] | [INFO] [stdout] 2294 | fn RTI(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `rti` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `RTS` should have a snake case name [INFO] [stdout] --> src/main.rs:2309:8 [INFO] [stdout] | [INFO] [stdout] 2309 | fn RTS(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `rts` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `SBC` should have a snake case name [INFO] [stdout] --> src/main.rs:2319:8 [INFO] [stdout] | [INFO] [stdout] 2319 | fn SBC(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `sbc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `SEC` should have a snake case name [INFO] [stdout] --> src/main.rs:2337:8 [INFO] [stdout] | [INFO] [stdout] 2337 | fn SEC(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `sec` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `SED` should have a snake case name [INFO] [stdout] --> src/main.rs:2342:8 [INFO] [stdout] | [INFO] [stdout] 2342 | fn SED(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `sed` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `SEI` should have a snake case name [INFO] [stdout] --> src/main.rs:2347:8 [INFO] [stdout] | [INFO] [stdout] 2347 | fn SEI(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `sei` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `STA` should have a snake case name [INFO] [stdout] --> src/main.rs:2353:8 [INFO] [stdout] | [INFO] [stdout] 2353 | fn STA(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `sta` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `STX` should have a snake case name [INFO] [stdout] --> src/main.rs:2359:8 [INFO] [stdout] | [INFO] [stdout] 2359 | fn STX(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `stx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `STY` should have a snake case name [INFO] [stdout] --> src/main.rs:2364:8 [INFO] [stdout] | [INFO] [stdout] 2364 | fn STY(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `sty` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `TAX` should have a snake case name [INFO] [stdout] --> src/main.rs:2369:8 [INFO] [stdout] | [INFO] [stdout] 2369 | fn TAX(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `tax` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `TAY` should have a snake case name [INFO] [stdout] --> src/main.rs:2377:8 [INFO] [stdout] | [INFO] [stdout] 2377 | fn TAY(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `tay` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `TSX` should have a snake case name [INFO] [stdout] --> src/main.rs:2385:8 [INFO] [stdout] | [INFO] [stdout] 2385 | fn TSX(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `tsx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `TXA` should have a snake case name [INFO] [stdout] --> src/main.rs:2395:8 [INFO] [stdout] | [INFO] [stdout] 2395 | fn TXA(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `txa` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `TXS` should have a snake case name [INFO] [stdout] --> src/main.rs:2405:8 [INFO] [stdout] | [INFO] [stdout] 2405 | fn TXS(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `txs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `TYA` should have a snake case name [INFO] [stdout] --> src/main.rs:2412:8 [INFO] [stdout] | [INFO] [stdout] 2412 | fn TYA(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `tya` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `XXX` should have a snake case name [INFO] [stdout] --> src/main.rs:2423:8 [INFO] [stdout] | [INFO] [stdout] 2423 | fn XXX(cpu: &mut cpu6502) -> u8 { [INFO] [stdout] | ^^^ help: convert the identifier to snake case (notice the capitalization): `xxx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/main.rs:2565:13 [INFO] [stdout] | [INFO] [stdout] 2565 | if !(self.lookup[self.opcode as usize].addr_mode == cpu::IMP) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 2565 - if !(self.lookup[self.opcode as usize].addr_mode == cpu::IMP) { [INFO] [stdout] 2565 + if !std::ptr::fn_addr_eq(self.lookup[self.opcode as usize].addr_mode, cpu::IMP as for<'a> fn(&'a mut cpu6502) -> u8) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/main.rs:2601:16 [INFO] [stdout] | [INFO] [stdout] 2601 | if self.lookup[opcode].addr_mode == cpu::IMP [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 2601 - if self.lookup[opcode].addr_mode == cpu::IMP [INFO] [stdout] 2601 + if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::IMP as for<'a> fn(&'a mut cpu6502) -> u8) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/main.rs:2604:23 [INFO] [stdout] | [INFO] [stdout] 2604 | } else if self.lookup[opcode].addr_mode == cpu::IMM [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 2604 - } else if self.lookup[opcode].addr_mode == cpu::IMM [INFO] [stdout] 2604 + } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::IMM as for<'a> fn(&'a mut cpu6502) -> u8) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/main.rs:2610:23 [INFO] [stdout] | [INFO] [stdout] 2610 | } else if self.lookup[opcode].addr_mode == cpu::ZP0 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 2610 - } else if self.lookup[opcode].addr_mode == cpu::ZP0 [INFO] [stdout] 2610 + } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::ZP0 as for<'a> fn(&'a mut cpu6502) -> u8) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/main.rs:2616:23 [INFO] [stdout] | [INFO] [stdout] 2616 | } else if self.lookup[opcode].addr_mode == cpu::ZPX [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 2616 - } else if self.lookup[opcode].addr_mode == cpu::ZPX [INFO] [stdout] 2616 + } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::ZPX as for<'a> fn(&'a mut cpu6502) -> u8) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/main.rs:2622:23 [INFO] [stdout] | [INFO] [stdout] 2622 | } else if self.lookup[opcode].addr_mode == cpu::ZPY [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 2622 - } else if self.lookup[opcode].addr_mode == cpu::ZPY [INFO] [stdout] 2622 + } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::ZPY as for<'a> fn(&'a mut cpu6502) -> u8) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/main.rs:2628:23 [INFO] [stdout] | [INFO] [stdout] 2628 | } else if self.lookup[opcode].addr_mode == cpu::IZX [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 2628 - } else if self.lookup[opcode].addr_mode == cpu::IZX [INFO] [stdout] 2628 + } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::IZX as for<'a> fn(&'a mut cpu6502) -> u8) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/main.rs:2634:23 [INFO] [stdout] | [INFO] [stdout] 2634 | } else if self.lookup[opcode].addr_mode == cpu::IZY [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 2634 - } else if self.lookup[opcode].addr_mode == cpu::IZY [INFO] [stdout] 2634 + } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::IZY as for<'a> fn(&'a mut cpu6502) -> u8) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/main.rs:2640:23 [INFO] [stdout] | [INFO] [stdout] 2640 | } else if self.lookup[opcode].addr_mode == cpu::ABS [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 2640 - } else if self.lookup[opcode].addr_mode == cpu::ABS [INFO] [stdout] 2640 + } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::ABS as for<'a> fn(&'a mut cpu6502) -> u8) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/main.rs:2647:23 [INFO] [stdout] | [INFO] [stdout] 2647 | } else if self.lookup[opcode].addr_mode == cpu::ABX [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 2647 - } else if self.lookup[opcode].addr_mode == cpu::ABX [INFO] [stdout] 2647 + } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::ABX as for<'a> fn(&'a mut cpu6502) -> u8) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/main.rs:2654:23 [INFO] [stdout] | [INFO] [stdout] 2654 | } else if self.lookup[opcode].addr_mode == cpu::ABY [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 2654 - } else if self.lookup[opcode].addr_mode == cpu::ABY [INFO] [stdout] 2654 + } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::ABY as for<'a> fn(&'a mut cpu6502) -> u8) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/main.rs:2661:23 [INFO] [stdout] | [INFO] [stdout] 2661 | } else if self.lookup[opcode].addr_mode == cpu::IND [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 2661 - } else if self.lookup[opcode].addr_mode == cpu::IND [INFO] [stdout] 2661 + } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::IND as for<'a> fn(&'a mut cpu6502) -> u8) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/main.rs:2668:23 [INFO] [stdout] | [INFO] [stdout] 2668 | } else if self.lookup[opcode].addr_mode == cpu::REL [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 2668 - } else if self.lookup[opcode].addr_mode == cpu::REL [INFO] [stdout] 2668 + } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::REL as for<'a> fn(&'a mut cpu6502) -> u8) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.73s [INFO] running `Command { std: "docker" "inspect" "a5997a215d6f9963519d16164a1093b0cc37dc66e982da987aa43b6b5901ef73", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a5997a215d6f9963519d16164a1093b0cc37dc66e982da987aa43b6b5901ef73", kill_on_drop: false }` [INFO] [stdout] a5997a215d6f9963519d16164a1093b0cc37dc66e982da987aa43b6b5901ef73 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+b83b707f97d809763b7861afa7638871f3339a33" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] ba64f8702bae8cbae665bb398c13fea79bab5e2c6c23a1e3a1a2e4d9ee0854f7 [INFO] running `Command { std: "docker" "start" "-a" "ba64f8702bae8cbae665bb398c13fea79bab5e2c6c23a1e3a1a2e4d9ee0854f7", kill_on_drop: false }` [INFO] [stderr] warning: unused imports: `RefCell` and `RefMut` [INFO] [stderr] --> src/main.rs:1:17 [INFO] [stderr] | [INFO] [stderr] 1 | use std::cell::{RefCell, RefMut}; [INFO] [stderr] | ^^^^^^^ ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `HashMap` [INFO] [stderr] --> src/main.rs:2:41 [INFO] [stderr] | [INFO] [stderr] 2 | use std::collections::{Bound, BTreeMap, HashMap}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ops::BitOr` [INFO] [stderr] --> src/main.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::ops::BitOr; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::rc::Rc` [INFO] [stderr] --> src/main.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::rc::Rc; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::FLAGS6502::B` [INFO] [stderr] --> src/main.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use crate::FLAGS6502::B; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/main.rs:10:13 [INFO] [stderr] | [INFO] [stderr] 10 | #[macro_use(concat_string)] [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type `cpu6502` should have an upper camel case name [INFO] [stderr] --> src/main.rs:72:8 [INFO] [stderr] | [INFO] [stderr] 72 | struct cpu6502 { [INFO] [stderr] | ^^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cpu6502` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: type `cpu` should have an upper camel case name [INFO] [stderr] --> src/main.rs:96:6 [INFO] [stderr] | [INFO] [stderr] 96 | type cpu = cpu6502; [INFO] [stderr] | ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cpu` [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/main.rs:1753:24 [INFO] [stderr] | [INFO] [stderr] 1753 | cpu.addr_abs = ((hi << 8) | lo); [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 1753 - cpu.addr_abs = ((hi << 8) | lo); [INFO] [stderr] 1753 + cpu.addr_abs = (hi << 8) | lo; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/main.rs:1790:27 [INFO] [stderr] | [INFO] [stderr] 1790 | let lo = cpu.read(((t + (cpu.x as u16)) & 0x00FF)) as u16; [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 1790 - let lo = cpu.read(((t + (cpu.x as u16)) & 0x00FF)) as u16; [INFO] [stderr] 1790 + let lo = cpu.read((t + (cpu.x as u16)) & 0x00FF) as u16; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/main.rs:1791:27 [INFO] [stderr] | [INFO] [stderr] 1791 | let hi = cpu.read(((t + ((cpu.x as u16) + 1u16)) & 0x00FF)) as u16; [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 1791 - let hi = cpu.read(((t + ((cpu.x as u16) + 1u16)) & 0x00FF)) as u16; [INFO] [stderr] 1791 + let hi = cpu.read((t + ((cpu.x as u16) + 1u16)) & 0x00FF) as u16; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/main.rs:1803:27 [INFO] [stderr] | [INFO] [stderr] 1803 | let lo = cpu.read((t & 0x00FF)) as u16; [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 1803 - let lo = cpu.read((t & 0x00FF)) as u16; [INFO] [stderr] 1803 + let lo = cpu.read(t & 0x00FF) as u16; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/main.rs:1804:27 [INFO] [stderr] | [INFO] [stderr] 1804 | let hi = cpu.read(((t + 1) & 0x00FF)) as u16; [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 1804 - let hi = cpu.read(((t + 1) & 0x00FF)) as u16; [INFO] [stderr] 1804 + let hi = cpu.read((t + 1) & 0x00FF) as u16; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/main.rs:1806:24 [INFO] [stderr] | [INFO] [stderr] 1806 | cpu.addr_abs = ((hi << 8) | lo); [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 1806 - cpu.addr_abs = ((hi << 8) | lo); [INFO] [stderr] 1806 + cpu.addr_abs = (hi << 8) | lo; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/main.rs:1823:20 [INFO] [stderr] | [INFO] [stderr] 1823 | cpu.temp = ((cpu.a as u16) + (cpu.fetched as u16) + (cpu.get_flag(FLAGS6502::C) as u16)); [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 1823 - cpu.temp = ((cpu.a as u16) + (cpu.fetched as u16) + (cpu.get_flag(FLAGS6502::C) as u16)); [INFO] [stderr] 1823 + cpu.temp = (cpu.a as u16) + (cpu.fetched as u16) + (cpu.get_flag(FLAGS6502::C) as u16); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/main.rs:1857:20 [INFO] [stderr] | [INFO] [stderr] 1857 | cpu.temp = ((cpu.fetched as u16) << 1); [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 1857 - cpu.temp = ((cpu.fetched as u16) << 1); [INFO] [stderr] 1857 + cpu.temp = (cpu.fetched as u16) << 1; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:1887:16 [INFO] [stderr] | [INFO] [stderr] 1887 | if ((cpu.addr_abs & 0xFF00) != (cpu.pc & 0xFF00)) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 1887 - if ((cpu.addr_abs & 0xFF00) != (cpu.pc & 0xFF00)) { [INFO] [stderr] 1887 + if (cpu.addr_abs & 0xFF00) != (cpu.pc & 0xFF00) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/main.rs:2328:20 [INFO] [stderr] | [INFO] [stderr] 2328 | cpu.temp = ((cpu.a as u16) + value + (cpu.get_flag(FLAGS6502::C) as u16)); [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 2328 - cpu.temp = ((cpu.a as u16) + value + (cpu.get_flag(FLAGS6502::C) as u16)); [INFO] [stderr] 2328 + cpu.temp = (cpu.a as u16) + value + (cpu.get_flag(FLAGS6502::C) as u16); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/main.rs:2330:36 [INFO] [stderr] | [INFO] [stderr] 2330 | cpu.set_flag(FLAGS6502::Z, ((cpu.temp & 0x00FF) == 0)); [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 2330 - cpu.set_flag(FLAGS6502::Z, ((cpu.temp & 0x00FF) == 0)); [INFO] [stderr] 2330 + cpu.set_flag(FLAGS6502::Z, (cpu.temp & 0x00FF) == 0); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/main.rs:2453:28 [INFO] [stderr] | [INFO] [stderr] 2453 | self.cycles += (additional_cycle1 & additional_cycle2); [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 2453 - self.cycles += (additional_cycle1 & additional_cycle2); [INFO] [stderr] 2453 + self.cycles += additional_cycle1 & additional_cycle2; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/main.rs:2489:19 [INFO] [stderr] | [INFO] [stderr] 2489 | self.pc = ((hi << 8) | lo); [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 2489 - self.pc = ((hi << 8) | lo); [INFO] [stderr] 2489 + self.pc = (hi << 8) | lo; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:2511:12 [INFO] [stderr] | [INFO] [stderr] 2511 | if (self.get_flag(FLAGS6502::I) == 0) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 2511 - if (self.get_flag(FLAGS6502::I) == 0) { [INFO] [stderr] 2511 + if self.get_flag(FLAGS6502::I) == 0 { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/main.rs:2515:17 [INFO] [stderr] | [INFO] [stderr] 2515 | (0x0100u16 + self.stkp as u16), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 2515 - (0x0100u16 + self.stkp as u16), [INFO] [stderr] 2515 + 0x0100u16 + self.stkp as u16, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/main.rs:2519:24 [INFO] [stderr] | [INFO] [stderr] 2519 | self.write((0x0100u16 + self.stkp as u16), (self.pc & 0x00FF) as u8); [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 2519 - self.write((0x0100u16 + self.stkp as u16), (self.pc & 0x00FF) as u8); [INFO] [stderr] 2519 + self.write(0x0100u16 + self.stkp as u16, (self.pc & 0x00FF) as u8); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused variable: `read_only` [INFO] [stderr] --> src/main.rs:32:31 [INFO] [stderr] | [INFO] [stderr] 32 | fn read(&self, addr: u16, read_only: bool) -> u8 { [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_read_only` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cpu` [INFO] [stderr] --> src/main.rs:2423:12 [INFO] [stderr] | [INFO] [stderr] 2423 | fn XXX(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stderr] [INFO] [stderr] warning: value assigned to `value` is never read [INFO] [stderr] --> src/main.rs:2583:17 [INFO] [stderr] | [INFO] [stderr] 2583 | let mut value = 0x00u8; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `lo` is never read [INFO] [stderr] --> src/main.rs:2584:17 [INFO] [stderr] | [INFO] [stderr] 2584 | let mut lo = 0x00u8; [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `hi` is never read [INFO] [stderr] --> src/main.rs:2585:17 [INFO] [stderr] | [INFO] [stderr] 2585 | let mut hi = 0x00u8; [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `line_addr` is never read [INFO] [stderr] --> src/main.rs:2587:17 [INFO] [stderr] | [INFO] [stderr] 2587 | let mut line_addr = 0u16; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `hi` is never read [INFO] [stderr] --> src/main.rs:2614:17 [INFO] [stderr] | [INFO] [stderr] 2614 | hi = 0x00; [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `hi` is never read [INFO] [stderr] --> src/main.rs:2620:17 [INFO] [stderr] | [INFO] [stderr] 2620 | hi = 0x00; [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `hi` is never read [INFO] [stderr] --> src/main.rs:2626:17 [INFO] [stderr] | [INFO] [stderr] 2626 | hi = 0x00; [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `hi` is never read [INFO] [stderr] --> src/main.rs:2632:17 [INFO] [stderr] | [INFO] [stderr] 2632 | hi = 0x00; [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `hi` is never read [INFO] [stderr] --> src/main.rs:2638:17 [INFO] [stderr] | [INFO] [stderr] 2638 | hi = 0x00; [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: unused variable: `stop` [INFO] [stderr] --> src/main.rs:2581:43 [INFO] [stderr] | [INFO] [stderr] 2581 | fn disassemble(&mut self, start: u16, stop: u16) -> BTreeMap { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_stop` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `row` [INFO] [stderr] --> src/main.rs:2766:9 [INFO] [stderr] | [INFO] [stderr] 2766 | for row in 0..rows { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_row` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `column` [INFO] [stderr] --> src/main.rs:2769:13 [INFO] [stderr] | [INFO] [stderr] 2769 | for column in 0..columns { [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_column` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:2761:9 [INFO] [stderr] | [INFO] [stderr] 2761 | let mut ram_x = x as usize; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `line_y` is never read [INFO] [stderr] --> src/main.rs:2803:5 [INFO] [stderr] | [INFO] [stderr] 2803 | line_y = (lines >> 1) * 10 + y; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: unused variable: `instruction` [INFO] [stderr] --> src/main.rs:2805:17 [INFO] [stderr] | [INFO] [stderr] 2805 | if let Some(instruction) = map_lines.get(&cpu.pc) { [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:2824:9 [INFO] [stderr] | [INFO] [stderr] 2824 | let mut code_assemble_bin = String::from("A2 0A 8E 00 00 A2 03 8E 01 00 AC 00 00 A9 00 18 6D 01 00 88 D0 FA 8D 02 00 EA EA EA"); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: methods `irq`, `nmi`, and `connect_bus` are never used [INFO] [stderr] --> src/main.rs:2510:8 [INFO] [stderr] | [INFO] [stderr] 98 | impl cpu6502 { [INFO] [stderr] | ------------ methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 2510 | fn irq(&mut self) { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 2541 | fn nmi(&mut self) { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 2576 | fn connect_bus(&mut self, bus: Bus) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: function `to_hex` is never used [INFO] [stderr] --> src/main.rs:2709:4 [INFO] [stderr] | [INFO] [stderr] 2709 | fn to_hex(number: T, d: u16) -> String { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `print_cpu` is never used [INFO] [stderr] --> src/main.rs:2723:4 [INFO] [stderr] | [INFO] [stderr] 2723 | fn print_cpu(cpu: &mut cpu6502) [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/main.rs:27:12 [INFO] [stderr] | [INFO] [stderr] 27 | if addr >= 0x0000 && addr <= 0xFFFF { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_comparisons)]` on by default [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/main.rs:27:30 [INFO] [stderr] | [INFO] [stderr] 27 | if addr >= 0x0000 && addr <= 0xFFFF { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/main.rs:33:12 [INFO] [stderr] | [INFO] [stderr] 33 | if addr >= 0x0000 && addr <= 0xFFFF { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/main.rs:33:30 [INFO] [stderr] | [INFO] [stderr] 33 | if addr >= 0x0000 && addr <= 0xFFFF { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `IMP` should have a snake case name [INFO] [stderr] --> src/main.rs:1676:8 [INFO] [stderr] | [INFO] [stderr] 1676 | fn IMP(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `imp` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: method `IMM` should have a snake case name [INFO] [stderr] --> src/main.rs:1680:8 [INFO] [stderr] | [INFO] [stderr] 1680 | fn IMM(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `imm` [INFO] [stderr] [INFO] [stderr] warning: method `ZP0` should have a snake case name [INFO] [stderr] --> src/main.rs:1685:8 [INFO] [stderr] | [INFO] [stderr] 1685 | fn ZP0(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `zp0` [INFO] [stderr] [INFO] [stderr] warning: method `ZPX` should have a snake case name [INFO] [stderr] --> src/main.rs:1693:8 [INFO] [stderr] | [INFO] [stderr] 1693 | fn ZPX(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `zpx` [INFO] [stderr] [INFO] [stderr] warning: method `ZPY` should have a snake case name [INFO] [stderr] --> src/main.rs:1701:8 [INFO] [stderr] | [INFO] [stderr] 1701 | fn ZPY(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `zpy` [INFO] [stderr] [INFO] [stderr] warning: method `REL` should have a snake case name [INFO] [stderr] --> src/main.rs:1708:8 [INFO] [stderr] | [INFO] [stderr] 1708 | fn REL(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `rel` [INFO] [stderr] [INFO] [stderr] warning: method `ABS` should have a snake case name [INFO] [stderr] --> src/main.rs:1718:8 [INFO] [stderr] | [INFO] [stderr] 1718 | fn ABS(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `abs` [INFO] [stderr] [INFO] [stderr] warning: method `ABX` should have a snake case name [INFO] [stderr] --> src/main.rs:1730:8 [INFO] [stderr] | [INFO] [stderr] 1730 | fn ABX(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `abx` [INFO] [stderr] [INFO] [stderr] warning: method `ABY` should have a snake case name [INFO] [stderr] --> src/main.rs:1747:8 [INFO] [stderr] | [INFO] [stderr] 1747 | fn ABY(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `aby` [INFO] [stderr] [INFO] [stderr] warning: method `IND` should have a snake case name [INFO] [stderr] --> src/main.rs:1764:8 [INFO] [stderr] | [INFO] [stderr] 1764 | fn IND(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `ind` [INFO] [stderr] [INFO] [stderr] warning: method `IZX` should have a snake case name [INFO] [stderr] --> src/main.rs:1786:8 [INFO] [stderr] | [INFO] [stderr] 1786 | fn IZX(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case (notice the capitalization): `izx` [INFO] [stderr] [INFO] [stderr] warning: method `IZY` should have a snake case name [INFO] [stderr] --> src/main.rs:1799:8 [INFO] [stderr] | [INFO] [stderr] 1799 | fn IZY(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case (notice the capitalization): `izy` [INFO] [stderr] [INFO] [stderr] warning: method `ADC` should have a snake case name [INFO] [stderr] --> src/main.rs:1817:8 [INFO] [stderr] | [INFO] [stderr] 1817 | fn ADC(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `adc` [INFO] [stderr] [INFO] [stderr] warning: method `AND` should have a snake case name [INFO] [stderr] --> src/main.rs:1848:8 [INFO] [stderr] | [INFO] [stderr] 1848 | fn AND(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `and` [INFO] [stderr] [INFO] [stderr] warning: method `ASL` should have a snake case name [INFO] [stderr] --> src/main.rs:1855:8 [INFO] [stderr] | [INFO] [stderr] 1855 | fn ASL(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `asl` [INFO] [stderr] [INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stderr] --> src/main.rs:1861:12 [INFO] [stderr] | [INFO] [stderr] 1861 | if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: the address of the same function can vary between different codegen units [INFO] [stderr] = note: furthermore, different functions could have the same address after being merged together [INFO] [stderr] = note: for more information visit [INFO] [stderr] = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default [INFO] [stderr] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stderr] | [INFO] [stderr] 1861 - if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP { [INFO] [stderr] 1861 + if std::ptr::fn_addr_eq(cpu.lookup[cpu.opcode as usize].addr_mode, cpu6502::IMP as for<'a> fn(&'a mut cpu6502) -> u8) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: method `BCC` should have a snake case name [INFO] [stderr] --> src/main.rs:1869:8 [INFO] [stderr] | [INFO] [stderr] 1869 | fn BCC(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `bcc` [INFO] [stderr] [INFO] [stderr] warning: method `BCS` should have a snake case name [INFO] [stderr] --> src/main.rs:1882:8 [INFO] [stderr] | [INFO] [stderr] 1882 | fn BCS(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `bcs` [INFO] [stderr] [INFO] [stderr] warning: method `BEQ` should have a snake case name [INFO] [stderr] --> src/main.rs:1895:8 [INFO] [stderr] | [INFO] [stderr] 1895 | fn BEQ(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `beq` [INFO] [stderr] [INFO] [stderr] warning: method `BIT` should have a snake case name [INFO] [stderr] --> src/main.rs:1908:8 [INFO] [stderr] | [INFO] [stderr] 1908 | fn BIT(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `bit` [INFO] [stderr] [INFO] [stderr] warning: method `BMI` should have a snake case name [INFO] [stderr] --> src/main.rs:1918:8 [INFO] [stderr] | [INFO] [stderr] 1918 | fn BMI(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `bmi` [INFO] [stderr] [INFO] [stderr] warning: method `BNE` should have a snake case name [INFO] [stderr] --> src/main.rs:1932:8 [INFO] [stderr] | [INFO] [stderr] 1932 | fn BNE(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `bne` [INFO] [stderr] [INFO] [stderr] warning: method `BPL` should have a snake case name [INFO] [stderr] --> src/main.rs:1947:8 [INFO] [stderr] | [INFO] [stderr] 1947 | fn BPL(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `bpl` [INFO] [stderr] [INFO] [stderr] warning: method `BRK` should have a snake case name [INFO] [stderr] --> src/main.rs:1963:8 [INFO] [stderr] | [INFO] [stderr] 1963 | fn BRK(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `brk` [INFO] [stderr] [INFO] [stderr] warning: method `BVC` should have a snake case name [INFO] [stderr] --> src/main.rs:1982:8 [INFO] [stderr] | [INFO] [stderr] 1982 | fn BVC(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `bvc` [INFO] [stderr] [INFO] [stderr] warning: method `BVS` should have a snake case name [INFO] [stderr] --> src/main.rs:2000:8 [INFO] [stderr] | [INFO] [stderr] 2000 | fn BVS(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `bvs` [INFO] [stderr] [INFO] [stderr] warning: method `CLC` should have a snake case name [INFO] [stderr] --> src/main.rs:2019:8 [INFO] [stderr] | [INFO] [stderr] 2019 | fn CLC(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `clc` [INFO] [stderr] [INFO] [stderr] warning: method `CLD` should have a snake case name [INFO] [stderr] --> src/main.rs:2026:8 [INFO] [stderr] | [INFO] [stderr] 2026 | fn CLD(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `cld` [INFO] [stderr] [INFO] [stderr] warning: method `CLI` should have a snake case name [INFO] [stderr] --> src/main.rs:2032:8 [INFO] [stderr] | [INFO] [stderr] 2032 | fn CLI(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `cli` [INFO] [stderr] [INFO] [stderr] warning: method `CLV` should have a snake case name [INFO] [stderr] --> src/main.rs:2037:8 [INFO] [stderr] | [INFO] [stderr] 2037 | fn CLV(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `clv` [INFO] [stderr] [INFO] [stderr] warning: method `CMP` should have a snake case name [INFO] [stderr] --> src/main.rs:2043:8 [INFO] [stderr] | [INFO] [stderr] 2043 | fn CMP(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `cmp` [INFO] [stderr] [INFO] [stderr] warning: method `CPX` should have a snake case name [INFO] [stderr] --> src/main.rs:2054:8 [INFO] [stderr] | [INFO] [stderr] 2054 | fn CPX(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `cpx` [INFO] [stderr] [INFO] [stderr] warning: method `CPY` should have a snake case name [INFO] [stderr] --> src/main.rs:2064:8 [INFO] [stderr] | [INFO] [stderr] 2064 | fn CPY(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `cpy` [INFO] [stderr] [INFO] [stderr] warning: method `DEC` should have a snake case name [INFO] [stderr] --> src/main.rs:2074:8 [INFO] [stderr] | [INFO] [stderr] 2074 | fn DEC(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `dec` [INFO] [stderr] [INFO] [stderr] warning: method `DEX` should have a snake case name [INFO] [stderr] --> src/main.rs:2084:8 [INFO] [stderr] | [INFO] [stderr] 2084 | fn DEX(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `dex` [INFO] [stderr] [INFO] [stderr] warning: method `DEY` should have a snake case name [INFO] [stderr] --> src/main.rs:2093:8 [INFO] [stderr] | [INFO] [stderr] 2093 | fn DEY(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `dey` [INFO] [stderr] [INFO] [stderr] warning: method `EOR` should have a snake case name [INFO] [stderr] --> src/main.rs:2102:8 [INFO] [stderr] | [INFO] [stderr] 2102 | fn EOR(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `eor` [INFO] [stderr] [INFO] [stderr] warning: method `INC` should have a snake case name [INFO] [stderr] --> src/main.rs:2113:8 [INFO] [stderr] | [INFO] [stderr] 2113 | fn INC(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `inc` [INFO] [stderr] [INFO] [stderr] warning: method `INX` should have a snake case name [INFO] [stderr] --> src/main.rs:2124:8 [INFO] [stderr] | [INFO] [stderr] 2124 | fn INX(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `inx` [INFO] [stderr] [INFO] [stderr] warning: method `INY` should have a snake case name [INFO] [stderr] --> src/main.rs:2134:8 [INFO] [stderr] | [INFO] [stderr] 2134 | fn INY(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `iny` [INFO] [stderr] [INFO] [stderr] warning: method `JMP` should have a snake case name [INFO] [stderr] --> src/main.rs:2143:8 [INFO] [stderr] | [INFO] [stderr] 2143 | fn JMP(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `jmp` [INFO] [stderr] [INFO] [stderr] warning: method `JSR` should have a snake case name [INFO] [stderr] --> src/main.rs:2149:8 [INFO] [stderr] | [INFO] [stderr] 2149 | fn JSR(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `jsr` [INFO] [stderr] [INFO] [stderr] warning: method `LDA` should have a snake case name [INFO] [stderr] --> src/main.rs:2163:8 [INFO] [stderr] | [INFO] [stderr] 2163 | fn LDA(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `lda` [INFO] [stderr] [INFO] [stderr] warning: method `LDX` should have a snake case name [INFO] [stderr] --> src/main.rs:2171:8 [INFO] [stderr] | [INFO] [stderr] 2171 | fn LDX(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `ldx` [INFO] [stderr] [INFO] [stderr] warning: method `LDY` should have a snake case name [INFO] [stderr] --> src/main.rs:2180:8 [INFO] [stderr] | [INFO] [stderr] 2180 | fn LDY(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `ldy` [INFO] [stderr] [INFO] [stderr] warning: method `LSR` should have a snake case name [INFO] [stderr] --> src/main.rs:2188:8 [INFO] [stderr] | [INFO] [stderr] 2188 | fn LSR(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `lsr` [INFO] [stderr] [INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stderr] --> src/main.rs:2196:12 [INFO] [stderr] | [INFO] [stderr] 2196 | if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: the address of the same function can vary between different codegen units [INFO] [stderr] = note: furthermore, different functions could have the same address after being merged together [INFO] [stderr] = note: for more information visit [INFO] [stderr] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stderr] | [INFO] [stderr] 2196 - if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP { [INFO] [stderr] 2196 + if std::ptr::fn_addr_eq(cpu.lookup[cpu.opcode as usize].addr_mode, cpu6502::IMP as for<'a> fn(&'a mut cpu6502) -> u8) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: method `NOP` should have a snake case name [INFO] [stderr] --> src/main.rs:2205:8 [INFO] [stderr] | [INFO] [stderr] 2205 | fn NOP(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `nop` [INFO] [stderr] [INFO] [stderr] warning: method `ORA` should have a snake case name [INFO] [stderr] --> src/main.rs:2219:8 [INFO] [stderr] | [INFO] [stderr] 2219 | fn ORA(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `ora` [INFO] [stderr] [INFO] [stderr] warning: method `PHA` should have a snake case name [INFO] [stderr] --> src/main.rs:2227:8 [INFO] [stderr] | [INFO] [stderr] 2227 | fn PHA(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `pha` [INFO] [stderr] [INFO] [stderr] warning: method `PHP` should have a snake case name [INFO] [stderr] --> src/main.rs:2233:8 [INFO] [stderr] | [INFO] [stderr] 2233 | fn PHP(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `php` [INFO] [stderr] [INFO] [stderr] warning: method `PLA` should have a snake case name [INFO] [stderr] --> src/main.rs:2241:8 [INFO] [stderr] | [INFO] [stderr] 2241 | fn PLA(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `pla` [INFO] [stderr] [INFO] [stderr] warning: method `PLP` should have a snake case name [INFO] [stderr] --> src/main.rs:2250:8 [INFO] [stderr] | [INFO] [stderr] 2250 | fn PLP(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `plp` [INFO] [stderr] [INFO] [stderr] warning: method `ROL` should have a snake case name [INFO] [stderr] --> src/main.rs:2259:8 [INFO] [stderr] | [INFO] [stderr] 2259 | fn ROL(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `rol` [INFO] [stderr] [INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stderr] --> src/main.rs:2267:12 [INFO] [stderr] | [INFO] [stderr] 2267 | if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: the address of the same function can vary between different codegen units [INFO] [stderr] = note: furthermore, different functions could have the same address after being merged together [INFO] [stderr] = note: for more information visit [INFO] [stderr] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stderr] | [INFO] [stderr] 2267 - if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP { [INFO] [stderr] 2267 + if std::ptr::fn_addr_eq(cpu.lookup[cpu.opcode as usize].addr_mode, cpu6502::IMP as for<'a> fn(&'a mut cpu6502) -> u8) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: method `ROR` should have a snake case name [INFO] [stderr] --> src/main.rs:2276:8 [INFO] [stderr] | [INFO] [stderr] 2276 | fn ROR(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `ror` [INFO] [stderr] [INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stderr] --> src/main.rs:2284:12 [INFO] [stderr] | [INFO] [stderr] 2284 | if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: the address of the same function can vary between different codegen units [INFO] [stderr] = note: furthermore, different functions could have the same address after being merged together [INFO] [stderr] = note: for more information visit [INFO] [stderr] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stderr] | [INFO] [stderr] 2284 - if cpu.lookup[cpu.opcode as usize].addr_mode == cpu6502::IMP { [INFO] [stderr] 2284 + if std::ptr::fn_addr_eq(cpu.lookup[cpu.opcode as usize].addr_mode, cpu6502::IMP as for<'a> fn(&'a mut cpu6502) -> u8) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: method `RTI` should have a snake case name [INFO] [stderr] --> src/main.rs:2294:8 [INFO] [stderr] | [INFO] [stderr] 2294 | fn RTI(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `rti` [INFO] [stderr] [INFO] [stderr] warning: method `RTS` should have a snake case name [INFO] [stderr] --> src/main.rs:2309:8 [INFO] [stderr] | [INFO] [stderr] 2309 | fn RTS(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `rts` [INFO] [stderr] [INFO] [stderr] warning: method `SBC` should have a snake case name [INFO] [stderr] --> src/main.rs:2319:8 [INFO] [stderr] | [INFO] [stderr] 2319 | fn SBC(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `sbc` [INFO] [stderr] [INFO] [stderr] warning: method `SEC` should have a snake case name [INFO] [stderr] --> src/main.rs:2337:8 [INFO] [stderr] | [INFO] [stderr] 2337 | fn SEC(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `sec` [INFO] [stderr] [INFO] [stderr] warning: method `SED` should have a snake case name [INFO] [stderr] --> src/main.rs:2342:8 [INFO] [stderr] | [INFO] [stderr] 2342 | fn SED(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `sed` [INFO] [stderr] [INFO] [stderr] warning: method `SEI` should have a snake case name [INFO] [stderr] --> src/main.rs:2347:8 [INFO] [stderr] | [INFO] [stderr] 2347 | fn SEI(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `sei` [INFO] [stderr] [INFO] [stderr] warning: method `STA` should have a snake case name [INFO] [stderr] --> src/main.rs:2353:8 [INFO] [stderr] | [INFO] [stderr] 2353 | fn STA(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `sta` [INFO] [stderr] [INFO] [stderr] warning: method `STX` should have a snake case name [INFO] [stderr] --> src/main.rs:2359:8 [INFO] [stderr] | [INFO] [stderr] 2359 | fn STX(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `stx` [INFO] [stderr] [INFO] [stderr] warning: method `STY` should have a snake case name [INFO] [stderr] --> src/main.rs:2364:8 [INFO] [stderr] | [INFO] [stderr] 2364 | fn STY(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `sty` [INFO] [stderr] [INFO] [stderr] warning: method `TAX` should have a snake case name [INFO] [stderr] --> src/main.rs:2369:8 [INFO] [stderr] | [INFO] [stderr] 2369 | fn TAX(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `tax` [INFO] [stderr] [INFO] [stderr] warning: method `TAY` should have a snake case name [INFO] [stderr] --> src/main.rs:2377:8 [INFO] [stderr] | [INFO] [stderr] 2377 | fn TAY(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `tay` [INFO] [stderr] [INFO] [stderr] warning: method `TSX` should have a snake case name [INFO] [stderr] --> src/main.rs:2385:8 [INFO] [stderr] | [INFO] [stderr] 2385 | fn TSX(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `tsx` [INFO] [stderr] [INFO] [stderr] warning: method `TXA` should have a snake case name [INFO] [stderr] --> src/main.rs:2395:8 [INFO] [stderr] | [INFO] [stderr] 2395 | fn TXA(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `txa` [INFO] [stderr] [INFO] [stderr] warning: method `TXS` should have a snake case name [INFO] [stderr] --> src/main.rs:2405:8 [INFO] [stderr] | [INFO] [stderr] 2405 | fn TXS(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `txs` [INFO] [stderr] [INFO] [stderr] warning: method `TYA` should have a snake case name [INFO] [stderr] --> src/main.rs:2412:8 [INFO] [stderr] | [INFO] [stderr] 2412 | fn TYA(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `tya` [INFO] [stderr] [INFO] [stderr] warning: method `XXX` should have a snake case name [INFO] [stderr] --> src/main.rs:2423:8 [INFO] [stderr] | [INFO] [stderr] 2423 | fn XXX(cpu: &mut cpu6502) -> u8 { [INFO] [stderr] | ^^^ help: convert the identifier to snake case (notice the capitalization): `xxx` [INFO] [stderr] [INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stderr] --> src/main.rs:2565:13 [INFO] [stderr] | [INFO] [stderr] 2565 | if !(self.lookup[self.opcode as usize].addr_mode == cpu::IMP) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: the address of the same function can vary between different codegen units [INFO] [stderr] = note: furthermore, different functions could have the same address after being merged together [INFO] [stderr] = note: for more information visit [INFO] [stderr] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stderr] | [INFO] [stderr] 2565 - if !(self.lookup[self.opcode as usize].addr_mode == cpu::IMP) { [INFO] [stderr] 2565 + if !std::ptr::fn_addr_eq(self.lookup[self.opcode as usize].addr_mode, cpu::IMP as for<'a> fn(&'a mut cpu6502) -> u8) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stderr] --> src/main.rs:2601:16 [INFO] [stderr] | [INFO] [stderr] 2601 | if self.lookup[opcode].addr_mode == cpu::IMP [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: the address of the same function can vary between different codegen units [INFO] [stderr] = note: furthermore, different functions could have the same address after being merged together [INFO] [stderr] = note: for more information visit [INFO] [stderr] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stderr] | [INFO] [stderr] 2601 - if self.lookup[opcode].addr_mode == cpu::IMP [INFO] [stderr] 2601 + if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::IMP as for<'a> fn(&'a mut cpu6502) -> u8) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stderr] --> src/main.rs:2604:23 [INFO] [stderr] | [INFO] [stderr] 2604 | } else if self.lookup[opcode].addr_mode == cpu::IMM [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: the address of the same function can vary between different codegen units [INFO] [stderr] = note: furthermore, different functions could have the same address after being merged together [INFO] [stderr] = note: for more information visit [INFO] [stderr] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stderr] | [INFO] [stderr] 2604 - } else if self.lookup[opcode].addr_mode == cpu::IMM [INFO] [stderr] 2604 + } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::IMM as for<'a> fn(&'a mut cpu6502) -> u8) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stderr] --> src/main.rs:2610:23 [INFO] [stderr] | [INFO] [stderr] 2610 | } else if self.lookup[opcode].addr_mode == cpu::ZP0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: the address of the same function can vary between different codegen units [INFO] [stderr] = note: furthermore, different functions could have the same address after being merged together [INFO] [stderr] = note: for more information visit [INFO] [stderr] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stderr] | [INFO] [stderr] 2610 - } else if self.lookup[opcode].addr_mode == cpu::ZP0 [INFO] [stderr] 2610 + } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::ZP0 as for<'a> fn(&'a mut cpu6502) -> u8) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stderr] --> src/main.rs:2616:23 [INFO] [stderr] | [INFO] [stderr] 2616 | } else if self.lookup[opcode].addr_mode == cpu::ZPX [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: the address of the same function can vary between different codegen units [INFO] [stderr] = note: furthermore, different functions could have the same address after being merged together [INFO] [stderr] = note: for more information visit [INFO] [stderr] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stderr] | [INFO] [stderr] 2616 - } else if self.lookup[opcode].addr_mode == cpu::ZPX [INFO] [stderr] 2616 + } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::ZPX as for<'a> fn(&'a mut cpu6502) -> u8) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stderr] --> src/main.rs:2622:23 [INFO] [stderr] | [INFO] [stderr] 2622 | } else if self.lookup[opcode].addr_mode == cpu::ZPY [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: the address of the same function can vary between different codegen units [INFO] [stderr] = note: furthermore, different functions could have the same address after being merged together [INFO] [stderr] = note: for more information visit [INFO] [stderr] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stderr] | [INFO] [stderr] 2622 - } else if self.lookup[opcode].addr_mode == cpu::ZPY [INFO] [stderr] 2622 + } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::ZPY as for<'a> fn(&'a mut cpu6502) -> u8) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stderr] --> src/main.rs:2628:23 [INFO] [stderr] | [INFO] [stderr] 2628 | } else if self.lookup[opcode].addr_mode == cpu::IZX [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: the address of the same function can vary between different codegen units [INFO] [stderr] = note: furthermore, different functions could have the same address after being merged together [INFO] [stderr] = note: for more information visit [INFO] [stderr] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stderr] | [INFO] [stderr] 2628 - } else if self.lookup[opcode].addr_mode == cpu::IZX [INFO] [stderr] 2628 + } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::IZX as for<'a> fn(&'a mut cpu6502) -> u8) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stderr] --> src/main.rs:2634:23 [INFO] [stderr] | [INFO] [stderr] 2634 | } else if self.lookup[opcode].addr_mode == cpu::IZY [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: the address of the same function can vary between different codegen units [INFO] [stderr] = note: furthermore, different functions could have the same address after being merged together [INFO] [stderr] = note: for more information visit [INFO] [stderr] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stderr] | [INFO] [stderr] 2634 - } else if self.lookup[opcode].addr_mode == cpu::IZY [INFO] [stderr] 2634 + } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::IZY as for<'a> fn(&'a mut cpu6502) -> u8) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stderr] --> src/main.rs:2640:23 [INFO] [stderr] | [INFO] [stderr] 2640 | } else if self.lookup[opcode].addr_mode == cpu::ABS [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: the address of the same function can vary between different codegen units [INFO] [stderr] = note: furthermore, different functions could have the same address after being merged together [INFO] [stderr] = note: for more information visit [INFO] [stderr] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stderr] | [INFO] [stderr] 2640 - } else if self.lookup[opcode].addr_mode == cpu::ABS [INFO] [stderr] 2640 + } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::ABS as for<'a> fn(&'a mut cpu6502) -> u8) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stderr] --> src/main.rs:2647:23 [INFO] [stderr] | [INFO] [stderr] 2647 | } else if self.lookup[opcode].addr_mode == cpu::ABX [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: the address of the same function can vary between different codegen units [INFO] [stderr] = note: furthermore, different functions could have the same address after being merged together [INFO] [stderr] = note: for more information visit [INFO] [stderr] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stderr] | [INFO] [stderr] 2647 - } else if self.lookup[opcode].addr_mode == cpu::ABX [INFO] [stderr] 2647 + } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::ABX as for<'a> fn(&'a mut cpu6502) -> u8) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stderr] --> src/main.rs:2654:23 [INFO] [stderr] | [INFO] [stderr] 2654 | } else if self.lookup[opcode].addr_mode == cpu::ABY [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: the address of the same function can vary between different codegen units [INFO] [stderr] = note: furthermore, different functions could have the same address after being merged together [INFO] [stderr] = note: for more information visit [INFO] [stderr] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stderr] | [INFO] [stderr] 2654 - } else if self.lookup[opcode].addr_mode == cpu::ABY [INFO] [stderr] 2654 + } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::ABY as for<'a> fn(&'a mut cpu6502) -> u8) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stderr] --> src/main.rs:2661:23 [INFO] [stderr] | [INFO] [stderr] 2661 | } else if self.lookup[opcode].addr_mode == cpu::IND [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: the address of the same function can vary between different codegen units [INFO] [stderr] = note: furthermore, different functions could have the same address after being merged together [INFO] [stderr] = note: for more information visit [INFO] [stderr] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stderr] | [INFO] [stderr] 2661 - } else if self.lookup[opcode].addr_mode == cpu::IND [INFO] [stderr] 2661 + } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::IND as for<'a> fn(&'a mut cpu6502) -> u8) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stderr] --> src/main.rs:2668:23 [INFO] [stderr] | [INFO] [stderr] 2668 | } else if self.lookup[opcode].addr_mode == cpu::REL [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: the address of the same function can vary between different codegen units [INFO] [stderr] = note: furthermore, different functions could have the same address after being merged together [INFO] [stderr] = note: for more information visit [INFO] [stderr] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stderr] | [INFO] [stderr] 2668 - } else if self.lookup[opcode].addr_mode == cpu::REL [INFO] [stderr] 2668 + } else if std::ptr::fn_addr_eq(self.lookup[opcode].addr_mode, cpu::REL as for<'a> fn(&'a mut cpu6502) -> u8) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `crust-6502-emulator` (bin "crust-6502-emulator" test) generated 135 warnings (run `cargo fix --bin "crust-6502-emulator" --tests` to apply 23 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.13s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/crust_6502_emulator-295152bb08c7847e) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "ba64f8702bae8cbae665bb398c13fea79bab5e2c6c23a1e3a1a2e4d9ee0854f7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ba64f8702bae8cbae665bb398c13fea79bab5e2c6c23a1e3a1a2e4d9ee0854f7", kill_on_drop: false }` [INFO] [stdout] ba64f8702bae8cbae665bb398c13fea79bab5e2c6c23a1e3a1a2e4d9ee0854f7