[INFO] cloning repository https://github.com/LeeLaffan/ShapeInvaders
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/LeeLaffan/ShapeInvaders" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLeeLaffan%2FShapeInvaders", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLeeLaffan%2FShapeInvaders'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c498cc79e2d7f6ffc9a3818d87cdf32bf47eedc0
[INFO] checking LeeLaffan/ShapeInvaders against master#507271bc119683008ec719ecee48814e8ac86c65 for pr-146440
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLeeLaffan%2FShapeInvaders" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-0-tc1/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/LeeLaffan/ShapeInvaders
[INFO] finished tweaking git repo https://github.com/LeeLaffan/ShapeInvaders
[INFO] tweaked toml for git repo https://github.com/LeeLaffan/ShapeInvaders written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/LeeLaffan/ShapeInvaders 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/LeeLaffan/ShapeInvaders 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]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded sdl3-sys v0.5.11+SDL3-3.2.28
[INFO] [stderr]   Downloaded sdl3 v0.16.2
[INFO] [stderr]   Downloaded libc v0.2.178
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 19d8c76e29e2a94b8806224b0470cef9224a3be4ad334d594f39f98ef167d4c8
[INFO] running `Command { std: "docker" "start" "-a" "19d8c76e29e2a94b8806224b0470cef9224a3be4ad334d594f39f98ef167d4c8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "19d8c76e29e2a94b8806224b0470cef9224a3be4ad334d594f39f98ef167d4c8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "19d8c76e29e2a94b8806224b0470cef9224a3be4ad334d594f39f98ef167d4c8", kill_on_drop: false }`
[INFO] [stdout] 19d8c76e29e2a94b8806224b0470cef9224a3be4ad334d594f39f98ef167d4c8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 3a38d1d5fb805d794077577157cdaa6e5553d995e72b1b0f3328d1e135fa24c9
[INFO] running `Command { std: "docker" "start" "-a" "3a38d1d5fb805d794077577157cdaa6e5553d995e72b1b0f3328d1e135fa24c9", kill_on_drop: false }`
[INFO] [stderr]    Compiling sdl3-sys v0.5.11+SDL3-3.2.28
[INFO] [stderr]    Compiling libc v0.2.178
[INFO] [stderr]    Compiling sdl3 v0.16.2
[INFO] [stderr]     Checking bitflags v2.10.0
[INFO] [stderr]     Checking lazy_static v1.5.0
[INFO] [stderr]     Checking shape-invaders v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `FPointExt` and `self`
[INFO] [stdout]  --> src/keyboard.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 |     AppCtx, FPointExt, GameState,
[INFO] [stdout]   |             ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7 |         player::{self, MovementMode, Player},
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `normalise` is never used
[INFO] [stdout]   --> src/main.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | trait FPointExt {
[INFO] [stdout]    |       --------- method in this trait
[INFO] [stdout] 34 |     fn normalise(&mut self);
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x`, `y`, and `z` are never read
[INFO] [stdout]   --> src/main.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct Vec3 {
[INFO] [stdout]    |            ---- fields in this struct
[INFO] [stdout] 58 |     x: f32,
[INFO] [stdout]    |     ^
[INFO] [stdout] 59 |     y: f32,
[INFO] [stdout]    |     ^
[INFO] [stdout] 60 |     z: f32,
[INFO] [stdout]    |     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `gamepad_subsystem` and `gamepad` are never read
[INFO] [stdout]   --> src/main.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 63 | struct AppCtx {
[INFO] [stdout]    |        ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 66 |     gamepad_subsystem: GamepadSubsystem,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 67 |     gamepad: Option<Gamepad>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `WavePause`, `WaveLose`, and `WaveWin` are never constructed
[INFO] [stdout]   --> src/main.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 75 | enum GameState {
[INFO] [stdout]    |      --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 78 |     WavePause,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 79 |     WaveLose,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 80 |     WaveWin,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `formation_id` is never read
[INFO] [stdout]  --> src/entities/enemy.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Enemy {
[INFO] [stdout]   |            ----- field in this struct
[INFO] [stdout] 9 |     formation_id: usize,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `BLUE` is never used
[INFO] [stdout]   --> src/entities/player.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub static BLUE: Color = Color::RGB(0, 0, 255);
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `max_speed` is never read
[INFO] [stdout]   --> src/entities/player.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct Moveable {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub max_speed: f32,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Cardinal` is never constructed
[INFO] [stdout]   --> src/entities/player.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub enum MovementMode {
[INFO] [stdout]    |          ------------ variant in this enum
[INFO] [stdout] 47 |     Cardinal,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MovementMode` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scale_centroid` is never used
[INFO] [stdout]    --> src/entities/player.rs:185:4
[INFO] [stdout]     |
[INFO] [stdout] 185 | fn scale_centroid(centroid: &Point, point: &Point, scale: i32) -> Point {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FPointExt` and `self`
[INFO] [stdout]  --> src/keyboard.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 |     AppCtx, FPointExt, GameState,
[INFO] [stdout]   |             ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7 |         player::{self, MovementMode, Player},
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `normalise` is never used
[INFO] [stdout]   --> src/main.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | trait FPointExt {
[INFO] [stdout]    |       --------- method in this trait
[INFO] [stdout] 34 |     fn normalise(&mut self);
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x`, `y`, and `z` are never read
[INFO] [stdout]   --> src/main.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct Vec3 {
[INFO] [stdout]    |            ---- fields in this struct
[INFO] [stdout] 58 |     x: f32,
[INFO] [stdout]    |     ^
[INFO] [stdout] 59 |     y: f32,
[INFO] [stdout]    |     ^
[INFO] [stdout] 60 |     z: f32,
[INFO] [stdout]    |     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `gamepad_subsystem` and `gamepad` are never read
[INFO] [stdout]   --> src/main.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 63 | struct AppCtx {
[INFO] [stdout]    |        ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 66 |     gamepad_subsystem: GamepadSubsystem,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 67 |     gamepad: Option<Gamepad>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `WavePause`, `WaveLose`, and `WaveWin` are never constructed
[INFO] [stdout]   --> src/main.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 75 | enum GameState {
[INFO] [stdout]    |      --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 78 |     WavePause,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 79 |     WaveLose,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 80 |     WaveWin,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `formation_id` is never read
[INFO] [stdout]  --> src/entities/enemy.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Enemy {
[INFO] [stdout]   |            ----- field in this struct
[INFO] [stdout] 9 |     formation_id: usize,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `BLUE` is never used
[INFO] [stdout]   --> src/entities/player.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub static BLUE: Color = Color::RGB(0, 0, 255);
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `max_speed` is never read
[INFO] [stdout]   --> src/entities/player.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct Moveable {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub max_speed: f32,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Cardinal` is never constructed
[INFO] [stdout]   --> src/entities/player.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub enum MovementMode {
[INFO] [stdout]    |          ------------ variant in this enum
[INFO] [stdout] 47 |     Cardinal,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MovementMode` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scale_centroid` is never used
[INFO] [stdout]    --> src/entities/player.rs:185:4
[INFO] [stdout]     |
[INFO] [stdout] 185 | fn scale_centroid(centroid: &Point, point: &Point, scale: i32) -> Point {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.29s
[INFO] running `Command { std: "docker" "inspect" "3a38d1d5fb805d794077577157cdaa6e5553d995e72b1b0f3328d1e135fa24c9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3a38d1d5fb805d794077577157cdaa6e5553d995e72b1b0f3328d1e135fa24c9", kill_on_drop: false }`
[INFO] [stdout] 3a38d1d5fb805d794077577157cdaa6e5553d995e72b1b0f3328d1e135fa24c9
