[INFO] cloning repository https://github.com/jparkhouse/chess_engine
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jparkhouse/chess_engine" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjparkhouse%2Fchess_engine", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjparkhouse%2Fchess_engine'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] fcf95758dc862bf1a59c33764d93264c34e1e2de
[INFO] testing jparkhouse/chess_engine against 1.99.0-beta.1+cargoflags=--release for beta-release-1.99-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjparkhouse%2Fchess_engine" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/jparkhouse/chess_engine
[INFO] finished tweaking git repo https://github.com/jparkhouse/chess_engine
[INFO] tweaked toml for git repo https://github.com/jparkhouse/chess_engine written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/jparkhouse/chess_engine on toolchain 1.99.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/jparkhouse/chess_engine 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.99.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] a22615282905046885e80d81b740ae219d3cb67ad3b2283f9eb621d02fcb172e
[INFO] running `Command { std: "docker" "start" "a22615282905046885e80d81b740ae219d3cb67ad3b2283f9eb621d02fcb172e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a22615282905046885e80d81b740ae219d3cb67ad3b2283f9eb621d02fcb172e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "a22615282905046885e80d81b740ae219d3cb67ad3b2283f9eb621d02fcb172e" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a22615282905046885e80d81b740ae219d3cb67ad3b2283f9eb621d02fcb172e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "a22615282905046885e80d81b740ae219d3cb67ad3b2283f9eb621d02fcb172e" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling regex-syntax v0.8.5
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.1
[INFO] [stderr]    Compiling anstyle v1.0.10
[INFO] [stderr]    Compiling thiserror v2.0.9
[INFO] [stderr]    Compiling colorchoice v1.0.3
[INFO] [stderr]    Compiling anstyle-query v1.1.2
[INFO] [stderr]    Compiling iana-time-zone v0.1.61
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling anstyle-parse v0.2.6
[INFO] [stderr]    Compiling quote v1.0.38
[INFO] [stderr]    Compiling anstream v0.6.18
[INFO] [stderr]    Compiling syn v2.0.95
[INFO] [stderr]    Compiling chrono v0.4.39
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling thiserror-impl v2.0.9
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]    Compiling env_filter v0.1.3
[INFO] [stderr]    Compiling env_logger v0.11.6
[INFO] [stderr]    Compiling chess-engine v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `shared::MoveError`
[INFO] [stdout]  --> src/chess_state/moves/calculate_moves/knight_moves.rs:1:92
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::chess_state::{board_bitmask::BoardBitmasks, moves::{chess_move::ChessDirection, shared::MoveError}};
[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: `error`
[INFO] [stdout]  --> src/chess_state/moves/calculate_moves/pawn_moves.rs:3:18
[INFO] [stdout]   |
[INFO] [stdout] 3 | use log::{debug, error, info};
[INFO] [stdout]   |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `local_knights`
[INFO] [stdout]  --> src/chess_state/moves/calculate_moves/knight_moves.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 |         let local_knights = match white {
[INFO] [stdout]   |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_local_knights`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `local_captures`
[INFO] [stdout]   --> src/chess_state/moves/calculate_moves/knight_moves.rs:11:13
[INFO] [stdout]    |
[INFO] [stdout] 11 |         let local_captures = match white {
[INFO] [stdout]    |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_local_captures`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `local_occupied`
[INFO] [stdout]   --> src/chess_state/moves/calculate_moves/knight_moves.rs:16:13
[INFO] [stdout]    |
[INFO] [stdout] 16 |         let local_occupied = match white {
[INFO] [stdout]    |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_local_occupied`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `knights`
[INFO] [stdout]   --> src/chess_state/moves/calculate_moves/knight_moves.rs:23:33
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn helper_calculate_knight_move(knights: u64, captures: u64, occupied: u64, direction: ChessDirection) {
[INFO] [stdout]    |                                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_knights`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `captures`
[INFO] [stdout]   --> src/chess_state/moves/calculate_moves/knight_moves.rs:23:47
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn helper_calculate_knight_move(knights: u64, captures: u64, occupied: u64, direction: ChessDirection) {
[INFO] [stdout]    |                                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_captures`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `occupied`
[INFO] [stdout]   --> src/chess_state/moves/calculate_moves/knight_moves.rs:23:62
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn helper_calculate_knight_move(knights: u64, captures: u64, occupied: u64, direction: ChessDirection) {
[INFO] [stdout]    |                                                              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_occupied`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `invalid_map`
[INFO] [stdout]   --> src/chess_state/moves/calculate_moves/knight_moves.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let invalid_map: u64 = match direction {
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_invalid_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Bitmask` is never constructed
[INFO] [stdout]  --> src/bitmask/generic.rs:7:19
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub(crate) struct Bitmask<T> {
[INFO] [stdout]   |                   ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `from_u64`, and `to_u64` are never used
[INFO] [stdout]   --> src/bitmask/generic.rs:13:19
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl<T> Bitmask<T> {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 13 |     pub(crate) fn new() -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub(crate) fn from_u64(value: u64) -> Self {
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub(crate) fn to_u64(&self) -> u64 {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ArePieces` is never used
[INFO] [stdout]  --> src/bitmask/pieces.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub(crate) trait ArePieces {}
[INFO] [stdout]   |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `BitOpsForPieces` is never used
[INFO] [stdout]   --> src/bitmask/pieces.rs:29:18
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub(crate) trait BitOpsForPieces<T: ArePieces> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AreWhitePieces` is never used
[INFO] [stdout]  --> src/bitmask/white_pieces.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub(crate) trait AreWhitePieces {}
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `BitOpsForWhitePieces` is never used
[INFO] [stdout]   --> src/bitmask/white_pieces.rs:23:18
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub(crate) trait BitOpsForWhitePieces<T: AreWhitePieces> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AreBlackPieces` is never used
[INFO] [stdout]  --> src/bitmask/black_pieces.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) trait AreBlackPieces {}
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `BitOpsForBlackPieces` is never used
[INFO] [stdout]   --> src/bitmask/black_pieces.rs:24:18
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub(crate) trait BitOpsForBlackPieces<T: AreBlackPieces> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CoordinateError` is never used
[INFO] [stdout]  --> src/chess_state/coordinates.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum CoordinateError {
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/chess_state/coordinates.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub(crate) enum XCoordinate {
[INFO] [stdout]    |                 ----------- variants in this enum
[INFO] [stdout] 33 |     A = 0x01_01_01_01_01_01_01_01 << 7,
[INFO] [stdout]    |     ^
[INFO] [stdout] 34 |     B = 0x01_01_01_01_01_01_01_01 << 6,
[INFO] [stdout]    |     ^
[INFO] [stdout] 35 |     C = 0x01_01_01_01_01_01_01_01 << 5,
[INFO] [stdout]    |     ^
[INFO] [stdout] 36 |     D = 0x01_01_01_01_01_01_01_01 << 4,
[INFO] [stdout]    |     ^
[INFO] [stdout] 37 |     E = 0x01_01_01_01_01_01_01_01 << 3,
[INFO] [stdout]    |     ^
[INFO] [stdout] 38 |     F = 0x01_01_01_01_01_01_01_01 << 2,
[INFO] [stdout]    |     ^
[INFO] [stdout] 39 |     G = 0x01_01_01_01_01_01_01_01 << 1,
[INFO] [stdout]    |     ^
[INFO] [stdout] 40 |     H = 0x01_01_01_01_01_01_01_01,
[INFO] [stdout]    |     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `XCoordinate` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/chess_state/coordinates.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub(crate) enum YCoordinate {
[INFO] [stdout]    |                 ----------- variants in this enum
[INFO] [stdout] 46 |     One =   0xFF,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 47 |     Two =   0xFF << 8,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 48 |     Three = 0xFF << (2 * 8),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 49 |     Four =  0xFF << (3 * 8),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 50 |     Five =  0xFF << (4 * 8),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 51 |     Six =   0xFF << (5 * 8),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 52 |     Seven = 0xFF << (6 * 8),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 53 |     Eight = 0xFF << (7 * 8),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `YCoordinate` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `CoordinateConversion` is never used
[INFO] [stdout]   --> src/chess_state/coordinates.rs:56:11
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub trait CoordinateConversion<T>: Sized {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CoordinatePosition` is never constructed
[INFO] [stdout]  --> src/chess_state/coordinate_point.rs:8:19
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub(crate) struct CoordinatePosition {
[INFO] [stdout]   |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_str`, `from_bitmask`, and `to_bitmask` are never used
[INFO] [stdout]   --> src/chess_state/coordinate_point.rs:14:19
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl CoordinatePosition {
[INFO] [stdout]    | ----------------------- associated items in this implementation
[INFO] [stdout] 14 |     pub(crate) fn from_str(input: &str) -> Result<Self, CoordinateError> {
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub(crate) fn from_bitmask(bitmask: u64) -> Result<Self, CoordinateError> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub(crate) fn to_bitmask(self) -> u64 {
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PieceEnum` is never used
[INFO] [stdout]  --> src/chess_state/chess_pieces.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub(crate) enum PieceEnum {
[INFO] [stdout]   |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Pieces` is never constructed
[INFO] [stdout]   --> src/chess_state/chess_pieces.rs:42:23
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub(crate) struct Pieces;
[INFO] [stdout]    |                       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WhitePieces` is never constructed
[INFO] [stdout]   --> src/chess_state/chess_pieces.rs:45:23
[INFO] [stdout]    |
[INFO] [stdout] 45 |     pub(crate) struct WhitePieces;
[INFO] [stdout]    |                       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WhitePawns` is never constructed
[INFO] [stdout]   --> src/chess_state/chess_pieces.rs:48:23
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub(crate) struct WhitePawns;
[INFO] [stdout]    |                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WhiteKnights` is never constructed
[INFO] [stdout]   --> src/chess_state/chess_pieces.rs:51:23
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub(crate) struct WhiteKnights;
[INFO] [stdout]    |                       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WhiteBishops` is never constructed
[INFO] [stdout]   --> src/chess_state/chess_pieces.rs:54:23
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub(crate) struct WhiteBishops;
[INFO] [stdout]    |                       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WhiteRooks` is never constructed
[INFO] [stdout]   --> src/chess_state/chess_pieces.rs:57:23
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub(crate) struct WhiteRooks;
[INFO] [stdout]    |                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WhiteQueens` is never constructed
[INFO] [stdout]   --> src/chess_state/chess_pieces.rs:60:23
[INFO] [stdout]    |
[INFO] [stdout] 60 |     pub(crate) struct WhiteQueens;
[INFO] [stdout]    |                       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WhiteKings` is never constructed
[INFO] [stdout]   --> src/chess_state/chess_pieces.rs:63:23
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub(crate) struct WhiteKings;
[INFO] [stdout]    |                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlackPieces` is never constructed
[INFO] [stdout]   --> src/chess_state/chess_pieces.rs:66:23
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub(crate) struct BlackPieces;
[INFO] [stdout]    |                       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlackPawns` is never constructed
[INFO] [stdout]   --> src/chess_state/chess_pieces.rs:69:23
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub(crate) struct BlackPawns;
[INFO] [stdout]    |                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlackKnights` is never constructed
[INFO] [stdout]   --> src/chess_state/chess_pieces.rs:72:23
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub(crate) struct BlackKnights;
[INFO] [stdout]    |                       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlackBishops` is never constructed
[INFO] [stdout]   --> src/chess_state/chess_pieces.rs:75:23
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub(crate) struct BlackBishops;
[INFO] [stdout]    |                       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlackRooks` is never constructed
[INFO] [stdout]   --> src/chess_state/chess_pieces.rs:78:23
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub(crate) struct BlackRooks;
[INFO] [stdout]    |                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlackQueens` is never constructed
[INFO] [stdout]   --> src/chess_state/chess_pieces.rs:81:23
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub(crate) struct BlackQueens;
[INFO] [stdout]    |                       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlackKings` is never constructed
[INFO] [stdout]   --> src/chess_state/chess_pieces.rs:84:23
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub(crate) struct BlackKings;
[INFO] [stdout]    |                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BoardBitmasks` is never constructed
[INFO] [stdout]  --> src/chess_state/board_bitmask.rs:9:19
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub(crate) struct BoardBitmasks {
[INFO] [stdout]   |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new`, `default`, and `from_board_hash_map` are never used
[INFO] [stdout]   --> src/chess_state/board_bitmask.rs:29:19
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl BoardBitmasks {
[INFO] [stdout]    | ------------------ associated functions in this implementation
[INFO] [stdout] 28 |     /// Initialises a new, empty, chess board and the relevant bitmasks
[INFO] [stdout] 29 |     pub(crate) fn new() -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub(crate) fn default() -> Self {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub(crate) fn from_board_hash_map(map: &BoardHashMap) -> Self {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BoardHashMapError` is never used
[INFO] [stdout]   --> src/chess_state/board_hash_map.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(crate) enum BoardHashMapError {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BoardHashMap` is never constructed
[INFO] [stdout]   --> src/chess_state/board_hash_map.rs:15:19
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub(crate) struct BoardHashMap {
[INFO] [stdout]    |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `insert`, `to_iter`, and `get` are never used
[INFO] [stdout]   --> src/chess_state/board_hash_map.rs:20:19
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl BoardHashMap {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 20 |     pub(crate) fn new() -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub(crate) fn insert(
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub(crate) fn to_iter(
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub(crate) fn get(&self, position: CoordinatePosition) -> Option<&PieceEnum> {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ChessShiftMove` is never used
[INFO] [stdout]  --> src/chess_state/moves/chess_move.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub(crate) trait ChessShiftMove {
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ChessDirection` is never used
[INFO] [stdout]  --> src/chess_state/moves/chess_move.rs:6:17
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) enum ChessDirection {
[INFO] [stdout]   |                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ChessFlip` is never used
[INFO] [stdout]  --> src/chess_state/moves/chess_flip.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub(crate) trait ChessFlip {
[INFO] [stdout]   |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CastleType` is never used
[INFO] [stdout]   --> src/chess_state/moves/shared.rs:14:17
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub(crate) enum CastleType {
[INFO] [stdout]    |                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CheckType` is never used
[INFO] [stdout]   --> src/chess_state/moves/shared.rs:20:17
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub(crate) enum CheckType {
[INFO] [stdout]    |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Move` is never used
[INFO] [stdout]   --> src/chess_state/moves/shared.rs:27:17
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub(crate) enum Move {
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MoveError` is never used
[INFO] [stdout]   --> src/chess_state/moves/shared.rs:33:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub(crate) enum MoveError {
[INFO] [stdout]    |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_piece_type_for_capture` and `piece_enum_to_bitmask` are never used
[INFO] [stdout]    --> src/chess_state/moves/shared.rs:51:19
[INFO] [stdout]     |
[INFO] [stdout]  50 | impl BoardBitmasks {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout]  51 |     pub(crate) fn get_piece_type_for_capture(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub(crate) fn piece_enum_to_bitmask(&self, piece_type: PieceEnum) -> u64 {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_valid_space` is never used
[INFO] [stdout]    --> src/chess_state/moves/shared.rs:129:15
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub(crate) fn get_valid_space(move_type: ChessDirection) -> u64 {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StandardMove` is never constructed
[INFO] [stdout]  --> src/chess_state/moves/standard_move.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) struct StandardMove {
[INFO] [stdout]   |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get_uci_move` are never used
[INFO] [stdout]   --> src/chess_state/moves/standard_move.rs:17:19
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl StandardMove {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 17 |     pub(crate) fn new(
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub(crate) fn get_uci_move(&self) -> String {
[INFO] [stdout]    |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TempMove` is never constructed
[INFO] [stdout]   --> src/chess_state/moves/temp_move.rs:11:19
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(crate) struct TempMove {
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unpack_moves` is never used
[INFO] [stdout]   --> src/chess_state/moves/temp_move.rs:17:15
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub(crate) fn unpack_moves<T: Fn(u64, usize) -> u64>(
[INFO] [stdout]    |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `calculate_diagonal_moves_for_direction` is never used
[INFO] [stdout]   --> src/chess_state/moves/calculate_moves/diagonal_moves.rs:50:19
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl BoardBitmasks {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub(crate) fn calculate_diagonal_moves_for_direction(
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `calculate_knight_moves` is never used
[INFO] [stdout]  --> src/chess_state/moves/calculate_moves/knight_moves.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | impl BoardBitmasks {
[INFO] [stdout]   | ------------------ method in this implementation
[INFO] [stdout] 4 |     fn calculate_knight_moves(&self, white: bool) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `helper_calculate_knight_move` is never used
[INFO] [stdout]   --> src/chess_state/moves/calculate_moves/knight_moves.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn helper_calculate_knight_move(knights: u64, captures: u64, occupied: u64, direction: ChessDirection) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/chess_state/moves/calculate_moves/pawn_moves.rs:24:19
[INFO] [stdout]     |
[INFO] [stdout]  23 | impl BoardBitmasks {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout]  24 |     pub(crate) fn calculate_white_pawn_moves(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     fn calculate_white_pawn_moves_single_step(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     fn calculate_white_pawn_moves_double_step(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     fn calculate_white_pawn_moves_capture_left(&self) -> Result<Vec<Move>, MoveError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     fn calculate_white_pawn_moves_capture_right(&self) -> Result<Vec<Move>, MoveError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 258 |     fn calculate_white_pawn_moves_en_passant(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 297 |     fn calculate_white_pawn_promotions(&self, occupied: u64) -> Result<Vec<Move>, MoveError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_simple_white_pawn_move` is never used
[INFO] [stdout]    --> src/chess_state/moves/calculate_moves/pawn_moves.rs:403:4
[INFO] [stdout]     |
[INFO] [stdout] 403 | fn create_simple_white_pawn_move(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_double_white_pawn_move` is never used
[INFO] [stdout]    --> src/chess_state/moves/calculate_moves/pawn_moves.rs:419:4
[INFO] [stdout]     |
[INFO] [stdout] 419 | fn create_double_white_pawn_move(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_pieces_pinned_to_king`, `get_pieces_cardinally_pinned_to_king`, and `get_pieces_diagonally_pinned_to_king` are never used
[INFO] [stdout]   --> src/chess_state/moves/calculate_moves/pinned_to_king.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl BoardBitmasks {
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub(crate) fn get_pieces_pinned_to_king(&self, white: bool) -> u64 {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub(crate) fn get_pieces_cardinally_pinned_to_king(&self, white: bool) -> u64 {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub(crate) fn get_pieces_diagonally_pinned_to_king(&self, white: bool) -> u64 {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_for_pin` is never used
[INFO] [stdout]    --> src/chess_state/moves/calculate_moves/pinned_to_king.rs:133:4
[INFO] [stdout]     |
[INFO] [stdout] 133 | fn check_for_pin(
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `calculate_cardinal_moves_for_direction` is never used
[INFO] [stdout]   --> src/chess_state/moves/calculate_moves/straight_moves.rs:50:19
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl BoardBitmasks {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub(crate) fn calculate_cardinal_moves_for_direction(
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `WhitePawnAttackMaps` is never used
[INFO] [stdout]  --> src/chess_state/moves/attack_maps.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub trait WhitePawnAttackMaps {
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `BlackPawnAttackMaps` is never used
[INFO] [stdout]  --> src/chess_state/moves/attack_maps.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub trait BlackPawnAttackMaps {
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `KnightAttackMaps` is never used
[INFO] [stdout]   --> src/chess_state/moves/attack_maps.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub trait KnightAttackMaps {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `BishopAttackMaps` is never used
[INFO] [stdout]   --> src/chess_state/moves/attack_maps.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub trait BishopAttackMaps {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `QueenAttackMaps` is never used
[INFO] [stdout]   --> src/chess_state/moves/attack_maps.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub trait QueenAttackMaps {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `RookAttackMaps` is never used
[INFO] [stdout]   --> src/chess_state/moves/attack_maps.rs:23:11
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub trait RookAttackMaps {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `KingAttackMaps` is never used
[INFO] [stdout]   --> src/chess_state/moves/attack_maps.rs:27:11
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub trait KingAttackMaps {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_one_bit_set` is never used
[INFO] [stdout]   --> src/shared/mod.rs:15:15
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub(crate) fn has_one_bit_set(bitmask: u64) -> bool {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `single_bit_bitmask_to_u8` is never used
[INFO] [stdout]   --> src/shared/mod.rs:41:15
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub(crate) fn single_bit_bitmask_to_u8(bitmask: &u64) -> u8 {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `multi_bitmask_to_u8s` is never used
[INFO] [stdout]   --> src/shared/mod.rs:63:15
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub(crate) fn multi_bitmask_to_u8s(bitmask: &u64) -> Vec<u8> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 22.25s
[INFO] running `Command { std: "docker" "inspect" "a22615282905046885e80d81b740ae219d3cb67ad3b2283f9eb621d02fcb172e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "a22615282905046885e80d81b740ae219d3cb67ad3b2283f9eb621d02fcb172e" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling chess-engine v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `shared::MoveError`
[INFO] [stdout]  --> src/chess_state/moves/calculate_moves/knight_moves.rs:1:92
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::chess_state::{board_bitmask::BoardBitmasks, moves::{chess_move::ChessDirection, shared::MoveError}};
[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: `error`
[INFO] [stdout]  --> src/chess_state/moves/calculate_moves/pawn_moves.rs:3:18
[INFO] [stdout]   |
[INFO] [stdout] 3 | use log::{debug, error, info};
[INFO] [stdout]   |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `local_knights`
[INFO] [stdout]  --> src/chess_state/moves/calculate_moves/knight_moves.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 |         let local_knights = match white {
[INFO] [stdout]   |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_local_knights`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `local_captures`
[INFO] [stdout]   --> src/chess_state/moves/calculate_moves/knight_moves.rs:11:13
[INFO] [stdout]    |
[INFO] [stdout] 11 |         let local_captures = match white {
[INFO] [stdout]    |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_local_captures`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `local_occupied`
[INFO] [stdout]   --> src/chess_state/moves/calculate_moves/knight_moves.rs:16:13
[INFO] [stdout]    |
[INFO] [stdout] 16 |         let local_occupied = match white {
[INFO] [stdout]    |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_local_occupied`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `knights`
[INFO] [stdout]   --> src/chess_state/moves/calculate_moves/knight_moves.rs:23:33
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn helper_calculate_knight_move(knights: u64, captures: u64, occupied: u64, direction: ChessDirection) {
[INFO] [stdout]    |                                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_knights`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `captures`
[INFO] [stdout]   --> src/chess_state/moves/calculate_moves/knight_moves.rs:23:47
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn helper_calculate_knight_move(knights: u64, captures: u64, occupied: u64, direction: ChessDirection) {
[INFO] [stdout]    |                                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_captures`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `occupied`
[INFO] [stdout]   --> src/chess_state/moves/calculate_moves/knight_moves.rs:23:62
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn helper_calculate_knight_move(knights: u64, captures: u64, occupied: u64, direction: ChessDirection) {
[INFO] [stdout]    |                                                              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_occupied`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `invalid_map`
[INFO] [stdout]   --> src/chess_state/moves/calculate_moves/knight_moves.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let invalid_map: u64 = match direction {
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_invalid_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/bitmask/generic.rs:13:19
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl<T> Bitmask<T> {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 13 |     pub(crate) fn new() -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `BitOpsForPieces` is never used
[INFO] [stdout]   --> src/bitmask/pieces.rs:29:18
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub(crate) trait BitOpsForPieces<T: ArePieces> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `bitand_white_pieces` is never used
[INFO] [stdout]   --> src/bitmask/white_pieces.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub(crate) trait BitOpsForWhitePieces<T: AreWhitePieces> {
[INFO] [stdout]    |                  -------------------- method in this trait
[INFO] [stdout] 24 |     fn bitor_white_pieces(self, rhs: Bitmask<T>) -> Bitmask<WhitePieces>;
[INFO] [stdout] 25 |     fn bitand_white_pieces(self, rhs: Bitmask<T>) -> Bitmask<WhitePieces>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `BitOpsForBlackPieces` is never used
[INFO] [stdout]   --> src/bitmask/black_pieces.rs:24:18
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub(crate) trait BitOpsForBlackPieces<T: AreBlackPieces> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `XYCoordinatesFromInvalidStr` is never constructed
[INFO] [stdout]   --> src/chess_state/coordinates.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum CoordinateError {
[INFO] [stdout]    |          --------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 12 |     XYCoordinatesFromInvalidStr(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CoordinateError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `default` and `from_board_hash_map` are never used
[INFO] [stdout]   --> src/chess_state/board_bitmask.rs:50:19
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl BoardBitmasks {
[INFO] [stdout]    | ------------------ associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub(crate) fn default() -> Self {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub(crate) fn from_board_hash_map(map: &BoardHashMap) -> Self {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BoardHashMapError` is never used
[INFO] [stdout]   --> src/chess_state/board_hash_map.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(crate) enum BoardHashMapError {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `insert`, `to_iter`, and `get` are never used
[INFO] [stdout]   --> src/chess_state/board_hash_map.rs:28:19
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl BoardHashMap {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub(crate) fn insert(
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub(crate) fn to_iter(
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub(crate) fn get(&self, position: CoordinatePosition) -> Option<&PieceEnum> {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ShortCastle` and `LongCastle` are never constructed
[INFO] [stdout]   --> src/chess_state/moves/shared.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub(crate) enum CastleType {
[INFO] [stdout]    |                 ---------- variants in this enum
[INFO] [stdout] 15 |     ShortCastle,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 16 |     LongCastle,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CastleType` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Castle` is never constructed
[INFO] [stdout]   --> src/chess_state/moves/shared.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub(crate) enum Move {
[INFO] [stdout]    |                 ---- variant in this enum
[INFO] [stdout] 28 |     StandardMove(StandardMove),
[INFO] [stdout] 29 |     Castle(CastleType),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Move` 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 `PawnOnOneOrEight` and `InvalidPieceType` are never constructed
[INFO] [stdout]   --> src/chess_state/moves/shared.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub(crate) enum MoveError {
[INFO] [stdout]    |                 --------- variants in this enum
[INFO] [stdout] 34 |     #[error("Pawn found on rank one or eight (moved backwards or failed promotion")]
[INFO] [stdout] 35 |     PawnOnOneOrEight,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     InvalidPieceType(String, String, String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MoveError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `piece_enum_to_bitmask` is never used
[INFO] [stdout]    --> src/chess_state/moves/shared.rs:111:19
[INFO] [stdout]     |
[INFO] [stdout]  50 | impl BoardBitmasks {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub(crate) fn piece_enum_to_bitmask(&self, piece_type: PieceEnum) -> u64 {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TempMove` is never constructed
[INFO] [stdout]   --> src/chess_state/moves/temp_move.rs:11:19
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(crate) struct TempMove {
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unpack_moves` is never used
[INFO] [stdout]   --> src/chess_state/moves/temp_move.rs:17:15
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub(crate) fn unpack_moves<T: Fn(u64, usize) -> u64>(
[INFO] [stdout]    |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `calculate_diagonal_moves_for_direction` is never used
[INFO] [stdout]   --> src/chess_state/moves/calculate_moves/diagonal_moves.rs:50:19
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl BoardBitmasks {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub(crate) fn calculate_diagonal_moves_for_direction(
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `calculate_knight_moves` is never used
[INFO] [stdout]  --> src/chess_state/moves/calculate_moves/knight_moves.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | impl BoardBitmasks {
[INFO] [stdout]   | ------------------ method in this implementation
[INFO] [stdout] 4 |     fn calculate_knight_moves(&self, white: bool) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `helper_calculate_knight_move` is never used
[INFO] [stdout]   --> src/chess_state/moves/calculate_moves/knight_moves.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn helper_calculate_knight_move(knights: u64, captures: u64, occupied: u64, direction: ChessDirection) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `calculate_white_pawn_moves`, `calculate_white_pawn_moves_en_passant`, and `calculate_white_pawn_promotions` are never used
[INFO] [stdout]    --> src/chess_state/moves/calculate_moves/pawn_moves.rs:24:19
[INFO] [stdout]     |
[INFO] [stdout]  23 | impl BoardBitmasks {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout]  24 |     pub(crate) fn calculate_white_pawn_moves(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 258 |     fn calculate_white_pawn_moves_en_passant(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 297 |     fn calculate_white_pawn_promotions(&self, occupied: u64) -> Result<Vec<Move>, MoveError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `calculate_cardinal_moves_for_direction` is never used
[INFO] [stdout]   --> src/chess_state/moves/calculate_moves/straight_moves.rs:50:19
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl BoardBitmasks {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub(crate) fn calculate_cardinal_moves_for_direction(
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `QueenAttackMaps` is never used
[INFO] [stdout]   --> src/chess_state/moves/attack_maps.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub trait QueenAttackMaps {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `KingAttackMaps` is never used
[INFO] [stdout]   --> src/chess_state/moves/attack_maps.rs:27:11
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub trait KingAttackMaps {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `single_bit_bitmask_to_u8` is never used
[INFO] [stdout]   --> src/shared/mod.rs:41:15
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub(crate) fn single_bit_bitmask_to_u8(bitmask: &u64) -> u8 {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `multi_bitmask_to_u8s` is never used
[INFO] [stdout]   --> src/shared/mod.rs:63:15
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub(crate) fn multi_bitmask_to_u8s(bitmask: &u64) -> Vec<u8> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1.89s
[INFO] running `Command { std: "docker" "inspect" "a22615282905046885e80d81b740ae219d3cb67ad3b2283f9eb621d02fcb172e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "a22615282905046885e80d81b740ae219d3cb67ad3b2283f9eb621d02fcb172e" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `shared::MoveError`
[INFO] [stderr]  --> src/chess_state/moves/calculate_moves/knight_moves.rs:1:92
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::chess_state::{board_bitmask::BoardBitmasks, moves::{chess_move::ChessDirection, shared::MoveError}};
[INFO] [stderr]   |                                                                                            ^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `error`
[INFO] [stderr]  --> src/chess_state/moves/calculate_moves/pawn_moves.rs:3:18
[INFO] [stderr]   |
[INFO] [stderr] 3 | use log::{debug, error, info};
[INFO] [stderr]   |                  ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `local_knights`
[INFO] [stderr]  --> src/chess_state/moves/calculate_moves/knight_moves.rs:6:13
[INFO] [stderr]   |
[INFO] [stderr] 6 |         let local_knights = match white {
[INFO] [stderr]   |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_local_knights`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `local_captures`
[INFO] [stderr]   --> src/chess_state/moves/calculate_moves/knight_moves.rs:11:13
[INFO] [stderr]    |
[INFO] [stderr] 11 |         let local_captures = match white {
[INFO] [stderr]    |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_local_captures`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `local_occupied`
[INFO] [stderr]   --> src/chess_state/moves/calculate_moves/knight_moves.rs:16:13
[INFO] [stderr]    |
[INFO] [stderr] 16 |         let local_occupied = match white {
[INFO] [stderr]    |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_local_occupied`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `knights`
[INFO] [stderr]   --> src/chess_state/moves/calculate_moves/knight_moves.rs:23:33
[INFO] [stderr]    |
[INFO] [stderr] 23 | fn helper_calculate_knight_move(knights: u64, captures: u64, occupied: u64, direction: ChessDirection) {
[INFO] [stderr]    |                                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_knights`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `captures`
[INFO] [stderr]   --> src/chess_state/moves/calculate_moves/knight_moves.rs:23:47
[INFO] [stderr]    |
[INFO] [stderr] 23 | fn helper_calculate_knight_move(knights: u64, captures: u64, occupied: u64, direction: ChessDirection) {
[INFO] [stderr]    |                                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_captures`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `occupied`
[INFO] [stderr]   --> src/chess_state/moves/calculate_moves/knight_moves.rs:23:62
[INFO] [stderr]    |
[INFO] [stderr] 23 | fn helper_calculate_knight_move(knights: u64, captures: u64, occupied: u64, direction: ChessDirection) {
[INFO] [stderr]    |                                                              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_occupied`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `invalid_map`
[INFO] [stderr]   --> src/chess_state/moves/calculate_moves/knight_moves.rs:24:9
[INFO] [stderr]    |
[INFO] [stderr] 24 |     let invalid_map: u64 = match direction {
[INFO] [stderr]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_invalid_map`
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/bitmask/generic.rs:13:19
[INFO] [stderr]    |
[INFO] [stderr] 12 | impl<T> Bitmask<T> {
[INFO] [stderr]    | ------------------ associated function in this implementation
[INFO] [stderr] 13 |     pub(crate) fn new() -> Self {
[INFO] [stderr]    |                   ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait `BitOpsForPieces` is never used
[INFO] [stderr]   --> src/bitmask/pieces.rs:29:18
[INFO] [stderr]    |
[INFO] [stderr] 29 | pub(crate) trait BitOpsForPieces<T: ArePieces> {
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `bitand_white_pieces` is never used
[INFO] [stderr]   --> src/bitmask/white_pieces.rs:25:8
[INFO] [stderr]    |
[INFO] [stderr] 23 | pub(crate) trait BitOpsForWhitePieces<T: AreWhitePieces> {
[INFO] [stderr]    |                  -------------------- method in this trait
[INFO] [stderr] 24 |     fn bitor_white_pieces(self, rhs: Bitmask<T>) -> Bitmask<WhitePieces>;
[INFO] [stderr] 25 |     fn bitand_white_pieces(self, rhs: Bitmask<T>) -> Bitmask<WhitePieces>;
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `BitOpsForBlackPieces` is never used
[INFO] [stderr]   --> src/bitmask/black_pieces.rs:24:18
[INFO] [stderr]    |
[INFO] [stderr] 24 | pub(crate) trait BitOpsForBlackPieces<T: AreBlackPieces> {
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `XYCoordinatesFromInvalidStr` is never constructed
[INFO] [stderr]   --> src/chess_state/coordinates.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr]  4 | pub enum CoordinateError {
[INFO] [stderr]    |          --------------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 12 |     XYCoordinatesFromInvalidStr(String),
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `CoordinateError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `default` and `from_board_hash_map` are never used
[INFO] [stderr]   --> src/chess_state/board_bitmask.rs:50:19
[INFO] [stderr]    |
[INFO] [stderr] 27 | impl BoardBitmasks {
[INFO] [stderr]    | ------------------ associated functions in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 50 |     pub(crate) fn default() -> Self {
[INFO] [stderr]    |                   ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 73 |     pub(crate) fn from_board_hash_map(map: &BoardHashMap) -> Self {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `BoardHashMapError` is never used
[INFO] [stderr]   --> src/chess_state/board_hash_map.rs:10:17
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub(crate) enum BoardHashMapError {
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `insert`, `to_iter`, and `get` are never used
[INFO] [stderr]   --> src/chess_state/board_hash_map.rs:28:19
[INFO] [stderr]    |
[INFO] [stderr] 19 | impl BoardHashMap {
[INFO] [stderr]    | ----------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 28 |     pub(crate) fn insert(
[INFO] [stderr]    |                   ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 51 |     pub(crate) fn to_iter(
[INFO] [stderr]    |                   ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 64 |     pub(crate) fn get(&self, position: CoordinatePosition) -> Option<&PieceEnum> {
[INFO] [stderr]    |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `ShortCastle` and `LongCastle` are never constructed
[INFO] [stderr]   --> src/chess_state/moves/shared.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub(crate) enum CastleType {
[INFO] [stderr]    |                 ---------- variants in this enum
[INFO] [stderr] 15 |     ShortCastle,
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 16 |     LongCastle,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `CastleType` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variant `Castle` is never constructed
[INFO] [stderr]   --> src/chess_state/moves/shared.rs:29:5
[INFO] [stderr]    |
[INFO] [stderr] 27 | pub(crate) enum Move {
[INFO] [stderr]    |                 ---- variant in this enum
[INFO] [stderr] 28 |     StandardMove(StandardMove),
[INFO] [stderr] 29 |     Castle(CastleType),
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Move` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `PawnOnOneOrEight` and `InvalidPieceType` are never constructed
[INFO] [stderr]   --> src/chess_state/moves/shared.rs:35:5
[INFO] [stderr]    |
[INFO] [stderr] 33 | pub(crate) enum MoveError {
[INFO] [stderr]    |                 --------- variants in this enum
[INFO] [stderr] 34 |     #[error("Pawn found on rank one or eight (moved backwards or failed promotion")]
[INFO] [stderr] 35 |     PawnOnOneOrEight,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 44 |     InvalidPieceType(String, String, String),
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `MoveError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `piece_enum_to_bitmask` is never used
[INFO] [stderr]    --> src/chess_state/moves/shared.rs:111:19
[INFO] [stderr]     |
[INFO] [stderr]  50 | impl BoardBitmasks {
[INFO] [stderr]     | ------------------ method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 111 |     pub(crate) fn piece_enum_to_bitmask(&self, piece_type: PieceEnum) -> u64 {
[INFO] [stderr]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `TempMove` is never constructed
[INFO] [stderr]   --> src/chess_state/moves/temp_move.rs:11:19
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub(crate) struct TempMove {
[INFO] [stderr]    |                   ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `unpack_moves` is never used
[INFO] [stderr]   --> src/chess_state/moves/temp_move.rs:17:15
[INFO] [stderr]    |
[INFO] [stderr] 17 | pub(crate) fn unpack_moves<T: Fn(u64, usize) -> u64>(
[INFO] [stderr]    |               ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `calculate_diagonal_moves_for_direction` is never used
[INFO] [stderr]   --> src/chess_state/moves/calculate_moves/diagonal_moves.rs:50:19
[INFO] [stderr]    |
[INFO] [stderr] 14 | impl BoardBitmasks {
[INFO] [stderr]    | ------------------ method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 50 |     pub(crate) fn calculate_diagonal_moves_for_direction(
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `calculate_knight_moves` is never used
[INFO] [stderr]  --> src/chess_state/moves/calculate_moves/knight_moves.rs:4:8
[INFO] [stderr]   |
[INFO] [stderr] 3 | impl BoardBitmasks {
[INFO] [stderr]   | ------------------ method in this implementation
[INFO] [stderr] 4 |     fn calculate_knight_moves(&self, white: bool) {
[INFO] [stderr]   |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `helper_calculate_knight_move` is never used
[INFO] [stderr]   --> src/chess_state/moves/calculate_moves/knight_moves.rs:23:4
[INFO] [stderr]    |
[INFO] [stderr] 23 | fn helper_calculate_knight_move(knights: u64, captures: u64, occupied: u64, direction: ChessDirection) {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `calculate_white_pawn_moves`, `calculate_white_pawn_moves_en_passant`, and `calculate_white_pawn_promotions` are never used
[INFO] [stderr]    --> src/chess_state/moves/calculate_moves/pawn_moves.rs:24:19
[INFO] [stderr]     |
[INFO] [stderr]  23 | impl BoardBitmasks {
[INFO] [stderr]     | ------------------ methods in this implementation
[INFO] [stderr]  24 |     pub(crate) fn calculate_white_pawn_moves(
[INFO] [stderr]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 258 |     fn calculate_white_pawn_moves_en_passant(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 297 |     fn calculate_white_pawn_promotions(&self, occupied: u64) -> Result<Vec<Move>, MoveError> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `calculate_cardinal_moves_for_direction` is never used
[INFO] [stderr]   --> src/chess_state/moves/calculate_moves/straight_moves.rs:50:19
[INFO] [stderr]    |
[INFO] [stderr] 14 | impl BoardBitmasks {
[INFO] [stderr]    | ------------------ method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 50 |     pub(crate) fn calculate_cardinal_moves_for_direction(
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `QueenAttackMaps` is never used
[INFO] [stderr]   --> src/chess_state/moves/attack_maps.rs:19:11
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub trait QueenAttackMaps {
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `KingAttackMaps` is never used
[INFO] [stdout] 
[INFO] [stderr]   --> src/chess_state/moves/attack_maps.rs:27:11
[INFO] [stdout] running 76 tests
[INFO] [stderr]    |
[INFO] [stderr] 27 | pub trait KingAttackMaps {
[INFO] [stderr]    |           ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `single_bit_bitmask_to_u8` is never used
[INFO] [stderr]   --> src/shared/mod.rs:41:15
[INFO] [stderr]    |
[INFO] [stderr] 41 | pub(crate) fn single_bit_bitmask_to_u8(bitmask: &u64) -> u8 {
[INFO] [stderr]    |               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `multi_bitmask_to_u8s` is never used
[INFO] [stderr]   --> src/shared/mod.rs:63:15
[INFO] [stderr]    |
[INFO] [stderr] 63 | pub(crate) fn multi_bitmask_to_u8s(bitmask: &u64) -> Vec<u8> {
[INFO] [stderr]    |               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `chess-engine` (bin "chess-engine" test) generated 32 warnings (run `cargo fix --bin "chess-engine" -p chess-engine --tests` to apply 9 suggestions)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.11s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/deps/chess_engine-a8495c7fd0fb2b21)
[INFO] [stdout] test bitmask::bitmask_tests::can_use_from ... ok
[INFO] [stdout] test chess_state::board_bitmask::tests::unit_tests::new::initialises_empty_bitmask_board_when_using_new ... ok
[INFO] [stdout] test chess_state::coordinate_point::tests::round_trips::completes_round_trip_when_to_and_from_bitmask ... ok
[INFO] [stdout] test chess_state::coordinate_point::tests::unit_tests::display::generates_valid_string_when_using_to_string_method_from_display_trait ... ok
[INFO] [stdout] test chess_state::coordinate_point::tests::unit_tests::from_bitmask::returns_correct_error_when_given_multi_bit_bitmask ... ok
[INFO] [stdout] test chess_state::coordinate_point::tests::unit_tests::from_bitmask::returns_correct_error_when_given_empty_bitmask ... ok
[INFO] [stdout] test chess_state::coordinate_point::tests::unit_tests::from_bitmask::returns_valid_coordinate_position_when_given_valid_bitmask ... ok
[INFO] [stdout] test chess_state::chess_pieces::tests::generates_valid_string_when_using_to_string_method_from_display_trait ... ok
[INFO] [stdout] test chess_state::board_hash_map::tests::new::creates_empty_hash_map_when_initialised ... ok
[INFO] [stdout] test chess_state::coordinate_point::tests::unit_tests::from_str::returns_correct_coordinate_position_when_given_valid_str ... ok
[INFO] [stdout] test chess_state::coordinate_point::tests::unit_tests::from_str::returns_error_when_given_invalid_characters ... ok
[INFO] [stdout] test chess_state::coordinate_point::tests::unit_tests::from_str::returns_error_when_given_string_not_of_length_2 ... ok
[INFO] [stdout] test chess_state::coordinate_point::tests::unit_tests::to_bitmask::returns_valid_bitmask_when_converting_from_coordinate_position ... ok
[INFO] [stdout] test chess_state::coordinates::coordinates_tests::x_coordinate_conversion_to_char::converts_enum_value_correctly_when_given_valid_char ... ok
[INFO] [stdout] test chess_state::coordinates::coordinates_tests::x_coordinate_conversion_to_char::returns_correct_char_when_converted_from_enum ... ok
[INFO] [stdout] test chess_state::coordinates::coordinates_tests::x_coordinate_conversion_to_char::returns_correct_error_when_given_invalid_char ... ok
[INFO] [stdout] test chess_state::coordinates::coordinates_tests::x_coordinate_conversion_to_u64::returns_correct_enum_values_when_given_valid_u64s ... ok
[INFO] [stdout] test chess_state::coordinates::coordinates_tests::x_coordinate_conversion_to_u64::returns_correct_error_when_given_multi_coordinate_bitflag ... ok
[INFO] [stdout] test chess_state::coordinates::coordinates_tests::x_coordinate_conversion_to_u64::returns_correct_u64s_when_converting_from_enums ... ok
[INFO] [stdout] test chess_state::coordinates::coordinates_tests::y_coordinate_conversion_to_char::converts_enum_value_correctly_when_given_valid_char ... ok
[INFO] [stdout] test chess_state::coordinates::coordinates_tests::y_coordinate_conversion_to_char::returns_correct_error_when_given_invalid_char ... ok
[INFO] [stdout] test chess_state::coordinates::coordinates_tests::y_coordinate_conversion_to_char::returns_correct_char_when_converted_from_enum ... ok
[INFO] [stdout] test chess_state::coordinate_point::tests::round_trips::completes_round_trip_when_to_and_from_str ... ok
[INFO] [stdout] test chess_state::moves::attack_maps::test::attack_maps_for_u64::black_pawn_attack_map_correct_when_trait_used_on_u64 ... ok
[INFO] [stdout] test chess_state::coordinates::coordinates_tests::y_coordinate_conversion_to_u64::returns_correct_enum_values_when_given_valid_u64s ... ok
[INFO] [stdout] test chess_state::moves::attack_maps::test::attack_maps_for_u64::bishop_attack_map_correct_when_trait_used_on_u64 ... ok
[INFO] [stdout] test chess_state::coordinates::coordinates_tests::y_coordinate_conversion_to_u64::returns_correct_error_when_given_multi_coordinate_bitflag ... ok
[INFO] [stdout] test chess_state::moves::calculate_moves::pawn_moves::tests::white_pawns::capture_left_moves::identifies_valid_capture_when_caputurable_piece_to_the_left ... ok
[INFO] [stdout] test chess_state::moves::attack_maps::test::attack_maps_for_u64::knight_attack_map_correct_when_trait_used_on_u64 ... ok
[INFO] [stdout] test chess_state::coordinates::coordinates_tests::y_coordinate_conversion_to_u64::returns_correct_u64s_when_converting_from_enums ... ok
[INFO] [stdout] test chess_state::moves::attack_maps::test::attack_maps_for_u64::white_pawn_attack_map_correct_when_trait_used_on_u64 ... ok
[INFO] [stdout] test chess_state::moves::calculate_moves::pawn_moves::tests::white_pawns::capture_left_moves::no_captures_when_there_are_no_capture_targets ... ok
[INFO] [stdout] test chess_state::moves::calculate_moves::pawn_moves::tests::white_pawns::capture_right_moves::identifies_valid_capture_when_caputurable_piece_to_the_right ... ok
[INFO] [stdout] test chess_state::moves::calculate_moves::pawn_moves::tests::white_pawns::capture_right_moves::no_captures_when_there_are_no_capture_targets ... ok
[INFO] [stdout] test chess_state::moves::calculate_moves::pawn_moves::tests::white_pawns::double_step_moves::all_pawns_can_step_forward_twice_when_in_their_starting_position ... ok
[INFO] [stdout] test chess_state::moves::calculate_moves::pawn_moves::tests::white_pawns::double_step_moves::all_pawns_can_step_forward_twice_when_in_valid_positions ... ok
[INFO] [stdout] test chess_state::moves::calculate_moves::pawn_moves::tests::white_pawns::double_step_moves::blocked_pawn_cannot_step_forwards_twice_when_calculating_valid_moves ... ok
[INFO] [stdout] test chess_state::moves::calculate_moves::pawn_moves::tests::white_pawns::double_step_moves::other_pawns_can_step_forward_twice_when_only_one_is_blocked ... ok
[INFO] [stdout] test chess_state::moves::calculate_moves::pawn_moves::tests::white_pawns::double_step_moves::pawns_in_invalid_positions_are_ignored_when_calculating_valid_moves ... ok
[INFO] [stdout] test chess_state::moves::calculate_moves::pawn_moves::tests::white_pawns::single_step_moves::all_pawns_can_step_forward_when_in_their_starting_position ... ok
[INFO] [stdout] test chess_state::moves::calculate_moves::pawn_moves::tests::white_pawns::single_step_moves::all_pawns_can_step_forward_when_in_valid_positions ... ok
[INFO] [stdout] test chess_state::moves::calculate_moves::pawn_moves::tests::white_pawns::single_step_moves::blocked_pawn_cannot_step_forwards_when_calculating_valid_moves ... ok
[INFO] [stdout] test chess_state::moves::calculate_moves::pawn_moves::tests::white_pawns::single_step_moves::other_pawns_can_step_forward_when_only_one_is_blocked ... ok
[INFO] [stdout] test chess_state::moves::calculate_moves::pawn_moves::tests::white_pawns::single_step_moves::pawns_in_invalid_positions_are_ignored_when_calculating_valid_moves ... ok
[INFO] [stdout] test chess_state::moves::calculate_moves::pinned_to_king::tests::check_for_pin_tests::finds_diagonal_pin_when_in_noisy_valid_pin_stituation ... ok
[INFO] [stdout] test chess_state::moves::calculate_moves::pinned_to_king::tests::check_for_pin_tests::finds_no_pin_when_in_invalid_pin_stituation ... ok
[INFO] [stdout] test chess_state::moves::calculate_moves::pinned_to_king::tests::check_for_pin_tests::finds_pin_when_in_noisy_valid_pin_stituation ... ok
[INFO] [stdout] test chess_state::moves::calculate_moves::pinned_to_king::tests::check_for_pin_tests::finds_pin_when_in_simple_valid_pin_stituation ... ok
[INFO] [stdout] test chess_state::moves::calculate_moves::pinned_to_king::tests::get_pieces_pinned_to_king::can_detect_pinned_pieces_when_in_simple_pin ... ok
[INFO] [stdout] test chess_state::moves::calculate_moves::pinned_to_king::tests::check_for_pin_tests::returns_0_when_no_pieces ... ok
[INFO] [stdout] test chess_state::moves::calculate_moves::pinned_to_king::tests::check_for_pin_tests::returns_correct_error_when_given_invalid_direction ... ok
[INFO] [stdout] test chess_state::moves::chess_move::tests::chess_move_for_u64::knight_move_eight_when_directed ... ok
[INFO] [stdout] test chess_state::moves::chess_flip::tests::chess_flip_for_u64::bits_swap_correctly_when_swapped_horizontally ... ok
[INFO] [stdout] test chess_state::moves::chess_move::tests::chess_move_for_u64::knight_move_eleven_when_directed ... ok
[INFO] [stdout] test chess_state::moves::chess_move::tests::chess_move_for_u64::knight_move_five_when_directed ... ok
[INFO] [stdout] test chess_state::moves::chess_move::tests::chess_move_for_u64::knight_move_four_when_directed ... ok
[INFO] [stdout] test chess_state::moves::chess_move::tests::chess_move_for_u64::knight_move_one_when_directed ... ok
[INFO] [stdout] test chess_state::moves::chess_move::tests::chess_move_for_u64::knight_move_seven_when_directed ... ok
[INFO] [stdout] test chess_state::moves::chess_move::tests::chess_move_for_u64::knight_move_ten_when_directed ... ok
[INFO] [stdout] test chess_state::moves::chess_move::tests::chess_move_for_u64::moves_down_right_when_directed_down_right ... ok
[INFO] [stdout] test chess_state::moves::chess_move::tests::chess_move_for_u64::moves_left_when_directed_left ... ok
[INFO] [stdout] test chess_state::moves::chess_move::tests::chess_move_for_u64::moves_down_when_directed_down ... ok
[INFO] [stdout] test chess_state::moves::chess_move::tests::chess_move_for_u64::moves_right_when_directed_right ... ok
[INFO] [stdout] test chess_state::moves::chess_move::tests::chess_move_for_u64::knight_move_two_when_directed ... ok
[INFO] [stdout] test chess_state::moves::chess_move::tests::chess_move_for_u64::moves_up_when_directed_up ... ok
[INFO] [stdout] test chess_state::moves::chess_flip::tests::chess_flip_for_u64::bits_swap_correctly_when_board_flipped ... ok
[INFO] [stdout] test chess_state::moves::chess_move::tests::chess_move_for_u64::moves_down_left_when_directed_down_left ... ok
[INFO] [stdout] test chess_state::moves::chess_move::tests::chess_move_for_u64::moves_up_left_when_directed_up_left ... ok
[INFO] [stdout] test chess_state::moves::standard_move::tests::generates_correct_uci_when_a_checkmate_move_with_capture_is_executed ... ok
[INFO] [stdout] test chess_state::moves::standard_move::tests::generates_correct_uci_when_a_promotion_and_capture_move_is_executed ... ok
[INFO] [stdout] test chess_state::moves::standard_move::tests::generates_correct_uci_when_a_simple_move_is_executed ... ok
[INFO] [stdout] test chess_state::moves::standard_move::tests::generates_correct_uci_when_a_checkmate_move_is_executed ... ok
[INFO] [stdout] test chess_state::moves::standard_move::tests::generates_correct_uci_when_a_checking_move_is_executed ... ok
[INFO] [stdout] test chess_state::moves::standard_move::tests::generates_correct_uci_when_a_capturing_move_is_executed ... ok
[INFO] [stdout] test chess_state::moves::standard_move::tests::generates_correct_uci_when_a_promotion_move_is_executed ... ok
[INFO] [stdout] test chess_state::moves::chess_move::tests::chess_move_for_u64::moves_up_right_when_directed_up_right ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 76 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "a22615282905046885e80d81b740ae219d3cb67ad3b2283f9eb621d02fcb172e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a22615282905046885e80d81b740ae219d3cb67ad3b2283f9eb621d02fcb172e", kill_on_drop: false }`
[INFO] [stdout] a22615282905046885e80d81b740ae219d3cb67ad3b2283f9eb621d02fcb172e
