[INFO] cloning repository https://github.com/queercat/gr8 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/queercat/gr8" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fqueercat%2Fgr8", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fqueercat%2Fgr8'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 5f776a2a5645dd289146958535cc9c0b1ff22e77 [INFO] checking queercat/gr8 against try#7d2afcda7a9c043d5175cbca3ab08f0acf02b13a for pr-140824 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fqueercat%2Fgr8" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/queercat/gr8 on toolchain 7d2afcda7a9c043d5175cbca3ab08f0acf02b13a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+7d2afcda7a9c043d5175cbca3ab08f0acf02b13a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/queercat/gr8 [INFO] finished tweaking git repo https://github.com/queercat/gr8 [INFO] tweaked toml for git repo https://github.com/queercat/gr8 written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/queercat/gr8 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" "+7d2afcda7a9c043d5175cbca3ab08f0acf02b13a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+7d2afcda7a9c043d5175cbca3ab08f0acf02b13a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 5066ca9acfa78674added58930acc38ab4288d59a37b866be626853907525f83 [INFO] running `Command { std: "docker" "start" "-a" "5066ca9acfa78674added58930acc38ab4288d59a37b866be626853907525f83", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "5066ca9acfa78674added58930acc38ab4288d59a37b866be626853907525f83", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5066ca9acfa78674added58930acc38ab4288d59a37b866be626853907525f83", kill_on_drop: false }` [INFO] [stdout] 5066ca9acfa78674added58930acc38ab4288d59a37b866be626853907525f83 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+7d2afcda7a9c043d5175cbca3ab08f0acf02b13a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 71e909b3a2904a6fc05aa2cdea81953c3961ed2719c239bb0dc459568370d3d0 [INFO] running `Command { std: "docker" "start" "-a" "71e909b3a2904a6fc05aa2cdea81953c3961ed2719c239bb0dc459568370d3d0", kill_on_drop: false }` [INFO] [stderr] Checking simd-adler32 v0.3.7 [INFO] [stderr] Compiling autocfg v1.4.0 [INFO] [stderr] Checking cfg-if v1.0.0 [INFO] [stderr] Checking adler2 v2.0.0 [INFO] [stderr] Compiling libc v0.2.171 [INFO] [stderr] Checking equivalent v1.0.2 [INFO] [stderr] Checking allocator-api2 v0.2.21 [INFO] [stderr] Checking bitflags v1.3.2 [INFO] [stderr] Checking foldhash v0.1.5 [INFO] [stderr] Compiling miniquad v0.4.8 [INFO] [stderr] Checking color_quant v1.1.0 [INFO] [stderr] Checking ttf-parser v0.21.1 [INFO] [stderr] Checking bytemuck v1.22.0 [INFO] [stderr] Checking byteorder v1.5.0 [INFO] [stderr] Checking quad-rand v0.2.3 [INFO] [stderr] Checking glam v0.27.0 [INFO] [stderr] Checking crc32fast v1.4.2 [INFO] [stderr] Compiling macroquad_macro v0.1.8 [INFO] [stderr] Checking fdeflate v0.3.7 [INFO] [stderr] Checking miniz_oxide v0.8.5 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking hashbrown v0.15.2 [INFO] [stderr] Checking flate2 v1.1.0 [INFO] [stderr] Checking png v0.17.16 [INFO] [stderr] Checking fontdue v0.9.3 [INFO] [stderr] Checking image v0.24.9 [INFO] [stderr] Checking macroquad v0.4.14 [INFO] [stderr] Checking gr8 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused macro definition: `assert_update_done` [INFO] [stdout] --> src/emulator/emulator.rs:188:18 [INFO] [stdout] | [INFO] [stdout] 188 | macro_rules! assert_update_done { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_macros)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/emulator/emulator.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 6 | struct Emulator { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 7 | memory: [u8; 4096], [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 8 | registers: [u8; 16], [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 9 | address: u16, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 10 | display: [[u8; 64]; 32], [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 11 | delay_timer: u8, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 12 | sound_timer: u8, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 13 | input: [u8; 16], [INFO] [stdout] | ^^^^^ [INFO] [stdout] 14 | stack: [u8; 48], [INFO] [stdout] | ^^^^^ [INFO] [stdout] 15 | sp: usize, [INFO] [stdout] | ^^ [INFO] [stdout] 16 | opcodes: Vec, [INFO] [stdout] 17 | pc: usize, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `Emulator` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `EmulatorStatus` is never used [INFO] [stdout] --> src/emulator/emulator.rs:30:6 [INFO] [stdout] | [INFO] [stdout] 30 | enum EmulatorStatus { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/emulator/emulator.rs:52:8 [INFO] [stdout] | [INFO] [stdout] 35 | impl Emulator { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 52 | fn with_opcodes(mut self, opcodes: Vec) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 57 | fn with_register_as(mut self, r: u8, v: u8) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | fn with_display(mut self, display: [[u8; 64]; 32]) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn load_rom(&mut self, path_to_rom: &str) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | fn clear_screen(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 78 | fn goto(&mut self, address: u16) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 82 | fn call_subroutine(&mut self, address: u16) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 95 | fn r#return(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | fn update(&mut self) -> Result { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/emulator/opcode.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 2 | pub enum Opcode { [INFO] [stdout] | ------ variants in this enum [INFO] [stdout] 3 | /// 0NNN: Calls machine code routine (RCA 1802 for COSMAC VIP) at address NNN. Not necessary for most ROMs. [INFO] [stdout] 4 | CallMachineCodeRoutine(u16), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 5 | /// 00E0: Clears the screen. [INFO] [stdout] 6 | ClearScreen, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 7 | /// 00EE: Returns from a subroutine. [INFO] [stdout] 8 | Return, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 9 | /// 1NNN: Jumps to address NNN. [INFO] [stdout] 10 | Goto(u16), [INFO] [stdout] | ^^^^ [INFO] [stdout] 11 | /// 2NNN: Calls subroutine at NNN. [INFO] [stdout] 12 | CallSubroutine(u16), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 13 | /// 3XNN: Skips the next instruction if VX equals NN (usually the next instruction is a jump to skip a code block). [INFO] [stdout] 14 | SkipInstructionIfEqual(u8, u8), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 15 | /// 4XNN: Skips the next instruction if VX does not equal NN (usually the next instruction is a jump to skip a code block). [INFO] [stdout] 16 | SkipInstructionIfNotEqual(u8, u8), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | /// 5XY0: Skips the next instruction if VX equals VY (usually the next instruction is a jump to skip a code block). [INFO] [stdout] 18 | SkipInstructionIfRegistersEqual(u8, u8), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 19 | /// 6XNN: Sets VX to NN. [INFO] [stdout] 20 | SetRegister(u8, u8), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 21 | /// 7XNN: Adds NN to VX (carry flag is not changed). [INFO] [stdout] 22 | AddToRegister(u8, u8), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 23 | /// 8XY0: Sets VX to the value of VY. [INFO] [stdout] 24 | CopyRegisters(u8, u8), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 25 | /// 8XY1: Sets VX to VX or VY. (bitwise OR operation). [INFO] [stdout] 26 | OrRegisters(u8, u8), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 27 | /// 8XY2: Sets VX to VX and VY. (bitwise AND operation). [INFO] [stdout] 28 | AndRegisters(u8, u8), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 29 | /// 8XY3: Sets VX to VX xor VY. [INFO] [stdout] 30 | XorRegisters(u8, u8), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 31 | /// 8XY4: Adds VY to VX. VF is set to 1 when there's an overflow, and to 0 when there is not. [INFO] [stdout] 32 | AddRegisters(u8, u8), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 33 | /// 8XY5: VY is subtracted from VX. VF is set to 0 w... [INFO] [stdout] 34 | SubtractRegisters(u8, u8), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 35 | /// 8XY6: Shifts VX to the right by 1, then stores the least significant bit of VX prior to the shift into VF. [INFO] [stdout] 36 | ShiftRegisterRight(u8, u8), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 37 | /// 8XY7: Sets VX to VY minus VX. VF is set to 0 when there's an underflow, and 1 when there is not. (i.e. VF set to 1 if VY >= VX). [INFO] [stdout] 38 | SubtractRegistersReversed(u8, u8), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 39 | /// 8XYE: Shifts VX to the left by 1, then sets VF t... [INFO] [stdout] 40 | ShiftRegisterLeft(u8, u8), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 41 | /// 9XY0: Skips the next instruction if VX does not equal VY. (Usually the next instruction is a jump to skip a code block). [INFO] [stdout] 42 | SkipInstructionIfRegistersNotEqual(u8, u8), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 43 | /// ANNN: Sets I to the address NNN. [INFO] [stdout] 44 | SetMemoryAddress(u16), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 45 | /// BNNN: Jumps to the address NNN plus V0. [INFO] [stdout] 46 | JumpToMemoryAddress(u16), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 47 | /// CXNN: Sets VX to the result of a bitwise and operation on a random number (Typically: 0 to 255) and NN. [INFO] [stdout] 48 | SetRegisterRandom(u8, u8), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 52 | DrawSprite(u8, u8, u8), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 53 | /// EX9E: Skips the next instruction if the key stor... [INFO] [stdout] 54 | SkipInstructionIfKeyDown(u8), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 55 | /// EXA1: Skips the next instruction if the key stor... [INFO] [stdout] 56 | SkipInstructionIfKeyUp(u8), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 57 | /// FX07: Sets VX to the value of the delay timer. [INFO] [stdout] 58 | StoreDelayTimerToRegister(u8), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 59 | /// FX0A: A key press is awaited, and then stored in... [INFO] [stdout] 60 | HaltAndStoreKeypressIntoRegister(u8), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 61 | /// FX15: Sets the delay timer to VX. [INFO] [stdout] 62 | SetDelayTimerToRegister(u8), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 63 | /// FX18: Sets the sound timer to VX. [INFO] [stdout] 64 | SetSoundTimerToRegister(u8), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 65 | /// FX1E: Adds VX to I. VF is not affected. [INFO] [stdout] 66 | AddRegisterToMemoryAddress(u8), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 67 | /// FX29: Sets I to the location of the sprite for t... [INFO] [stdout] 68 | SetMemoryAddressToSpriteFromRegister(u8), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 69 | /// FX33: Stores the binary-coded decimal representa... [INFO] [stdout] 70 | SetMemoryAddressToBinaryEncodedDecimalFromRegister(u8), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 71 | /// FX55: Stores from V0 to VX (including VX) in mem... [INFO] [stdout] 72 | DumpRegistersIntoMemoryUpToRegister(u8), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 73 | /// FX65: Fills from V0 to VX (including VX) with va... [INFO] [stdout] 74 | DumpMemoryIntoRegistersUpToRegister(u8), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Opcode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `decode`, `decode_triple_hex_bit`, and `decode_bits` are never used [INFO] [stdout] --> src/emulator/opcode.rs:78:12 [INFO] [stdout] | [INFO] [stdout] 77 | impl Opcode { [INFO] [stdout] | ----------- associated functions in this implementation [INFO] [stdout] 78 | pub fn decode(data: &Vec) -> Result, String> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | fn decode_triple_hex_bit(n0: u8, n1: u8, n2: u8) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | fn decode_bits(bits: (u8, u8, u8, u8)) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `emulator` [INFO] [stdout] --> src/emulator/emulator.rs:318:17 [INFO] [stdout] | [INFO] [stdout] 318 | let mut emulator = Emulator::new().with_opcodes(vec![ [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_emulator` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/emulator/emulator.rs:318:13 [INFO] [stdout] | [INFO] [stdout] 318 | let mut emulator = Emulator::new().with_opcodes(vec![ [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `memory`, `address`, `delay_timer`, `sound_timer`, and `input` are never read [INFO] [stdout] --> src/emulator/emulator.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 6 | struct Emulator { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 7 | memory: [u8; 4096], [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 8 | registers: [u8; 16], [INFO] [stdout] 9 | address: u16, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 10 | display: [[u8; 64]; 32], [INFO] [stdout] 11 | delay_timer: u8, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 12 | sound_timer: u8, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 13 | input: [u8; 16], [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Emulator` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `opcode_copy_registers` is never used [INFO] [stdout] --> src/emulator/emulator.rs:317:8 [INFO] [stdout] | [INFO] [stdout] 317 | fn opcode_copy_registers() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.15s [INFO] running `Command { std: "docker" "inspect" "71e909b3a2904a6fc05aa2cdea81953c3961ed2719c239bb0dc459568370d3d0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "71e909b3a2904a6fc05aa2cdea81953c3961ed2719c239bb0dc459568370d3d0", kill_on_drop: false }` [INFO] [stdout] 71e909b3a2904a6fc05aa2cdea81953c3961ed2719c239bb0dc459568370d3d0