[INFO] cloning repository https://github.com/JanMaier97/nes-emulator [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/JanMaier97/nes-emulator" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJanMaier97%2Fnes-emulator", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJanMaier97%2Fnes-emulator'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 3f16dedf3d238cef578454aa72a8b63a6b7fab9c [INFO] checking JanMaier97/nes-emulator/3f16dedf3d238cef578454aa72a8b63a6b7fab9c against master#ab869e094a907cc5d19b4080f22eccaf347f1f95 for pr-129604 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJanMaier97%2Fnes-emulator" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/JanMaier97/nes-emulator on toolchain ab869e094a907cc5d19b4080f22eccaf347f1f95 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/JanMaier97/nes-emulator [INFO] finished tweaking git repo https://github.com/JanMaier97/nes-emulator [INFO] tweaked toml for git repo https://github.com/JanMaier97/nes-emulator written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/JanMaier97/nes-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" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] ac1d5e960054a6c6378a7a2ccf0f6efaa8dbfb3fd9b8d7c39cba6f5a1e575d15 [INFO] running `Command { std: "docker" "start" "-a" "ac1d5e960054a6c6378a7a2ccf0f6efaa8dbfb3fd9b8d7c39cba6f5a1e575d15", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ac1d5e960054a6c6378a7a2ccf0f6efaa8dbfb3fd9b8d7c39cba6f5a1e575d15", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ac1d5e960054a6c6378a7a2ccf0f6efaa8dbfb3fd9b8d7c39cba6f5a1e575d15", kill_on_drop: false }` [INFO] [stdout] ac1d5e960054a6c6378a7a2ccf0f6efaa8dbfb3fd9b8d7c39cba6f5a1e575d15 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 6b2d2761f5527c2a344bc77731399a00ea90c93d0676eba8d9a1d6bfe5140ff1 [INFO] running `Command { std: "docker" "start" "-a" "6b2d2761f5527c2a344bc77731399a00ea90c93d0676eba8d9a1d6bfe5140ff1", kill_on_drop: false }` [INFO] [stderr] Checking either v1.7.0 [INFO] [stderr] Checking nes_emulator v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `SignedValue` [INFO] [stdout] --> src/cpu/bus/address.rs:6:14 [INFO] [stdout] | [INFO] [stdout] 6 | values::{SignedValue, Value, Value16}, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SignedValue` [INFO] [stdout] --> src/cpu/bus/address.rs:6:14 [INFO] [stdout] | [INFO] [stdout] 6 | values::{SignedValue, Value, Value16}, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/cpu.rs:310:13 [INFO] [stdout] | [INFO] [stdout] 310 | _ => panic!("Opcode {:?} is not implemented yet", instruction.opcode), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/cpu.rs:310:13 [INFO] [stdout] | [INFO] [stdout] 230 | OpGroup::ADC => self.adc(instruction.operand.unwrap()), [INFO] [stdout] | ------------ matches some of the same values [INFO] [stdout] 231 | OpGroup::AND => self.and(instruction.operand.unwrap()), [INFO] [stdout] | ------------ matches some of the same values [INFO] [stdout] 232 | OpGroup::ASL => self.asl(if instruction.operand.is_none() { [INFO] [stdout] | ------------ matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 237 | OpGroup::BCC => self.bcc(instruction.operand.unwrap().unwrap_right()), [INFO] [stdout] | ------------ matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 310 | _ => panic!("Opcode {:?} is not implemented yet", instruction.opcode), [INFO] [stdout] | ^ ...and 60 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `Instruction` is more private than the item `cpu::CPU::read_instruction` [INFO] [stdout] --> src/cpu.rs:82:5 [INFO] [stdout] | [INFO] [stdout] 82 | pub fn read_instruction(&self) -> Instruction { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `cpu::CPU::read_instruction` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `Instruction` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/cpu.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 | struct Instruction { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `STACK_BASE_ADDR` is never used [INFO] [stdout] --> src/cpu.rs:20:7 [INFO] [stdout] | [INFO] [stdout] 20 | const STACK_BASE_ADDR: Address = Address::from_const(0xFF00); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `read_opcode` is never used [INFO] [stdout] --> src/cpu.rs:221:8 [INFO] [stdout] | [INFO] [stdout] 40 | impl CPU { [INFO] [stdout] | -------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 221 | fn read_opcode(&self) -> OpCode { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VRAM_SIZE` is never used [INFO] [stdout] --> src/cpu/bus.rs:17:7 [INFO] [stdout] | [INFO] [stdout] 17 | const VRAM_SIZE: i32 = 2048; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DEFAUKT_STACK_POINTER` is never used [INFO] [stdout] --> src/cpu/bus.rs:20:11 [INFO] [stdout] | [INFO] [stdout] 20 | pub const DEFAUKT_STACK_POINTER: u16 = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `mem_write_u16` is never used [INFO] [stdout] --> src/cpu/bus.rs:41:8 [INFO] [stdout] | [INFO] [stdout] 35 | pub trait Mem { [INFO] [stdout] | --- method in this trait [INFO] [stdout] ... [INFO] [stdout] 41 | fn mem_write_u16(&mut self, addr: Address, data: Value16); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SignedValue` is never constructed [INFO] [stdout] --> src/cpu/bus/values.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct SignedValue(i8); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `cycles` is never read [INFO] [stdout] --> src/cpu/opcodes.rs:1001:9 [INFO] [stdout] | [INFO] [stdout] 998 | pub struct OpCode { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 1001 | pub cycles: u8, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `OpCode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `chr_rom`, `mapper`, and `screen_mirroring` are never read [INFO] [stdout] --> src/rom.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct Rom { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] 16 | pub prg_rom: Vec, [INFO] [stdout] 17 | pub chr_rom: Vec, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 18 | pub mapper: u8, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 19 | pub screen_mirroring: Mirroring, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Rom` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 11 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/cpu.rs:310:13 [INFO] [stdout] | [INFO] [stdout] 310 | _ => panic!("Opcode {:?} is not implemented yet", instruction.opcode), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/cpu.rs:310:13 [INFO] [stdout] | [INFO] [stdout] 230 | OpGroup::ADC => self.adc(instruction.operand.unwrap()), [INFO] [stdout] | ------------ matches some of the same values [INFO] [stdout] 231 | OpGroup::AND => self.and(instruction.operand.unwrap()), [INFO] [stdout] | ------------ matches some of the same values [INFO] [stdout] 232 | OpGroup::ASL => self.asl(if instruction.operand.is_none() { [INFO] [stdout] | ------------ matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 237 | OpGroup::BCC => self.bcc(instruction.operand.unwrap().unwrap_right()), [INFO] [stdout] | ------------ matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 310 | _ => panic!("Opcode {:?} is not implemented yet", instruction.opcode), [INFO] [stdout] | ^ ...and 60 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `Instruction` is more private than the item `CPU::read_instruction` [INFO] [stdout] --> src/cpu.rs:82:5 [INFO] [stdout] | [INFO] [stdout] 82 | pub fn read_instruction(&self) -> Instruction { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `CPU::read_instruction` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `Instruction` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/cpu.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 | struct Instruction { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `STACK_BASE_ADDR` is never used [INFO] [stdout] --> src/cpu.rs:20:7 [INFO] [stdout] | [INFO] [stdout] 20 | const STACK_BASE_ADDR: Address = Address::from_const(0xFF00); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `STACK_MSB` is never used [INFO] [stdout] --> src/cpu.rs:21:7 [INFO] [stdout] | [INFO] [stdout] 21 | const STACK_MSB: Value = Value::from_const(0x01); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Instruction` is never constructed [INFO] [stdout] --> src/cpu.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | struct Instruction { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CPU` is never constructed [INFO] [stdout] --> src/cpu.rs:30:12 [INFO] [stdout] | [INFO] [stdout] 30 | pub struct CPU { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/cpu.rs:41:8 [INFO] [stdout] | [INFO] [stdout] 40 | impl CPU { [INFO] [stdout] | -------- associated items in this implementation [INFO] [stdout] 41 | fn from_rom(rom: &Rom) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn execute_with_callback(&mut self, mut callback: F) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn execute(&mut self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 82 | pub fn read_instruction(&self) -> Instruction { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 96 | fn get_raw_operand(&self, opcode: OpCode) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | fn get_operand( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 208 | fn push_stack(&mut self, data: Value) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 215 | fn pop_stack(&mut self) -> Value { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 221 | fn read_opcode(&self) -> OpCode { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 228 | fn handle_opcode(&mut self, instruction: &Instruction) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 314 | fn fetch_value(&self, operand: Either) -> Value { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 321 | fn handle_comparision(&mut self, lhs: Value, rhs: Value) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 328 | fn asl(&mut self, operand: Option
) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 345 | fn and(&mut self, operand: Either) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 352 | fn adc(&mut self, operand: Either) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 358 | fn adc_value(&mut self, value: Value) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 374 | fn bcc(&mut self, operand: Address) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 382 | fn bcs(&mut self, operand: Address) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 390 | fn beq(&mut self, operand: Address) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 398 | fn bit(&mut self, operand: Address) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 407 | fn bmi(&mut self, operand: Address) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 415 | fn bne(&mut self, operand: Address) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 423 | fn bpl(&mut self, operand: Address) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 431 | fn brk(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 443 | fn bvc(&mut self, operand: Address) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 451 | fn bvs(&mut self, operand: Address) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 459 | fn clc(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 463 | fn cld(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 467 | fn cli(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 471 | fn clv(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 475 | fn cmp(&mut self, operand: Either) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 480 | fn cpx(&mut self, operand: Either) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 485 | fn cpy(&mut self, operand: Either) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 490 | fn dcp(&mut self, operand: Address) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 495 | fn dec(&mut self, operand: Address) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 503 | fn dex(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 510 | fn dey(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 517 | fn eor(&mut self, operand: Either) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 524 | fn isb(&mut self, operand: Address) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 529 | fn inc(&mut self, operand: Address) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 537 | fn inx(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 544 | fn iny(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 551 | fn jmp(&mut self, operand: Address) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 555 | fn jsr(&mut self, operand: Address) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 564 | fn lda(&mut self, operand: Either) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 569 | fn lax(&mut self, operand: Either) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 574 | fn ldx(&mut self, operand: Either) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 579 | fn ldy(&mut self, operand: Either) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 584 | fn lsr(&mut self, operand: Option
) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 601 | fn nop(&mut self) {} [INFO] [stdout] | ^^^ [INFO] [stdout] 602 | [INFO] [stdout] 603 | fn ora(&mut self, operand: Either) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 610 | fn pha(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 614 | fn php(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 620 | fn pla(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 625 | fn plp(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 630 | fn rla(&mut self, operand: Address) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 635 | fn rol(&mut self, operand: Option
) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 657 | fn ror(&mut self, operand: Option
) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 679 | fn rra(&mut self, operand: Address) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 684 | fn rti(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 691 | fn rts(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 698 | fn sax(&mut self, operand: Address) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 703 | fn sbc(&mut self, operand: Either) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 709 | fn sec(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 713 | fn sed(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 717 | fn sei(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 721 | fn sre(&mut self, operand: Address) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 726 | fn slo(&mut self, operand: Address) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 731 | fn sta(&mut self, operand: Address) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 735 | fn stx(&mut self, operand: Address) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 739 | fn sty(&mut self, operand: Address) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 743 | fn tax(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 748 | fn tay(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 753 | fn tsx(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 758 | fn txa(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 763 | fn txs(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 767 | fn tya(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 772 | fn handle_zero_and_negative_flags(&mut self, value: Value) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `trace` is never used [INFO] [stdout] --> src/cpu.rs:778:4 [INFO] [stdout] | [INFO] [stdout] 778 | fn trace(cpu: &CPU) -> String { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_raw_instruction` is never used [INFO] [stdout] --> src/cpu.rs:800:4 [INFO] [stdout] | [INFO] [stdout] 800 | fn format_raw_instruction(instruction: &Instruction) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_interpreted_instruction` is never used [INFO] [stdout] --> src/cpu.rs:815:4 [INFO] [stdout] | [INFO] [stdout] 815 | fn format_interpreted_instruction(instruction: &Instruction, cpu: &CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_address_operand` is never used [INFO] [stdout] --> src/cpu.rs:832:4 [INFO] [stdout] | [INFO] [stdout] 832 | fn format_address_operand(addr: Address, instruction: &Instruction, cpu: &CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_registers` is never used [INFO] [stdout] --> src/cpu.rs:906:4 [INFO] [stdout] | [INFO] [stdout] 906 | fn format_registers(cpu: &CPU) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VRAM_SIZE` is never used [INFO] [stdout] --> src/cpu/bus.rs:17:7 [INFO] [stdout] | [INFO] [stdout] 17 | const VRAM_SIZE: i32 = 2048; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DEFAUKT_STACK_POINTER` is never used [INFO] [stdout] --> src/cpu/bus.rs:20:11 [INFO] [stdout] | [INFO] [stdout] 20 | pub const DEFAUKT_STACK_POINTER: u16 = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `mem_read_addr`, `mem_read_addr_zero_page`, and `mem_write_u16` are never used [INFO] [stdout] --> src/cpu/bus.rs:38:8 [INFO] [stdout] | [INFO] [stdout] 35 | pub trait Mem { [INFO] [stdout] | --- methods in this trait [INFO] [stdout] ... [INFO] [stdout] 38 | fn mem_read_addr(&self, addr: Address) -> Address; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 39 | fn mem_read_addr_zero_page(&self, addr: Value) -> Address; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 40 | fn mem_write(&mut self, addr: Address, data: Value); [INFO] [stdout] 41 | fn mem_write_u16(&mut self, addr: Address, data: Value16); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/cpu/bus.rs:50:12 [INFO] [stdout] | [INFO] [stdout] 49 | impl Bus { [INFO] [stdout] | -------- associated function in this implementation [INFO] [stdout] 50 | pub fn new(rom: &Rom) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SignedValue` is never constructed [INFO] [stdout] --> src/cpu/bus/values.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct SignedValue(i8); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `group`, `bytes`, `cycles`, `mode`, and `is_offical` are never read [INFO] [stdout] --> src/cpu/opcodes.rs:999:9 [INFO] [stdout] | [INFO] [stdout] 998 | pub struct OpCode { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 999 | pub group: OpGroup, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 1000 | pub bytes: Value, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 1001 | pub cycles: u8, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 1002 | pub mode: AddressingMode, [INFO] [stdout] | ^^^^ [INFO] [stdout] 1003 | pub is_offical: bool, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `OpCode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_opcode` is never used [INFO] [stdout] --> src/cpu/opcodes.rs:1045:8 [INFO] [stdout] | [INFO] [stdout] 1045 | pub fn get_opcode(raw_opcode: Value) -> OpCode { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NES_TAG` is never used [INFO] [stdout] --> src/rom.rs:3:7 [INFO] [stdout] | [INFO] [stdout] 3 | const NES_TAG: [u8; 4] = [0x4E, 0x45, 0x53, 0x1A]; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PRG_ROM_PAGE_SIZE` is never used [INFO] [stdout] --> src/rom.rs:4:7 [INFO] [stdout] | [INFO] [stdout] 4 | const PRG_ROM_PAGE_SIZE: usize = 16384; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CHR_ROM_PAGE_SIZE` is never used [INFO] [stdout] --> src/rom.rs:5:7 [INFO] [stdout] | [INFO] [stdout] 5 | const CHR_ROM_PAGE_SIZE: usize = 8192; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Vertical`, `Horizontal`, and `FourScreen` are never constructed [INFO] [stdout] --> src/rom.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub enum Mirroring { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] 9 | Vertical, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 10 | Horizontal, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 11 | FourScreen, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Mirroring` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `chr_rom`, `mapper`, and `screen_mirroring` are never read [INFO] [stdout] --> src/rom.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct Rom { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] 16 | pub prg_rom: Vec, [INFO] [stdout] 17 | pub chr_rom: Vec, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 18 | pub mapper: u8, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 19 | pub screen_mirroring: Mirroring, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Rom` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `from_file` and `new` are never used [INFO] [stdout] --> src/rom.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 22 | impl Rom { [INFO] [stdout] | -------- associated functions in this implementation [INFO] [stdout] 23 | pub fn from_file(file_path: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn new(raw: &Vec) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 26 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.54s [INFO] running `Command { std: "docker" "inspect" "6b2d2761f5527c2a344bc77731399a00ea90c93d0676eba8d9a1d6bfe5140ff1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6b2d2761f5527c2a344bc77731399a00ea90c93d0676eba8d9a1d6bfe5140ff1", kill_on_drop: false }` [INFO] [stdout] 6b2d2761f5527c2a344bc77731399a00ea90c93d0676eba8d9a1d6bfe5140ff1