[INFO] cloning repository https://github.com/EdenOttleyHodgson/EdenChess
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/EdenOttleyHodgson/EdenChess" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEdenOttleyHodgson%2FEdenChess", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEdenOttleyHodgson%2FEdenChess'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 52ad5150b8404cd8c591795cd69c585742ba0dee
[INFO] checking EdenOttleyHodgson/EdenChess against master#bca37a20bd376ce3fd138e7cdee7fe704e0f8814 for pr-139493-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEdenOttleyHodgson%2FEdenChess" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/EdenOttleyHodgson/EdenChess
[INFO] finished tweaking git repo https://github.com/EdenOttleyHodgson/EdenChess
[INFO] tweaked toml for git repo https://github.com/EdenOttleyHodgson/EdenChess written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/EdenOttleyHodgson/EdenChess on toolchain bca37a20bd376ce3fd138e7cdee7fe704e0f8814
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/EdenOttleyHodgson/EdenChess 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" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded strum v0.26.2
[INFO] [stderr]   Downloaded stability v0.2.0
[INFO] [stderr]   Downloaded either v1.11.0
[INFO] [stderr]   Downloaded rustversion v1.0.17
[INFO] [stderr]   Downloaded lru v0.12.3
[INFO] [stderr]   Downloaded convert_case v0.4.0
[INFO] [stderr]   Downloaded indenter v0.3.3
[INFO] [stderr]   Downloaded android-tzdata v0.1.1
[INFO] [stderr]   Downloaded strum_macros v0.26.2
[INFO] [stderr]   Downloaded tracing-error v0.2.0
[INFO] [stderr]   Downloaded autocfg v1.2.0
[INFO] [stderr]   Downloaded eyre v0.6.12
[INFO] [stderr]   Downloaded rustc-demangle v0.1.24
[INFO] [stderr]   Downloaded compact_str v0.7.1
[INFO] [stderr]   Downloaded iana-time-zone v0.1.60
[INFO] [stderr]   Downloaded proc-macro2 v1.0.79
[INFO] [stderr]   Downloaded backtrace v0.3.71
[INFO] [stderr]   Downloaded owo-colors v3.5.0
[INFO] [stderr]   Downloaded cassowary v0.3.0
[INFO] [stderr]   Downloaded crossterm v0.27.0
[INFO] [stderr]   Downloaded color-spantrace v0.2.1
[INFO] [stderr]   Downloaded syn v2.0.58
[INFO] [stderr]   Downloaded chrono v0.4.38
[INFO] [stderr]   Downloaded nu-ansi-term v0.49.0
[INFO] [stderr]   Downloaded castaway v0.2.2
[INFO] [stderr]   Downloaded flexi_logger v0.28.0
[INFO] [stderr]   Downloaded is-terminal v0.4.12
[INFO] [stderr]   Downloaded iana-time-zone-haiku v0.1.2
[INFO] [stderr]   Downloaded indoc v2.0.5
[INFO] [stderr]   Downloaded ratatui v0.26.2
[INFO] [stderr]   Downloaded color-eyre v0.6.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2c301bba26209ab9feb06c6c3eee173ad48b122fb581360c8a0885faa3ad7e8b
[INFO] running `Command { std: "docker" "start" "-a" "2c301bba26209ab9feb06c6c3eee173ad48b122fb581360c8a0885faa3ad7e8b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2c301bba26209ab9feb06c6c3eee173ad48b122fb581360c8a0885faa3ad7e8b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2c301bba26209ab9feb06c6c3eee173ad48b122fb581360c8a0885faa3ad7e8b", kill_on_drop: false }`
[INFO] [stdout] 2c301bba26209ab9feb06c6c3eee173ad48b122fb581360c8a0885faa3ad7e8b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 86962aea37676da254b6a96f6b954de932a5304cda642ed7599b7c835f6d4d65
[INFO] running `Command { std: "docker" "start" "-a" "86962aea37676da254b6a96f6b954de932a5304cda642ed7599b7c835f6d4d65", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.79
[INFO] [stderr]    Compiling autocfg v1.2.0
[INFO] [stderr]     Checking memchr v2.7.2
[INFO] [stderr]    Compiling rustversion v1.0.17
[INFO] [stderr]     Checking tracing-core v0.1.32
[INFO] [stderr]    Compiling ahash v0.8.11
[INFO] [stderr]     Checking log v0.4.21
[INFO] [stderr]     Checking signal-hook-registry v1.4.1
[INFO] [stderr]     Checking sharded-slab v0.1.7
[INFO] [stderr]     Checking thread_local v1.1.8
[INFO] [stderr]    Compiling cc v1.0.98
[INFO] [stderr]     Checking pin-project-lite v0.2.14
[INFO] [stderr]    Compiling lock_api v0.4.11
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking smallvec v1.13.2
[INFO] [stderr]     Checking tracing v0.1.40
[INFO] [stderr]     Checking parking_lot_core v0.9.9
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]     Checking signal-hook v0.3.17
[INFO] [stderr]     Checking mio v0.8.11
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking tracing-subscriber v0.3.18
[INFO] [stderr]     Checking allocator-api2 v0.2.16
[INFO] [stderr]    Compiling quote v1.0.35
[INFO] [stderr]    Compiling thiserror v1.0.61
[INFO] [stderr]     Checking regex-syntax v0.8.3
[INFO] [stderr]    Compiling paste v1.0.14
[INFO] [stderr]    Compiling syn v2.0.58
[INFO] [stderr]    Compiling eyre v0.6.12
[INFO] [stderr]     Checking gimli v0.28.1
[INFO] [stderr]     Checking miniz_oxide v0.7.3
[INFO] [stderr]     Checking hashbrown v0.14.3
[INFO] [stderr]     Checking signal-hook-mio v0.2.3
[INFO] [stderr]     Checking parking_lot v0.12.1
[INFO] [stderr]     Checking castaway v0.2.2
[INFO] [stderr]    Compiling backtrace v0.3.71
[INFO] [stderr]     Checking object v0.32.2
[INFO] [stderr]     Checking rustc-demangle v0.1.24
[INFO] [stderr]     Checking owo-colors v3.5.0
[INFO] [stderr]     Checking tracing-error v0.2.0
[INFO] [stderr]     Checking iana-time-zone v0.1.60
[INFO] [stderr]     Checking ryu v1.0.18
[INFO] [stderr]     Checking either v1.11.0
[INFO] [stderr]     Checking static_assertions v1.1.0
[INFO] [stderr]     Checking indenter v0.3.3
[INFO] [stderr]     Checking bitflags v2.5.0
[INFO] [stderr]     Checking itoa v1.0.11
[INFO] [stderr]     Checking itertools v0.12.1
[INFO] [stderr]     Checking compact_str v0.7.1
[INFO] [stderr]     Checking crossterm v0.27.0
[INFO] [stderr]     Checking color-spantrace v0.2.1
[INFO] [stderr]     Checking chrono v0.4.38
[INFO] [stderr]     Checking lru v0.12.3
[INFO] [stderr]     Checking regex-automata v0.4.6
[INFO] [stderr]     Checking is-terminal v0.4.12
[INFO] [stderr]     Checking unicode-segmentation v1.11.0
[INFO] [stderr]    Compiling convert_case v0.4.0
[INFO] [stderr]     Checking glob v0.3.1
[INFO] [stderr]     Checking addr2line v0.21.0
[INFO] [stderr]     Checking cassowary v0.3.0
[INFO] [stderr]    Compiling indoc v2.0.5
[INFO] [stderr]     Checking nu-ansi-term v0.49.0
[INFO] [stderr]     Checking color-eyre v0.6.3
[INFO] [stderr]     Checking regex v1.10.4
[INFO] [stderr]    Compiling strum_macros v0.26.2
[INFO] [stderr]    Compiling thiserror-impl v1.0.61
[INFO] [stderr]    Compiling stability v0.2.0
[INFO] [stderr]    Compiling derive_more v0.99.17
[INFO] [stderr]     Checking flexi_logger v0.28.0
[INFO] [stderr]     Checking strum v0.26.2
[INFO] [stderr]     Checking ratatui v0.26.2
[INFO] [stderr]     Checking eden_chess v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `derive_more::Display`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use derive_more::Display;
[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: `ui::init_ui`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use ui::init_ui;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `iter::zip`
[INFO] [stdout]  --> src/control.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     iter::zip,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]   --> src/control.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | use log::{debug, warn};
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ratatui::layout::Positions`
[INFO] [stdout]   --> src/control.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use ratatui::layout::Positions;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]    --> src/model/mod.rs:349:24
[INFO] [stdout]     |
[INFO] [stdout] 349 |             for col in ('a'..='h') {
[INFO] [stdout]     |                        ^         ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 349 -             for col in ('a'..='h') {
[INFO] [stdout] 349 +             for col in 'a'..='h' {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `future`
[INFO] [stdout]    --> src/model/mod.rs:805:15
[INFO] [stdout]     |
[INFO] [stdout] 805 |     use std::{future, thread::JoinHandle};
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Result` and `collections::HashMap`
[INFO] [stdout]  --> src/ui/mod.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     collections::HashMap,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 3 |     io::{self, Result},
[INFO] [stdout]   |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cursor`
[INFO] [stdout]  --> src/ui/mod.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     cursor,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Paragraph`
[INFO] [stdout]   --> src/ui/mod.rs:20:31
[INFO] [stdout]    |
[INFO] [stdout] 20 |     widgets::{Block, Padding, Paragraph},
[INFO] [stdout]    |                               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::control`
[INFO] [stdout]  --> src/ui/chessboard.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::control;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `color_eyre::owo_colors::Color as BadColor2`
[INFO] [stdout]  --> src/ui/chessboard.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use color_eyre::owo_colors::Color as BadColor2;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::debug`
[INFO] [stdout]   --> src/ui/chessboard.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use log::debug;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::info`
[INFO] [stdout]   --> src/ui/chessboard.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use log::info;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::warn`
[INFO] [stdout]   --> src/ui/chessboard.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use log::warn;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ratatui::widgets as w`
[INFO] [stdout]   --> src/ui/chessboard.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use ratatui::widgets as w;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ratatui::widgets::Block`
[INFO] [stdout]   --> src/ui/chessboard.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use ratatui::widgets::Block;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]   --> src/ui/chessboard.rs:67:20
[INFO] [stdout]    |
[INFO] [stdout] 67 |         for row in (0..=8) {
[INFO] [stdout]    |                    ^     ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 67 -         for row in (0..=8) {
[INFO] [stdout] 67 +         for row in 0..=8  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `derive_more::Display`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use derive_more::Display;
[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: `ui::init_ui`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use ui::init_ui;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `iter::zip`
[INFO] [stdout]  --> src/control.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     iter::zip,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]   --> src/control.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | use log::{debug, warn};
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ratatui::layout::Positions`
[INFO] [stdout]   --> src/control.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use ratatui::layout::Positions;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `channel`, `thread`, and `time::Duration`
[INFO] [stdout]  --> src/model/mod.rs:7:18
[INFO] [stdout]   |
[INFO] [stdout] 7 |     sync::mpsc::{channel, Receiver, Sender},
[INFO] [stdout]   |                  ^^^^^^^
[INFO] [stdout] 8 |     thread,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 9 |     time::Duration,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]    --> src/model/mod.rs:349:24
[INFO] [stdout]     |
[INFO] [stdout] 349 |             for col in ('a'..='h') {
[INFO] [stdout]     |                        ^         ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 349 -             for col in ('a'..='h') {
[INFO] [stdout] 349 +             for col in 'a'..='h' {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Result` and `collections::HashMap`
[INFO] [stdout]  --> src/ui/mod.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     collections::HashMap,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 3 |     io::{self, Result},
[INFO] [stdout]   |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cursor`
[INFO] [stdout]  --> src/ui/mod.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     cursor,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Paragraph`
[INFO] [stdout]   --> src/ui/mod.rs:20:31
[INFO] [stdout]    |
[INFO] [stdout] 20 |     widgets::{Block, Padding, Paragraph},
[INFO] [stdout]    |                               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::control`
[INFO] [stdout]  --> src/ui/chessboard.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::control;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `color_eyre::owo_colors::Color as BadColor2`
[INFO] [stdout]  --> src/ui/chessboard.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use color_eyre::owo_colors::Color as BadColor2;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::debug`
[INFO] [stdout]   --> src/ui/chessboard.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use log::debug;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::info`
[INFO] [stdout]   --> src/ui/chessboard.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use log::info;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::warn`
[INFO] [stdout]   --> src/ui/chessboard.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use log::warn;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ratatui::widgets as w`
[INFO] [stdout]   --> src/ui/chessboard.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use ratatui::widgets as w;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ratatui::widgets::Block`
[INFO] [stdout]   --> src/ui/chessboard.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use ratatui::widgets::Block;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]   --> src/ui/chessboard.rs:67:20
[INFO] [stdout]    |
[INFO] [stdout] 67 |         for row in (0..=8) {
[INFO] [stdout]    |                    ^     ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 67 -         for row in (0..=8) {
[INFO] [stdout] 67 +         for row in 0..=8  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Write`
[INFO] [stdout]  --> src/control.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 |     fmt::{Debug, Write},
[INFO] [stdout]   |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `color_eyre::owo_colors::OwoColorize`
[INFO] [stdout]  --> src/ui/chessboard.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use color_eyre::owo_colors::OwoColorize as BadColor;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Write`
[INFO] [stdout]  --> src/control.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 |     fmt::{Debug, Write},
[INFO] [stdout]   |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `color_eyre::owo_colors::OwoColorize`
[INFO] [stdout]  --> src/ui/chessboard.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use color_eyre::owo_colors::OwoColorize as BadColor;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]   --> src/model/mod.rs:70:36
[INFO] [stdout]    |
[INFO] [stdout] 70 |             UiMsg::CheckValidMove((from, to)) => todo!(),
[INFO] [stdout]    |                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]   --> src/model/mod.rs:70:42
[INFO] [stdout]    |
[INFO] [stdout] 70 |             UiMsg::CheckValidMove((from, to)) => todo!(),
[INFO] [stdout]    |                                          ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/model/mod.rs:97:17
[INFO] [stdout]    |
[INFO] [stdout] 97 |             let mut new_board = self.simulate_move(from, to);
[INFO] [stdout]    |                 ----^^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]   --> src/model/mod.rs:70:36
[INFO] [stdout]    |
[INFO] [stdout] 70 |             UiMsg::CheckValidMove((from, to)) => todo!(),
[INFO] [stdout]    |                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]   --> src/model/mod.rs:70:42
[INFO] [stdout]    |
[INFO] [stdout] 70 |             UiMsg::CheckValidMove((from, to)) => todo!(),
[INFO] [stdout]    |                                          ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/model/mod.rs:97:17
[INFO] [stdout]    |
[INFO] [stdout] 97 |             let mut new_board = self.simulate_move(from, to);
[INFO] [stdout]    |                 ----^^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/model/mod.rs:238:13
[INFO] [stdout]     |
[INFO] [stdout] 238 |         let mut board = board_setup();
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `board`
[INFO] [stdout]    --> src/model/mod.rs:342:13
[INFO] [stdout]     |
[INFO] [stdout] 342 |         let board = &self.0;
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_board`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/model/mod.rs:238:13
[INFO] [stdout]     |
[INFO] [stdout] 238 |         let mut board = board_setup();
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/model/mod.rs:572:13
[INFO] [stdout]     |
[INFO] [stdout] 572 |         let mut moves = match self.piece_type {
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `board`
[INFO] [stdout]    --> src/model/mod.rs:342:13
[INFO] [stdout]     |
[INFO] [stdout] 342 |         let board = &self.0;
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_board`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `board`
[INFO] [stdout]    --> src/model/mod.rs:721:42
[INFO] [stdout]     |
[INFO] [stdout] 721 |     fn get_available_castle_moves(&self, board: &Board) -> Vec<CBPosition> {
[INFO] [stdout]     |                                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_board`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/model/mod.rs:572:13
[INFO] [stdout]     |
[INFO] [stdout] 572 |         let mut moves = match self.piece_type {
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `board`
[INFO] [stdout]    --> src/model/mod.rs:721:42
[INFO] [stdout]     |
[INFO] [stdout] 721 |     fn get_available_castle_moves(&self, board: &Board) -> Vec<CBPosition> {
[INFO] [stdout]     |                                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_board`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ui/chessboard.rs:132:13
[INFO] [stdout]     |
[INFO] [stdout] 132 |         let mut square_text = square_text.to_string();
[INFO] [stdout]     |             ----^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ui/chessboard.rs:132:13
[INFO] [stdout]     |
[INFO] [stdout] 132 |         let mut square_text = square_text.to_string();
[INFO] [stdout]     |             ----^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]    --> src/ui/mod.rs:103:43
[INFO] [stdout]     |
[INFO] [stdout] 103 |             let valid_moves = if let Some(p) = self.square_selected {
[INFO] [stdout]     |                                           ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]    --> src/ui/mod.rs:103:43
[INFO] [stdout]     |
[INFO] [stdout] 103 |             let valid_moves = if let Some(p) = self.square_selected {
[INFO] [stdout]     |                                           ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `piece`
[INFO] [stdout]    --> src/ui/mod.rs:186:25
[INFO] [stdout]     |
[INFO] [stdout] 186 |             if let Some(piece) = board.get(&selected).expect("Selected should be in board") {
[INFO] [stdout]     |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_piece`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `move_str`
[INFO] [stdout]    --> src/ui/mod.rs:187:21
[INFO] [stdout]     |
[INFO] [stdout] 187 |                 let move_str = String::new();
[INFO] [stdout]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_move_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `piece`
[INFO] [stdout]    --> src/ui/mod.rs:186:25
[INFO] [stdout]     |
[INFO] [stdout] 186 |             if let Some(piece) = board.get(&selected).expect("Selected should be in board") {
[INFO] [stdout]     |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_piece`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `move_str`
[INFO] [stdout]    --> src/ui/mod.rs:187:21
[INFO] [stdout]     |
[INFO] [stdout] 187 |                 let move_str = String::new();
[INFO] [stdout]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_move_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UpDown` is never used
[INFO] [stdout]    --> src/control.rs:340:6
[INFO] [stdout]     |
[INFO] [stdout] 340 | enum UpDown {
[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 `LeftRight` is never used
[INFO] [stdout]    --> src/control.rs:345:6
[INFO] [stdout]     |
[INFO] [stdout] 345 | enum LeftRight {
[INFO] [stdout]     |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_init` is never used
[INFO] [stdout]   --> src/main.rs:45:4
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn test_init() {
[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 `UpDown` is never used
[INFO] [stdout]    --> src/control.rs:340:6
[INFO] [stdout]     |
[INFO] [stdout] 340 | enum UpDown {
[INFO] [stdout]     |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `relative_direction` is never used
[INFO] [stdout]    --> src/control.rs:352:12
[INFO] [stdout]     |
[INFO] [stdout] 351 | impl Direction {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] 352 |     pub fn relative_direction(anchor: CBPosition, relative: CBPosition) -> Direction {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LeftRight` is never used
[INFO] [stdout]    --> src/control.rs:345:6
[INFO] [stdout]     |
[INFO] [stdout] 345 | enum LeftRight {
[INFO] [stdout]     |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_if_exists` is never used
[INFO] [stdout]    --> src/control.rs:387:8
[INFO] [stdout]     |
[INFO] [stdout] 387 | pub fn push_if_exists<T>(vec: &mut Vec<T>, new_obj: Option<T>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `relative_direction` is never used
[INFO] [stdout]    --> src/control.rs:352:12
[INFO] [stdout]     |
[INFO] [stdout] 351 | impl Direction {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] 352 |     pub fn relative_direction(anchor: CBPosition, relative: CBPosition) -> Direction {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_if_exists` is never used
[INFO] [stdout]    --> src/control.rs:387:8
[INFO] [stdout]     |
[INFO] [stdout] 387 | pub fn push_if_exists<T>(vec: &mut Vec<T>, new_obj: Option<T>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Debug`, `CheckValidMove`, and `Quit` are never constructed
[INFO] [stdout]    --> src/control.rs:396:5
[INFO] [stdout]     |
[INFO] [stdout] 395 | pub enum UiMsg {
[INFO] [stdout]     |          ----- variants in this enum
[INFO] [stdout] 396 |     Debug(&'static str),
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 397 |     CheckValidMove((CBPosition, CBPosition)),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 401 |     Quit,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UiMsg` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Debug`, `CheckValidMove`, and `Quit` are never constructed
[INFO] [stdout]    --> src/control.rs:396:5
[INFO] [stdout]     |
[INFO] [stdout] 395 | pub enum UiMsg {
[INFO] [stdout]     |          ----- variants in this enum
[INFO] [stdout] 396 |     Debug(&'static str),
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 397 |     CheckValidMove((CBPosition, CBPosition)),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 401 |     Quit,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UiMsg` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_println` is never used
[INFO] [stdout]    --> src/control.rs:456:8
[INFO] [stdout]     |
[INFO] [stdout] 456 | pub fn test_println(s: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_dbg` is never used
[INFO] [stdout]    --> src/control.rs:462:8
[INFO] [stdout]     |
[INFO] [stdout] 462 | pub fn test_dbg(s: &impl Debug) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MoveRecord` is never constructed
[INFO] [stdout]   --> src/ui/mod.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 71 | struct MoveRecord<'a> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `add_move_to_move_history` is never used
[INFO] [stdout]    --> src/ui/mod.rs:184:8
[INFO] [stdout]     |
[INFO] [stdout]  78 | impl EdenChessUi {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 184 |     fn add_move_to_move_history(&mut self, selected: CBPosition) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_println` is never used
[INFO] [stdout]    --> src/control.rs:456:8
[INFO] [stdout]     |
[INFO] [stdout] 456 | pub fn test_println(s: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_dbg` is never used
[INFO] [stdout]    --> src/control.rs:462:8
[INFO] [stdout]     |
[INFO] [stdout] 462 | pub fn test_dbg(s: &impl Debug) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MoveRecord` is never constructed
[INFO] [stdout]   --> src/ui/mod.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 71 | struct MoveRecord<'a> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `add_move_to_move_history` is never used
[INFO] [stdout]    --> src/ui/mod.rs:184:8
[INFO] [stdout]     |
[INFO] [stdout]  78 | impl EdenChessUi {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 184 |     fn add_move_to_move_history(&mut self, selected: CBPosition) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/model/mod.rs:82:17
[INFO] [stdout]    |
[INFO] [stdout] 82 | /                 self.ui_sender
[INFO] [stdout] 83 | |                     .send(ModelMsg::BoardState(self.game.board.clone()));
[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] 82 |                 let _ = self.ui_sender
[INFO] [stdout]    |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/model/mod.rs:82:17
[INFO] [stdout]    |
[INFO] [stdout] 82 | /                 self.ui_sender
[INFO] [stdout] 83 | |                     .send(ModelMsg::BoardState(self.game.board.clone()));
[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] 82 |                 let _ = self.ui_sender
[INFO] [stdout]    |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/model/mod.rs:406:25
[INFO] [stdout]     |
[INFO] [stdout] 406 | fn get_all_moves(board: &Board) -> MoveList {
[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] 406 | fn get_all_moves(board: &Board) -> MoveList<'_> {
[INFO] [stdout]     |                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/model/mod.rs:406:25
[INFO] [stdout]     |
[INFO] [stdout] 406 | fn get_all_moves(board: &Board) -> MoveList {
[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] 406 | fn get_all_moves(board: &Board) -> MoveList<'_> {
[INFO] [stdout]     |                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/ui/infobox.rs:16:27
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn new(game_data: &GameData) -> Infobox {
[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] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn new(game_data: &GameData) -> Infobox<'_> {
[INFO] [stdout]    |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/ui/infobox.rs:16:27
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn new(game_data: &GameData) -> Infobox {
[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] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn new(game_data: &GameData) -> Infobox<'_> {
[INFO] [stdout]    |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 43.26s
[INFO] running `Command { std: "docker" "inspect" "86962aea37676da254b6a96f6b954de932a5304cda642ed7599b7c835f6d4d65", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "86962aea37676da254b6a96f6b954de932a5304cda642ed7599b7c835f6d4d65", kill_on_drop: false }`
[INFO] [stdout] 86962aea37676da254b6a96f6b954de932a5304cda642ed7599b7c835f6d4d65
