[INFO] cloning repository https://github.com/gavinlin/rustgb
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/gavinlin/rustgb" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgavinlin%2Frustgb", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgavinlin%2Frustgb'...
[INFO] [stderr] /workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgavinlin%2Frustgb: No space left on device
[WARN] Retrying crate fetch in 3 seconds (attempt 1)
[INFO] cloning repository https://github.com/gavinlin/rustgb
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/gavinlin/rustgb" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgavinlin%2Frustgb", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgavinlin%2Frustgb'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 244dc242ad0fb3877eaf45762879da4670387d1c
[INFO] checking gavinlin/rustgb against master#8f21a5c92ea55c348c275a1bc4fedbdf181e0d64 for pr-143011
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgavinlin%2Frustgb" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/gavinlin/rustgb
[INFO] finished tweaking git repo https://github.com/gavinlin/rustgb
[INFO] tweaked toml for git repo https://github.com/gavinlin/rustgb written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/gavinlin/rustgb on toolchain 8f21a5c92ea55c348c275a1bc4fedbdf181e0d64
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8f21a5c92ea55c348c275a1bc4fedbdf181e0d64" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/gavinlin/rustgb 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" "+8f21a5c92ea55c348c275a1bc4fedbdf181e0d64" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8f21a5c92ea55c348c275a1bc4fedbdf181e0d64" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] aea623c957ebd025efb83c9195561e09276b7d04fd47e6f5591e4a5783c33d21
[INFO] running `Command { std: "docker" "start" "-a" "aea623c957ebd025efb83c9195561e09276b7d04fd47e6f5591e4a5783c33d21", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "aea623c957ebd025efb83c9195561e09276b7d04fd47e6f5591e4a5783c33d21", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "aea623c957ebd025efb83c9195561e09276b7d04fd47e6f5591e4a5783c33d21", kill_on_drop: false }`
[INFO] [stdout] aea623c957ebd025efb83c9195561e09276b7d04fd47e6f5591e4a5783c33d21
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8f21a5c92ea55c348c275a1bc4fedbdf181e0d64" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6e91d77080d4c8721cdc47619b498e967a8caf45372633d0ded5d36fe22e610e
[INFO] running `Command { std: "docker" "start" "-a" "6e91d77080d4c8721cdc47619b498e967a8caf45372633d0ded5d36fe22e610e", kill_on_drop: false }`
[INFO] [stderr]     Checking rustgb v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: variant `NOT_ZERO` should have an upper camel case name
[INFO] [stdout]   --> src/cpu/core.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     NOT_ZERO,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `NotZero`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `NOT_CARRY` should have an upper camel case name
[INFO] [stdout]   --> src/cpu/core.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     NOT_CARRY,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `NotCarry`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/cpu/core.rs:140:21
[INFO] [stdout]     |
[INFO] [stdout] 140 |         let cy = if (registers.get_carry()) { 1 } else { 0 };
[INFO] [stdout]     |                     ^                     ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 140 -         let cy = if (registers.get_carry()) { 1 } else { 0 };
[INFO] [stdout] 140 +         let cy = if registers.get_carry() { 1 } else { 0 };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/cpu/core.rs:329:21
[INFO] [stdout]     |
[INFO] [stdout] 329 |         let ci = if (self.registers.get_carry()) { 1 } else { 0 };
[INFO] [stdout]     |                     ^                          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 329 -         let ci = if (self.registers.get_carry()) { 1 } else { 0 };
[INFO] [stdout] 329 +         let ci = if self.registers.get_carry() { 1 } else { 0 };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/cpu/core.rs:356:21
[INFO] [stdout]     |
[INFO] [stdout] 356 |         let ci = if (self.registers.get_carry()) { 1 } else { 0 };
[INFO] [stdout]     |                     ^                          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 356 -         let ci = if (self.registers.get_carry()) { 1 } else { 0 };
[INFO] [stdout] 356 +         let ci = if self.registers.get_carry() { 1 } else { 0 };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `NOT_ZERO` should have an upper camel case name
[INFO] [stdout]   --> src/cpu/core.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     NOT_ZERO,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `NotZero`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `NOT_CARRY` should have an upper camel case name
[INFO] [stdout]   --> src/cpu/core.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     NOT_CARRY,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `NotCarry`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/cpu/core.rs:140:21
[INFO] [stdout]     |
[INFO] [stdout] 140 |         let cy = if (registers.get_carry()) { 1 } else { 0 };
[INFO] [stdout]     |                     ^                     ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 140 -         let cy = if (registers.get_carry()) { 1 } else { 0 };
[INFO] [stdout] 140 +         let cy = if registers.get_carry() { 1 } else { 0 };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/cpu/core.rs:329:21
[INFO] [stdout]     |
[INFO] [stdout] 329 |         let ci = if (self.registers.get_carry()) { 1 } else { 0 };
[INFO] [stdout]     |                     ^                          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 329 -         let ci = if (self.registers.get_carry()) { 1 } else { 0 };
[INFO] [stdout] 329 +         let ci = if self.registers.get_carry() { 1 } else { 0 };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/cpu/core.rs:356:21
[INFO] [stdout]     |
[INFO] [stdout] 356 |         let ci = if (self.registers.get_carry()) { 1 } else { 0 };
[INFO] [stdout]     |                     ^                          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 356 -         let ci = if (self.registers.get_carry()) { 1 } else { 0 };
[INFO] [stdout] 356 +         let ci = if self.registers.get_carry() { 1 } else { 0 };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/cpu/core.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 115 |             _ => { /* TODO: more instruction */ self.pc}
[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/core.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 75  |             Instruction::JP(test) => {
[INFO] [stdout]     |             --------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 85  |             Instruction::LD(from, target) => {
[INFO] [stdout]     |             ----------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 90  |             Instruction::ADD(target) => {
[INFO] [stdout]     |             ------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 95  |             Instruction::ADC(target) => {
[INFO] [stdout]     |             ------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 115 |             _ => { /* TODO: more instruction */ self.pc}
[INFO] [stdout]     |             ^ ...and 3 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/cpu/core.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 115 |             _ => { /* TODO: more instruction */ self.pc}
[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/core.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 75  |             Instruction::JP(test) => {
[INFO] [stdout]     |             --------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 85  |             Instruction::LD(from, target) => {
[INFO] [stdout]     |             ----------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 90  |             Instruction::ADD(target) => {
[INFO] [stdout]     |             ------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 95  |             Instruction::ADC(target) => {
[INFO] [stdout]     |             ------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 115 |             _ => { /* TODO: more instruction */ self.pc}
[INFO] [stdout]     |             ^ ...and 3 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `JumpTest` is more private than the item `core::Instruction::JP::0`
[INFO] [stdout]   --> src/cpu/core.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 |     JP(JumpTest),
[INFO] [stdout]    |        ^^^^^^^^ field `core::Instruction::JP::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `JumpTest` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/cpu/core.rs:37:1
[INFO] [stdout]    |
[INFO] [stdout] 37 | enum JumpTest {
[INFO] [stdout]    | ^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `B`, `D`, `E`, `F`, `H`, and `L` are never constructed
[INFO] [stdout]   --> src/cpu/registers.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub enum ByteTarget {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 28 |     A, B, C, D, E, F, H, L,
[INFO] [stdout]    |        ^     ^  ^  ^  ^  ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ByteTarget` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `WordTarget` is never used
[INFO] [stdout]   --> src/cpu/registers.rs:32:10
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub enum WordTarget {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_word` and `get_word` are never used
[INFO] [stdout]    --> src/cpu/registers.rs:133:12
[INFO] [stdout]     |
[INFO] [stdout] 61  | impl Registers {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn set_word(&mut self, value: u16, word_target: WordTarget) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn get_word(self, word_target: WordTarget) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `LD`, `ADC`, `SUB`, `SBC`, `INC`, and `JP` are never constructed
[INFO] [stdout]   --> src/cpu/core.rs:4:5
[INFO] [stdout]    |
[INFO] [stdout] 3  | pub enum Instruction {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] 4  |     LD(ByteTarget, ByteTarget),
[INFO] [stdout]    |     ^^
[INFO] [stdout] 5  |     ADD(ByteTarget),
[INFO] [stdout] 6  |     ADC(ByteTarget),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 7  |     SUB(ByteTarget),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 8  |     SBC(ByteTarget),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 9  |     INC(ByteTarget),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 10 |     JP(JumpTest),
[INFO] [stdout]    |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sp` is never read
[INFO] [stdout]   --> src/cpu/core.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct CPU {
[INFO] [stdout]    |            --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub sp: u16,
[INFO] [stdout]    |         ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `NOT_ZERO`, `ZERO`, `NOT_CARRY`, `CARRY`, and `ALWAYS` are never constructed
[INFO] [stdout]   --> src/cpu/core.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | enum JumpTest {
[INFO] [stdout]    |      -------- variants in this enum
[INFO] [stdout] 38 |     NOT_ZERO,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 39 |     ZERO,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 40 |     NOT_CARRY,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 41 |     CARRY,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 42 |     ALWAYS
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `JumpTest` is more private than the item `core::Instruction::JP::0`
[INFO] [stdout]   --> src/cpu/core.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 |     JP(JumpTest),
[INFO] [stdout]    |        ^^^^^^^^ field `core::Instruction::JP::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `JumpTest` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/cpu/core.rs:37:1
[INFO] [stdout]    |
[INFO] [stdout] 37 | enum JumpTest {
[INFO] [stdout]    | ^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/cpu/core.rs:56:8
[INFO] [stdout]     |
[INFO] [stdout] 45  | impl CPU {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 56  |     fn step(&mut self) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     fn cp(&mut self, value: u8) {
[INFO] [stdout]     |        ^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     fn and(&mut self, value: u8) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     fn or(&mut self, value: u8) {
[INFO] [stdout]     |        ^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     fn xor(&mut self, value: u8) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     fn dec(&mut self, value: u8, out: ByteTarget) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     fn rlca(&mut self) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 203 |     fn rla(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     fn rrca(&mut self) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     fn rra(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     fn rlc(&mut self, from: ByteTarget) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 227 |     fn rl(&mut self, from: ByteTarget) {
[INFO] [stdout]     |        ^^
[INFO] [stdout] ...
[INFO] [stdout] 233 |     fn rrc(&mut self, from: ByteTarget) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     fn rr(&mut self, from: ByteTarget) {
[INFO] [stdout]     |        ^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     fn sla(&mut self, from: ByteTarget) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 257 |     fn sra(&mut self, from: ByteTarget) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 270 |     fn srl(&mut self, from: ByteTarget) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 282 |     fn swap(&mut self, from: ByteTarget) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 293 |     fn bit(&mut self, bit: usize, from: ByteTarget) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 304 |     fn set(&mut self, bit: usize, from: ByteTarget) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 310 |     fn res(&mut self, bit:usize, from: ByteTarget) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 328 |     fn alu_rl(&mut self, value: u8, set_zero: bool) -> u8 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 341 |     fn alu_rlc(&mut self, value: u8, set_zero: bool) -> u8 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 348 |     fn alu_rrc(&mut self, value: u8, set_zero: bool) -> u8 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 355 |     fn alu_rr(&mut self, value: u8, set_zero: bool) -> u8 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `from_byte`, `from_byte_prefixed`, and `from_byte_normal` are never used
[INFO] [stdout]    --> src/cpu/core.rs:369:8
[INFO] [stdout]     |
[INFO] [stdout] 368 | impl Instruction {
[INFO] [stdout]     | ---------------- associated functions in this implementation
[INFO] [stdout] 369 |     fn from_byte(byte: u8, prefixed: bool) -> Option<Instruction> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 377 |     fn from_byte_prefixed(byte: u8) -> Option<Instruction> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 383 |     fn from_byte_normal(byte: u8) -> Option<Instruction> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `B`, `D`, `E`, `F`, `H`, and `L` are never constructed
[INFO] [stdout]   --> src/cpu/registers.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub enum ByteTarget {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 28 |     A, B, C, D, E, F, H, L,
[INFO] [stdout]    |        ^     ^  ^  ^  ^  ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ByteTarget` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `WordTarget` is never used
[INFO] [stdout]   --> src/cpu/registers.rs:32:10
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub enum WordTarget {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_word` and `get_word` are never used
[INFO] [stdout]    --> src/cpu/registers.rs:133:12
[INFO] [stdout]     |
[INFO] [stdout] 61  | impl Registers {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn set_word(&mut self, value: u16, word_target: WordTarget) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn get_word(self, word_target: WordTarget) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `LD`, `ADC`, `SUB`, `SBC`, `INC`, and `JP` are never constructed
[INFO] [stdout]   --> src/cpu/core.rs:4:5
[INFO] [stdout]    |
[INFO] [stdout] 3  | pub enum Instruction {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] 4  |     LD(ByteTarget, ByteTarget),
[INFO] [stdout]    |     ^^
[INFO] [stdout] 5  |     ADD(ByteTarget),
[INFO] [stdout] 6  |     ADC(ByteTarget),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 7  |     SUB(ByteTarget),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 8  |     SBC(ByteTarget),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 9  |     INC(ByteTarget),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 10 |     JP(JumpTest),
[INFO] [stdout]    |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sp` is never read
[INFO] [stdout]   --> src/cpu/core.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct CPU {
[INFO] [stdout]    |            --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub sp: u16,
[INFO] [stdout]    |         ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `NOT_ZERO`, `ZERO`, `NOT_CARRY`, `CARRY`, and `ALWAYS` are never constructed
[INFO] [stdout]   --> src/cpu/core.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | enum JumpTest {
[INFO] [stdout]    |      -------- variants in this enum
[INFO] [stdout] 38 |     NOT_ZERO,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 39 |     ZERO,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 40 |     NOT_CARRY,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 41 |     CARRY,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 42 |     ALWAYS
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/cpu/core.rs:56:8
[INFO] [stdout]     |
[INFO] [stdout] 45  | impl CPU {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 56  |     fn step(&mut self) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     fn cp(&mut self, value: u8) {
[INFO] [stdout]     |        ^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     fn and(&mut self, value: u8) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     fn or(&mut self, value: u8) {
[INFO] [stdout]     |        ^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     fn xor(&mut self, value: u8) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     fn dec(&mut self, value: u8, out: ByteTarget) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     fn rlca(&mut self) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 203 |     fn rla(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     fn rrca(&mut self) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     fn rra(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     fn rlc(&mut self, from: ByteTarget) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 227 |     fn rl(&mut self, from: ByteTarget) {
[INFO] [stdout]     |        ^^
[INFO] [stdout] ...
[INFO] [stdout] 233 |     fn rrc(&mut self, from: ByteTarget) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     fn rr(&mut self, from: ByteTarget) {
[INFO] [stdout]     |        ^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     fn sla(&mut self, from: ByteTarget) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 257 |     fn sra(&mut self, from: ByteTarget) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 270 |     fn srl(&mut self, from: ByteTarget) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 282 |     fn swap(&mut self, from: ByteTarget) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 293 |     fn bit(&mut self, bit: usize, from: ByteTarget) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 304 |     fn set(&mut self, bit: usize, from: ByteTarget) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 310 |     fn res(&mut self, bit:usize, from: ByteTarget) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 328 |     fn alu_rl(&mut self, value: u8, set_zero: bool) -> u8 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 341 |     fn alu_rlc(&mut self, value: u8, set_zero: bool) -> u8 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 348 |     fn alu_rrc(&mut self, value: u8, set_zero: bool) -> u8 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 355 |     fn alu_rr(&mut self, value: u8, set_zero: bool) -> u8 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `from_byte`, `from_byte_prefixed`, and `from_byte_normal` are never used
[INFO] [stdout]    --> src/cpu/core.rs:369:8
[INFO] [stdout]     |
[INFO] [stdout] 368 | impl Instruction {
[INFO] [stdout]     | ---------------- associated functions in this implementation
[INFO] [stdout] 369 |     fn from_byte(byte: u8, prefixed: bool) -> Option<Instruction> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 377 |     fn from_byte_prefixed(byte: u8) -> Option<Instruction> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 383 |     fn from_byte_normal(byte: u8) -> Option<Instruction> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.32s
[INFO] running `Command { std: "docker" "inspect" "6e91d77080d4c8721cdc47619b498e967a8caf45372633d0ded5d36fe22e610e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6e91d77080d4c8721cdc47619b498e967a8caf45372633d0ded5d36fe22e610e", kill_on_drop: false }`
[INFO] [stdout] 6e91d77080d4c8721cdc47619b498e967a8caf45372633d0ded5d36fe22e610e
