[INFO] cloning repository https://github.com/Amarantheum/AmarChess
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Amarantheum/AmarChess" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAmarantheum%2FAmarChess", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAmarantheum%2FAmarChess'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] b662fcff8424a756a0112dcaf1b629cc359927fa
[INFO] checking Amarantheum/AmarChess against master#3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0 for pr-143164
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAmarantheum%2FAmarChess" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Amarantheum/AmarChess
[INFO] finished tweaking git repo https://github.com/Amarantheum/AmarChess
[INFO] tweaked toml for git repo https://github.com/Amarantheum/AmarChess written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Amarantheum/AmarChess on toolchain 3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Amarantheum/AmarChess 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" "+3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] d7dace0a01d0451d2af8af8bb882f6445bbe2d1e4084cd906d75306557e158be
[INFO] running `Command { std: "docker" "start" "-a" "d7dace0a01d0451d2af8af8bb882f6445bbe2d1e4084cd906d75306557e158be", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d7dace0a01d0451d2af8af8bb882f6445bbe2d1e4084cd906d75306557e158be", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d7dace0a01d0451d2af8af8bb882f6445bbe2d1e4084cd906d75306557e158be", kill_on_drop: false }`
[INFO] [stdout] d7dace0a01d0451d2af8af8bb882f6445bbe2d1e4084cd906d75306557e158be
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 15f6860bf09c982dabbdf8f986cff2baf9984751f129be7a748ab0b89f4ee84a
[INFO] running `Command { std: "docker" "start" "-a" "15f6860bf09c982dabbdf8f986cff2baf9984751f129be7a748ab0b89f4ee84a", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.94
[INFO] [stderr]    Compiling proc-macro2 v1.0.26
[INFO] [stderr]    Compiling syn v1.0.72
[INFO] [stderr]    Compiling miniz_oxide v0.4.4
[INFO] [stderr]    Compiling crossbeam-utils v0.8.4
[INFO] [stderr]    Compiling failure_derive v0.1.8
[INFO] [stderr]    Compiling backtrace v0.3.58
[INFO] [stderr]    Compiling memoffset v0.6.3
[INFO] [stderr]    Compiling adler v1.0.2
[INFO] [stderr]    Compiling rand_core v0.5.1
[INFO] [stderr]    Compiling gimli v0.23.0
[INFO] [stderr]    Compiling object v0.23.0
[INFO] [stderr]    Compiling rustc-demangle v0.1.19
[INFO] [stderr]    Compiling ppv-lite86 v0.2.10
[INFO] [stderr]    Compiling cmake v0.1.45
[INFO] [stderr]    Compiling rayon-core v1.9.0
[INFO] [stderr]    Compiling rand_pcg v0.2.1
[INFO] [stderr]    Compiling rand_chacha v0.2.2
[INFO] [stderr]    Compiling rayon v1.5.0
[INFO] [stderr]     Checking arrayvec v0.5.2
[INFO] [stderr]     Checking nodrop v0.1.14
[INFO] [stderr]    Compiling rand v0.7.3
[INFO] [stderr]    Compiling fltk-sys v1.0.8
[INFO] [stderr]    Compiling quote v1.0.9
[INFO] [stderr]     Checking num_cpus v1.13.0
[INFO] [stderr]     Checking raw-window-handle v0.3.3
[INFO] [stderr]     Checking crossbeam-epoch v0.9.4
[INFO] [stderr]     Checking crossbeam-channel v0.5.1
[INFO] [stderr]     Checking crossbeam-deque v0.8.0
[INFO] [stderr]    Compiling addr2line v0.14.1
[INFO] [stderr]    Compiling synstructure v0.12.4
[INFO] [stderr]    Compiling fltk-derive v1.0.8
[INFO] [stderr]    Compiling failure v0.1.8
[INFO] [stderr]    Compiling chess v3.2.0
[INFO] [stderr]     Checking fltk v1.0.8
[INFO] [stderr]     Checking amar_chess v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `app::Sender`
[INFO] [stdout]  --> src/main.rs:2:73
[INFO] [stdout]   |
[INFO] [stdout] 2 | use fltk::{button::Button, enums::Event, frame::Frame, image::SvgImage, app::Sender};
[INFO] [stdout]   |                                                                         ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str::FromStr`
[INFO] [stdout]  --> src/main.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::str::FromStr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::engine::*`
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::engine::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc` and `Mutex`
[INFO] [stdout]  --> src/engine/mod.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::{Arc, Mutex};
[INFO] [stdout]   |                 ^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `counts::*`
[INFO] [stdout]  --> src/engine/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use counts::*;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `negamax::*`
[INFO] [stdout]  --> src/engine/mod.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use negamax::*;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc` and `Mutex`
[INFO] [stdout]  --> src/engine/negamax.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::{Arc, Mutex};
[INFO] [stdout]   |                 ^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `min`
[INFO] [stdout]  --> src/engine/negamax.rs:4:21
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::cmp::{max, min};
[INFO] [stdout]   |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc` and `Mutex`
[INFO] [stdout]  --> src/engine/counts.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::{Arc, Mutex};
[INFO] [stdout]   |                 ^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `app::Sender`
[INFO] [stdout]  --> src/main.rs:2:73
[INFO] [stdout]   |
[INFO] [stdout] 2 | use fltk::{button::Button, enums::Event, frame::Frame, image::SvgImage, app::Sender};
[INFO] [stdout]   |                                                                         ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str::FromStr`
[INFO] [stdout]  --> src/main.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::str::FromStr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::engine::*`
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::engine::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc` and `Mutex`
[INFO] [stdout]  --> src/engine/mod.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::{Arc, Mutex};
[INFO] [stdout]   |                 ^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc` and `Mutex`
[INFO] [stdout]  --> src/engine/negamax.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::{Arc, Mutex};
[INFO] [stdout]   |                 ^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `min`
[INFO] [stdout]  --> src/engine/negamax.rs:4:21
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::cmp::{max, min};
[INFO] [stdout]   |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc` and `Mutex`
[INFO] [stdout]  --> src/engine/counts.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::{Arc, Mutex};
[INFO] [stdout]   |                 ^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::prelude`
[INFO] [stdout]  --> src/engine/counts.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::prelude`
[INFO] [stdout]  --> src/engine/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `eg_factor`
[INFO] [stdout]   --> src/engine/negamax.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let eg_factor = (board.combined() ^ board.pieces(Piece::Pawn)).popcnt(); // 0 - 16 (or more)
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_eg_factor`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `white_pawns_combined` is assigned to, but never used
[INFO] [stdout]   --> src/engine/negamax.rs:33:13
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let mut white_pawns_combined = 0;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_white_pawns_combined` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row_7`
[INFO] [stdout]   --> src/engine/negamax.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |     let row_7 = (white_pawns.0 >> 56 & 255) as u8;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_row_7`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row_6`
[INFO] [stdout]   --> src/engine/negamax.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let row_6 = (white_pawns.0 >> 48 & 255) as u8;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_row_6`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row_5`
[INFO] [stdout]   --> src/engine/negamax.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let row_5 = (white_pawns.0 >> 40 & 255) as u8;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_row_5`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row_4`
[INFO] [stdout]   --> src/engine/negamax.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |     let row_4 = (white_pawns.0 >> 32 & 255) as u8;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_row_4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row_3`
[INFO] [stdout]   --> src/engine/negamax.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |     let row_3 = (white_pawns.0 >> 24 & 255) as u8;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_row_3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row_2`
[INFO] [stdout]   --> src/engine/negamax.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let row_2 = (white_pawns.0 >> 16 & 255) as u8;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_row_2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/main.rs:168:17
[INFO] [stdout]     |
[INFO] [stdout] 168 |                 _ => unimplemented!("unimplemented event")
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/main.rs:168:17
[INFO] [stdout]     |
[INFO] [stdout] 92  |                 SquareMessage::Click(s) => {
[INFO] [stdout]     |                 ----------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 146 |                 SquareMessage::Drag(s) => {
[INFO] [stdout]     |                 ---------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 157 |                 SquareMessage::Released(s) => {
[INFO] [stdout]     |                 -------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 168 |                 _ => unimplemented!("unimplemented event")
[INFO] [stdout]     |                 ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/main.rs:146:37
[INFO] [stdout]     |
[INFO] [stdout] 146 |                 SquareMessage::Drag(s) => {
[INFO] [stdout]     |                                     ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/main.rs:157:41
[INFO] [stdout]     |
[INFO] [stdout] 157 |                 SquareMessage::Released(s) => {
[INFO] [stdout]     |                                         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/main.rs:54:31
[INFO] [stdout]    |
[INFO] [stdout] 54 |     button.set_callback(move |b| {
[INFO] [stdout]    |                               ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_board` is never used
[INFO] [stdout]   --> src/engine/mod.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn evaluate_board(board: &Board, move_color: bool) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_piece_values` is never used
[INFO] [stdout]   --> src/engine/mod.rs:37:4
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn get_piece_values(board: &Board, color: Color) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_best_move_iterative` is never used
[INFO] [stdout]   --> src/engine/mod.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn find_best_move_iterative(board: Board, depth: usize, move_color: bool) -> ChessMove {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_best_move_single` is never used
[INFO] [stdout]    --> src/engine/mod.rs:120:8
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub fn find_best_move_single(board: Board, depth: usize, move_color: bool) -> ChessMove { 
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_best_move_sorted_moves` is never used
[INFO] [stdout]    --> src/engine/mod.rs:182:4
[INFO] [stdout]     |
[INFO] [stdout] 182 | fn find_best_move_sorted_moves(board: Board, depth: usize, move_color: bool, moves: Vec<ChessMove>) -> Vec<ChessMove> { 
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_board_improved` is never used
[INFO] [stdout]   --> src/engine/negamax.rs:19:4
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn evaluate_board_improved(board: &Board) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `negamax` is never used
[INFO] [stdout]   --> src/engine/negamax.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn negamax(board: Board, depth: i8, mut alpha: i32, beta: i32, color: i32) -> i32 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `negamax_transposition` is never used
[INFO] [stdout]   --> src/engine/negamax.rs:89:8
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub fn negamax_transposition(board: &Board, depth: i8, mut alpha: i32, beta: i32, color: i32, table: &mut HashMap<u64, (i32, i8)>) -> i32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_best_move_nega` is never used
[INFO] [stdout]    --> src/engine/negamax.rs:187:8
[INFO] [stdout]     |
[INFO] [stdout] 187 | pub fn find_best_move_nega(board: Board, depth: i8) -> ChessMove {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_best_move_nega_transposition` is never used
[INFO] [stdout]    --> src/engine/negamax.rs:212:8
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub fn find_best_move_nega_transposition(board: Board, depth: i8) -> ChessMove {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_best_move_nega_moves` is never used
[INFO] [stdout]    --> src/engine/negamax.rs:238:8
[INFO] [stdout]     |
[INFO] [stdout] 238 | pub fn find_best_move_nega_moves(board: Board, depth: i8, moves: Vec<ChessMove>) -> Vec<ChessMove> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_best_move_nega_iterative` is never used
[INFO] [stdout]    --> src/engine/negamax.rs:268:8
[INFO] [stdout]     |
[INFO] [stdout] 268 | pub fn find_best_move_nega_iterative(board: Board, depth: i8) -> ChessMove {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_best_move_nega_moves_transposition` is never used
[INFO] [stdout]    --> src/engine/negamax.rs:278:8
[INFO] [stdout]     |
[INFO] [stdout] 278 | pub fn find_best_move_nega_moves_transposition(board: &Board, depth: i8, moves: Vec<ChessMove>) -> Vec<ChessMove> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_best_move_nega_iterative_transposition` is never used
[INFO] [stdout]    --> src/engine/negamax.rs:307:8
[INFO] [stdout]     |
[INFO] [stdout] 307 | pub fn find_best_move_nega_iterative_transposition(board: Board, depth: i8) -> ChessMove {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_best_move_single_count` is never used
[INFO] [stdout]  --> src/engine/counts.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn find_best_move_single_count(board: Board, depth: usize, move_color: bool) -> ChessMove { 
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_best_move_iterative_count` is never used
[INFO] [stdout]   --> src/engine/counts.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn find_best_move_iterative_count(board: Board, depth: usize, move_color: bool) -> ChessMove {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `mouse_drag_frame` is never read
[INFO] [stdout]   --> src/ui_square.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Square {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub mouse_drag_frame: Arc<Mutex<Frame>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Square` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::prelude`
[INFO] [stdout]  --> src/engine/counts.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::prelude`
[INFO] [stdout]  --> src/engine/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `eg_factor`
[INFO] [stdout]   --> src/engine/negamax.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let eg_factor = (board.combined() ^ board.pieces(Piece::Pawn)).popcnt(); // 0 - 16 (or more)
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_eg_factor`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `white_pawns_combined` is assigned to, but never used
[INFO] [stdout]   --> src/engine/negamax.rs:33:13
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let mut white_pawns_combined = 0;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_white_pawns_combined` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row_7`
[INFO] [stdout]   --> src/engine/negamax.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |     let row_7 = (white_pawns.0 >> 56 & 255) as u8;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_row_7`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row_6`
[INFO] [stdout]   --> src/engine/negamax.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let row_6 = (white_pawns.0 >> 48 & 255) as u8;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_row_6`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row_5`
[INFO] [stdout]   --> src/engine/negamax.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let row_5 = (white_pawns.0 >> 40 & 255) as u8;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_row_5`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row_4`
[INFO] [stdout]   --> src/engine/negamax.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |     let row_4 = (white_pawns.0 >> 32 & 255) as u8;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_row_4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row_3`
[INFO] [stdout]   --> src/engine/negamax.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |     let row_3 = (white_pawns.0 >> 24 & 255) as u8;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_row_3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row_2`
[INFO] [stdout]   --> src/engine/negamax.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let row_2 = (white_pawns.0 >> 16 & 255) as u8;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_row_2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `best`
[INFO] [stdout]    --> src/engine/mod.rs:323:13
[INFO] [stdout]     |
[INFO] [stdout] 323 |         let best = find_best_move_single_count(board, 4, true);
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_best`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `best`
[INFO] [stdout]    --> src/engine/mod.rs:327:13
[INFO] [stdout]     |
[INFO] [stdout] 327 |         let best = find_best_move_single_count(board, 4, false);
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_best`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `best`
[INFO] [stdout]    --> src/engine/mod.rs:331:13
[INFO] [stdout]     |
[INFO] [stdout] 331 |         let best = find_best_move_single_count(board, 4, true);
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_best`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `best`
[INFO] [stdout]    --> src/engine/mod.rs:332:13
[INFO] [stdout]     |
[INFO] [stdout] 332 |         let best = find_best_move_iterative_count(board, 6, true);
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_best`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/main.rs:168:17
[INFO] [stdout]     |
[INFO] [stdout] 168 |                 _ => unimplemented!("unimplemented event")
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/main.rs:168:17
[INFO] [stdout]     |
[INFO] [stdout] 92  |                 SquareMessage::Click(s) => {
[INFO] [stdout]     |                 ----------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 146 |                 SquareMessage::Drag(s) => {
[INFO] [stdout]     |                 ---------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 157 |                 SquareMessage::Released(s) => {
[INFO] [stdout]     |                 -------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 168 |                 _ => unimplemented!("unimplemented event")
[INFO] [stdout]     |                 ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/main.rs:146:37
[INFO] [stdout]     |
[INFO] [stdout] 146 |                 SquareMessage::Drag(s) => {
[INFO] [stdout]     |                                     ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/main.rs:157:41
[INFO] [stdout]     |
[INFO] [stdout] 157 |                 SquareMessage::Released(s) => {
[INFO] [stdout]     |                                         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/main.rs:54:31
[INFO] [stdout]    |
[INFO] [stdout] 54 |     button.set_callback(move |b| {
[INFO] [stdout]    |                               ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_best_move_sorted_moves` is never used
[INFO] [stdout]    --> src/engine/mod.rs:182:4
[INFO] [stdout]     |
[INFO] [stdout] 182 | fn find_best_move_sorted_moves(board: Board, depth: usize, move_color: bool, moves: Vec<ChessMove>) -> Vec<ChessMove> { 
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_board_improved` is never used
[INFO] [stdout]   --> src/engine/negamax.rs:19:4
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn evaluate_board_improved(board: &Board) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `mouse_drag_frame` is never read
[INFO] [stdout]   --> src/ui_square.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Square {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub mouse_drag_frame: Arc<Mutex<Frame>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Square` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 41s
[INFO] running `Command { std: "docker" "inspect" "15f6860bf09c982dabbdf8f986cff2baf9984751f129be7a748ab0b89f4ee84a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "15f6860bf09c982dabbdf8f986cff2baf9984751f129be7a748ab0b89f4ee84a", kill_on_drop: false }`
[INFO] [stdout] 15f6860bf09c982dabbdf8f986cff2baf9984751f129be7a748ab0b89f4ee84a
