[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 against try#342ed2e8608ee307743c341962b427652cdb06e9 for pr-146562 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJanMaier97%2Fnes-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/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-1-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/JanMaier97/nes-emulator on toolchain 342ed2e8608ee307743c341962b427652cdb06e9 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+342ed2e8608ee307743c341962b427652cdb06e9" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [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" "+342ed2e8608ee307743c341962b427652cdb06e9" "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 [ERROR] error running command: no output for 300 seconds [INFO] checking JanMaier97/nes-emulator against try#342ed2e8608ee307743c341962b427652cdb06e9 for pr-146562 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJanMaier97%2Fnes-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/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-1-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/JanMaier97/nes-emulator on toolchain 342ed2e8608ee307743c341962b427652cdb06e9 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+342ed2e8608ee307743c341962b427652cdb06e9" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [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" "+342ed2e8608ee307743c341962b427652cdb06e9" "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] [stderr] Downloading crates ... [INFO] [stderr] Downloaded either v1.7.0 [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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+342ed2e8608ee307743c341962b427652cdb06e9" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 5add45cb921ec13c2f6318121bbd57361a82c6b6ec158e752e5b42a3a2f3b5de [INFO] running `Command { std: "docker" "start" "-a" "5add45cb921ec13c2f6318121bbd57361a82c6b6ec158e752e5b42a3a2f3b5de", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "5add45cb921ec13c2f6318121bbd57361a82c6b6ec158e752e5b42a3a2f3b5de", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5add45cb921ec13c2f6318121bbd57361a82c6b6ec158e752e5b42a3a2f3b5de", kill_on_drop: false }` [INFO] [stdout] 5add45cb921ec13c2f6318121bbd57361a82c6b6ec158e752e5b42a3a2f3b5de [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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+342ed2e8608ee307743c341962b427652cdb06e9" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d4dd59f88264baf9cf8a9ad7aff4fadef5cd1d3ac4a54efc030dfd76649ad97c [INFO] running `Command { std: "docker" "start" "-a" "d4dd59f88264baf9cf8a9ad7aff4fadef5cd1d3ac4a54efc030dfd76649ad97c", 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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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: 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)]` (part of `#[warn(unused)]`) on by default [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 `RAM` is never used [INFO] [stdout] --> src/cpu/bus.rs:11:7 [INFO] [stdout] | [INFO] [stdout] 11 | const RAM: u16 = 0x0000; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RAM_MIRRORS_END` is never used [INFO] [stdout] --> src/cpu/bus.rs:12:7 [INFO] [stdout] | [INFO] [stdout] 12 | const RAM_MIRRORS_END: u16 = 0x1FFF; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PPU_REGISTERS` is never used [INFO] [stdout] --> src/cpu/bus.rs:13:7 [INFO] [stdout] | [INFO] [stdout] 13 | const PPU_REGISTERS: u16 = 0x2000; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PPU_REGISTERS_MIRRORS_END` is never used [INFO] [stdout] --> src/cpu/bus.rs:14:7 [INFO] [stdout] | [INFO] [stdout] 14 | const PPU_REGISTERS_MIRRORS_END: u16 = 0x3FFF; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ROM_START` is never used [INFO] [stdout] --> src/cpu/bus.rs:15:7 [INFO] [stdout] | [INFO] [stdout] 15 | const ROM_START: u16 = 0x8000; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ROM_END` is never used [INFO] [stdout] --> src/cpu/bus.rs:16:7 [INFO] [stdout] | [INFO] [stdout] 16 | const ROM_END: u16 = 0xFFFF; [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 `RAM_ADDRESS_MASK` is never used [INFO] [stdout] --> src/cpu/bus.rs:18:7 [INFO] [stdout] | [INFO] [stdout] 18 | const RAM_ADDRESS_MASK: u16 = 0b00000111_11111111; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PPU_ADDRESS_MASK` is never used [INFO] [stdout] --> src/cpu/bus.rs:19:7 [INFO] [stdout] | [INFO] [stdout] 19 | const PPU_ADDRESS_MASK: u16 = 0b00100000_00000111; [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: trait `Mem` is never used [INFO] [stdout] --> src/cpu/bus.rs:35:11 [INFO] [stdout] | [INFO] [stdout] 35 | pub trait Mem { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Bus` is never constructed [INFO] [stdout] --> src/cpu/bus.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 44 | pub struct Bus { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `read_prg_rom` are never used [INFO] [stdout] --> src/cpu/bus.rs:50:12 [INFO] [stdout] | [INFO] [stdout] 49 | impl Bus { [INFO] [stdout] | -------- associated items in this implementation [INFO] [stdout] 50 | pub fn new(rom: &Rom) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 57 | fn read_prg_rom(&self, addr: Address) -> Value { [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: enum `OpGroup` is never used [INFO] [stdout] --> src/cpu/opcodes.rs:924:10 [INFO] [stdout] | [INFO] [stdout] 924 | pub enum OpGroup { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `OpCode` is never constructed [INFO] [stdout] --> src/cpu/opcodes.rs:998:12 [INFO] [stdout] | [INFO] [stdout] 998 | pub struct OpCode { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `offical` and `unoffical` are never used [INFO] [stdout] --> src/cpu/opcodes.rs:1007:14 [INFO] [stdout] | [INFO] [stdout] 1006 | impl OpCode { [INFO] [stdout] | ----------- associated functions in this implementation [INFO] [stdout] 1007 | const fn offical(group: OpGroup, bytes: u8, cycles: u8, mode: AddressingMode) -> OpCode { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1017 | const fn unoffical(group: OpGroup, bytes: u8, cycles: u8, mode: AddressingMode) -> OpCode { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `AddressingMode` is never used [INFO] [stdout] --> src/cpu/opcodes.rs:1029:10 [INFO] [stdout] | [INFO] [stdout] 1029 | pub enum AddressingMode { [INFO] [stdout] | ^^^^^^^^^^^^^^ [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: enum `Mirroring` is never used [INFO] [stdout] --> src/rom.rs:8:10 [INFO] [stdout] | [INFO] [stdout] 8 | pub enum Mirroring { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Rom` is never constructed [INFO] [stdout] --> src/rom.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct Rom { [INFO] [stdout] | ^^^ [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: 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)]` (part of `#[warn(unused)]`) 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] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.29s [INFO] running `Command { std: "docker" "inspect" "d4dd59f88264baf9cf8a9ad7aff4fadef5cd1d3ac4a54efc030dfd76649ad97c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d4dd59f88264baf9cf8a9ad7aff4fadef5cd1d3ac4a54efc030dfd76649ad97c", kill_on_drop: false }` [INFO] [stdout] d4dd59f88264baf9cf8a9ad7aff4fadef5cd1d3ac4a54efc030dfd76649ad97c