[INFO] cloning repository https://github.com/Ryan1729/peak
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Ryan1729/peak" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRyan1729%2Fpeak", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRyan1729%2Fpeak'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 93d3998f0a44285a6301f17b814dbe9af5c2dd3f
[INFO] checking Ryan1729/peak/93d3998f0a44285a6301f17b814dbe9af5c2dd3f against master#507271bc119683008ec719ecee48814e8ac86c65 for pr-146440
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRyan1729%2Fpeak" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-1-tc1/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/Ryan1729/peak
[INFO] finished tweaking git repo https://github.com/Ryan1729/peak
[INFO] tweaked toml for git repo https://github.com/Ryan1729/peak written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Ryan1729/peak on toolchain 507271bc119683008ec719ecee48814e8ac86c65
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+507271bc119683008ec719ecee48814e8ac86c65" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Ryan1729/peak 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" "+507271bc119683008ec719ecee48814e8ac86c65" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr] warning: /workspace/builds/worker-1-tc1/source/run-wasm/Cargo.toml: `default_features` is deprecated in favor of `default-features` and will not work in the 2024 edition
[INFO] [stderr] (in the `devserver_lib` dependency)
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wit-walrus v0.6.0
[INFO] [stderr]   Downloaded wit-schema-version v0.1.0
[INFO] [stderr]   Downloaded wit-writer v0.2.0
[INFO] [stderr]   Downloaded wit-parser v0.2.0
[INFO] [stderr]   Downloaded wasm-bindgen-cli-support v0.2.82
[INFO] [stderr]   Downloaded wasm-bindgen-threads-xform v0.2.82
[INFO] [stderr]   Downloaded wayland-scanner v0.29.4
[INFO] [stderr]   Downloaded wasm-bindgen-wasm-conventions v0.2.82
[INFO] [stderr]   Downloaded wayland-cursor v0.29.4
[INFO] [stderr]   Downloaded wasm-bindgen-wasm-interpreter v0.2.82
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.82
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.82
[INFO] [stderr]   Downloaded wayland-sys v0.29.4
[INFO] [stderr]   Downloaded wit-validator v0.2.1
[INFO] [stderr]   Downloaded wasm-bindgen-multi-value-xform v0.2.82
[INFO] [stderr]   Downloaded id-arena v2.2.1
[INFO] [stderr]   Downloaded wasm-bindgen-externref-xform v0.2.82
[INFO] [stderr]   Downloaded ndk-glue v0.5.2
[INFO] [stderr]   Downloaded walrus-macro v0.19.0
[INFO] [stderr]   Downloaded wasm-bindgen-backend v0.2.82
[INFO] [stderr]   Downloaded devserver_lib v0.4.1
[INFO] [stderr]   Downloaded wit-text v0.8.0
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.82
[INFO] [stderr]   Downloaded wayland-commons v0.29.4
[INFO] [stderr]   Downloaded memmap2 v0.3.1
[INFO] [stderr]   Downloaded softbuffer v0.1.1
[INFO] [stderr]   Downloaded clang-sys v1.3.3
[INFO] [stderr]   Downloaded calloop v0.9.3
[INFO] [stderr]   Downloaded wasmparser v0.59.0
[INFO] [stderr]   Downloaded wayland-client v0.29.4
[INFO] [stderr]   Downloaded wasmparser v0.77.0
[INFO] [stderr]   Downloaded js-sys v0.3.59
[INFO] [stderr]   Downloaded ndk v0.5.0
[INFO] [stderr]   Downloaded wast v21.0.0
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.82
[INFO] [stderr]   Downloaded smithay-client-toolkit v0.15.4
[INFO] [stderr]   Downloaded wayland-protocols v0.29.4
[INFO] [stderr]   Downloaded walrus v0.19.0
[INFO] [stderr]   Downloaded nix v0.22.3
[INFO] [stderr]   Downloaded winit v0.26.1
[INFO] [stderr]   Downloaded rodio v0.15.0
[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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+507271bc119683008ec719ecee48814e8ac86c65" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] bdadc419dc601945684cb6fb267a37eb5937c53a5f72c284201238a084742634
[INFO] running `Command { std: "docker" "start" "-a" "bdadc419dc601945684cb6fb267a37eb5937c53a5f72c284201238a084742634", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "bdadc419dc601945684cb6fb267a37eb5937c53a5f72c284201238a084742634", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bdadc419dc601945684cb6fb267a37eb5937c53a5f72c284201238a084742634", kill_on_drop: false }`
[INFO] [stdout] bdadc419dc601945684cb6fb267a37eb5937c53a5f72c284201238a084742634
[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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+507271bc119683008ec719ecee48814e8ac86c65" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2f8122f011540cdee1fc9a3e3502dcf3c631f46fb79682833cbea495ddfd4986
[INFO] running `Command { std: "docker" "start" "-a" "2f8122f011540cdee1fc9a3e3502dcf3c631f46fb79682833cbea495ddfd4986", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr] warning: /opt/rustwide/workdir/run-wasm/Cargo.toml: `default_features` is deprecated in favor of `default-features` and will not work in the 2024 edition
[INFO] [stderr] (in the `devserver_lib` dependency)
[INFO] [stderr]     Checking cfg-if v1.0.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.40
[INFO] [stderr]    Compiling unicode-ident v1.0.2
[INFO] [stderr]    Compiling quote v1.0.20
[INFO] [stderr]    Compiling libc v0.2.126
[INFO] [stderr]    Compiling pkg-config v0.3.25
[INFO] [stderr]    Compiling autocfg v1.1.0
[INFO] [stderr]    Compiling syn v1.0.98
[INFO] [stderr]    Compiling log v0.4.17
[INFO] [stderr]     Checking xs v0.1.0 (/opt/rustwide/workdir/libs/xs)
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stderr]    Compiling xml-rs v0.8.4
[INFO] [stderr]     Checking leb128 v0.2.5
[INFO] [stderr]    Compiling anyhow v1.0.58
[INFO] [stderr]     Checking smallvec v1.9.0
[INFO] [stderr]     Checking lazy_static v1.4.0
[INFO] [stderr]     Checking libloading v0.7.3
[INFO] [stderr]    Compiling unicode-segmentation v1.9.0
[INFO] [stderr]     Checking once_cell v1.13.0
[INFO] [stderr]     Checking platform_types v0.1.0 (/opt/rustwide/workdir/libs/platform_types)
[INFO] [stderr]    Compiling memchr v2.5.0
[INFO] [stderr]     Checking byteorder v1.4.3
[INFO] [stderr]     Checking id-arena v2.2.1
[INFO] [stderr]     Checking downcast-rs v1.2.0
[INFO] [stderr]     Checking wasmparser v0.77.0
[INFO] [stderr]     Checking dlib v0.5.0
[INFO] [stderr]     Checking scoped-tls v1.0.0
[INFO] [stderr]    Compiling parking_lot_core v0.8.5
[INFO] [stderr]     Checking instant v0.1.12
[INFO] [stderr]     Checking scopeguard v1.1.0
[INFO] [stderr]     Checking fastrand v1.7.0
[INFO] [stderr]     Checking minimal-lexical v0.2.1
[INFO] [stderr]     Checking remove_dir_all v0.5.3
[INFO] [stderr]     Checking models v0.1.0 (/opt/rustwide/workdir/libs/models)
[INFO] [stderr]     Checking wit-schema-version v0.1.0
[INFO] [stderr]    Compiling heck v0.3.3
[INFO] [stderr]    Compiling cpal v0.13.5
[INFO] [stderr]     Checking tinyvec_macros v0.1.0
[INFO] [stderr]     Checking cty v0.2.2
[INFO] [stderr]     Checking tinyvec v1.6.0
[INFO] [stderr]    Compiling wayland-sys v0.29.4
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]    Compiling x11-dl v2.19.1
[INFO] [stderr]    Compiling smithay-client-toolkit v0.15.4
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]    Compiling lock_api v0.4.7
[INFO] [stderr]     Checking ogg v0.8.0
[INFO] [stderr]     Checking raw-window-handle v0.4.3
[INFO] [stderr]     Checking assets v0.1.0 (/opt/rustwide/workdir/libs/assets)
[INFO] [stderr]    Compiling serde v1.0.140
[INFO] [stderr]    Compiling winit v0.26.1
[INFO] [stderr]     Checking wit-parser v0.2.0
[INFO] [stderr]     Checking wit-writer v0.2.0
[INFO] [stderr]     Checking percent-encoding v2.1.0
[INFO] [stderr]    Compiling wayland-scanner v0.29.4
[INFO] [stderr]    Compiling serde_json v1.0.82
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.82
[INFO] [stderr]     Checking gfx v0.1.0 (/opt/rustwide/workdir/libs/gfx)
[INFO] [stderr]     Checking game v0.1.0 (/opt/rustwide/workdir/libs/game)
[INFO] [stderr]     Checking nom v7.1.1
[INFO] [stdout] warning: unused imports: `ARGB`, `Rect`, and `self`
[INFO] [stdout]  --> libs/gfx/src/gfx.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use platform_types::{ARGB, Command, PALETTE, sprite, unscaled, command::{self, Rect}, PaletteIndex, FONT_BASE_Y, FONT_WIDTH};
[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: `FONT_LENGTH`
[INFO] [stdout]  --> libs/assets/src/assets.rs:1:28
[INFO] [stdout]   |
[INFO] [stdout] 1 | use platform_types::{ARGB, FONT_LENGTH, GFX_LENGTH};
[INFO] [stdout]   |                            ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking features v0.1.0 (/opt/rustwide/workdir/libs/features)
[INFO] [stdout] warning: type alias `Inner` is never used
[INFO] [stdout]   --> libs/gfx/src/gfx.rs:42:18
[INFO] [stdout]    |
[INFO] [stdout] 42 |             type Inner = sprite::Inner;
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking wast v21.0.0
[INFO] [stdout] warning: unused imports: `Card` and `gen_card`
[INFO] [stdout]  --> libs/game/src/game.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use models::{Card, gen_card};
[INFO] [stdout]   |              ^^^^  ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking wasmparser v0.59.0
[INFO] [stderr]     Checking safemem v0.3.3
[INFO] [stdout] warning: variant `Switchback` is never constructed
[INFO] [stdout]    --> libs/game/src/game.rs:402:13
[INFO] [stdout]     |
[INFO] [stdout] 401 |         enum GenMode {
[INFO] [stdout]     |              ------- variant in this enum
[INFO] [stdout] 402 |             Switchback(DiagonalOrder),
[INFO] [stdout]     |             ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking ryu v1.0.10
[INFO] [stderr]     Checking spin_sleep v1.1.1
[INFO] [stderr]     Checking itoa v1.0.2
[INFO] [stderr]     Checking base64 v0.9.3
[INFO] [stderr]     Checking rustc-demangle v0.1.21
[INFO] [stderr]     Checking app v0.1.0 (/opt/rustwide/workdir/libs/app)
[INFO] [stderr]     Checking devserver_lib v0.4.1
[INFO] [stderr]     Checking lewton v0.10.2
[INFO] [stderr]     Checking pico-args v0.5.0
[INFO] [stdout] warning: unused imports: `Grid` and `HZ`
[INFO] [stdout]  --> libs/app/src/app.rs:1:44
[INFO] [stdout]   |
[INFO] [stdout] 1 | use game::{CUBE_H, CUBE_W, GRID_W, GRID_H, HZ, HZ_BOTTOM, CameraX, CameraY, Cell, Grid, GridX, GridY, grid_xy_to_i, GridInner, GridXI...
[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: `command` and `sprite`
[INFO] [stdout]  --> libs/app/src/app.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use platform_types::{command, sprite, unscaled, Button, Input, Speaker, SFX};
[INFO] [stdout]   |                      ^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> libs/app/src/app.rs:25:13
[INFO] [stdout]    |
[INFO] [stdout] 25 |         let mut game_state = game::State::new(seed);
[INFO] [stdout]    |             ----^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `seed`
[INFO] [stdout]   --> libs/app/src/app.rs:14:17
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub fn new((seed, logger, error_logger): StateParams) -> Self {
[INFO] [stdout]    |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_seed`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> libs/app/src/app.rs:207:17
[INFO] [stdout]     |
[INFO] [stdout] 207 |             let mut output;
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_index`
[INFO] [stdout]    --> libs/app/src/app.rs:277:5
[INFO] [stdout]     |
[INFO] [stdout] 277 |     max_index: usize
[INFO] [stdout]     |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `grid_x_start`
[INFO] [stdout]    --> libs/app/src/app.rs:398:9
[INFO] [stdout]     |
[INFO] [stdout] 398 |     let grid_x_start: i16 = state.debug[DEBUG_GRID_X_START] as i8 as _;
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_grid_x_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `grid_y_start`
[INFO] [stdout]    --> libs/app/src/app.rs:399:9
[INFO] [stdout]     |
[INFO] [stdout] 399 |     let grid_y_start: i16 = state.debug[DEBUG_GRID_Y_START] as i8 as _;
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_grid_y_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `grid_x_end`
[INFO] [stdout]    --> libs/app/src/app.rs:400:9
[INFO] [stdout]     |
[INFO] [stdout] 400 |     let grid_x_end: i16 = state.debug[DEBUG_GRID_X_END] as i8 as _;
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_grid_x_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `grid_y_end`
[INFO] [stdout]    --> libs/app/src/app.rs:401:9
[INFO] [stdout]     |
[INFO] [stdout] 401 |     let grid_y_end: i16 = state.debug[DEBUG_GRID_Y_END] as i8 as _;
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_grid_y_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `z1`
[INFO] [stdout]    --> libs/app/src/app.rs:434:9
[INFO] [stdout]     |
[INFO] [stdout] 434 |     let z1: i16 = state.debug[DEBUG_Z1] as i8 as _;
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_z1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `z2`
[INFO] [stdout]    --> libs/app/src/app.rs:435:9
[INFO] [stdout]     |
[INFO] [stdout] 435 |     let z2: i16 = state.debug[DEBUG_Z2] as i8 as _;
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_z2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Grid` and `HZ`
[INFO] [stdout]  --> libs/app/src/app.rs:1:44
[INFO] [stdout]   |
[INFO] [stdout] 1 | use game::{CUBE_H, CUBE_W, GRID_W, GRID_H, HZ, HZ_BOTTOM, CameraX, CameraY, Cell, Grid, GridX, GridY, grid_xy_to_i, GridInner, GridXI...
[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: `command` and `sprite`
[INFO] [stdout]  --> libs/app/src/app.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use platform_types::{command, sprite, unscaled, Button, Input, Speaker, SFX};
[INFO] [stdout]   |                      ^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: can't compare `((GridX, GridY), game::Cell)` with `(({integer}, {integer}), game::Cell)`
[INFO] [stdout]    --> libs/app/src/app.rs:343:5
[INFO] [stdout]     |
[INFO] [stdout] 343 | /     assert_eq!(
[INFO] [stdout] 344 | |         acutal,
[INFO] [stdout] 345 | |         &[
[INFO] [stdout] 346 | |             ((0, 0), c!(1)),
[INFO] [stdout] ...   |
[INFO] [stdout] 353 | |     )
[INFO] [stdout]     | |_____^ no implementation for `((GridX, GridY), game::Cell) == (({integer}, {integer}), game::Cell)`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `PartialEq<(({integer}, {integer}), game::Cell)>` is not implemented for `((GridX, GridY), game::Cell)`
[INFO] [stdout]     = help: the following other types implement trait `PartialEq<Rhs>`:
[INFO] [stdout]               ()
[INFO] [stdout]               (A, Z, Y, X, W, V, U, T)
[INFO] [stdout]               (B, A, Z, Y, X, W, V, U, T)
[INFO] [stdout]               (C, B, A, Z, Y, X, W, V, U, T)
[INFO] [stdout]               (D, C, B, A, Z, Y, X, W, V, U, T)
[INFO] [stdout]               (E, D, C, B, A, Z, Y, X, W, V, U, T)
[INFO] [stdout]               (T,)
[INFO] [stdout]               (U, T)
[INFO] [stdout]             and 5 others
[INFO] [stdout]     = note: required for `Vec<((GridX, GridY), game::Cell)>` to implement `PartialEq<&[(({integer}, {integer}), game::Cell); 6]>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `GridX` doesn't implement `Debug`
[INFO] [stdout]    --> libs/app/src/app.rs:343:5
[INFO] [stdout]     |
[INFO] [stdout] 343 | /     assert_eq!(
[INFO] [stdout] 344 | |         acutal,
[INFO] [stdout] 345 | |         &[
[INFO] [stdout] 346 | |             ((0, 0), c!(1)),
[INFO] [stdout] ...   |
[INFO] [stdout] 353 | |     )
[INFO] [stdout]     | |_____^ the trait `Debug` is not implemented for `GridX`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Debug` is implemented for `Vec<T, A>`
[INFO] [stdout]    --> /rustc/507271bc119683008ec719ecee48814e8ac86c65/library/alloc/src/vec/mod.rs:4282:0
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `GridY` doesn't implement `Debug`
[INFO] [stdout]    --> libs/app/src/app.rs:343:5
[INFO] [stdout]     |
[INFO] [stdout] 343 | /     assert_eq!(
[INFO] [stdout] 344 | |         acutal,
[INFO] [stdout] 345 | |         &[
[INFO] [stdout] 346 | |             ((0, 0), c!(1)),
[INFO] [stdout] ...   |
[INFO] [stdout] 353 | |     )
[INFO] [stdout]     | |_____^ the trait `Debug` is not implemented for `GridY`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Debug` is implemented for `Vec<T, A>`
[INFO] [stdout]    --> /rustc/507271bc119683008ec719ecee48814e8ac86c65/library/alloc/src/vec/mod.rs:4282:0
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> libs/app/src/app.rs:25:13
[INFO] [stdout]    |
[INFO] [stdout] 25 |         let mut game_state = game::State::new(seed);
[INFO] [stdout]    |             ----^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `seed`
[INFO] [stdout]   --> libs/app/src/app.rs:14:17
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub fn new((seed, logger, error_logger): StateParams) -> Self {
[INFO] [stdout]    |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_seed`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> libs/app/src/app.rs:207:17
[INFO] [stdout]     |
[INFO] [stdout] 207 |             let mut output;
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_index`
[INFO] [stdout]    --> libs/app/src/app.rs:277:5
[INFO] [stdout]     |
[INFO] [stdout] 277 |     max_index: usize
[INFO] [stdout]     |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `grid_x_start`
[INFO] [stdout]    --> libs/app/src/app.rs:398:9
[INFO] [stdout]     |
[INFO] [stdout] 398 |     let grid_x_start: i16 = state.debug[DEBUG_GRID_X_START] as i8 as _;
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_grid_x_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `grid_y_start`
[INFO] [stdout]    --> libs/app/src/app.rs:399:9
[INFO] [stdout]     |
[INFO] [stdout] 399 |     let grid_y_start: i16 = state.debug[DEBUG_GRID_Y_START] as i8 as _;
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_grid_y_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `grid_x_end`
[INFO] [stdout]    --> libs/app/src/app.rs:400:9
[INFO] [stdout]     |
[INFO] [stdout] 400 |     let grid_x_end: i16 = state.debug[DEBUG_GRID_X_END] as i8 as _;
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_grid_x_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `grid_y_end`
[INFO] [stdout]    --> libs/app/src/app.rs:401:9
[INFO] [stdout]     |
[INFO] [stdout] 401 |     let grid_y_end: i16 = state.debug[DEBUG_GRID_Y_END] as i8 as _;
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_grid_y_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `z1`
[INFO] [stdout]    --> libs/app/src/app.rs:434:9
[INFO] [stdout]     |
[INFO] [stdout] 434 |     let z1: i16 = state.debug[DEBUG_Z1] as i8 as _;
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_z1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `z2`
[INFO] [stdout]    --> libs/app/src/app.rs:435:9
[INFO] [stdout]     |
[INFO] [stdout] 435 |     let z2: i16 = state.debug[DEBUG_Z2] as i8 as _;
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_z2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ARGB`, `Rect`, and `self`
[INFO] [stdout]  --> libs/gfx/src/gfx.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use platform_types::{ARGB, Command, PALETTE, sprite, unscaled, command::{self, Rect}, PaletteIndex, FONT_BASE_Y, FONT_WIDTH};
[INFO] [stdout]   |                      ^^^^                                                ^^^^  ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `app` (lib test) due to 3 previous errors; 12 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused imports: `Card` and `gen_card`
[INFO] [stdout]  --> libs/game/src/game.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use models::{Card, gen_card};
[INFO] [stdout]   |              ^^^^  ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Inner` is never used
[INFO] [stdout]   --> libs/gfx/src/gfx.rs:42:18
[INFO] [stdout]    |
[INFO] [stdout] 42 |             type Inner = sprite::Inner;
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> libs/game/src/game.rs:273:43
[INFO] [stdout]     |
[INFO] [stdout] 273 |     assert_eq!(grid_i_to_xy(grid_xy_to_i((0, 0))), (0, 0));
[INFO] [stdout]     |                                           ^ expected `GridX`, found integer
[INFO] [stdout]     |
[INFO] [stdout] help: try wrapping the expression in `GridX`
[INFO] [stdout]     |
[INFO] [stdout] 273 |     assert_eq!(grid_i_to_xy(grid_xy_to_i((GridX(0), 0))), (0, 0));
[INFO] [stdout]     |                                           ++++++ +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> libs/game/src/game.rs:273:46
[INFO] [stdout]     |
[INFO] [stdout] 273 |     assert_eq!(grid_i_to_xy(grid_xy_to_i((0, 0))), (0, 0));
[INFO] [stdout]     |                                              ^ expected `GridY`, found integer
[INFO] [stdout]     |
[INFO] [stdout] help: try wrapping the expression in `GridY`
[INFO] [stdout]     |
[INFO] [stdout] 273 |     assert_eq!(grid_i_to_xy(grid_xy_to_i((0, GridY(0)))), (0, 0));
[INFO] [stdout]     |                                              ++++++ +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> libs/game/src/game.rs:274:43
[INFO] [stdout]     |
[INFO] [stdout] 274 |     assert_eq!(grid_i_to_xy(grid_xy_to_i((1, 0))), (1, 0));
[INFO] [stdout]     |                                           ^ expected `GridX`, found integer
[INFO] [stdout]     |
[INFO] [stdout] help: try wrapping the expression in `GridX`
[INFO] [stdout]     |
[INFO] [stdout] 274 |     assert_eq!(grid_i_to_xy(grid_xy_to_i((GridX(1), 0))), (1, 0));
[INFO] [stdout]     |                                           ++++++ +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> libs/game/src/game.rs:274:46
[INFO] [stdout]     |
[INFO] [stdout] 274 |     assert_eq!(grid_i_to_xy(grid_xy_to_i((1, 0))), (1, 0));
[INFO] [stdout]     |                                              ^ expected `GridY`, found integer
[INFO] [stdout]     |
[INFO] [stdout] help: try wrapping the expression in `GridY`
[INFO] [stdout]     |
[INFO] [stdout] 274 |     assert_eq!(grid_i_to_xy(grid_xy_to_i((1, GridY(0)))), (1, 0));
[INFO] [stdout]     |                                              ++++++ +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> libs/game/src/game.rs:275:43
[INFO] [stdout]     |
[INFO] [stdout] 275 |     assert_eq!(grid_i_to_xy(grid_xy_to_i((0, 2))), (0, 2));
[INFO] [stdout]     |                                           ^ expected `GridX`, found integer
[INFO] [stdout]     |
[INFO] [stdout] help: try wrapping the expression in `GridX`
[INFO] [stdout]     |
[INFO] [stdout] 275 |     assert_eq!(grid_i_to_xy(grid_xy_to_i((GridX(0), 2))), (0, 2));
[INFO] [stdout]     |                                           ++++++ +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> libs/game/src/game.rs:275:46
[INFO] [stdout]     |
[INFO] [stdout] 275 |     assert_eq!(grid_i_to_xy(grid_xy_to_i((0, 2))), (0, 2));
[INFO] [stdout]     |                                              ^ expected `GridY`, found integer
[INFO] [stdout]     |
[INFO] [stdout] help: try wrapping the expression in `GridY`
[INFO] [stdout]     |
[INFO] [stdout] 275 |     assert_eq!(grid_i_to_xy(grid_xy_to_i((0, GridY(2)))), (0, 2));
[INFO] [stdout]     |                                              ++++++ +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> libs/game/src/game.rs:276:43
[INFO] [stdout]     |
[INFO] [stdout] 276 |     assert_eq!(grid_i_to_xy(grid_xy_to_i((2, 2))), (2, 2));
[INFO] [stdout]     |                                           ^ expected `GridX`, found integer
[INFO] [stdout]     |
[INFO] [stdout] help: try wrapping the expression in `GridX`
[INFO] [stdout]     |
[INFO] [stdout] 276 |     assert_eq!(grid_i_to_xy(grid_xy_to_i((GridX(2), 2))), (2, 2));
[INFO] [stdout]     |                                           ++++++ +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> libs/game/src/game.rs:276:46
[INFO] [stdout]     |
[INFO] [stdout] 276 |     assert_eq!(grid_i_to_xy(grid_xy_to_i((2, 2))), (2, 2));
[INFO] [stdout]     |                                              ^ expected `GridY`, found integer
[INFO] [stdout]     |
[INFO] [stdout] help: try wrapping the expression in `GridY`
[INFO] [stdout]     |
[INFO] [stdout] 276 |     assert_eq!(grid_i_to_xy(grid_xy_to_i((2, GridY(2)))), (2, 2));
[INFO] [stdout]     |                                              ++++++ +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> libs/game/src/game.rs:281:29
[INFO] [stdout]     |
[INFO] [stdout] 281 |     assert_eq!(grid_xy_to_i(grid_i_to_xy(0)), 0);
[INFO] [stdout]     |                ------------ ^^^^^^^^^^^^^^^ expected `(GridX, GridY)`, found `(u8, u8)`
[INFO] [stdout]     |                |
[INFO] [stdout]     |                arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected tuple `(GridX, GridY)`
[INFO] [stdout]                found tuple `(u8, u8)`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> libs/game/src/game.rs:254:8
[INFO] [stdout]     |
[INFO] [stdout] 254 | pub fn grid_xy_to_i((x, y): (GridX, GridY)) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^ ----------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> libs/game/src/game.rs:282:29
[INFO] [stdout]     |
[INFO] [stdout] 282 |     assert_eq!(grid_xy_to_i(grid_i_to_xy(2)), 2);
[INFO] [stdout]     |                ------------ ^^^^^^^^^^^^^^^ expected `(GridX, GridY)`, found `(u8, u8)`
[INFO] [stdout]     |                |
[INFO] [stdout]     |                arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected tuple `(GridX, GridY)`
[INFO] [stdout]                found tuple `(u8, u8)`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> libs/game/src/game.rs:254:8
[INFO] [stdout]     |
[INFO] [stdout] 254 | pub fn grid_xy_to_i((x, y): (GridX, GridY)) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^ ----------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> libs/game/src/game.rs:283:29
[INFO] [stdout]     |
[INFO] [stdout] 283 |     assert_eq!(grid_xy_to_i(grid_i_to_xy(3 * GRID_W as usize)), 3 * GRID_W as usize);
[INFO] [stdout]     |                ------------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `(GridX, GridY)`, found `(u8, u8)`
[INFO] [stdout]     |                |
[INFO] [stdout]     |                arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected tuple `(GridX, GridY)`
[INFO] [stdout]                found tuple `(u8, u8)`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> libs/game/src/game.rs:254:8
[INFO] [stdout]     |
[INFO] [stdout] 254 | pub fn grid_xy_to_i((x, y): (GridX, GridY)) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^ ----------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> libs/game/src/game.rs:284:29
[INFO] [stdout]     |
[INFO] [stdout] 284 |     assert_eq!(grid_xy_to_i(grid_i_to_xy(4 * GRID_W as usize + 4)), 4 * GRID_W as usize + 4);
[INFO] [stdout]     |                ------------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `(GridX, GridY)`, found `(u8, u8)`
[INFO] [stdout]     |                |
[INFO] [stdout]     |                arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected tuple `(GridX, GridY)`
[INFO] [stdout]                found tuple `(u8, u8)`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> libs/game/src/game.rs:254:8
[INFO] [stdout]     |
[INFO] [stdout] 254 | pub fn grid_xy_to_i((x, y): (GridX, GridY)) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^ ----------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `game` (lib test) due to 12 previous errors; 1 warning emitted
[INFO] running `Command { std: "docker" "inspect" "2f8122f011540cdee1fc9a3e3502dcf3c631f46fb79682833cbea495ddfd4986", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2f8122f011540cdee1fc9a3e3502dcf3c631f46fb79682833cbea495ddfd4986", kill_on_drop: false }`
[INFO] [stdout] 2f8122f011540cdee1fc9a3e3502dcf3c631f46fb79682833cbea495ddfd4986
