[INFO] cloning repository https://github.com/CarlEkerot/gameboy
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/CarlEkerot/gameboy" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCarlEkerot%2Fgameboy", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCarlEkerot%2Fgameboy'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 9ecfe6624e7199257237b71d47ea9811f0b8fd9d
[INFO] checking CarlEkerot/gameboy against master#46424fb5054f211ec836c5c03159f92e46bb35ac for pr-139042
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCarlEkerot%2Fgameboy" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/CarlEkerot/gameboy on toolchain 46424fb5054f211ec836c5c03159f92e46bb35ac
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+46424fb5054f211ec836c5c03159f92e46bb35ac" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/CarlEkerot/gameboy
[INFO] finished tweaking git repo https://github.com/CarlEkerot/gameboy
[INFO] tweaked toml for git repo https://github.com/CarlEkerot/gameboy written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/CarlEkerot/gameboy 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" "+46424fb5054f211ec836c5c03159f92e46bb35ac" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rustc-demangle v0.1.7
[INFO] [stderr]   Downloaded c_vec v1.3.0
[INFO] [stderr]   Downloaded backtrace v0.3.5
[INFO] [stderr]   Downloaded cc v1.0.9
[INFO] [stderr]   Downloaded error-chain v0.11.0
[INFO] [stderr]   Downloaded backtrace-sys v0.1.16
[INFO] [stderr]   Downloaded sdl2 v0.31.0
[INFO] [stderr]   Downloaded sdl2-sys v0.31.0
[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:4b26683ee3c49f365255c425c23003cbf4366de097804722c29c5bbbee3624d2" "/opt/rustwide/cargo-home/bin/cargo" "+46424fb5054f211ec836c5c03159f92e46bb35ac" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 66e9844eb1e5ceb2a4f132147de18d5fc1644e27813906cb8b4743808a4ab20a
[INFO] running `Command { std: "docker" "start" "-a" "66e9844eb1e5ceb2a4f132147de18d5fc1644e27813906cb8b4743808a4ab20a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "66e9844eb1e5ceb2a4f132147de18d5fc1644e27813906cb8b4743808a4ab20a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "66e9844eb1e5ceb2a4f132147de18d5fc1644e27813906cb8b4743808a4ab20a", kill_on_drop: false }`
[INFO] [stdout] 66e9844eb1e5ceb2a4f132147de18d5fc1644e27813906cb8b4743808a4ab20a
[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:4b26683ee3c49f365255c425c23003cbf4366de097804722c29c5bbbee3624d2" "/opt/rustwide/cargo-home/bin/cargo" "+46424fb5054f211ec836c5c03159f92e46bb35ac" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 888df7b074543e352d50cccdd4a84571c847423f5074d71361f816bae8d9a24b
[INFO] running `Command { std: "docker" "start" "-a" "888df7b074543e352d50cccdd4a84571c847423f5074d71361f816bae8d9a24b", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]     Checking libc v0.2.40
[INFO] [stderr]    Compiling cc v1.0.9
[INFO] [stderr]    Compiling cfg-if v0.1.2
[INFO] [stderr]     Checking num-traits v0.2.2
[INFO] [stderr]     Checking rustc-demangle v0.1.7
[INFO] [stderr]     Checking bitflags v0.7.0
[INFO] [stderr]     Checking c_vec v1.3.0
[INFO] [stderr]     Checking lazy_static v0.2.11
[INFO] [stderr]    Compiling sdl2-sys v0.31.0
[INFO] [stderr]     Checking num-integer v0.1.36
[INFO] [stderr]     Checking num-iter v0.1.35
[INFO] [stderr]     Checking rand v0.4.2
[INFO] [stderr]    Compiling backtrace-sys v0.1.16
[INFO] [stderr]     Checking num v0.1.42
[INFO] [stderr]     Checking rand v0.3.22
[INFO] [stderr]     Checking sdl2 v0.31.0
[INFO] [stderr]     Checking backtrace v0.3.5
[INFO] [stderr]     Checking error-chain v0.11.0
[INFO] [stderr]     Checking gameboy v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `cpu::CPU`
[INFO] [stdout]   --> src/timer.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |     use cpu::CPU;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `test_helpers::test_cpu`
[INFO] [stdout]   --> src/timer.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     use test_helpers::test_cpu;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/lcd.rs:80:33
[INFO] [stdout]    |
[INFO] [stdout] 80 |         let new_ly = (ly + 1) % LY_MAX;
[INFO] [stdout]    |                                 ^^^^^^ expected `u8`, found `usize`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: cannot calculate the remainder of `u8` divided by `usize`
[INFO] [stdout]   --> src/lcd.rs:80:31
[INFO] [stdout]    |
[INFO] [stdout] 80 |         let new_ly = (ly + 1) % LY_MAX;
[INFO] [stdout]    |                               ^ no implementation for `u8 % usize`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `Rem<usize>` is not implemented for `u8`
[INFO] [stdout]    = help: the following other types implement trait `Rem<Rhs>`:
[INFO] [stdout]              `&u8` implements `Rem<u8>`
[INFO] [stdout]              `&u8` implements `Rem`
[INFO] [stdout]              `u8` implements `Rem<&u8>`
[INFO] [stdout]              `u8` implements `Rem<NonZero<u8>>`
[INFO] [stdout]              `u8` implements `Rem`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/operations/sla.rs:31:21
[INFO] [stdout]    |
[INFO] [stdout] 31 |                 let mut res = val << 1;
[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: unused variable: `ly`
[INFO] [stdout]   --> src/lcd.rs:95:17
[INFO] [stdout]    |
[INFO] [stdout] 95 |             let ly = self.increase_line_count();
[INFO] [stdout]    |                 ^^ help: if this is intentional, prefix it with an underscore: `_ly`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: `4_u8..=u8::MAX` not covered
[INFO] [stdout]    --> src/lcd.rs:122:15
[INFO] [stdout]     |
[INFO] [stdout] 122 |         match self.state {
[INFO] [stdout]     |               ^^^^^^^^^^ pattern `4_u8..=u8::MAX` not covered
[INFO] [stdout] 123 |             LCD_MODE0_FLAG => self.update_mode0(),
[INFO] [stdout]     |             -------------- this pattern doesn't introduce a new catch-all binding, but rather pattern matches against the value of constant `LCD_MODE0_FLAG`
[INFO] [stdout] 124 |             LCD_MODE1_FLAG => self.update_mode1(),
[INFO] [stdout]     |             -------------- this pattern doesn't introduce a new catch-all binding, but rather pattern matches against the value of constant `LCD_MODE1_FLAG`
[INFO] [stdout] 125 |             LCD_MODE2_FLAG => self.update_mode2(),
[INFO] [stdout]     |             -------------- this pattern doesn't introduce a new catch-all binding, but rather pattern matches against the value of constant `LCD_MODE2_FLAG`
[INFO] [stdout] 126 |             LCD_MODE3_FLAG => self.update_mode3(),
[INFO] [stdout]     |             -------------- this pattern doesn't introduce a new catch-all binding, but rather pattern matches against the value of constant `LCD_MODE3_FLAG`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the matched value is of type `u8`
[INFO] [stdout] note: constant `LCD_MODE0_FLAG` defined here
[INFO] [stdout]    --> src/constants.rs:115:1
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub const LCD_MODE0_FLAG: u8 = 0b00;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: constant `LCD_MODE1_FLAG` defined here
[INFO] [stdout]    --> src/constants.rs:116:1
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub const LCD_MODE1_FLAG: u8 = 0b01;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: constant `LCD_MODE2_FLAG` defined here
[INFO] [stdout]    --> src/constants.rs:117:1
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub const LCD_MODE2_FLAG: u8 = 0b10;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: constant `LCD_MODE3_FLAG` defined here
[INFO] [stdout]    --> src/constants.rs:118:1
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub const LCD_MODE3_FLAG: u8 = 0b11;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: if you meant to introduce a binding, use a different name
[INFO] [stdout]     |
[INFO] [stdout] 123 |             LCD_MODE0_FLAG_var => self.update_mode0(),
[INFO] [stdout]     |                           ++++
[INFO] [stdout] help: if you meant to introduce a binding, use a different name
[INFO] [stdout]     |
[INFO] [stdout] 124 |             LCD_MODE1_FLAG_var => self.update_mode1(),
[INFO] [stdout]     |                           ++++
[INFO] [stdout] help: if you meant to introduce a binding, use a different name
[INFO] [stdout]     |
[INFO] [stdout] 125 |             LCD_MODE2_FLAG_var => self.update_mode2(),
[INFO] [stdout]     |                           ++++
[INFO] [stdout] help: if you meant to introduce a binding, use a different name
[INFO] [stdout]     |
[INFO] [stdout] 126 |             LCD_MODE3_FLAG_var => self.update_mode3(),
[INFO] [stdout]     |                           ++++
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 126 ~             LCD_MODE3_FLAG => self.update_mode3(),
[INFO] [stdout] 127 ~             4_u8..=u8::MAX => todo!(),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0004, E0277, E0308.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0004`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `gameboy` (lib) due to 3 previous errors; 2 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/lcd.rs:80:33
[INFO] [stdout]    |
[INFO] [stdout] 80 |         let new_ly = (ly + 1) % LY_MAX;
[INFO] [stdout]    |                                 ^^^^^^ expected `u8`, found `usize`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: cannot calculate the remainder of `u8` divided by `usize`
[INFO] [stdout]   --> src/lcd.rs:80:31
[INFO] [stdout]    |
[INFO] [stdout] 80 |         let new_ly = (ly + 1) % LY_MAX;
[INFO] [stdout]    |                               ^ no implementation for `u8 % usize`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `Rem<usize>` is not implemented for `u8`
[INFO] [stdout]    = help: the following other types implement trait `Rem<Rhs>`:
[INFO] [stdout]              `&u8` implements `Rem<u8>`
[INFO] [stdout]              `&u8` implements `Rem`
[INFO] [stdout]              `u8` implements `Rem<&u8>`
[INFO] [stdout]              `u8` implements `Rem<NonZero<u8>>`
[INFO] [stdout]              `u8` implements `Rem`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/operations/sla.rs:31:21
[INFO] [stdout]    |
[INFO] [stdout] 31 |                 let mut res = val << 1;
[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: unused variable: `ly`
[INFO] [stdout]   --> src/lcd.rs:95:17
[INFO] [stdout]    |
[INFO] [stdout] 95 |             let ly = self.increase_line_count();
[INFO] [stdout]    |                 ^^ help: if this is intentional, prefix it with an underscore: `_ly`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: `4_u8..=u8::MAX` not covered
[INFO] [stdout]    --> src/lcd.rs:122:15
[INFO] [stdout]     |
[INFO] [stdout] 122 |         match self.state {
[INFO] [stdout]     |               ^^^^^^^^^^ pattern `4_u8..=u8::MAX` not covered
[INFO] [stdout] 123 |             LCD_MODE0_FLAG => self.update_mode0(),
[INFO] [stdout]     |             -------------- this pattern doesn't introduce a new catch-all binding, but rather pattern matches against the value of constant `LCD_MODE0_FLAG`
[INFO] [stdout] 124 |             LCD_MODE1_FLAG => self.update_mode1(),
[INFO] [stdout]     |             -------------- this pattern doesn't introduce a new catch-all binding, but rather pattern matches against the value of constant `LCD_MODE1_FLAG`
[INFO] [stdout] 125 |             LCD_MODE2_FLAG => self.update_mode2(),
[INFO] [stdout]     |             -------------- this pattern doesn't introduce a new catch-all binding, but rather pattern matches against the value of constant `LCD_MODE2_FLAG`
[INFO] [stdout] 126 |             LCD_MODE3_FLAG => self.update_mode3(),
[INFO] [stdout]     |             -------------- this pattern doesn't introduce a new catch-all binding, but rather pattern matches against the value of constant `LCD_MODE3_FLAG`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the matched value is of type `u8`
[INFO] [stdout] note: constant `LCD_MODE0_FLAG` defined here
[INFO] [stdout]    --> src/constants.rs:115:1
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub const LCD_MODE0_FLAG: u8 = 0b00;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: constant `LCD_MODE1_FLAG` defined here
[INFO] [stdout]    --> src/constants.rs:116:1
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub const LCD_MODE1_FLAG: u8 = 0b01;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: constant `LCD_MODE2_FLAG` defined here
[INFO] [stdout]    --> src/constants.rs:117:1
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub const LCD_MODE2_FLAG: u8 = 0b10;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: constant `LCD_MODE3_FLAG` defined here
[INFO] [stdout]    --> src/constants.rs:118:1
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub const LCD_MODE3_FLAG: u8 = 0b11;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: if you meant to introduce a binding, use a different name
[INFO] [stdout]     |
[INFO] [stdout] 123 |             LCD_MODE0_FLAG_var => self.update_mode0(),
[INFO] [stdout]     |                           ++++
[INFO] [stdout] help: if you meant to introduce a binding, use a different name
[INFO] [stdout]     |
[INFO] [stdout] 124 |             LCD_MODE1_FLAG_var => self.update_mode1(),
[INFO] [stdout]     |                           ++++
[INFO] [stdout] help: if you meant to introduce a binding, use a different name
[INFO] [stdout]     |
[INFO] [stdout] 125 |             LCD_MODE2_FLAG_var => self.update_mode2(),
[INFO] [stdout]     |                           ++++
[INFO] [stdout] help: if you meant to introduce a binding, use a different name
[INFO] [stdout]     |
[INFO] [stdout] 126 |             LCD_MODE3_FLAG_var => self.update_mode3(),
[INFO] [stdout]     |                           ++++
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 126 ~             LCD_MODE3_FLAG => self.update_mode3(),
[INFO] [stdout] 127 ~             4_u8..=u8::MAX => todo!(),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0004, E0277, E0308.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0004`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `gameboy` (lib test) due to 3 previous errors; 4 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "888df7b074543e352d50cccdd4a84571c847423f5074d71361f816bae8d9a24b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "888df7b074543e352d50cccdd4a84571c847423f5074d71361f816bae8d9a24b", kill_on_drop: false }`
[INFO] [stdout] 888df7b074543e352d50cccdd4a84571c847423f5074d71361f816bae8d9a24b
