[INFO] cloning repository https://github.com/Guakocius/winesmeeper-rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Guakocius/winesmeeper-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGuakocius%2Fwinesmeeper-rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGuakocius%2Fwinesmeeper-rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 37e43b9565df9bcb91483bceb8703ed1cf560170
[INFO] testing Guakocius/winesmeeper-rust against master#ec6f9a5b4413f74386267ef8efc93712c2ce6db6 for pr-155739
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGuakocius%2Fwinesmeeper-rust" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Guakocius/winesmeeper-rust
[INFO] finished tweaking git repo https://github.com/Guakocius/winesmeeper-rust
[INFO] tweaked toml for git repo https://github.com/Guakocius/winesmeeper-rust written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Guakocius/winesmeeper-rust on toolchain ec6f9a5b4413f74386267ef8efc93712c2ce6db6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Guakocius/winesmeeper-rust 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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded xmltree v0.12.0
[INFO] [stderr]   Downloaded unicode-truncate v2.0.1
[INFO] [stderr]   Downloaded instability v0.3.11
[INFO] [stderr]   Downloaded xml v1.2.1
[INFO] [stderr]   Downloaded euclid v0.22.13
[INFO] [stderr]   Downloaded shell-escape v0.1.5
[INFO] [stderr]   Downloaded lcov2cobertura v1.0.6
[INFO] [stderr]   Downloaded shared_child v1.1.1
[INFO] [stderr]   Downloaded normpath v1.5.0
[INFO] [stderr]   Downloaded zmij v1.0.17
[INFO] [stderr]   Downloaded opener v0.8.4
[INFO] [stderr]   Downloaded os_pipe v1.2.3
[INFO] [stderr]   Downloaded shared_thread v0.2.0
[INFO] [stderr]   Downloaded fs-err v3.2.2
[INFO] [stderr]   Downloaded duct v1.1.1
[INFO] [stderr]   Downloaded cargo-llvm-cov v0.8.2
[INFO] [stderr]   Downloaded tar v0.4.44
[INFO] [stderr]   Downloaded cargo-config2 v0.1.39
[INFO] [stderr]   Downloaded zerocopy-derive v0.8.35
[INFO] [stderr]   Downloaded ruzstd v0.8.2
[INFO] [stderr]   Downloaded zerocopy v0.8.35
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 81ade1fc544c7be9c3e9c87a7c1b0e548d1681a6daa6677735998e3d3b1ea2d6
[INFO] running `Command { std: "docker" "start" "-a" "81ade1fc544c7be9c3e9c87a7c1b0e548d1681a6daa6677735998e3d3b1ea2d6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "81ade1fc544c7be9c3e9c87a7c1b0e548d1681a6daa6677735998e3d3b1ea2d6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "81ade1fc544c7be9c3e9c87a7c1b0e548d1681a6daa6677735998e3d3b1ea2d6", kill_on_drop: false }`
[INFO] [stdout] 81ade1fc544c7be9c3e9c87a7c1b0e548d1681a6daa6677735998e3d3b1ea2d6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 294f327579b01134f903c2154edabf3fb125b0d58459742482895f64d989504f
[INFO] running `Command { std: "docker" "start" "-a" "294f327579b01134f903c2154edabf3fb125b0d58459742482895f64d989504f", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.180
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]    Compiling zerocopy v0.8.35
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling regex-syntax v0.8.8
[INFO] [stderr]    Compiling ryu v1.0.22
[INFO] [stderr]    Compiling instability v0.3.11
[INFO] [stderr]    Compiling unicode-width v0.2.2
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling compact_str v0.9.0
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling owo-colors v4.2.3
[INFO] [stderr]    Compiling zmij v1.0.17
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling anyhow v1.0.100
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling object v0.37.3
[INFO] [stderr]    Compiling rustc-demangle v0.1.27
[INFO] [stderr]    Compiling num_threads v0.1.7
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]    Compiling fs-err v3.2.2
[INFO] [stderr]    Compiling lru v0.16.3
[INFO] [stderr]    Compiling toml_parser v1.0.6+spec-1.1.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling line-clipping v0.3.5
[INFO] [stderr]    Compiling camino v1.2.2
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling gimli v0.32.3
[INFO] [stderr]    Compiling color-spantrace v0.3.0
[INFO] [stderr]    Compiling emath v0.33.3
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling quick-xml v0.37.5
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling time v0.3.46
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling os_pipe v1.2.3
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling tracing-error v0.2.1
[INFO] [stderr]    Compiling shared_child v1.1.1
[INFO] [stderr]    Compiling filetime v0.2.27
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling ecolor v0.33.3
[INFO] [stderr]    Compiling epaint_default_fonts v0.33.3
[INFO] [stderr]    Compiling shared_thread v0.2.0
[INFO] [stderr]    Compiling duct v1.1.1
[INFO] [stderr]    Compiling toml_datetime v0.7.5+spec-1.1.0
[INFO] [stderr]    Compiling serde_spanned v1.0.4
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling ruzstd v0.8.2
[INFO] [stderr]    Compiling shell-escape v0.1.5
[INFO] [stderr]    Compiling lexopt v0.3.1
[INFO] [stderr]    Compiling toml v0.9.11+spec-1.1.0
[INFO] [stderr]    Compiling glob v0.3.3
[INFO] [stderr]    Compiling xml v1.2.1
[INFO] [stderr]    Compiling addr2line v0.25.1
[INFO] [stderr]    Compiling xattr v1.6.1
[INFO] [stderr]    Compiling xmltree v0.12.0
[INFO] [stderr]    Compiling tar v0.4.44
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]    Compiling lcov2cobertura v1.0.6
[INFO] [stderr]    Compiling opener v0.8.4
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling backtrace v0.3.76
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling kasuari v0.4.11
[INFO] [stderr]    Compiling epaint v0.33.3
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling color-eyre v0.6.5
[INFO] [stderr]    Compiling strum v0.27.2
[INFO] [stderr]    Compiling ratatui-core v0.1.0
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling egui v0.33.3
[INFO] [stderr]    Compiling cargo-config2 v0.1.39
[INFO] [stderr]    Compiling ratatui-widgets v0.3.0
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[INFO] [stderr]    Compiling ratatui-macros v0.7.0
[INFO] [stderr]    Compiling ratatui v0.30.0
[INFO] [stderr]    Compiling cargo-llvm-cov v0.8.2
[INFO] [stderr]    Compiling winesmeeper-rust v1.0.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `observer::Event`
[INFO] [stdout]  --> src/main/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use observer::Event;
[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: `Borders`, `Clear`, `DefaultTerminal`, and `Wrap`
[INFO] [stdout]   --> src/main/view/tui/app.rs:9:22
[INFO] [stdout]    |
[INFO] [stdout]  9 |     widgets::{Block, Borders, Paragraph, Widget, Clear, Wrap},
[INFO] [stdout]    |                      ^^^^^^^                     ^^^^^  ^^^^
[INFO] [stdout] 10 |     DefaultTerminal,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bail`
[INFO] [stdout]   --> src/main/view/tui/app.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 |     eyre::{bail, WrapErr},
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]   --> src/main/view/tui/app.rs:20:35
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::controller::commands::{self, Command};
[INFO] [stdout]    |                                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> src/main/model/field.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fs::File;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bail`
[INFO] [stdout]  --> src/main/model/field.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use anyhow::{Result, bail, anyhow};
[INFO] [stdout]   |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Stylize`
[INFO] [stdout]  --> src/main/controller/commands.rs:1:43
[INFO] [stdout]   |
[INFO] [stdout] 1 | use ratatui::{text::{Line, Span}, style::{Stylize, Style}};
[INFO] [stdout]   |                                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Event` is never used
[INFO] [stdout]  --> src/main/observer.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum Event {
[INFO] [stdout]   |          ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EventData` is never used
[INFO] [stdout]   --> src/main/observer.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum EventData {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ObserverId` is never used
[INFO] [stdout]   --> src/main/observer.rs:21:6
[INFO] [stdout]    |
[INFO] [stdout] 21 | type ObserverId = usize;
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Observer` is never constructed
[INFO] [stdout]   --> src/main/observer.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct Observer {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `subscribe`, `unsubscribe`, and `notify` are never used
[INFO] [stdout]   --> src/main/observer.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl Observer {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 29 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn subscribe<F>(&mut self, event_type: Event, callback: F) -> ObserverId
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn unsubscribe(&mut self, event_type: &Event, id: ObserverId) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn notify(&mut self, event_type: &Event, data: EventData) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Command` is never constructed
[INFO] [stdout]  --> src/main/controller/commands.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Command {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SYSTEM_COMMANDS` is never used
[INFO] [stdout]   --> src/main/controller/commands.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const SYSTEM_COMMANDS: &[Command] = &[
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TURN_COMMANDS` is never used
[INFO] [stdout]   --> src/main/controller/commands.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub const TURN_COMMANDS: &[Command] = &[
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `render` and `render_commands` are never used
[INFO] [stdout]   --> src/main/controller/commands.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl Command {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 25 |
[INFO] [stdout] 26 |     fn render(&self) -> Vec<Line<'static>> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn render_commands<'a>(title: &'a str, commands: &'a [Command]) -> Vec<Line<'a>> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/main/view/tui/app.rs:341:8
[INFO] [stdout]     |
[INFO] [stdout]  62 | impl App {
[INFO] [stdout]     | -------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 341 |     fn show_help_message(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 355 |     fn generate_board(&mut self, width: usize, height: usize, 
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 366 |     fn redo(&mut self) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 370 |     fn undo(&mut self) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 374 |     fn save_game(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 377 |     fn load_game(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 381 |     fn exit(&mut self) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385 |     fn help_text() -> Text<'static> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 398 |     fn centered_rect(percent_x: u16, percent_y: u16, r: Rect) -> Rect {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `is_victory`, `to_xml`, and `from_xml` are never used
[INFO] [stdout]    --> src/main/model/board.rs:97:8
[INFO] [stdout]     |
[INFO] [stdout]  18 | impl Board {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  97 |     fn is_victory(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     fn to_xml(&self) -> Element {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     fn from_xml(elem: &Element) -> Result<Self> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Game` is never constructed
[INFO] [stdout]  --> src/main/game.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Game {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `turn` is never used
[INFO] [stdout]   --> src/main/game.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl Game {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 10 |     pub fn turn(&mut self, x: usize, y: usize) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 36.12s
[INFO] running `Command { std: "docker" "inspect" "294f327579b01134f903c2154edabf3fb125b0d58459742482895f64d989504f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "294f327579b01134f903c2154edabf3fb125b0d58459742482895f64d989504f", kill_on_drop: false }`
[INFO] [stdout] 294f327579b01134f903c2154edabf3fb125b0d58459742482895f64d989504f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 59e28244bce2d4b097ea3a390223ea30ed47a2d9b8b3876ea16893b6b37b9846
[INFO] running `Command { std: "docker" "start" "-a" "59e28244bce2d4b097ea3a390223ea30ed47a2d9b8b3876ea16893b6b37b9846", kill_on_drop: false }`
[INFO] [stderr]    Compiling winesmeeper-rust v1.0.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `observer::Event`
[INFO] [stdout]  --> src/main/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use observer::Event;
[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: `Borders`, `Clear`, `DefaultTerminal`, and `Wrap`
[INFO] [stdout]   --> src/main/view/tui/app.rs:9:22
[INFO] [stdout]    |
[INFO] [stdout]  9 |     widgets::{Block, Borders, Paragraph, Widget, Clear, Wrap},
[INFO] [stdout]    |                      ^^^^^^^                     ^^^^^  ^^^^
[INFO] [stdout] 10 |     DefaultTerminal,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bail`
[INFO] [stdout]   --> src/main/view/tui/app.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 |     eyre::{bail, WrapErr},
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]   --> src/main/view/tui/app.rs:20:35
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::controller::commands::{self, Command};
[INFO] [stdout]    |                                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> src/main/model/field.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fs::File;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bail`
[INFO] [stdout]  --> src/main/model/field.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use anyhow::{Result, bail, anyhow};
[INFO] [stdout]   |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ratatui::prelude::Buffer::get`: use `Buffer[(x, y)]` instead. To avoid panicking, use `Buffer::cell((x, y))`. Both methods take `impl Into<Position>`.
[INFO] [stdout]    --> src/main/view/tui/app.rs:463:34
[INFO] [stdout]     |
[INFO] [stdout] 463 |                     .map(|x| buf.get(x, y).symbol())
[INFO] [stdout]     |                                  ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Stylize`
[INFO] [stdout]  --> src/main/controller/commands.rs:1:43
[INFO] [stdout]   |
[INFO] [stdout] 1 | use ratatui::{text::{Line, Span}, style::{Stylize, Style}};
[INFO] [stdout]   |                                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Event` is never used
[INFO] [stdout]  --> src/main/observer.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum Event {
[INFO] [stdout]   |          ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EventData` is never used
[INFO] [stdout]   --> src/main/observer.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum EventData {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ObserverId` is never used
[INFO] [stdout]   --> src/main/observer.rs:21:6
[INFO] [stdout]    |
[INFO] [stdout] 21 | type ObserverId = usize;
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Observer` is never constructed
[INFO] [stdout]   --> src/main/observer.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct Observer {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `subscribe`, `unsubscribe`, and `notify` are never used
[INFO] [stdout]   --> src/main/observer.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl Observer {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 29 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn subscribe<F>(&mut self, event_type: Event, callback: F) -> ObserverId
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn unsubscribe(&mut self, event_type: &Event, id: ObserverId) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn notify(&mut self, event_type: &Event, data: EventData) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Command` is never constructed
[INFO] [stdout]  --> src/main/controller/commands.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Command {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SYSTEM_COMMANDS` is never used
[INFO] [stdout]   --> src/main/controller/commands.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const SYSTEM_COMMANDS: &[Command] = &[
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TURN_COMMANDS` is never used
[INFO] [stdout]   --> src/main/controller/commands.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub const TURN_COMMANDS: &[Command] = &[
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `render` and `render_commands` are never used
[INFO] [stdout]   --> src/main/controller/commands.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl Command {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 25 |
[INFO] [stdout] 26 |     fn render(&self) -> Vec<Line<'static>> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn render_commands<'a>(title: &'a str, commands: &'a [Command]) -> Vec<Line<'a>> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/main/view/tui/app.rs:341:8
[INFO] [stdout]     |
[INFO] [stdout]  62 | impl App {
[INFO] [stdout]     | -------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 341 |     fn show_help_message(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 355 |     fn generate_board(&mut self, width: usize, height: usize, 
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 366 |     fn redo(&mut self) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 370 |     fn undo(&mut self) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 374 |     fn save_game(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 377 |     fn load_game(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 381 |     fn exit(&mut self) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385 |     fn help_text() -> Text<'static> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 398 |     fn centered_rect(percent_x: u16, percent_y: u16, r: Rect) -> Rect {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `is_victory`, `to_xml`, and `from_xml` are never used
[INFO] [stdout]    --> src/main/model/board.rs:97:8
[INFO] [stdout]     |
[INFO] [stdout]  18 | impl Board {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  97 |     fn is_victory(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     fn to_xml(&self) -> Element {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     fn from_xml(elem: &Element) -> Result<Self> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Game` is never constructed
[INFO] [stdout]  --> src/main/game.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Game {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `turn` is never used
[INFO] [stdout]   --> src/main/game.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl Game {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 10 |     pub fn turn(&mut self, x: usize, y: usize) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.65s
[INFO] running `Command { std: "docker" "inspect" "59e28244bce2d4b097ea3a390223ea30ed47a2d9b8b3876ea16893b6b37b9846", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "59e28244bce2d4b097ea3a390223ea30ed47a2d9b8b3876ea16893b6b37b9846", kill_on_drop: false }`
[INFO] [stdout] 59e28244bce2d4b097ea3a390223ea30ed47a2d9b8b3876ea16893b6b37b9846
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 396fd98f377913d40b0c0063190d87d6728d257de3501dc92339e051b8e5d21b
[INFO] running `Command { std: "docker" "start" "-a" "396fd98f377913d40b0c0063190d87d6728d257de3501dc92339e051b8e5d21b", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `observer::Event`
[INFO] [stderr]  --> src/main/main.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use observer::Event;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Borders`, `Clear`, `DefaultTerminal`, and `Wrap`
[INFO] [stderr]   --> src/main/view/tui/app.rs:9:22
[INFO] [stderr]    |
[INFO] [stderr]  9 |     widgets::{Block, Borders, Paragraph, Widget, Clear, Wrap},
[INFO] [stderr]    |                      ^^^^^^^                     ^^^^^  ^^^^
[INFO] [stderr] 10 |     DefaultTerminal,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `bail`
[INFO] [stderr]   --> src/main/view/tui/app.rs:14:12
[INFO] [stderr]    |
[INFO] [stderr] 14 |     eyre::{bail, WrapErr},
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `self`
[INFO] [stderr]   --> src/main/view/tui/app.rs:20:35
[INFO] [stderr]    |
[INFO] [stderr] 20 | use crate::controller::commands::{self, Command};
[INFO] [stderr]    |                                   ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::fs::File`
[INFO] [stderr]  --> src/main/model/field.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::fs::File;
[INFO] [stderr]   |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `bail`
[INFO] [stderr]  --> src/main/model/field.rs:3:22
[INFO] [stderr]   |
[INFO] [stderr] 3 | use anyhow::{Result, bail, anyhow};
[INFO] [stderr]   |                      ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `ratatui::prelude::Buffer::get`: use `Buffer[(x, y)]` instead. To avoid panicking, use `Buffer::cell((x, y))`. Both methods take `impl Into<Position>`.
[INFO] [stderr]    --> src/main/view/tui/app.rs:463:34
[INFO] [stderr]     |
[INFO] [stderr] 463 |                     .map(|x| buf.get(x, y).symbol())
[INFO] [stderr]     |                                  ^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Stylize`
[INFO] [stderr]  --> src/main/controller/commands.rs:1:43
[INFO] [stderr]   |
[INFO] [stderr] 1 | use ratatui::{text::{Line, Span}, style::{Stylize, Style}};
[INFO] [stderr]   |                                           ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Event` is never used
[INFO] [stderr]  --> src/main/observer.rs:4:10
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub enum Event {
[INFO] [stderr]   |          ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: enum `EventData` is never used
[INFO] [stderr]   --> src/main/observer.rs:13:10
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub enum EventData {
[INFO] [stderr]    |          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `ObserverId` is never used
[INFO] [stderr]   --> src/main/observer.rs:21:6
[INFO] [stderr]    |
[INFO] [stderr] 21 | type ObserverId = usize;
[INFO] [stderr]    |      ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Observer` is never constructed
[INFO] [stderr]   --> src/main/observer.rs:23:12
[INFO] [stderr]    |
[INFO] [stderr] 23 | pub struct Observer {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `subscribe`, `unsubscribe`, and `notify` are never used
[INFO] [stderr]   --> src/main/observer.rs:29:12
[INFO] [stderr]    |
[INFO] [stderr] 28 | impl Observer {
[INFO] [stderr]    | ------------- associated items in this implementation
[INFO] [stderr] 29 |     pub fn new() -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 36 |     pub fn subscribe<F>(&mut self, event_type: Event, callback: F) -> ObserverId
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 50 |     pub fn unsubscribe(&mut self, event_type: &Event, id: ObserverId) {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 56 |     pub fn notify(&mut self, event_type: &Event, data: EventData) {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Command` is never constructed
[INFO] [stderr]  --> src/main/controller/commands.rs:4:12
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub struct Command {
[INFO] [stderr]   |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SYSTEM_COMMANDS` is never used
[INFO] [stderr]   --> src/main/controller/commands.rs:10:11
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub const SYSTEM_COMMANDS: &[Command] = &[
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TURN_COMMANDS` is never used
[INFO] [stderr]   --> src/main/controller/commands.rs:19:11
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub const TURN_COMMANDS: &[Command] = &[
[INFO] [stderr]    |           ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `render` and `render_commands` are never used
[INFO] [stderr]   --> src/main/controller/commands.rs:26:8
[INFO] [stderr]    |
[INFO] [stderr] 24 | impl Command {
[INFO] [stderr]    | ------------ associated items in this implementation
[INFO] [stderr] 25 |
[INFO] [stderr] 26 |     fn render(&self) -> Vec<Line<'static>> {
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 45 |     pub fn render_commands<'a>(title: &'a str, commands: &'a [Command]) -> Vec<Line<'a>> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/main/view/tui/app.rs:341:8
[INFO] [stderr]     |
[INFO] [stderr]  62 | impl App {
[INFO] [stderr]     | -------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 341 |     fn show_help_message(&mut self) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 355 |     fn generate_board(&mut self, width: usize, height: usize, 
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 366 |     fn redo(&mut self) {
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 370 |     fn undo(&mut self) {
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 374 |     fn save_game(&mut self) {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 377 |     fn load_game(&mut self) {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 381 |     fn exit(&mut self) {
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 385 |     fn help_text() -> Text<'static> {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 398 |     fn centered_rect(percent_x: u16, percent_y: u16, r: Rect) -> Rect {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `is_victory`, `to_xml`, and `from_xml` are never used
[INFO] [stderr]    --> src/main/model/board.rs:97:8
[INFO] [stderr]     |
[INFO] [stderr]  18 | impl Board {
[INFO] [stderr]     | ---------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  97 |     fn is_victory(&self) -> bool {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 103 |     fn to_xml(&self) -> Element {
[INFO] [stderr]     |        ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 115 |     fn from_xml(elem: &Element) -> Result<Self> {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Game` is never constructed
[INFO] [stderr]  --> src/main/game.rs:4:12
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub struct Game {
[INFO] [stderr]   |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `turn` is never used
[INFO] [stderr]   --> src/main/game.rs:10:12
[INFO] [stderr]    |
[INFO] [stderr]  9 | impl Game {
[INFO] [stderr]    | --------- method in this implementation
[INFO] [stderr] 10 |     pub fn turn(&mut self, x: usize, y: usize) {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `winesmeeper-rust` (bin "winesmeeper-rust" test) generated 21 warnings (run `cargo fix --bin "winesmeeper-rust" -p winesmeeper-rust --tests` to apply 6 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.14s
[INFO] [stderr]      Running unittests src/main/main.rs (/opt/rustwide/target/debug/deps/winesmeeper_rust-ec184a367264b52c)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test view::tui::app::tests::handle_key_event ... ok
[INFO] [stdout] test view::tui::app::tests::render ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "396fd98f377913d40b0c0063190d87d6728d257de3501dc92339e051b8e5d21b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "396fd98f377913d40b0c0063190d87d6728d257de3501dc92339e051b8e5d21b", kill_on_drop: false }`
[INFO] [stdout] 396fd98f377913d40b0c0063190d87d6728d257de3501dc92339e051b8e5d21b
