[INFO] cloning repository https://github.com/kjl56/gbemu [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/kjl56/gbemu" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkjl56%2Fgbemu", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkjl56%2Fgbemu'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] a065cdb697df29ee92c9859641d2b0137957b4ee [INFO] testing kjl56/gbemu against master#cdb45c87e2cd43495379f7e867e3cc15dcee9f93 for pr-145838-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkjl56%2Fgbemu" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/kjl56/gbemu [INFO] finished tweaking git repo https://github.com/kjl56/gbemu [INFO] tweaked toml for git repo https://github.com/kjl56/gbemu written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/kjl56/gbemu on toolchain cdb45c87e2cd43495379f7e867e3cc15dcee9f93 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/kjl56/gbemu 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" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] d77b8d6591408c80bd35b5f1b5dab3aefb7ba819cab5a8b08a346c2dee579d63 [INFO] running `Command { std: "docker" "start" "-a" "d77b8d6591408c80bd35b5f1b5dab3aefb7ba819cab5a8b08a346c2dee579d63", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d77b8d6591408c80bd35b5f1b5dab3aefb7ba819cab5a8b08a346c2dee579d63", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d77b8d6591408c80bd35b5f1b5dab3aefb7ba819cab5a8b08a346c2dee579d63", kill_on_drop: false }` [INFO] [stdout] d77b8d6591408c80bd35b5f1b5dab3aefb7ba819cab5a8b08a346c2dee579d63 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 817d40fef2241f54f1ebd6e140ae527fb8637f46b3b5ad40e8220cf05e893bc4 [INFO] running `Command { std: "docker" "start" "-a" "817d40fef2241f54f1ebd6e140ae527fb8637f46b3b5ad40e8220cf05e893bc4", kill_on_drop: false }` [INFO] [stderr] Compiling gbemu v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused variable: `target` [INFO] [stdout] --> src/cpu/cpu.rs:138:24 [INFO] [stdout] | [INFO] [stdout] 138 | Instruction::ADC(target, source) => { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `target` [INFO] [stdout] --> src/cpu/cpu.rs:152:24 [INFO] [stdout] | [INFO] [stdout] 152 | Instruction::SUB(target, source) => { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `target` [INFO] [stdout] --> src/cpu/cpu.rs:166:24 [INFO] [stdout] | [INFO] [stdout] 166 | Instruction::AND(target, source) => { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `target` [INFO] [stdout] --> src/cpu/cpu.rs:197:24 [INFO] [stdout] | [INFO] [stdout] 197 | Instruction::XOR(target, source) => { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `target` [INFO] [stdout] --> src/cpu/cpu.rs:228:23 [INFO] [stdout] | [INFO] [stdout] 228 | Instruction::OR(target, source) => { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `target` [INFO] [stdout] --> src/cpu/cpu.rs:259:23 [INFO] [stdout] | [INFO] [stdout] 259 | Instruction::CP(target, source) => { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `val` [INFO] [stdout] --> src/cpu/cpu.rs:261:39 [INFO] [stdout] | [INFO] [stdout] 261 | ArithmeticSource::A => {let val = self.subtract(self.registers.a); self.pc.wrapping_add(1)}, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `val` [INFO] [stdout] --> src/cpu/cpu.rs:262:39 [INFO] [stdout] | [INFO] [stdout] 262 | ArithmeticSource::B => {let val = self.subtract(self.registers.b); self.pc.wrapping_add(1)}, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `val` [INFO] [stdout] --> src/cpu/cpu.rs:263:39 [INFO] [stdout] | [INFO] [stdout] 263 | ArithmeticSource::C => {let val = self.subtract(self.registers.c); self.pc.wrapping_add(1)}, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `val` [INFO] [stdout] --> src/cpu/cpu.rs:264:39 [INFO] [stdout] | [INFO] [stdout] 264 | ArithmeticSource::D => {let val = self.subtract(self.registers.d); self.pc.wrapping_add(1)}, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `val` [INFO] [stdout] --> src/cpu/cpu.rs:265:39 [INFO] [stdout] | [INFO] [stdout] 265 | ArithmeticSource::E => {let val = self.subtract(self.registers.e); self.pc.wrapping_add(1)}, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `val` [INFO] [stdout] --> src/cpu/cpu.rs:266:39 [INFO] [stdout] | [INFO] [stdout] 266 | ArithmeticSource::H => {let val = self.subtract(self.registers.h); self.pc.wrapping_add(1)}, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `val` [INFO] [stdout] --> src/cpu/cpu.rs:267:39 [INFO] [stdout] | [INFO] [stdout] 267 | ArithmeticSource::L => {let val = self.subtract(self.registers.l); self.pc.wrapping_add(1)}, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `val` [INFO] [stdout] --> src/cpu/cpu.rs:268:40 [INFO] [stdout] | [INFO] [stdout] 268 | ArithmeticSource::HL => {let val = self.subtract(self.bus.read_byte(self.registers.get_hl())); self.pc.wrapping_add(1)}, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `val` [INFO] [stdout] --> src/cpu/cpu.rs:269:40 [INFO] [stdout] | [INFO] [stdout] 269 | ArithmeticSource::D8 => {let val = self.subtract(self.read_next_byte()); self.pc.wrapping_add(2)}, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `target` [INFO] [stdout] --> src/cpu/cpu.rs:291:29 [INFO] [stdout] | [INFO] [stdout] 291 | Instruction::JR(test, target) => { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `source` [INFO] [stdout] --> src/cpu/cpu.rs:423:34 [INFO] [stdout] | [INFO] [stdout] 423 | LoadType::Byte(target, source) => { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_source` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `target` [INFO] [stdout] --> src/cpu/cpu.rs:538:31 [INFO] [stdout] | [INFO] [stdout] 538 | Instruction::CALL(test, target) => { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/cpu/instructions.rs:385:7 [INFO] [stdout] | [INFO] [stdout] 385 | _ => /*todo: add mapping for rest of instructions*/ None [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/instructions.rs:385:7 [INFO] [stdout] | [INFO] [stdout] 129 | 0x00 => Some(Instruction::RLC(RotateTarget::B)), [INFO] [stdout] | ---- matches some of the same values [INFO] [stdout] 130 | 0x01 => Some(Instruction::RLC(RotateTarget::C)), [INFO] [stdout] | ---- matches some of the same values [INFO] [stdout] 131 | 0x02 => Some(Instruction::RLC(RotateTarget::D)), [INFO] [stdout] | ---- matches some of the same values [INFO] [stdout] 132 | 0x03 => Some(Instruction::RLC(RotateTarget::E)), [INFO] [stdout] | ---- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 385 | _ => /*todo: add mapping for rest of instructions*/ None [INFO] [stdout] | ^ ...and 252 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: fields `0` and `1` are never read [INFO] [stdout] --> src/cpu/instructions.rs:63:7 [INFO] [stdout] | [INFO] [stdout] 63 | SBC(ArithmeticTarget, ArithmeticSource), [INFO] [stdout] | --- ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 63 - SBC(ArithmeticTarget, ArithmeticSource), [INFO] [stdout] 63 + SBC((), ()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/cpu/instructions.rs:81:6 [INFO] [stdout] | [INFO] [stdout] 81 | RL(RotateTarget), [INFO] [stdout] | -- ^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 81 - RL(RotateTarget), [INFO] [stdout] 81 + RL(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/cpu/instructions.rs:83:7 [INFO] [stdout] | [INFO] [stdout] 83 | RLC(RotateTarget), [INFO] [stdout] | --- ^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 83 - RLC(RotateTarget), [INFO] [stdout] 83 + RLC(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/cpu/instructions.rs:87:7 [INFO] [stdout] | [INFO] [stdout] 87 | RRC(RotateTarget), [INFO] [stdout] | --- ^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 87 - RRC(RotateTarget), [INFO] [stdout] 87 + RRC(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/cpu/instructions.rs:89:7 [INFO] [stdout] | [INFO] [stdout] 89 | SLA(RotateTarget), [INFO] [stdout] | --- ^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 89 - SLA(RotateTarget), [INFO] [stdout] 89 + SLA(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/cpu/instructions.rs:90:7 [INFO] [stdout] | [INFO] [stdout] 90 | SRA(RotateTarget), [INFO] [stdout] | --- ^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 90 - SRA(RotateTarget), [INFO] [stdout] 90 + SRA(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/cpu/instructions.rs:92:8 [INFO] [stdout] | [INFO] [stdout] 92 | SWAP(RotateTarget), [INFO] [stdout] | ---- ^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 92 - SWAP(RotateTarget), [INFO] [stdout] 92 + SWAP(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/cpu/instructions.rs:101:7 [INFO] [stdout] | [INFO] [stdout] 101 | BIT(TestBit, TestTarget), [INFO] [stdout] | --- ^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 101 - BIT(TestBit, TestTarget), [INFO] [stdout] 101 + BIT((), ()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/cpu/instructions.rs:102:7 [INFO] [stdout] | [INFO] [stdout] 102 | RES(TestBit, TestTarget), [INFO] [stdout] | --- ^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 102 - RES(TestBit, TestTarget), [INFO] [stdout] 102 + RES((), ()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/cpu/instructions.rs:103:7 [INFO] [stdout] | [INFO] [stdout] 103 | SET(TestBit, TestTarget), [INFO] [stdout] | --- ^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 103 - SET(TestBit, TestTarget), [INFO] [stdout] 103 + SET((), ()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/cpu/instructions.rs:107:7 [INFO] [stdout] | [INFO] [stdout] 107 | RST(JumpTarget), [INFO] [stdout] | --- ^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 107 - RST(JumpTarget), [INFO] [stdout] 107 + RST(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VRAM_SIZE` is never used [INFO] [stdout] --> src/memory/membus.rs:10:7 [INFO] [stdout] | [INFO] [stdout] 10 | const VRAM_SIZE: usize = VRAM_END - VRAM_BEGIN + 1; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `empty_tile` is never used [INFO] [stdout] --> src/gpu/gpu.rs:18:4 [INFO] [stdout] | [INFO] [stdout] 18 | fn empty_tile() -> Tile { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/cpu/cpu.rs:64:7 [INFO] [stdout] | [INFO] [stdout] 64 | writeln!(self.logfile, "{}", cpustate); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 64 | let _ = writeln!(self.logfile, "{}", cpustate); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.69s [INFO] running `Command { std: "docker" "inspect" "817d40fef2241f54f1ebd6e140ae527fb8637f46b3b5ad40e8220cf05e893bc4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "817d40fef2241f54f1ebd6e140ae527fb8637f46b3b5ad40e8220cf05e893bc4", kill_on_drop: false }` [INFO] [stdout] 817d40fef2241f54f1ebd6e140ae527fb8637f46b3b5ad40e8220cf05e893bc4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 12eb6ea8677962fa3c3fd25cd8930556f41217b58f2a681338906b11e883d4f3 [INFO] running `Command { std: "docker" "start" "-a" "12eb6ea8677962fa3c3fd25cd8930556f41217b58f2a681338906b11e883d4f3", kill_on_drop: false }` [INFO] [stderr] Compiling gbemu v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused variable: `target` [INFO] [stdout] --> src/cpu/cpu.rs:138:24 [INFO] [stdout] | [INFO] [stdout] 138 | Instruction::ADC(target, source) => { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `target` [INFO] [stdout] --> src/cpu/cpu.rs:152:24 [INFO] [stdout] | [INFO] [stdout] 152 | Instruction::SUB(target, source) => { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `target` [INFO] [stdout] --> src/cpu/cpu.rs:166:24 [INFO] [stdout] | [INFO] [stdout] 166 | Instruction::AND(target, source) => { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `target` [INFO] [stdout] --> src/cpu/cpu.rs:197:24 [INFO] [stdout] | [INFO] [stdout] 197 | Instruction::XOR(target, source) => { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `target` [INFO] [stdout] --> src/cpu/cpu.rs:228:23 [INFO] [stdout] | [INFO] [stdout] 228 | Instruction::OR(target, source) => { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `target` [INFO] [stdout] --> src/cpu/cpu.rs:259:23 [INFO] [stdout] | [INFO] [stdout] 259 | Instruction::CP(target, source) => { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `val` [INFO] [stdout] --> src/cpu/cpu.rs:261:39 [INFO] [stdout] | [INFO] [stdout] 261 | ArithmeticSource::A => {let val = self.subtract(self.registers.a); self.pc.wrapping_add(1)}, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `val` [INFO] [stdout] --> src/cpu/cpu.rs:262:39 [INFO] [stdout] | [INFO] [stdout] 262 | ArithmeticSource::B => {let val = self.subtract(self.registers.b); self.pc.wrapping_add(1)}, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `val` [INFO] [stdout] --> src/cpu/cpu.rs:263:39 [INFO] [stdout] | [INFO] [stdout] 263 | ArithmeticSource::C => {let val = self.subtract(self.registers.c); self.pc.wrapping_add(1)}, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `val` [INFO] [stdout] --> src/cpu/cpu.rs:264:39 [INFO] [stdout] | [INFO] [stdout] 264 | ArithmeticSource::D => {let val = self.subtract(self.registers.d); self.pc.wrapping_add(1)}, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `val` [INFO] [stdout] --> src/cpu/cpu.rs:265:39 [INFO] [stdout] | [INFO] [stdout] 265 | ArithmeticSource::E => {let val = self.subtract(self.registers.e); self.pc.wrapping_add(1)}, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `val` [INFO] [stdout] --> src/cpu/cpu.rs:266:39 [INFO] [stdout] | [INFO] [stdout] 266 | ArithmeticSource::H => {let val = self.subtract(self.registers.h); self.pc.wrapping_add(1)}, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `val` [INFO] [stdout] --> src/cpu/cpu.rs:267:39 [INFO] [stdout] | [INFO] [stdout] 267 | ArithmeticSource::L => {let val = self.subtract(self.registers.l); self.pc.wrapping_add(1)}, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `val` [INFO] [stdout] --> src/cpu/cpu.rs:268:40 [INFO] [stdout] | [INFO] [stdout] 268 | ArithmeticSource::HL => {let val = self.subtract(self.bus.read_byte(self.registers.get_hl())); self.pc.wrapping_add(1)}, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `val` [INFO] [stdout] --> src/cpu/cpu.rs:269:40 [INFO] [stdout] | [INFO] [stdout] 269 | ArithmeticSource::D8 => {let val = self.subtract(self.read_next_byte()); self.pc.wrapping_add(2)}, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `target` [INFO] [stdout] --> src/cpu/cpu.rs:291:29 [INFO] [stdout] | [INFO] [stdout] 291 | Instruction::JR(test, target) => { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `source` [INFO] [stdout] --> src/cpu/cpu.rs:423:34 [INFO] [stdout] | [INFO] [stdout] 423 | LoadType::Byte(target, source) => { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_source` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `target` [INFO] [stdout] --> src/cpu/cpu.rs:538:31 [INFO] [stdout] | [INFO] [stdout] 538 | Instruction::CALL(test, target) => { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/cpu/instructions.rs:385:7 [INFO] [stdout] | [INFO] [stdout] 385 | _ => /*todo: add mapping for rest of instructions*/ None [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/instructions.rs:385:7 [INFO] [stdout] | [INFO] [stdout] 129 | 0x00 => Some(Instruction::RLC(RotateTarget::B)), [INFO] [stdout] | ---- matches some of the same values [INFO] [stdout] 130 | 0x01 => Some(Instruction::RLC(RotateTarget::C)), [INFO] [stdout] | ---- matches some of the same values [INFO] [stdout] 131 | 0x02 => Some(Instruction::RLC(RotateTarget::D)), [INFO] [stdout] | ---- matches some of the same values [INFO] [stdout] 132 | 0x03 => Some(Instruction::RLC(RotateTarget::E)), [INFO] [stdout] | ---- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 385 | _ => /*todo: add mapping for rest of instructions*/ None [INFO] [stdout] | ^ ...and 252 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: fields `0` and `1` are never read [INFO] [stdout] --> src/cpu/instructions.rs:63:7 [INFO] [stdout] | [INFO] [stdout] 63 | SBC(ArithmeticTarget, ArithmeticSource), [INFO] [stdout] | --- ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 63 - SBC(ArithmeticTarget, ArithmeticSource), [INFO] [stdout] 63 + SBC((), ()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/cpu/instructions.rs:81:6 [INFO] [stdout] | [INFO] [stdout] 81 | RL(RotateTarget), [INFO] [stdout] | -- ^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 81 - RL(RotateTarget), [INFO] [stdout] 81 + RL(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/cpu/instructions.rs:83:7 [INFO] [stdout] | [INFO] [stdout] 83 | RLC(RotateTarget), [INFO] [stdout] | --- ^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 83 - RLC(RotateTarget), [INFO] [stdout] 83 + RLC(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/cpu/instructions.rs:87:7 [INFO] [stdout] | [INFO] [stdout] 87 | RRC(RotateTarget), [INFO] [stdout] | --- ^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 87 - RRC(RotateTarget), [INFO] [stdout] 87 + RRC(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/cpu/instructions.rs:89:7 [INFO] [stdout] | [INFO] [stdout] 89 | SLA(RotateTarget), [INFO] [stdout] | --- ^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 89 - SLA(RotateTarget), [INFO] [stdout] 89 + SLA(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/cpu/instructions.rs:90:7 [INFO] [stdout] | [INFO] [stdout] 90 | SRA(RotateTarget), [INFO] [stdout] | --- ^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 90 - SRA(RotateTarget), [INFO] [stdout] 90 + SRA(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/cpu/instructions.rs:92:8 [INFO] [stdout] | [INFO] [stdout] 92 | SWAP(RotateTarget), [INFO] [stdout] | ---- ^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 92 - SWAP(RotateTarget), [INFO] [stdout] 92 + SWAP(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/cpu/instructions.rs:101:7 [INFO] [stdout] | [INFO] [stdout] 101 | BIT(TestBit, TestTarget), [INFO] [stdout] | --- ^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 101 - BIT(TestBit, TestTarget), [INFO] [stdout] 101 + BIT((), ()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/cpu/instructions.rs:102:7 [INFO] [stdout] | [INFO] [stdout] 102 | RES(TestBit, TestTarget), [INFO] [stdout] | --- ^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 102 - RES(TestBit, TestTarget), [INFO] [stdout] 102 + RES((), ()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/cpu/instructions.rs:103:7 [INFO] [stdout] | [INFO] [stdout] 103 | SET(TestBit, TestTarget), [INFO] [stdout] | --- ^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 103 - SET(TestBit, TestTarget), [INFO] [stdout] 103 + SET((), ()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/cpu/instructions.rs:107:7 [INFO] [stdout] | [INFO] [stdout] 107 | RST(JumpTarget), [INFO] [stdout] | --- ^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 107 - RST(JumpTarget), [INFO] [stdout] 107 + RST(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VRAM_SIZE` is never used [INFO] [stdout] --> src/memory/membus.rs:10:7 [INFO] [stdout] | [INFO] [stdout] 10 | const VRAM_SIZE: usize = VRAM_END - VRAM_BEGIN + 1; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `empty_tile` is never used [INFO] [stdout] --> src/gpu/gpu.rs:18:4 [INFO] [stdout] | [INFO] [stdout] 18 | fn empty_tile() -> Tile { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/cpu/cpu.rs:64:7 [INFO] [stdout] | [INFO] [stdout] 64 | writeln!(self.logfile, "{}", cpustate); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 64 | let _ = writeln!(self.logfile, "{}", cpustate); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.40s [INFO] running `Command { std: "docker" "inspect" "12eb6ea8677962fa3c3fd25cd8930556f41217b58f2a681338906b11e883d4f3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "12eb6ea8677962fa3c3fd25cd8930556f41217b58f2a681338906b11e883d4f3", kill_on_drop: false }` [INFO] [stdout] 12eb6ea8677962fa3c3fd25cd8930556f41217b58f2a681338906b11e883d4f3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 5c6e39979e37a338112a08ff066b604bee45e4a736e9bb822dfda30451c5b213 [INFO] running `Command { std: "docker" "start" "-a" "5c6e39979e37a338112a08ff066b604bee45e4a736e9bb822dfda30451c5b213", kill_on_drop: false }` [INFO] [stderr] warning: unused variable: `target` [INFO] [stderr] --> src/cpu/cpu.rs:138:24 [INFO] [stderr] | [INFO] [stderr] 138 | Instruction::ADC(target, source) => { [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `target` [INFO] [stderr] --> src/cpu/cpu.rs:152:24 [INFO] [stderr] | [INFO] [stderr] 152 | Instruction::SUB(target, source) => { [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `target` [INFO] [stderr] --> src/cpu/cpu.rs:166:24 [INFO] [stderr] | [INFO] [stderr] 166 | Instruction::AND(target, source) => { [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `target` [INFO] [stderr] --> src/cpu/cpu.rs:197:24 [INFO] [stderr] | [INFO] [stderr] 197 | Instruction::XOR(target, source) => { [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `target` [INFO] [stderr] --> src/cpu/cpu.rs:228:23 [INFO] [stderr] | [INFO] [stderr] 228 | Instruction::OR(target, source) => { [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `target` [INFO] [stderr] --> src/cpu/cpu.rs:259:23 [INFO] [stderr] | [INFO] [stderr] 259 | Instruction::CP(target, source) => { [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `val` [INFO] [stderr] --> src/cpu/cpu.rs:261:39 [INFO] [stderr] | [INFO] [stderr] 261 | ArithmeticSource::A => {let val = self.subtract(self.registers.a); self.pc.wrapping_add(1)}, [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `val` [INFO] [stderr] --> src/cpu/cpu.rs:262:39 [INFO] [stderr] | [INFO] [stderr] 262 | ArithmeticSource::B => {let val = self.subtract(self.registers.b); self.pc.wrapping_add(1)}, [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `val` [INFO] [stderr] --> src/cpu/cpu.rs:263:39 [INFO] [stderr] | [INFO] [stderr] 263 | ArithmeticSource::C => {let val = self.subtract(self.registers.c); self.pc.wrapping_add(1)}, [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `val` [INFO] [stderr] --> src/cpu/cpu.rs:264:39 [INFO] [stderr] | [INFO] [stderr] 264 | ArithmeticSource::D => {let val = self.subtract(self.registers.d); self.pc.wrapping_add(1)}, [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `val` [INFO] [stderr] --> src/cpu/cpu.rs:265:39 [INFO] [stderr] | [INFO] [stderr] 265 | ArithmeticSource::E => {let val = self.subtract(self.registers.e); self.pc.wrapping_add(1)}, [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `val` [INFO] [stderr] --> src/cpu/cpu.rs:266:39 [INFO] [stderr] | [INFO] [stderr] 266 | ArithmeticSource::H => {let val = self.subtract(self.registers.h); self.pc.wrapping_add(1)}, [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `val` [INFO] [stderr] --> src/cpu/cpu.rs:267:39 [INFO] [stderr] | [INFO] [stderr] 267 | ArithmeticSource::L => {let val = self.subtract(self.registers.l); self.pc.wrapping_add(1)}, [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `val` [INFO] [stderr] --> src/cpu/cpu.rs:268:40 [INFO] [stderr] | [INFO] [stderr] 268 | ArithmeticSource::HL => {let val = self.subtract(self.bus.read_byte(self.registers.get_hl())); self.pc.wrapping_add(1)}, [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `val` [INFO] [stderr] --> src/cpu/cpu.rs:269:40 [INFO] [stderr] | [INFO] [stderr] 269 | ArithmeticSource::D8 => {let val = self.subtract(self.read_next_byte()); self.pc.wrapping_add(2)}, [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `target` [INFO] [stderr] --> src/cpu/cpu.rs:291:29 [INFO] [stderr] | [INFO] [stderr] 291 | Instruction::JR(test, target) => { [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `source` [INFO] [stderr] --> src/cpu/cpu.rs:423:34 [INFO] [stderr] | [INFO] [stderr] 423 | LoadType::Byte(target, source) => { [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_source` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `target` [INFO] [stderr] --> src/cpu/cpu.rs:538:31 [INFO] [stderr] | [INFO] [stderr] 538 | Instruction::CALL(test, target) => { [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target` [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/cpu/instructions.rs:385:7 [INFO] [stderr] | [INFO] [stderr] 385 | _ => /*todo: add mapping for rest of instructions*/ None [INFO] [stderr] | ^ no value can reach this [INFO] [stderr] | [INFO] [stderr] note: multiple earlier patterns match some of the same values [INFO] [stderr] --> src/cpu/instructions.rs:385:7 [INFO] [stderr] | [INFO] [stderr] 129 | 0x00 => Some(Instruction::RLC(RotateTarget::B)), [INFO] [stderr] | ---- matches some of the same values [INFO] [stderr] 130 | 0x01 => Some(Instruction::RLC(RotateTarget::C)), [INFO] [stderr] | ---- matches some of the same values [INFO] [stderr] 131 | 0x02 => Some(Instruction::RLC(RotateTarget::D)), [INFO] [stderr] | ---- matches some of the same values [INFO] [stderr] 132 | 0x03 => Some(Instruction::RLC(RotateTarget::E)), [INFO] [stderr] | ---- matches some of the same values [INFO] [stderr] ... [INFO] [stderr] 385 | _ => /*todo: add mapping for rest of instructions*/ None [INFO] [stderr] | ^ ...and 252 other patterns collectively make this unreachable [INFO] [stderr] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: fields `0` and `1` are never read [INFO] [stderr] --> src/cpu/instructions.rs:63:7 [INFO] [stderr] | [INFO] [stderr] 63 | SBC(ArithmeticTarget, ArithmeticSource), [INFO] [stderr] | --- ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | fields in this variant [INFO] [stderr] | [INFO] [stderr] = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stderr] | [INFO] [stderr] 63 - SBC(ArithmeticTarget, ArithmeticSource), [INFO] [stderr] 63 + SBC((), ()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: field `0` is never read [INFO] [stderr] --> src/cpu/instructions.rs:81:6 [INFO] [stderr] | [INFO] [stderr] 81 | RL(RotateTarget), [INFO] [stderr] | -- ^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | field in this variant [INFO] [stderr] | [INFO] [stderr] = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stderr] | [INFO] [stderr] 81 - RL(RotateTarget), [INFO] [stderr] 81 + RL(()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: field `0` is never read [INFO] [stderr] --> src/cpu/instructions.rs:83:7 [INFO] [stderr] | [INFO] [stderr] 83 | RLC(RotateTarget), [INFO] [stderr] | --- ^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | field in this variant [INFO] [stderr] | [INFO] [stderr] = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stderr] | [INFO] [stderr] 83 - RLC(RotateTarget), [INFO] [stderr] 83 + RLC(()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: field `0` is never read [INFO] [stderr] --> src/cpu/instructions.rs:87:7 [INFO] [stderr] | [INFO] [stderr] 87 | RRC(RotateTarget), [INFO] [stderr] | --- ^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | field in this variant [INFO] [stderr] | [INFO] [stderr] = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stderr] | [INFO] [stderr] 87 - RRC(RotateTarget), [INFO] [stderr] 87 + RRC(()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: field `0` is never read [INFO] [stderr] --> src/cpu/instructions.rs:89:7 [INFO] [stderr] | [INFO] [stderr] 89 | SLA(RotateTarget), [INFO] [stderr] | --- ^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | field in this variant [INFO] [stderr] | [INFO] [stderr] = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stderr] | [INFO] [stderr] 89 - SLA(RotateTarget), [INFO] [stderr] 89 + SLA(()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: field `0` is never read [INFO] [stderr] --> src/cpu/instructions.rs:90:7 [INFO] [stderr] | [INFO] [stderr] 90 | SRA(RotateTarget), [INFO] [stderr] | --- ^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | field in this variant [INFO] [stderr] | [INFO] [stderr] = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stderr] | [INFO] [stderr] 90 - SRA(RotateTarget), [INFO] [stderr] 90 + SRA(()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: field `0` is never read [INFO] [stderr] --> src/cpu/instructions.rs:92:8 [INFO] [stderr] | [INFO] [stderr] 92 | SWAP(RotateTarget), [INFO] [stderr] | ---- ^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | field in this variant [INFO] [stderr] | [INFO] [stderr] = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stderr] | [INFO] [stderr] 92 - SWAP(RotateTarget), [INFO] [stderr] 92 + SWAP(()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: fields `0` and `1` are never read [INFO] [stderr] --> src/cpu/instructions.rs:101:7 [INFO] [stderr] | [INFO] [stderr] 101 | BIT(TestBit, TestTarget), [INFO] [stderr] | --- ^^^^^^^ ^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | fields in this variant [INFO] [stderr] | [INFO] [stderr] = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stderr] | [INFO] [stderr] 101 - BIT(TestBit, TestTarget), [INFO] [stderr] 101 + BIT((), ()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: fields `0` and `1` are never read [INFO] [stderr] --> src/cpu/instructions.rs:102:7 [INFO] [stderr] | [INFO] [stderr] 102 | RES(TestBit, TestTarget), [INFO] [stderr] | --- ^^^^^^^ ^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | fields in this variant [INFO] [stderr] | [INFO] [stderr] = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stderr] | [INFO] [stderr] 102 - RES(TestBit, TestTarget), [INFO] [stderr] 102 + RES((), ()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: fields `0` and `1` are never read [INFO] [stderr] --> src/cpu/instructions.rs:103:7 [INFO] [stderr] | [INFO] [stderr] 103 | SET(TestBit, TestTarget), [INFO] [stderr] | --- ^^^^^^^ ^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | fields in this variant [INFO] [stderr] | [INFO] [stderr] = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stderr] | [INFO] [stderr] 103 - SET(TestBit, TestTarget), [INFO] [stderr] 103 + SET((), ()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: field `0` is never read [INFO] [stderr] --> src/cpu/instructions.rs:107:7 [INFO] [stderr] | [INFO] [stderr] 107 | RST(JumpTarget), [INFO] [stderr] | --- ^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | field in this variant [INFO] [stderr] | [INFO] [stderr] = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stderr] | [INFO] [stderr] 107 - RST(JumpTarget), [INFO] [stderr] 107 + RST(()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: constant `VRAM_SIZE` is never used [INFO] [stderr] --> src/memory/membus.rs:10:7 [INFO] [stderr] | [INFO] [stderr] 10 | const VRAM_SIZE: usize = VRAM_END - VRAM_BEGIN + 1; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `empty_tile` is never used [INFO] [stderr] --> src/gpu/gpu.rs:18:4 [INFO] [stderr] | [INFO] [stderr] 18 | fn empty_tile() -> Tile { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/cpu/cpu.rs:64:7 [INFO] [stderr] | [INFO] [stderr] 64 | writeln!(self.logfile, "{}", cpustate); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 64 | let _ = writeln!(self.logfile, "{}", cpustate); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: `gbemu` (bin "gbemu" test) generated 33 warnings [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.02s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/gbemu-776776261d32de79) [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" "5c6e39979e37a338112a08ff066b604bee45e4a736e9bb822dfda30451c5b213", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5c6e39979e37a338112a08ff066b604bee45e4a736e9bb822dfda30451c5b213", kill_on_drop: false }` [INFO] [stdout] 5c6e39979e37a338112a08ff066b604bee45e4a736e9bb822dfda30451c5b213