[INFO] cloning repository https://github.com/ultrabear/aisweeper
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ultrabear/aisweeper" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fultrabear%2Faisweeper", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fultrabear%2Faisweeper'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 4596ce581933999862963d7c1d09d715e78d46f7
[INFO] checking ultrabear/aisweeper against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fultrabear%2Faisweeper" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ultrabear/aisweeper
[INFO] finished tweaking git repo https://github.com/ultrabear/aisweeper
[INFO] tweaked toml for git repo https://github.com/ultrabear/aisweeper written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ultrabear/aisweeper on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ultrabear/aisweeper 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" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded unicode-ident v1.0.0
[INFO] [stderr]   Downloaded crossterm_winapi v0.9.0
[INFO] [stderr]   Downloaded enum-map-derive v0.9.0
[INFO] [stderr]   Downloaded enumset_derive v0.6.0
[INFO] [stderr]   Downloaded signal-hook v0.3.14
[INFO] [stderr]   Downloaded enum-map v2.3.0
[INFO] [stderr]   Downloaded enumset v1.0.11
[INFO] [stderr]   Downloaded proc-macro2 v1.0.39
[INFO] [stderr]   Downloaded cursive v0.18.0
[INFO] [stderr]   Downloaded mio v0.8.3
[INFO] [stderr]   Downloaded crossterm v0.23.2
[INFO] [stderr]   Downloaded cursive_core v0.3.2
[INFO] [stderr]   Downloaded syn v1.0.95
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] eaeb40854fba1c633bb0b2498acd6f5c45cd9993fa8fe56d69942103c33974b4
[INFO] running `Command { std: "docker" "start" "-a" "eaeb40854fba1c633bb0b2498acd6f5c45cd9993fa8fe56d69942103c33974b4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "eaeb40854fba1c633bb0b2498acd6f5c45cd9993fa8fe56d69942103c33974b4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "eaeb40854fba1c633bb0b2498acd6f5c45cd9993fa8fe56d69942103c33974b4", kill_on_drop: false }`
[INFO] [stdout] eaeb40854fba1c633bb0b2498acd6f5c45cd9993fa8fe56d69942103c33974b4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 91122e8d6f8e9e10e4b23779b56b131615930abd8a3bbcbd552f6ee211d6968b
[INFO] running `Command { std: "docker" "start" "-a" "91122e8d6f8e9e10e4b23779b56b131615930abd8a3bbcbd552f6ee211d6968b", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.126
[INFO] [stderr]    Compiling proc-macro2 v1.0.39
[INFO] [stderr]    Compiling unicode-ident v1.0.0
[INFO] [stderr]    Compiling syn v1.0.95
[INFO] [stderr]    Compiling num-traits v0.2.15
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]    Compiling log v0.4.17
[INFO] [stderr]    Compiling lock_api v0.4.7
[INFO] [stderr]    Compiling num-iter v0.1.43
[INFO] [stderr]    Compiling num-rational v0.4.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.8
[INFO] [stderr]    Compiling signal-hook v0.3.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.3
[INFO] [stderr]    Compiling ahash v0.7.6
[INFO] [stderr]     Checking lazy_static v1.4.0
[INFO] [stderr]     Checking scopeguard v1.1.0
[INFO] [stderr]     Checking smallvec v1.8.0
[INFO] [stderr]     Checking itoa v1.0.2
[INFO] [stderr]     Checking num_threads v0.1.6
[INFO] [stderr]     Checking stable_deref_trait v1.2.0
[INFO] [stderr]     Checking once_cell v1.12.0
[INFO] [stderr]     Checking owning_ref v0.4.1
[INFO] [stderr]     Checking unicode-width v0.1.9
[INFO] [stderr]     Checking ppv-lite86 v0.2.16
[INFO] [stderr]     Checking unicode-segmentation v1.9.0
[INFO] [stderr]     Checking xi-unicode v0.3.0
[INFO] [stderr]     Checking getrandom v0.2.6
[INFO] [stderr]     Checking signal-hook-registry v1.4.0
[INFO] [stderr]     Checking mio v0.8.3
[INFO] [stderr]     Checking time v0.3.9
[INFO] [stderr]     Checking parking_lot v0.12.1
[INFO] [stderr]    Compiling quote v1.0.18
[INFO] [stderr]     Checking rand_core v0.6.3
[INFO] [stderr]     Checking crossbeam-channel v0.5.4
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking signal-hook-mio v0.2.3
[INFO] [stderr]     Checking crossterm v0.23.2
[INFO] [stderr]     Checking num-complex v0.4.1
[INFO] [stderr]     Checking num v0.4.0
[INFO] [stderr]    Compiling darling_core v0.13.4
[INFO] [stderr]    Compiling enum-map-derive v0.9.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.31
[INFO] [stderr]     Checking enum-map v2.3.0
[INFO] [stderr]     Checking thiserror v1.0.31
[INFO] [stderr]    Compiling darling_macro v0.13.4
[INFO] [stderr]    Compiling darling v0.13.4
[INFO] [stderr]    Compiling enumset_derive v0.6.0
[INFO] [stderr]     Checking enumset v1.0.11
[INFO] [stderr]     Checking cursive_core v0.3.2
[INFO] [stderr]     Checking cursive v0.18.0
[INFO] [stderr]     Checking aisweeper v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]    --> src/gameboard.rs:179:24
[INFO] [stdout]     |
[INFO] [stdout] 179 |         let flatten = |x, y| ((y * usize::from(self.dimensions().0)) + x);
[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] 179 -         let flatten = |x, y| ((y * usize::from(self.dimensions().0)) + x);
[INFO] [stdout] 179 +         let flatten = |x, y| (y * usize::from(self.dimensions().0)) + x;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]    --> src/gameboard.rs:179:24
[INFO] [stdout]     |
[INFO] [stdout] 179 |         let flatten = |x, y| ((y * usize::from(self.dimensions().0)) + x);
[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] 179 -         let flatten = |x, y| ((y * usize::from(self.dimensions().0)) + x);
[INFO] [stdout] 179 +         let flatten = |x, y| (y * usize::from(self.dimensions().0)) + x;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `populate` and `new` are never used
[INFO] [stdout]    --> src/gameboard.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout]  95 | impl GameBoard {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 137 |     fn populate(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn new(x: u16, y: u16, bombs: u32) -> Result<Self, NewBoardError> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AlreadyOpen` is never constructed
[INFO] [stdout]    --> src/gameboard/tiles.rs:104:19
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub(super) struct AlreadyOpen;
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `swap_flag` is never used
[INFO] [stdout]    --> src/gameboard/tiles.rs:107:16
[INFO] [stdout]     |
[INFO] [stdout] 106 | impl BoardTile {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 107 |     pub(super) fn swap_flag(&mut self) -> Result<(), AlreadyOpen> {
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UndoError` is never used
[INFO] [stdout]   --> src/gameboard/errors.rs:36:10
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub enum UndoError {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new_default` is never used
[INFO] [stdout]   --> src/gameboard/flatboard.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 64 | impl<T: Default> FlatBoard<T> {
[INFO] [stdout]    | ----------------------------- associated function in this implementation
[INFO] [stdout] 65 |     /// generates a new 2d array using T's default method as fill in
[INFO] [stdout] 66 |     pub fn new_default(dim_1: usize, dim_2: usize) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `iter_mut` is never used
[INFO] [stdout]    --> src/gameboard/flatboard.rs:129:9
[INFO] [stdout]     |
[INFO] [stdout]  77 | impl<T> FlatBoard<T> {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn iter_mut(&mut self) -> impl Iterator<Item = &mut Row<T>> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/gameboard/interface.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 |     OpenCell(Box<[(u16, u16)]>),
[INFO] [stdout]   |     -------- ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 8 -     OpenCell(Box<[(u16, u16)]>),
[INFO] [stdout] 8 +     OpenCell(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/gameboard/interface.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 |     ToggleFlagCell(u16, u16),
[INFO] [stdout]    |     -------------- ^^^  ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 10 -     ToggleFlagCell(u16, u16),
[INFO] [stdout] 10 +     ToggleFlagCell((), ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Pause`, `UnPause`, and `Idle` are never constructed
[INFO] [stdout]   --> src/gameboard/interface.rs:34:2
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub enum KeyEvent {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 34 |     Pause,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 35 |     UnPause,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 36 |     Idle,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `KeyEvent` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/gameboard/interface.rs:86:5
[INFO] [stdout]     |
[INFO] [stdout]  79 | pub trait BaseGameBoard: Sized {
[INFO] [stdout]     |           ------------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout]  86 |     fn opened(&self) -> u32;
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     fn flagged(&self) -> u32;
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn undo_move(&mut self, event: &GameBoardEvent) -> Result<(), UndoError>;
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     fn win_game(&mut self) -> Result<(), u32>;
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     fn tiles_left(&self) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     fn unflagged_bombs(&self) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     fn bomb_density(&self) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `init_with_mut`, `must_init_mut`, and `must_init` are never used
[INFO] [stdout]    --> src/lazy.rs:154:5
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl<B: BaseGameBoard> LazyGameBoard<B> {
[INFO] [stdout]     | --------------------------------------- methods in this implementation
[INFO] [stdout] 154 |     fn init_with_mut(&mut self, clearx: u16, cleary: u16) -> &mut B {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     fn must_init_mut(&mut self) -> &mut B {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     fn must_init(&self) -> &B {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]   --> src/logged.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     Mouse1(u16, u16, GameBoardEvent),
[INFO] [stdout]    |     ------ ^^^  ^^^  ^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 14 -     Mouse1(u16, u16, GameBoardEvent),
[INFO] [stdout] 14 +     Mouse1((), (), ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]   --> src/logged.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     Mouse2(u16, u16, GameBoardEvent),
[INFO] [stdout]    |     ------ ^^^  ^^^  ^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 15 -     Mouse2(u16, u16, GameBoardEvent),
[INFO] [stdout] 15 +     Mouse2((), (), ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `time_offset_micros` and `trace` are never read
[INFO] [stdout]   --> src/logged.rs:38:2
[INFO] [stdout]    |
[INFO] [stdout] 37 | struct LogFrame {
[INFO] [stdout]    |        -------- fields in this struct
[INFO] [stdout] 38 |     time_offset_micros: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 39 |     trace: KeyEventEffect,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `start_time` is never read
[INFO] [stdout]   --> src/logged.rs:43:2
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct LoggedGameBoard<GB: BaseGameBoard> {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 43 |     start_time: time::OffsetDateTime,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `populate` and `new` are never used
[INFO] [stdout]    --> src/gameboard.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout]  95 | impl GameBoard {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 137 |     fn populate(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn new(x: u16, y: u16, bombs: u32) -> Result<Self, NewBoardError> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AlreadyOpen` is never constructed
[INFO] [stdout]    --> src/gameboard/tiles.rs:104:19
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub(super) struct AlreadyOpen;
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `swap_flag` is never used
[INFO] [stdout]    --> src/gameboard/tiles.rs:107:16
[INFO] [stdout]     |
[INFO] [stdout] 106 | impl BoardTile {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 107 |     pub(super) fn swap_flag(&mut self) -> Result<(), AlreadyOpen> {
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UndoError` is never used
[INFO] [stdout]   --> src/gameboard/errors.rs:36:10
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub enum UndoError {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new_default` is never used
[INFO] [stdout]   --> src/gameboard/flatboard.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 64 | impl<T: Default> FlatBoard<T> {
[INFO] [stdout]    | ----------------------------- associated function in this implementation
[INFO] [stdout] 65 |     /// generates a new 2d array using T's default method as fill in
[INFO] [stdout] 66 |     pub fn new_default(dim_1: usize, dim_2: usize) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `iter_mut` is never used
[INFO] [stdout]    --> src/gameboard/flatboard.rs:129:9
[INFO] [stdout]     |
[INFO] [stdout]  77 | impl<T> FlatBoard<T> {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn iter_mut(&mut self) -> impl Iterator<Item = &mut Row<T>> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/gameboard/interface.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 |     OpenCell(Box<[(u16, u16)]>),
[INFO] [stdout]   |     -------- ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 8 -     OpenCell(Box<[(u16, u16)]>),
[INFO] [stdout] 8 +     OpenCell(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/gameboard/interface.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 |     ToggleFlagCell(u16, u16),
[INFO] [stdout]    |     -------------- ^^^  ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 10 -     ToggleFlagCell(u16, u16),
[INFO] [stdout] 10 +     ToggleFlagCell((), ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Pause`, `UnPause`, and `Idle` are never constructed
[INFO] [stdout]   --> src/gameboard/interface.rs:34:2
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub enum KeyEvent {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 34 |     Pause,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 35 |     UnPause,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 36 |     Idle,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `KeyEvent` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/gameboard/interface.rs:86:5
[INFO] [stdout]     |
[INFO] [stdout]  79 | pub trait BaseGameBoard: Sized {
[INFO] [stdout]     |           ------------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout]  86 |     fn opened(&self) -> u32;
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     fn flagged(&self) -> u32;
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn undo_move(&mut self, event: &GameBoardEvent) -> Result<(), UndoError>;
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     fn win_game(&mut self) -> Result<(), u32>;
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     fn tiles_left(&self) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     fn unflagged_bombs(&self) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     fn bomb_density(&self) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `init_with_mut`, `must_init_mut`, and `must_init` are never used
[INFO] [stdout]    --> src/lazy.rs:154:5
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl<B: BaseGameBoard> LazyGameBoard<B> {
[INFO] [stdout]     | --------------------------------------- methods in this implementation
[INFO] [stdout] 154 |     fn init_with_mut(&mut self, clearx: u16, cleary: u16) -> &mut B {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     fn must_init_mut(&mut self) -> &mut B {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     fn must_init(&self) -> &B {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]   --> src/logged.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     Mouse1(u16, u16, GameBoardEvent),
[INFO] [stdout]    |     ------ ^^^  ^^^  ^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 14 -     Mouse1(u16, u16, GameBoardEvent),
[INFO] [stdout] 14 +     Mouse1((), (), ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]   --> src/logged.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     Mouse2(u16, u16, GameBoardEvent),
[INFO] [stdout]    |     ------ ^^^  ^^^  ^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 15 -     Mouse2(u16, u16, GameBoardEvent),
[INFO] [stdout] 15 +     Mouse2((), (), ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `time_offset_micros` and `trace` are never read
[INFO] [stdout]   --> src/logged.rs:38:2
[INFO] [stdout]    |
[INFO] [stdout] 37 | struct LogFrame {
[INFO] [stdout]    |        -------- fields in this struct
[INFO] [stdout] 38 |     time_offset_micros: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 39 |     trace: KeyEventEffect,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `start_time` is never read
[INFO] [stdout]   --> src/logged.rs:43:2
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct LoggedGameBoard<GB: BaseGameBoard> {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 43 |     start_time: time::OffsetDateTime,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 14.29s
[INFO] running `Command { std: "docker" "inspect" "91122e8d6f8e9e10e4b23779b56b131615930abd8a3bbcbd552f6ee211d6968b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "91122e8d6f8e9e10e4b23779b56b131615930abd8a3bbcbd552f6ee211d6968b", kill_on_drop: false }`
[INFO] [stdout] 91122e8d6f8e9e10e4b23779b56b131615930abd8a3bbcbd552f6ee211d6968b
