[INFO] cloning repository https://github.com/AdiTiwa/HackSimulators
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/AdiTiwa/HackSimulators" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAdiTiwa%2FHackSimulators", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAdiTiwa%2FHackSimulators'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 123f611038df9d718852c93c6451ff795d72dfc4
[INFO] checking AdiTiwa/HackSimulators against master#f8463896a9b36a04899c013bd8825a7fd29dd7a4 for pr-151920
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAdiTiwa%2FHackSimulators" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/AdiTiwa/HackSimulators
[INFO] finished tweaking git repo https://github.com/AdiTiwa/HackSimulators
[INFO] tweaked toml for git repo https://github.com/AdiTiwa/HackSimulators written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/AdiTiwa/HackSimulators on toolchain f8463896a9b36a04899c013bd8825a7fd29dd7a4
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f8463896a9b36a04899c013bd8825a7fd29dd7a4" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/AdiTiwa/HackSimulators 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" "+f8463896a9b36a04899c013bd8825a7fd29dd7a4" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wezterm-dynamic v0.2.1
[INFO] [stderr]   Downloaded filedescriptor v0.8.3
[INFO] [stderr]   Downloaded memmem v0.1.1
[INFO] [stderr]   Downloaded euclid v0.22.13
[INFO] [stderr]   Downloaded mac_address v1.1.8
[INFO] [stderr]   Downloaded wezterm-blob-leases v0.1.1
[INFO] [stderr]   Downloaded terminfo v0.9.0
[INFO] [stderr]   Downloaded lab v0.11.0
[INFO] [stderr]   Downloaded wezterm-dynamic-derive v0.1.1
[INFO] [stderr]   Downloaded finl_unicode v1.4.0
[INFO] [stderr]   Downloaded wezterm-bidi v0.2.3
[INFO] [stderr]   Downloaded ratatui-termwiz v0.1.0
[INFO] [stderr]   Downloaded vtparse v0.6.2
[INFO] [stderr]   Downloaded csscolorparser v0.6.2
[INFO] [stderr]   Downloaded wezterm-input-types v0.1.0
[INFO] [stderr]   Downloaded wezterm-color-types v0.3.0
[INFO] [stderr]   Downloaded termwiz v0.23.3
[INFO] [stderr]   Downloaded deltae v0.3.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+f8463896a9b36a04899c013bd8825a7fd29dd7a4" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] b8161c8d9c426b65365369734f190077fe31a4266b8d32471340e306860aa2dc
[INFO] running `Command { std: "docker" "start" "-a" "b8161c8d9c426b65365369734f190077fe31a4266b8d32471340e306860aa2dc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b8161c8d9c426b65365369734f190077fe31a4266b8d32471340e306860aa2dc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b8161c8d9c426b65365369734f190077fe31a4266b8d32471340e306860aa2dc", kill_on_drop: false }`
[INFO] [stdout] b8161c8d9c426b65365369734f190077fe31a4266b8d32471340e306860aa2dc
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+f8463896a9b36a04899c013bd8825a7fd29dd7a4" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 800db974f1d04b1cb31985f65d7f1dfa4703010632c84bf2b8db65e94e33cc2c
[INFO] running `Command { std: "docker" "start" "-a" "800db974f1d04b1cb31985f65d7f1dfa4703010632c84bf2b8db65e94e33cc2c", kill_on_drop: false }`
[INFO] [stderr]     Checking hacksimulators v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `KeyboardInterface`, `MemoryKeyboard`, `Memory`, `RAM`, `ROM`, `SCREEN_OFFSET`, `SCREEN_SIZE`, and `SubMemory`
[INFO] [stdout]  --> src/cpu/cpu.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     KeyboardInterface, MemInterface, Memory, MemoryKeyboard, RAM, ROM, SCREEN_OFFSET, SCREEN_SIZE, SubMemory,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^                ^^^^^^  ^^^^^^^^^^^^^^  ^^^  ^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `KeyboardInterface`, `MemoryKeyboard`, `Memory`, `RAM`, `ROM`, `SCREEN_OFFSET`, `SCREEN_SIZE`, and `SubMemory`
[INFO] [stdout]  --> src/cpu/cpu.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     KeyboardInterface, MemInterface, Memory, MemoryKeyboard, RAM, ROM, SCREEN_OFFSET, SCREEN_SIZE, SubMemory,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^                ^^^^^^  ^^^^^^^^^^^^^^  ^^^  ^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MemInterface`
[INFO] [stdout]  --> src/cpu/cpu.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 |     KeyboardInterface, MemInterface, Memory, MemoryKeyboard, RAM, ROM, SCREEN_OFFSET, SCREEN_SIZE, SubMemory,
[INFO] [stdout]   |                        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `outM`, `writeM`, and `addrM` are never read
[INFO] [stdout]   --> src/cpu/cpu.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct CPUOutput {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 13 |     outM:           u16,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 14 |     writeM:         bool,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 15 |     addrM:          u16,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `inM` should have a snake case name
[INFO] [stdout]  --> src/cpu/cpu.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     inM:            u16,
[INFO] [stdout]   |     ^^^ help: convert the identifier to snake case: `in_m`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `outM` should have a snake case name
[INFO] [stdout]   --> src/cpu/cpu.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     outM:           u16,
[INFO] [stdout]    |     ^^^^ help: convert the identifier to snake case: `out_m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `writeM` should have a snake case name
[INFO] [stdout]   --> src/cpu/cpu.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     writeM:         bool,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to snake case: `write_m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `addrM` should have a snake case name
[INFO] [stdout]   --> src/cpu/cpu.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     addrM:          u16,
[INFO] [stdout]    |     ^^^^^ help: convert the identifier to snake case: `addr_m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `A` should have a snake case name
[INFO] [stdout]   --> src/cpu/cpu.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     A: u16,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `D` should have a snake case name
[INFO] [stdout]   --> src/cpu/cpu.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     D: u16,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `PC` should have a snake case name
[INFO] [stdout]   --> src/cpu/cpu.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     PC: u16,
[INFO] [stdout]    |     ^^ help: convert the identifier to snake case: `pc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `ALU` should have a snake case name
[INFO] [stdout]   --> src/cpu/cpu.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     ALU: u16,
[INFO] [stdout]    |     ^^^ help: convert the identifier to snake case: `alu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cpuTick` should have a snake case name
[INFO] [stdout]   --> src/cpu/cpu.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn cpuTick( inp: CPUInput, state: CPUState ) -> (CPUState, bool, u16) {
[INFO] [stdout]    |        ^^^^^^^ help: convert the identifier to snake case: `cpu_tick`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `ALU` should have a snake case name
[INFO] [stdout]   --> src/cpu/cpu.rs:80:10
[INFO] [stdout]    |
[INFO] [stdout] 80 |     let (ALU, flags) = alu(state.D, a, bits.op);
[INFO] [stdout]    |          ^^^ help: convert the identifier to snake case: `alu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `D` should have a snake case name
[INFO] [stdout]   --> src/cpu/cpu.rs:82:13
[INFO] [stdout]    |
[INFO] [stdout] 82 |     let mut D = state.D;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cpuTock` should have a snake case name
[INFO] [stdout]   --> src/cpu/cpu.rs:94:8
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub fn cpuTock(inp: CPUInput, state: &mut CPUState) -> (CPUOutput, CPUState) {
[INFO] [stdout]    |        ^^^^^^^ help: convert the identifier to snake case: `cpu_tock`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `PC` should have a snake case name
[INFO] [stdout]    --> src/cpu/cpu.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 102 |     let PC = match inp.reset {
[INFO] [stdout]     |         ^^ help: convert the identifier to snake case: `pc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]    --> src/cpu/cpu.rs:107:13
[INFO] [stdout]     |
[INFO] [stdout] 107 |     let mut A: u16 = state.A;
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `aluOut` should have a snake case name
[INFO] [stdout]    --> src/cpu/cpu.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 115 |     let aluOut = alu(state.D, a, bits.op);
[INFO] [stdout]     |         ^^^^^^ help: convert the identifier to snake case: `alu_out`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `ALU` should have a snake case name
[INFO] [stdout]    --> src/cpu/cpu.rs:117:9
[INFO] [stdout]     |
[INFO] [stdout] 117 |     let ALU = aluOut.0;
[INFO] [stdout]     |         ^^^ help: convert the identifier to snake case: `alu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MemInterface`
[INFO] [stdout]  --> src/cpu/cpu.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 |     KeyboardInterface, MemInterface, Memory, MemoryKeyboard, RAM, ROM, SCREEN_OFFSET, SCREEN_SIZE, SubMemory,
[INFO] [stdout]   |                        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `outM`, `writeM`, and `addrM` are never read
[INFO] [stdout]   --> src/cpu/cpu.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct CPUOutput {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 13 |     outM:           u16,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 14 |     writeM:         bool,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 15 |     addrM:          u16,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `inM` should have a snake case name
[INFO] [stdout]  --> src/cpu/cpu.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     inM:            u16,
[INFO] [stdout]   |     ^^^ help: convert the identifier to snake case: `in_m`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `outM` should have a snake case name
[INFO] [stdout]   --> src/cpu/cpu.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     outM:           u16,
[INFO] [stdout]    |     ^^^^ help: convert the identifier to snake case: `out_m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `writeM` should have a snake case name
[INFO] [stdout]   --> src/cpu/cpu.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     writeM:         bool,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to snake case: `write_m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `addrM` should have a snake case name
[INFO] [stdout]   --> src/cpu/cpu.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     addrM:          u16,
[INFO] [stdout]    |     ^^^^^ help: convert the identifier to snake case: `addr_m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `A` should have a snake case name
[INFO] [stdout]   --> src/cpu/cpu.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     A: u16,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `D` should have a snake case name
[INFO] [stdout]   --> src/cpu/cpu.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     D: u16,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `PC` should have a snake case name
[INFO] [stdout]   --> src/cpu/cpu.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     PC: u16,
[INFO] [stdout]    |     ^^ help: convert the identifier to snake case: `pc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `ALU` should have a snake case name
[INFO] [stdout]   --> src/cpu/cpu.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     ALU: u16,
[INFO] [stdout]    |     ^^^ help: convert the identifier to snake case: `alu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cpuTick` should have a snake case name
[INFO] [stdout]   --> src/cpu/cpu.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn cpuTick( inp: CPUInput, state: CPUState ) -> (CPUState, bool, u16) {
[INFO] [stdout]    |        ^^^^^^^ help: convert the identifier to snake case: `cpu_tick`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `ALU` should have a snake case name
[INFO] [stdout]   --> src/cpu/cpu.rs:80:10
[INFO] [stdout]    |
[INFO] [stdout] 80 |     let (ALU, flags) = alu(state.D, a, bits.op);
[INFO] [stdout]    |          ^^^ help: convert the identifier to snake case: `alu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `D` should have a snake case name
[INFO] [stdout]   --> src/cpu/cpu.rs:82:13
[INFO] [stdout]    |
[INFO] [stdout] 82 |     let mut D = state.D;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cpuTock` should have a snake case name
[INFO] [stdout]   --> src/cpu/cpu.rs:94:8
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub fn cpuTock(inp: CPUInput, state: &mut CPUState) -> (CPUOutput, CPUState) {
[INFO] [stdout]    |        ^^^^^^^ help: convert the identifier to snake case: `cpu_tock`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `PC` should have a snake case name
[INFO] [stdout]    --> src/cpu/cpu.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 102 |     let PC = match inp.reset {
[INFO] [stdout]     |         ^^ help: convert the identifier to snake case: `pc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]    --> src/cpu/cpu.rs:107:13
[INFO] [stdout]     |
[INFO] [stdout] 107 |     let mut A: u16 = state.A;
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `aluOut` should have a snake case name
[INFO] [stdout]    --> src/cpu/cpu.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 115 |     let aluOut = alu(state.D, a, bits.op);
[INFO] [stdout]     |         ^^^^^^ help: convert the identifier to snake case: `alu_out`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `ALU` should have a snake case name
[INFO] [stdout]    --> src/cpu/cpu.rs:117:9
[INFO] [stdout]     |
[INFO] [stdout] 117 |     let ALU = aluOut.0;
[INFO] [stdout]     |         ^^^ help: convert the identifier to snake case: `alu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this file contains an unclosed delimiter
[INFO] [stdout]     --> src/vm/main.rs:1101:3
[INFO] [stdout]      |
[INFO] [stdout]  158 | impl Vm {
[INFO] [stdout]      |         - unclosed delimiter
[INFO] [stdout] ...
[INFO] [stdout]  325 |                     if *n_vars as i32 < { 0 || *n_vars > 32767 {
[INFO] [stdout]      |                                         - this delimiter might not be properly closed...
[INFO] [stdout] ...
[INFO] [stdout]  332 |                 }
[INFO] [stdout]      |                 - ...as it matches this but it has different indentation
[INFO] [stdout] ...
[INFO] [stdout] 1101 | }
[INFO] [stdout]      |  ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `hacksimulators` (bin "vm" test) due to 1 previous error
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: this file contains an unclosed delimiter
[INFO] [stdout]     --> src/vm/main.rs:1101:3
[INFO] [stdout]      |
[INFO] [stdout]  158 | impl Vm {
[INFO] [stdout]      |         - unclosed delimiter
[INFO] [stdout] ...
[INFO] [stdout]  325 |                     if *n_vars as i32 < { 0 || *n_vars > 32767 {
[INFO] [stdout]      |                                         - this delimiter might not be properly closed...
[INFO] [stdout] ...
[INFO] [stdout]  332 |                 }
[INFO] [stdout]      |                 - ...as it matches this but it has different indentation
[INFO] [stdout] ...
[INFO] [stdout] 1101 | }
[INFO] [stdout]      |  ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `hacksimulators` (bin "vm") due to 1 previous error
[INFO] [stdout] error[E0277]: the trait bound `u16: Neg` is not satisfied
[INFO] [stdout]   --> tests/cpu/memory.rs:31:33
[INFO] [stdout]    |
[INFO] [stdout] 31 |     assert_eq!(memory.get(300), -1);
[INFO] [stdout]    |                                 ^^ the trait `Neg` is not implemented for `u16`
[INFO] [stdout]    |
[INFO] [stdout] help: consider specifying an integer type that can be negative
[INFO] [stdout]    |
[INFO] [stdout] 31 |     assert_eq!(memory.get(300), -1i16);
[INFO] [stdout]    |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u16: Neg` is not satisfied
[INFO] [stdout]   --> tests/cpu/memory.rs:32:32
[INFO] [stdout]    |
[INFO] [stdout] 32 |     assert_eq!(memory.get(-1), -1);
[INFO] [stdout]    |                                ^^ the trait `Neg` is not implemented for `u16`
[INFO] [stdout]    |
[INFO] [stdout] help: consider specifying an integer type that can be negative
[INFO] [stdout]    |
[INFO] [stdout] 32 |     assert_eq!(memory.get(-1), -1i16);
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u16: Neg` is not satisfied
[INFO] [stdout]    --> tests/cpu/memory.rs:148:33
[INFO] [stdout]     |
[INFO] [stdout] 148 |     assert_eq!(submem.get(100), -1);
[INFO] [stdout]     |                                 ^^ the trait `Neg` is not implemented for `u16`
[INFO] [stdout]     |
[INFO] [stdout] help: consider specifying an integer type that can be negative
[INFO] [stdout]     |
[INFO] [stdout] 148 |     assert_eq!(submem.get(100), -1i16);
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u16: Neg` is not satisfied
[INFO] [stdout]    --> tests/cpu/memory.rs:149:32
[INFO] [stdout]     |
[INFO] [stdout] 149 |     assert_eq!(submem.get(-1), -1);
[INFO] [stdout]     |                                ^^ the trait `Neg` is not implemented for `u16`
[INFO] [stdout]     |
[INFO] [stdout] help: consider specifying an integer type that can be negative
[INFO] [stdout]     |
[INFO] [stdout] 149 |     assert_eq!(submem.get(-1), -1i16);
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `hacksimulators` (test "cpu") due to 4 previous errors
[INFO] running `Command { std: "docker" "inspect" "800db974f1d04b1cb31985f65d7f1dfa4703010632c84bf2b8db65e94e33cc2c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "800db974f1d04b1cb31985f65d7f1dfa4703010632c84bf2b8db65e94e33cc2c", kill_on_drop: false }`
[INFO] [stdout] 800db974f1d04b1cb31985f65d7f1dfa4703010632c84bf2b8db65e94e33cc2c
