[INFO] cloning repository https://github.com/Alex-Gilbert/actuire
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Alex-Gilbert/actuire" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAlex-Gilbert%2Factuire", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAlex-Gilbert%2Factuire'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 125b33fe98ccdc2e06a5cc54496ee307a12d8902
[INFO] checking Alex-Gilbert/actuire against a5689b034ad287112f709693384a37f1377eb9cc for pr-129249-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAlex-Gilbert%2Factuire" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Alex-Gilbert/actuire
[INFO] finished tweaking git repo https://github.com/Alex-Gilbert/actuire
[INFO] tweaked toml for git repo https://github.com/Alex-Gilbert/actuire written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Alex-Gilbert/actuire on toolchain a5689b034ad287112f709693384a37f1377eb9cc
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Alex-Gilbert/actuire 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" "+a5689b034ad287112f709693384a37f1377eb9cc" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 682fbc85073583db006de105530308433f561b7562d9d475d23ee53de7af691e
[INFO] running `Command { std: "docker" "start" "682fbc85073583db006de105530308433f561b7562d9d475d23ee53de7af691e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "682fbc85073583db006de105530308433f561b7562d9d475d23ee53de7af691e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "682fbc85073583db006de105530308433f561b7562d9d475d23ee53de7af691e" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "682fbc85073583db006de105530308433f561b7562d9d475d23ee53de7af691e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "682fbc85073583db006de105530308433f561b7562d9d475d23ee53de7af691e" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.153
[INFO] [stderr]    Compiling proc-macro2 v1.0.78
[INFO] [stderr]    Compiling signal-hook v0.3.17
[INFO] [stderr]     Checking smallvec v1.13.1
[INFO] [stderr]     Checking once_cell v1.19.0
[INFO] [stderr]     Checking zerocopy v0.7.32
[INFO] [stderr]     Checking log v0.4.21
[INFO] [stderr]    Compiling ahash v0.8.10
[INFO] [stderr]     Checking allocator-api2 v0.2.16
[INFO] [stderr]    Compiling unicode-segmentation v1.11.0
[INFO] [stderr]    Compiling paste v1.0.14
[INFO] [stderr]     Checking castaway v0.2.2
[INFO] [stderr]     Checking either v1.10.0
[INFO] [stderr]     Checking bitflags v2.4.2
[INFO] [stderr]     Checking ryu v1.0.17
[INFO] [stderr]    Compiling indoc v2.0.4
[INFO] [stderr]     Checking cassowary v0.3.0
[INFO] [stderr]     Checking compact_str v0.7.1
[INFO] [stderr]    Compiling heck v0.3.3
[INFO] [stderr]     Checking itertools v0.12.1
[INFO] [stderr]     Checking hashbrown v0.14.3
[INFO] [stderr]    Compiling quote v1.0.35
[INFO] [stderr]     Checking signal-hook-registry v1.4.1
[INFO] [stderr]     Checking getrandom v0.2.12
[INFO] [stderr]     Checking parking_lot_core v0.9.9
[INFO] [stderr]     Checking mio v0.8.11
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking clap v2.34.0
[INFO] [stderr]     Checking parking_lot v0.12.1
[INFO] [stderr]    Compiling syn v2.0.52
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking signal-hook-mio v0.2.3
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking crossterm v0.27.0
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking lru v0.12.3
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling structopt-derive v0.4.18
[INFO] [stderr]    Compiling stability v0.1.1
[INFO] [stderr]     Checking structopt v0.3.26
[INFO] [stderr]    Compiling strum_macros v0.26.1
[INFO] [stderr]    Compiling typed-builder-macro v0.18.1
[INFO] [stderr]     Checking typed-builder v0.18.1
[INFO] [stderr]     Checking strum v0.26.1
[INFO] [stderr]     Checking ratatui v0.26.1
[INFO] [stderr]     Checking actuire v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `core::fmt`
[INFO] [stdout]  --> src/logic/game_board.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::fmt;
[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: `borrow::Borrow` and `error::Error`
[INFO] [stdout]  --> src/visuals/tui_app.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     borrow::Borrow,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 3 |     error::Error,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Modifier`, `Position`, and `Widget`
[INFO] [stdout]   --> src/visuals/tui_app.rs:11:20
[INFO] [stdout]    |
[INFO] [stdout] 11 |     style::{Color, Modifier, Style, Stylize},
[INFO] [stdout]    |                    ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |         block::{Position, Title},
[INFO] [stdout]    |                 ^^^^^^^^
[INFO] [stdout] 16 |         Block, BorderType, Borders, Paragraph, Widget,
[INFO] [stdout]    |                                                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated module `std::usize`: all constants in this module replaced by associated constants on the type
[INFO] [stdout]  --> src/logic/acquire_game.rs:2:44
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{collections::HashSet, sync::Arc, usize};
[INFO] [stdout]   |                                            ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated module `std::usize`: all constants in this module replaced by associated constants on the type
[INFO] [stdout]  --> src/logic/acquire_game_state.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::usize;
[INFO] [stdout]   |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::fmt`
[INFO] [stdout]  --> src/logic/game_board.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::fmt;
[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: `borrow::Borrow` and `error::Error`
[INFO] [stdout]  --> src/visuals/tui_app.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     borrow::Borrow,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 3 |     error::Error,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Modifier`, `Position`, and `Widget`
[INFO] [stdout]   --> src/visuals/tui_app.rs:11:20
[INFO] [stdout]    |
[INFO] [stdout] 11 |     style::{Color, Modifier, Style, Stylize},
[INFO] [stdout]    |                    ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |         block::{Position, Title},
[INFO] [stdout]    |                 ^^^^^^^^
[INFO] [stdout] 16 |         Block, BorderType, Borders, Paragraph, Widget,
[INFO] [stdout]    |                                                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated module `std::usize`: all constants in this module replaced by associated constants on the type
[INFO] [stdout]  --> src/logic/acquire_game.rs:2:44
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{collections::HashSet, sync::Arc, usize};
[INFO] [stdout]   |                                            ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated module `std::usize`: all constants in this module replaced by associated constants on the type
[INFO] [stdout]  --> src/logic/acquire_game_state.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::usize;
[INFO] [stdout]   |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `quit`
[INFO] [stdout]    --> src/logic/acquire_game.rs:476:40
[INFO] [stdout]     |
[INFO] [stdout] 476 |     fn handle_end_game_response(&self, quit: bool, player: usize) {}
[INFO] [stdout]     |                                        ^^^^ help: if this is intentional, prefix it with an underscore: `_quit`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player`
[INFO] [stdout]    --> src/logic/acquire_game.rs:476:52
[INFO] [stdout]     |
[INFO] [stdout] 476 |     fn handle_end_game_response(&self, quit: bool, player: usize) {}
[INFO] [stdout]     |                                                    ^^^^^^ help: if this is intentional, prefix it with an underscore: `_player`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tiles_block`
[INFO] [stdout]    --> src/visuals/tui_app.rs:663:13
[INFO] [stdout]     |
[INFO] [stdout] 663 |         let tiles_block = Block::default()
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tiles_block`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `would_cell_merge_chains` is never used
[INFO] [stdout]    --> src/logic/game_board.rs:187:8
[INFO] [stdout]     |
[INFO] [stdout]  62 | impl GameBoard {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 187 |     fn would_cell_merge_chains(&self, row: usize, col: 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] error: useless conversion to the same type: `AcquireResponse`
[INFO] [stdout]    --> src/visuals/tui_app.rs:123:84
[INFO] [stdout]     |
[INFO] [stdout] 123 | ...                   let res = self.acquire_game.handle_player_response(response.into());
[INFO] [stdout]     |                                                                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 123 -                                 let res = self.acquire_game.handle_player_response(response.into());
[INFO] [stdout] 123 +                                 let res = self.acquire_game.handle_player_response(response);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 123 -                                 let res = self.acquire_game.handle_player_response(response.into());
[INFO] [stdout] 123 +                                 let res = self.acquire_game.handle_player_response(<AcquireResponse as Into<_>>::into(response));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `AcquireResponse`
[INFO] [stdout]    --> src/visuals/tui_app.rs:150:84
[INFO] [stdout]     |
[INFO] [stdout] 150 | ...                   let res = self.acquire_game.handle_player_response(response.into());
[INFO] [stdout]     |                                                                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 150 -                                 let res = self.acquire_game.handle_player_response(response.into());
[INFO] [stdout] 150 +                                 let res = self.acquire_game.handle_player_response(response);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 150 -                                 let res = self.acquire_game.handle_player_response(response.into());
[INFO] [stdout] 150 +                                 let res = self.acquire_game.handle_player_response(<AcquireResponse as Into<_>>::into(response));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `AcquireResponse`
[INFO] [stdout]    --> src/visuals/tui_app.rs:175:82
[INFO] [stdout]     |
[INFO] [stdout] 175 | ...                   self.acquire_game.handle_player_response(response.into());
[INFO] [stdout]     |                                                                ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 175 -                                         self.acquire_game.handle_player_response(response.into());
[INFO] [stdout] 175 +                                         self.acquire_game.handle_player_response(response);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 175 -                                         self.acquire_game.handle_player_response(response.into());
[INFO] [stdout] 175 +                                         self.acquire_game.handle_player_response(<AcquireResponse as Into<_>>::into(response));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `AcquireResponse`
[INFO] [stdout]    --> src/visuals/tui_app.rs:201:82
[INFO] [stdout]     |
[INFO] [stdout] 201 | ...                   self.acquire_game.handle_player_response(response.into());
[INFO] [stdout]     |                                                                ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 201 -                                         self.acquire_game.handle_player_response(response.into());
[INFO] [stdout] 201 +                                         self.acquire_game.handle_player_response(response);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 201 -                                         self.acquire_game.handle_player_response(response.into());
[INFO] [stdout] 201 +                                         self.acquire_game.handle_player_response(<AcquireResponse as Into<_>>::into(response));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `AcquireResponse`
[INFO] [stdout]    --> src/visuals/tui_app.rs:229:82
[INFO] [stdout]     |
[INFO] [stdout] 229 | ...                   self.acquire_game.handle_player_response(response.into());
[INFO] [stdout]     |                                                                ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 229 -                                         self.acquire_game.handle_player_response(response.into());
[INFO] [stdout] 229 +                                         self.acquire_game.handle_player_response(response);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 229 -                                         self.acquire_game.handle_player_response(response.into());
[INFO] [stdout] 229 +                                         self.acquire_game.handle_player_response(<AcquireResponse as Into<_>>::into(response));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `AcquireResponse`
[INFO] [stdout]    --> src/visuals/tui_app.rs:299:84
[INFO] [stdout]     |
[INFO] [stdout] 299 | ...                   let res = self.acquire_game.handle_player_response(response.into());
[INFO] [stdout]     |                                                                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 299 -                                 let res = self.acquire_game.handle_player_response(response.into());
[INFO] [stdout] 299 +                                 let res = self.acquire_game.handle_player_response(response);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 299 -                                 let res = self.acquire_game.handle_player_response(response.into());
[INFO] [stdout] 299 +                                 let res = self.acquire_game.handle_player_response(<AcquireResponse as Into<_>>::into(response));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `AcquireResponse`
[INFO] [stdout]    --> src/visuals/tui_app.rs:312:80
[INFO] [stdout]     |
[INFO] [stdout] 312 | ...                   let res = self.acquire_game.handle_player_response(response.into());
[INFO] [stdout]     |                                                                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 312 -                             let res = self.acquire_game.handle_player_response(response.into());
[INFO] [stdout] 312 +                             let res = self.acquire_game.handle_player_response(response);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 312 -                             let res = self.acquire_game.handle_player_response(response.into());
[INFO] [stdout] 312 +                             let res = self.acquire_game.handle_player_response(<AcquireResponse as Into<_>>::into(response));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/logic/acquire_game.rs:297:9
[INFO] [stdout]     |
[INFO] [stdout] 297 |         self.board.resolve_conflict(hotel);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 297 |         let _ = self.board.resolve_conflict(hotel);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/visuals/tui_app.rs:44:25
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub fn get_messages(&self) -> MutexGuard<Vec<String>> {
[INFO] [stdout]    |                         ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub fn get_messages(&self) -> MutexGuard<'_, Vec<String>> {
[INFO] [stdout]    |                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/visuals/tui_app.rs:513:23
[INFO] [stdout]     |
[INFO] [stdout] 513 |     fn get_cell_block(&self, row: usize, col: usize) -> Block {
[INFO] [stdout]     |                       ^^^^^ the lifetime is elided here ^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 513 |     fn get_cell_block(&self, row: usize, col: usize) -> Block<'_> {
[INFO] [stdout]     |                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `quit`
[INFO] [stdout]    --> src/logic/acquire_game.rs:476:40
[INFO] [stdout]     |
[INFO] [stdout] 476 |     fn handle_end_game_response(&self, quit: bool, player: usize) {}
[INFO] [stdout]     |                                        ^^^^ help: if this is intentional, prefix it with an underscore: `_quit`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `actuire` (bin "actuire") due to 7 previous errors; 12 warnings emitted
[INFO] [stdout] warning: unused variable: `player`
[INFO] [stdout]    --> src/logic/acquire_game.rs:476:52
[INFO] [stdout]     |
[INFO] [stdout] 476 |     fn handle_end_game_response(&self, quit: bool, player: usize) {}
[INFO] [stdout]     |                                                    ^^^^^^ help: if this is intentional, prefix it with an underscore: `_player`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused variable: `tiles_block`
[INFO] [stdout]    --> src/visuals/tui_app.rs:663:13
[INFO] [stdout]     |
[INFO] [stdout] 663 |         let tiles_block = Block::default()
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tiles_block`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `would_cell_merge_chains` is never used
[INFO] [stdout]    --> src/logic/game_board.rs:187:8
[INFO] [stdout]     |
[INFO] [stdout]  62 | impl GameBoard {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 187 |     fn would_cell_merge_chains(&self, row: usize, col: 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] error: useless conversion to the same type: `AcquireResponse`
[INFO] [stdout]    --> src/visuals/tui_app.rs:123:84
[INFO] [stdout]     |
[INFO] [stdout] 123 | ...                   let res = self.acquire_game.handle_player_response(response.into());
[INFO] [stdout]     |                                                                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 123 -                                 let res = self.acquire_game.handle_player_response(response.into());
[INFO] [stdout] 123 +                                 let res = self.acquire_game.handle_player_response(response);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 123 -                                 let res = self.acquire_game.handle_player_response(response.into());
[INFO] [stdout] 123 +                                 let res = self.acquire_game.handle_player_response(<AcquireResponse as Into<_>>::into(response));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `AcquireResponse`
[INFO] [stdout]    --> src/visuals/tui_app.rs:150:84
[INFO] [stdout]     |
[INFO] [stdout] 150 | ...                   let res = self.acquire_game.handle_player_response(response.into());
[INFO] [stdout]     |                                                                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 150 -                                 let res = self.acquire_game.handle_player_response(response.into());
[INFO] [stdout] 150 +                                 let res = self.acquire_game.handle_player_response(response);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 150 -                                 let res = self.acquire_game.handle_player_response(response.into());
[INFO] [stdout] 150 +                                 let res = self.acquire_game.handle_player_response(<AcquireResponse as Into<_>>::into(response));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `AcquireResponse`
[INFO] [stdout]    --> src/visuals/tui_app.rs:175:82
[INFO] [stdout]     |
[INFO] [stdout] 175 | ...                   self.acquire_game.handle_player_response(response.into());
[INFO] [stdout]     |                                                                ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 175 -                                         self.acquire_game.handle_player_response(response.into());
[INFO] [stdout] 175 +                                         self.acquire_game.handle_player_response(response);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 175 -                                         self.acquire_game.handle_player_response(response.into());
[INFO] [stdout] 175 +                                         self.acquire_game.handle_player_response(<AcquireResponse as Into<_>>::into(response));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `AcquireResponse`
[INFO] [stdout]    --> src/visuals/tui_app.rs:201:82
[INFO] [stdout]     |
[INFO] [stdout] 201 | ...                   self.acquire_game.handle_player_response(response.into());
[INFO] [stdout]     |                                                                ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 201 -                                         self.acquire_game.handle_player_response(response.into());
[INFO] [stdout] 201 +                                         self.acquire_game.handle_player_response(response);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 201 -                                         self.acquire_game.handle_player_response(response.into());
[INFO] [stdout] 201 +                                         self.acquire_game.handle_player_response(<AcquireResponse as Into<_>>::into(response));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `AcquireResponse`
[INFO] [stdout]    --> src/visuals/tui_app.rs:229:82
[INFO] [stdout]     |
[INFO] [stdout] 229 | ...                   self.acquire_game.handle_player_response(response.into());
[INFO] [stdout]     |                                                                ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 229 -                                         self.acquire_game.handle_player_response(response.into());
[INFO] [stdout] 229 +                                         self.acquire_game.handle_player_response(response);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 229 -                                         self.acquire_game.handle_player_response(response.into());
[INFO] [stdout] 229 +                                         self.acquire_game.handle_player_response(<AcquireResponse as Into<_>>::into(response));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `AcquireResponse`
[INFO] [stdout]    --> src/visuals/tui_app.rs:299:84
[INFO] [stdout]     |
[INFO] [stdout] 299 | ...                   let res = self.acquire_game.handle_player_response(response.into());
[INFO] [stdout]     |                                                                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 299 -                                 let res = self.acquire_game.handle_player_response(response.into());
[INFO] [stdout] 299 +                                 let res = self.acquire_game.handle_player_response(response);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 299 -                                 let res = self.acquire_game.handle_player_response(response.into());
[INFO] [stdout] 299 +                                 let res = self.acquire_game.handle_player_response(<AcquireResponse as Into<_>>::into(response));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `AcquireResponse`
[INFO] [stdout]    --> src/visuals/tui_app.rs:312:80
[INFO] [stdout]     |
[INFO] [stdout] 312 | ...                   let res = self.acquire_game.handle_player_response(response.into());
[INFO] [stdout]     |                                                                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 312 -                             let res = self.acquire_game.handle_player_response(response.into());
[INFO] [stdout] 312 +                             let res = self.acquire_game.handle_player_response(response);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 312 -                             let res = self.acquire_game.handle_player_response(response.into());
[INFO] [stdout] 312 +                             let res = self.acquire_game.handle_player_response(<AcquireResponse as Into<_>>::into(response));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/logic/acquire_game.rs:297:9
[INFO] [stdout]     |
[INFO] [stdout] 297 |         self.board.resolve_conflict(hotel);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 297 |         let _ = self.board.resolve_conflict(hotel);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/visuals/tui_app.rs:44:25
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub fn get_messages(&self) -> MutexGuard<Vec<String>> {
[INFO] [stdout]    |                         ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub fn get_messages(&self) -> MutexGuard<'_, Vec<String>> {
[INFO] [stdout]    |                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/visuals/tui_app.rs:513:23
[INFO] [stdout]     |
[INFO] [stdout] 513 |     fn get_cell_block(&self, row: usize, col: usize) -> Block {
[INFO] [stdout]     |                       ^^^^^ the lifetime is elided here ^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 513 |     fn get_cell_block(&self, row: usize, col: usize) -> Block<'_> {
[INFO] [stdout]     |                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `actuire` (bin "actuire" test) due to 7 previous errors; 12 warnings emitted
[INFO] [stderr] warning: unused dependency `typed-builder`
[INFO] [stderr]  --> Cargo.toml:6:1
[INFO] [stderr]   |
[INFO] [stderr] 6 | typed-builder = "0.18.1"
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `typed-builder`
[INFO] [stderr] warning: `actuire` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "inspect" "682fbc85073583db006de105530308433f561b7562d9d475d23ee53de7af691e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "682fbc85073583db006de105530308433f561b7562d9d475d23ee53de7af691e", kill_on_drop: false }`
[INFO] [stdout] 682fbc85073583db006de105530308433f561b7562d9d475d23ee53de7af691e
