[INFO] cloning repository https://github.com/blackgolyb/tictactoe-api [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/blackgolyb/tictactoe-api" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fblackgolyb%2Ftictactoe-api", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fblackgolyb%2Ftictactoe-api'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 24d747f476e12d84b210666c29a66cc23814a114 [INFO] testing blackgolyb/tictactoe-api against beta-2026-04-21 for beta-1.96-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fblackgolyb%2Ftictactoe-api" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/blackgolyb/tictactoe-api [INFO] finished tweaking git repo https://github.com/blackgolyb/tictactoe-api [INFO] tweaked toml for git repo https://github.com/blackgolyb/tictactoe-api written to /workspace/builds/worker-5-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/blackgolyb/tictactoe-api on toolchain beta-2026-04-21 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/blackgolyb/tictactoe-api 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" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] f6694a4eb43aabc0911f9ea79912c93000459870b13a1af1fa2e401f137e02f1 [INFO] running `Command { std: "docker" "start" "-a" "f6694a4eb43aabc0911f9ea79912c93000459870b13a1af1fa2e401f137e02f1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "f6694a4eb43aabc0911f9ea79912c93000459870b13a1af1fa2e401f137e02f1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f6694a4eb43aabc0911f9ea79912c93000459870b13a1af1fa2e401f137e02f1", kill_on_drop: false }` [INFO] [stdout] f6694a4eb43aabc0911f9ea79912c93000459870b13a1af1fa2e401f137e02f1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 94c46958e8c1ec856416d37c9e8919081efcc85f3e44387e8ce1ae68c2b9d1e2 [INFO] running `Command { std: "docker" "start" "-a" "94c46958e8c1ec856416d37c9e8919081efcc85f3e44387e8ce1ae68c2b9d1e2", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.155 [INFO] [stderr] Compiling autocfg v1.3.0 [INFO] [stderr] Compiling proc-macro2 v1.0.103 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Compiling smallvec v1.13.2 [INFO] [stderr] Compiling log v0.4.22 [INFO] [stderr] Compiling bytes v1.6.1 [INFO] [stderr] Compiling ahash v0.8.11 [INFO] [stderr] Compiling memchr v2.7.4 [INFO] [stderr] Compiling zerocopy v0.7.35 [INFO] [stderr] Compiling itoa v1.0.11 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling paste v1.0.15 [INFO] [stderr] Compiling regex-syntax v0.8.4 [INFO] [stderr] Compiling zstd-safe v7.2.0 [INFO] [stderr] Compiling bitflags v2.6.0 [INFO] [stderr] Compiling local-waker v0.1.4 [INFO] [stderr] Compiling tracing v0.1.40 [INFO] [stderr] Compiling alloc-no-stdlib v2.0.4 [INFO] [stderr] Compiling tinyvec v1.8.0 [INFO] [stderr] Compiling num-conv v0.1.0 [INFO] [stderr] Compiling time-core v0.1.2 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Compiling aho-corasick v1.1.3 [INFO] [stderr] Compiling http v0.2.12 [INFO] [stderr] Compiling alloc-stdlib v0.2.2 [INFO] [stderr] Compiling vcpkg v0.2.15 [INFO] [stderr] Compiling httparse v1.9.4 [INFO] [stderr] Compiling equivalent v1.0.1 [INFO] [stderr] Compiling tracing-core v0.1.32 [INFO] [stderr] Compiling frunk_core v0.4.4 [INFO] [stderr] Compiling futures-util v0.3.30 [INFO] [stderr] Compiling crypto-common v0.1.6 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling regex-lite v0.1.6 [INFO] [stderr] Compiling powerfmt v0.2.0 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling actix-service v2.0.2 [INFO] [stderr] Compiling miniz_oxide v0.7.4 [INFO] [stderr] Compiling deranged v0.3.11 [INFO] [stderr] Compiling brotli-decompressor v4.0.1 [INFO] [stderr] Compiling quote v1.0.36 [INFO] [stderr] Compiling jobserver v0.1.32 [INFO] [stderr] Compiling syn v2.0.108 [INFO] [stderr] Compiling getrandom v0.2.15 [INFO] [stderr] Compiling cc v1.1.7 [INFO] [stderr] Compiling mio v1.0.1 [INFO] [stderr] Compiling signal-hook-registry v1.4.2 [INFO] [stderr] Compiling socket2 v0.5.7 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling parking_lot v0.12.3 [INFO] [stderr] Compiling regex-automata v0.4.7 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling tokio v1.39.2 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling unicode-normalization v0.1.23 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling bytestring v1.3.1 [INFO] [stderr] Compiling time-macros v0.2.18 [INFO] [stderr] Compiling actix-utils v3.0.1 [INFO] [stderr] Compiling cookie v0.16.2 [INFO] [stderr] Compiling crc32fast v1.4.2 [INFO] [stderr] Compiling convert_case v0.4.0 [INFO] [stderr] Compiling indexmap v2.2.6 [INFO] [stderr] Compiling serde_json v1.0.121 [INFO] [stderr] Compiling ryu v1.0.18 [INFO] [stderr] Compiling unicode-segmentation v1.12.0 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling sha1 v0.10.6 [INFO] [stderr] Compiling idna v0.5.0 [INFO] [stderr] Compiling flate2 v1.0.30 [INFO] [stderr] Compiling actix-router v0.5.3 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling convert_case v0.10.0 [INFO] [stderr] Compiling brotli v6.0.0 [INFO] [stderr] Compiling mio v0.8.11 [INFO] [stderr] Compiling local-channel v0.1.5 [INFO] [stderr] Compiling encoding_rs v0.8.34 [INFO] [stderr] Compiling language-tags v0.3.2 [INFO] [stderr] Compiling utf8parse v0.2.2 [INFO] [stderr] Compiling zstd-sys v2.0.12+zstd.1.5.6 [INFO] [stderr] Compiling libsqlite3-sys v0.30.1 [INFO] [stderr] Compiling httpdate v1.0.3 [INFO] [stderr] Compiling unicode-xid v0.2.6 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling frunk_proc_macro_helpers v0.1.4 [INFO] [stderr] Compiling anstyle-parse v0.2.5 [INFO] [stderr] Compiling url v2.5.2 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling hashlink v0.9.1 [INFO] [stderr] Compiling itertools v0.9.0 [INFO] [stderr] Compiling scheduled-thread-pool v0.2.7 [INFO] [stderr] Compiling anstyle-query v1.1.1 [INFO] [stderr] Compiling fallible-iterator v0.3.0 [INFO] [stderr] Compiling time v0.3.36 [INFO] [stderr] Compiling fallible-streaming-iterator v0.1.9 [INFO] [stderr] Compiling anstyle v1.0.8 [INFO] [stderr] Compiling colorchoice v1.0.2 [INFO] [stderr] Compiling regex v1.10.5 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.1 [INFO] [stderr] Compiling uuid v1.20.0 [INFO] [stderr] Compiling anstream v0.6.15 [INFO] [stderr] Compiling r2d2 v0.8.10 [INFO] [stderr] Compiling env_filter v0.1.2 [INFO] [stderr] Compiling humantime v2.1.0 [INFO] [stderr] Compiling qstring v0.7.2 [INFO] [stderr] Compiling env_logger v0.11.5 [INFO] [stderr] Compiling dotenv v0.15.0 [INFO] [stderr] Compiling derive_more v0.99.18 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling actix-web-codegen v4.3.0 [INFO] [stderr] Compiling frunk_derives v0.4.4 [INFO] [stderr] Compiling frunk_proc_macros v0.1.4 [INFO] [stderr] Compiling actix-macros v0.2.4 [INFO] [stderr] Compiling frunk v0.4.4 [INFO] [stderr] Compiling tokio-util v0.7.11 [INFO] [stderr] Compiling actix-rt v2.10.0 [INFO] [stderr] Compiling derive_more v2.1.1 [INFO] [stderr] Compiling actix-server v2.4.0 [INFO] [stderr] Compiling actix-codec v0.5.2 [INFO] [stderr] Compiling h2 v0.3.26 [INFO] [stderr] Compiling teloc_macros v0.2.0 [INFO] [stderr] Compiling teloc v0.2.0 [INFO] [stderr] Compiling zstd v0.13.2 [INFO] [stderr] Compiling actix-http v3.8.0 [INFO] [stderr] Compiling rusqlite v0.32.1 [INFO] [stderr] Compiling r2d2_sqlite v0.25.0 [INFO] [stderr] Compiling actix-web v4.8.0 [INFO] [stderr] Compiling actix-cors v0.7.1 [INFO] [stderr] Compiling tic_tac_toe_api v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `GameError` and `Game` [INFO] [stdout] --> src/game/domain/tests.rs:1:39 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::game::domain::aggregates::{Game, GameError}; [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: `crate::game::domain::value_objects::SegmentDirection` [INFO] [stdout] --> src/game/domain/tests.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::game::domain::value_objects::SegmentDirection; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `FieldDto`, `RedirectQuery`, and `RoomDto` [INFO] [stdout] --> src/game/presentation/api/handlers.rs:20:16 [INFO] [stdout] | [INFO] [stdout] 20 | dtos::{FieldDto, RedirectQuery, RoomDto}, [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `end_x` [INFO] [stdout] --> src/game/domain/value_objects.rs:115:14 [INFO] [stdout] | [INFO] [stdout] 115 | let (end_x, end_y) = self.end; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_end_x` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `end_y` [INFO] [stdout] --> src/game/domain/value_objects.rs:115:21 [INFO] [stdout] | [INFO] [stdout] 115 | let (end_x, end_y) = self.end; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_end_y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `check_if_field_is_available` is never used [INFO] [stdout] --> src/game/domain/aggregates.rs:117:8 [INFO] [stdout] | [INFO] [stdout] 30 | impl Game { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 117 | fn check_if_field_is_available(&self, x: usize, y: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `X` is never used [INFO] [stdout] --> src/game/domain/tests.rs:5:7 [INFO] [stdout] | [INFO] [stdout] 5 | const X: Player = Player::X; [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `O` is never used [INFO] [stdout] --> src/game/domain/tests.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | const O: Player = Player::O; [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FE` is never used [INFO] [stdout] --> src/game/domain/tests.rs:7:7 [INFO] [stdout] | [INFO] [stdout] 7 | const FE: FieldState = FieldState::Empty; [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FX` is never used [INFO] [stdout] --> src/game/domain/tests.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const FX: FieldState = FieldState::Occupied(X); [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FO` is never used [INFO] [stdout] --> src/game/domain/tests.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const FO: FieldState = FieldState::Occupied(O); [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `load` is never used [INFO] [stdout] --> src/game/domain/tests.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 11 | impl GameMap { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] 12 | fn load(data: Vec>) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_game_rules` is never used [INFO] [stdout] --> src/game/domain/tests.rs:17:4 [INFO] [stdout] | [INFO] [stdout] 17 | fn default_game_rules() -> GameRules { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `InvalidCoordinates` is never constructed [INFO] [stdout] --> src/game/domain/value_objects.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | struct InvalidCoordinates { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `establish_connection_direct` is never used [INFO] [stdout] --> src/game/infrastructure/db/connection.rs:33:8 [INFO] [stdout] | [INFO] [stdout] 33 | pub fn establish_connection_direct(db_path: String) -> Connection { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 01s [INFO] running `Command { std: "docker" "inspect" "94c46958e8c1ec856416d37c9e8919081efcc85f3e44387e8ce1ae68c2b9d1e2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "94c46958e8c1ec856416d37c9e8919081efcc85f3e44387e8ce1ae68c2b9d1e2", kill_on_drop: false }` [INFO] [stdout] 94c46958e8c1ec856416d37c9e8919081efcc85f3e44387e8ce1ae68c2b9d1e2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 2d935f710dda1e1a9982f5d1800b909df1ff355c00f8b468df13c56b1294dc2b [INFO] running `Command { std: "docker" "start" "-a" "2d935f710dda1e1a9982f5d1800b909df1ff355c00f8b468df13c56b1294dc2b", kill_on_drop: false }` [INFO] [stderr] Compiling tic_tac_toe_api v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `GameError` and `Game` [INFO] [stdout] --> src/game/domain/tests.rs:1:39 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::game::domain::aggregates::{Game, GameError}; [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: `crate::game::domain::value_objects::SegmentDirection` [INFO] [stdout] --> src/game/domain/tests.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::game::domain::value_objects::SegmentDirection; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `FieldDto`, `RedirectQuery`, and `RoomDto` [INFO] [stdout] --> src/game/presentation/api/handlers.rs:20:16 [INFO] [stdout] | [INFO] [stdout] 20 | dtos::{FieldDto, RedirectQuery, RoomDto}, [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `end_x` [INFO] [stdout] --> src/game/domain/value_objects.rs:115:14 [INFO] [stdout] | [INFO] [stdout] 115 | let (end_x, end_y) = self.end; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_end_x` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `end_y` [INFO] [stdout] --> src/game/domain/value_objects.rs:115:21 [INFO] [stdout] | [INFO] [stdout] 115 | let (end_x, end_y) = self.end; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_end_y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `check_if_field_is_available` is never used [INFO] [stdout] --> src/game/domain/aggregates.rs:117:8 [INFO] [stdout] | [INFO] [stdout] 30 | impl Game { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 117 | fn check_if_field_is_available(&self, x: usize, y: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `X` is never used [INFO] [stdout] --> src/game/domain/tests.rs:5:7 [INFO] [stdout] | [INFO] [stdout] 5 | const X: Player = Player::X; [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `O` is never used [INFO] [stdout] --> src/game/domain/tests.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | const O: Player = Player::O; [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FE` is never used [INFO] [stdout] --> src/game/domain/tests.rs:7:7 [INFO] [stdout] | [INFO] [stdout] 7 | const FE: FieldState = FieldState::Empty; [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FX` is never used [INFO] [stdout] --> src/game/domain/tests.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const FX: FieldState = FieldState::Occupied(X); [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FO` is never used [INFO] [stdout] --> src/game/domain/tests.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const FO: FieldState = FieldState::Occupied(O); [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `load` is never used [INFO] [stdout] --> src/game/domain/tests.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 11 | impl GameMap { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] 12 | fn load(data: Vec>) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_game_rules` is never used [INFO] [stdout] --> src/game/domain/tests.rs:17:4 [INFO] [stdout] | [INFO] [stdout] 17 | fn default_game_rules() -> GameRules { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `InvalidCoordinates` is never constructed [INFO] [stdout] --> src/game/domain/value_objects.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | struct InvalidCoordinates { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `establish_connection_direct` is never used [INFO] [stdout] --> src/game/infrastructure/db/connection.rs:33:8 [INFO] [stdout] | [INFO] [stdout] 33 | pub fn establish_connection_direct(db_path: String) -> Connection { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `FieldDto`, `RedirectQuery`, and `RoomDto` [INFO] [stdout] --> src/game/presentation/api/handlers.rs:20:16 [INFO] [stdout] | [INFO] [stdout] 20 | dtos::{FieldDto, RedirectQuery, RoomDto}, [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 variable: `end_x` [INFO] [stdout] --> src/game/domain/value_objects.rs:115:14 [INFO] [stdout] | [INFO] [stdout] 115 | let (end_x, end_y) = self.end; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_end_x` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `end_y` [INFO] [stdout] --> src/game/domain/value_objects.rs:115:21 [INFO] [stdout] | [INFO] [stdout] 115 | let (end_x, end_y) = self.end; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_end_y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `check_if_field_is_available` is never used [INFO] [stdout] --> src/game/domain/aggregates.rs:117:8 [INFO] [stdout] | [INFO] [stdout] 30 | impl Game { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 117 | fn check_if_field_is_available(&self, x: usize, y: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `InvalidCoordinates` is never constructed [INFO] [stdout] --> src/game/domain/value_objects.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | struct InvalidCoordinates { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `establish_connection_direct` is never used [INFO] [stdout] --> src/game/infrastructure/db/connection.rs:33:8 [INFO] [stdout] | [INFO] [stdout] 33 | pub fn establish_connection_direct(db_path: String) -> Connection { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 3.07s [INFO] running `Command { std: "docker" "inspect" "2d935f710dda1e1a9982f5d1800b909df1ff355c00f8b468df13c56b1294dc2b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2d935f710dda1e1a9982f5d1800b909df1ff355c00f8b468df13c56b1294dc2b", kill_on_drop: false }` [INFO] [stdout] 2d935f710dda1e1a9982f5d1800b909df1ff355c00f8b468df13c56b1294dc2b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 940a44b74c45ccd18725223d3be944cfd4c63a2f9e60b1a6afeca08f55e2e61b [INFO] running `Command { std: "docker" "start" "-a" "940a44b74c45ccd18725223d3be944cfd4c63a2f9e60b1a6afeca08f55e2e61b", kill_on_drop: false }` [INFO] [stderr] warning: unused imports: `GameError` and `Game` [INFO] [stderr] --> src/game/domain/tests.rs:1:39 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::game::domain::aggregates::{Game, GameError}; [INFO] [stderr] | ^^^^ ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::game::domain::value_objects::SegmentDirection` [INFO] [stderr] --> src/game/domain/tests.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use crate::game::domain::value_objects::SegmentDirection; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `FieldDto`, `RedirectQuery`, and `RoomDto` [INFO] [stderr] --> src/game/presentation/api/handlers.rs:20:16 [INFO] [stderr] | [INFO] [stderr] 20 | dtos::{FieldDto, RedirectQuery, RoomDto}, [INFO] [stderr] | ^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `end_x` [INFO] [stderr] --> src/game/domain/value_objects.rs:115:14 [INFO] [stderr] | [INFO] [stderr] 115 | let (end_x, end_y) = self.end; [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_end_x` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `end_y` [INFO] [stderr] --> src/game/domain/value_objects.rs:115:21 [INFO] [stderr] | [INFO] [stderr] 115 | let (end_x, end_y) = self.end; [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_end_y` [INFO] [stderr] [INFO] [stderr] warning: method `check_if_field_is_available` is never used [INFO] [stderr] --> src/game/domain/aggregates.rs:117:8 [INFO] [stderr] | [INFO] [stderr] 30 | impl Game { [INFO] [stderr] | --------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 117 | fn check_if_field_is_available(&self, x: usize, y: usize) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: constant `X` is never used [INFO] [stderr] --> src/game/domain/tests.rs:5:7 [INFO] [stderr] | [INFO] [stderr] 5 | const X: Player = Player::X; [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: constant `O` is never used [INFO] [stderr] --> src/game/domain/tests.rs:6:7 [INFO] [stderr] | [INFO] [stderr] 6 | const O: Player = Player::O; [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: constant `FE` is never used [INFO] [stderr] --> src/game/domain/tests.rs:7:7 [INFO] [stderr] | [INFO] [stderr] 7 | const FE: FieldState = FieldState::Empty; [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: constant `FX` is never used [INFO] [stderr] --> src/game/domain/tests.rs:8:7 [INFO] [stderr] | [INFO] [stderr] 8 | const FX: FieldState = FieldState::Occupied(X); [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: constant `FO` is never used [INFO] [stderr] --> src/game/domain/tests.rs:9:7 [INFO] [stderr] | [INFO] [stderr] 9 | const FO: FieldState = FieldState::Occupied(O); [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `load` is never used [INFO] [stderr] --> src/game/domain/tests.rs:12:8 [INFO] [stderr] | [INFO] [stderr] 11 | impl GameMap { [INFO] [stderr] | ------------ associated function in this implementation [INFO] [stderr] 12 | fn load(data: Vec>) -> Self { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `default_game_rules` is never used [INFO] [stderr] --> src/game/domain/tests.rs:17:4 [INFO] [stderr] | [INFO] [stderr] 17 | fn default_game_rules() -> GameRules { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `InvalidCoordinates` is never constructed [INFO] [stderr] --> src/game/domain/value_objects.rs:8:8 [INFO] [stderr] | [INFO] [stderr] 8 | struct InvalidCoordinates { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `establish_connection_direct` is never used [INFO] [stderr] --> src/game/infrastructure/db/connection.rs:33:8 [INFO] [stderr] | [INFO] [stderr] 33 | pub fn establish_connection_direct(db_path: String) -> Connection { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `FieldDto`, `RedirectQuery`, and `RoomDto` [INFO] [stderr] --> src/game/presentation/api/handlers.rs:20:16 [INFO] [stderr] | [INFO] [stderr] 20 | dtos::{FieldDto, RedirectQuery, RoomDto}, [INFO] [stderr] | ^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: `tic_tac_toe_api` (lib) generated 15 warnings (run `cargo fix --lib -p tic_tac_toe_api` to apply 5 suggestions) [INFO] [stderr] warning: `tic_tac_toe_api` (lib test) generated 6 warnings (5 duplicates) (run `cargo fix --lib -p tic_tac_toe_api --tests` to apply 1 suggestion) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.32s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/tic_tac_toe_api-0b0077801b63ae0f) [INFO] [stdout] [INFO] [stdout] running 48 tests [INFO] [stdout] test game::domain::tests::test_diagonal_ascending_win ... ok [INFO] [stdout] test game::domain::tests::test_game_with_pre_existing_board ... ok [INFO] [stdout] test game::domain::tests::test_game_map_positioning ... ok [INFO] [stdout] test game::domain::tests::test_empty_game_should_be_in_progress ... ok [INFO] [stdout] test game::domain::tests::test_diagonal_descending_win ... ok [INFO] [stdout] test game::domain::tests::test_draw_game ... ok [INFO] [stdout] test game::domain::tests::test_make_move_after_draw_restarts_game ... ok [INFO] [stdout] test game::domain::tests::test_make_move_after_game_ended_restarts_game ... ok [INFO] [stdout] test game::domain::tests::test_make_move_and_switch_player ... ok [INFO] [stdout] test game::domain::tests::test_horizontal_win ... ok [INFO] [stdout] test game::domain::tests::test_make_move_on_occupied_field ... ok [INFO] [stdout] test game::domain::tests::test_make_move_out_of_bounds ... ok [INFO] [stdout] test game::domain::tests::test_vertical_win ... ok [INFO] [stdout] test game::domain::tests::test_win_takes_priority_over_draw_diagonal ... ok [INFO] [stdout] test game::domain::tests::test_game_initialization ... ok [INFO] [stdout] test shared::utils::iterator::tests::test_find_consecutive_sequence_exact_match ... ok [INFO] [stdout] test shared::utils::iterator::tests::test_find_consecutive_sequence_empty ... ok [INFO] [stdout] test shared::utils::iterator::tests::test_find_consecutive_sequence_no_match ... ok [INFO] [stdout] test shared::utils::iterator::tests::test_find_consecutive_sequence_non_consecutive ... ok [INFO] [stdout] test shared::utils::iterator::tests::test_find_consecutive_sequence_sequence_at_end ... ok [INFO] [stdout] test shared::utils::iterator::tests::test_find_consecutive_sequence_single_element ... ok [INFO] [stdout] test shared::utils::matrix::test::test_iterate_diagonal_ascending_0x0 ... ok [INFO] [stdout] test shared::utils::iterator::tests::test_find_consecutive_sequence_interrupted_sequence ... ok [INFO] [stdout] test shared::utils::matrix::test::test_iterate_diagonal_ascending_5x4_all_diagonals ... ok [INFO] [stdout] test shared::utils::matrix::test::test_iterate_diagonal_ascending_1x1 ... ok [INFO] [stdout] test shared::utils::matrix::test::test_iterate_diagonal_descending_4x5_all_diagonals ... ok [INFO] [stdout] test shared::utils::matrix::test::test_iterate_horizontal_0x0 ... ok [INFO] [stdout] test shared::utils::matrix::test::test_iterate_diagonal_ascending_3x3_all_diagonals ... ok [INFO] [stdout] test game::domain::tests::test_win_takes_priority_over_draw ... ok [INFO] [stdout] test shared::utils::matrix::test::test_iterate_horizontal_1x1 ... ok [INFO] [stdout] test shared::utils::matrix::test::test_iterate_diagonal_descending_3x3_all_diagonals ... ok [INFO] [stdout] test shared::utils::matrix::test::test_iterate_diagonal_ascending_4x5_all_diagonals ... ok [INFO] [stdout] test shared::utils::matrix::test::test_iterate_diagonal_descending_0x0 ... ok [INFO] [stdout] test shared::utils::matrix::test::test_iterate_horizontal_3x3 ... ok [INFO] [stdout] test shared::utils::matrix::test::test_iterate_horizontal_4x5 ... ok [INFO] [stdout] test shared::utils::matrix::test::test_iterate_diagonal_descending_5x4_all_diagonals ... ok [INFO] [stdout] test shared::utils::matrix::test::test_iterate_horizontal_5x1 ... ok [INFO] [stdout] test shared::utils::matrix::test::test_iterate_diagonal_descending_1x1 ... ok [INFO] [stdout] test shared::utils::matrix::test::test_iterate_horizontal_5x4 ... ok [INFO] [stdout] test shared::utils::matrix::test::test_iterate_diagonal_descending_1x5 ... ok [INFO] [stdout] test shared::utils::matrix::test::test_iterate_vertical_0x0 ... ok [INFO] [stdout] test shared::utils::matrix::test::test_iterate_vertical_1x1 ... ok [INFO] [stdout] test shared::utils::matrix::test::test_iterate_vertical_1x5 ... ok [INFO] [stdout] test shared::utils::matrix::test::test_iterate_vertical_3x3 ... ok [INFO] [stdout] test shared::utils::matrix::test::test_iterate_diagonal_ascending_5x1 ... ok [INFO] [stdout] test shared::utils::matrix::test::test_iterate_vertical_4x5 ... ok [INFO] [stdout] test shared::utils::matrix::test::test_iterate_vertical_5x4 ... ok [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/tic_tac_toe_api-44b09cb8733d917b) [INFO] [stderr] Doc-tests tic_tac_toe_api [INFO] [stdout] test shared::utils::iterator::tests::test_find_consecutive_sequence_multiple_sequences ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 48 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "940a44b74c45ccd18725223d3be944cfd4c63a2f9e60b1a6afeca08f55e2e61b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "940a44b74c45ccd18725223d3be944cfd4c63a2f9e60b1a6afeca08f55e2e61b", kill_on_drop: false }` [INFO] [stdout] 940a44b74c45ccd18725223d3be944cfd4c63a2f9e60b1a6afeca08f55e2e61b