[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.98.0-beta.8+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-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/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-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/jparkhouse/chess_engine on toolchain 1.98.0-beta.8 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.8" "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.98.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded thiserror v2.0.9 [INFO] [stderr] Downloaded thiserror-impl v2.0.9 [INFO] [stderr] Downloaded js-sys v0.3.76 [INFO] [stderr] Downloaded cc v1.2.7 [INFO] [stderr] Downloaded syn v2.0.95 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/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] c1b867e04b51917941f672842730ea7dc208be04086e1d4067b2ae3c61e2d429 [INFO] running `Command { std: "docker" "start" "c1b867e04b51917941f672842730ea7dc208be04086e1d4067b2ae3c61e2d429", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "c1b867e04b51917941f672842730ea7dc208be04086e1d4067b2ae3c61e2d429", 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" "c1b867e04b51917941f672842730ea7dc208be04086e1d4067b2ae3c61e2d429" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "c1b867e04b51917941f672842730ea7dc208be04086e1d4067b2ae3c61e2d429", 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" "c1b867e04b51917941f672842730ea7dc208be04086e1d4067b2ae3c61e2d429" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }` [INFO] [stderr] Compiling regex-syntax v0.8.5 [INFO] [stderr] Compiling anstyle v1.0.10 [INFO] [stderr] Compiling thiserror v2.0.9 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.1 [INFO] [stderr] Compiling anstyle-query v1.1.2 [INFO] [stderr] Compiling colorchoice v1.0.3 [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 { [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 Bitmask { [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 { [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 { [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 { [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: 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 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | pub(crate) fn from_bitmask(bitmask: u64) -> Result { [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 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, MoveError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 177 | fn calculate_white_pawn_moves_capture_right(&self) -> Result, 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, 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 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `release` profile [optimized] target(s) in 23.45s [INFO] running `Command { std: "docker" "inspect" "c1b867e04b51917941f672842730ea7dc208be04086e1d4067b2ae3c61e2d429", 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" "c1b867e04b51917941f672842730ea7dc208be04086e1d4067b2ae3c61e2d429" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.8" "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 Bitmask { [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 { [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 { [INFO] [stdout] | -------------------- method in this trait [INFO] [stdout] 24 | fn bitor_white_pieces(self, rhs: Bitmask) -> Bitmask; [INFO] [stdout] 25 | fn bitand_white_pieces(self, rhs: Bitmask) -> Bitmask; [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 { [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 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, 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 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `release` profile [optimized] target(s) in 2.16s [INFO] running `Command { std: "docker" "inspect" "c1b867e04b51917941f672842730ea7dc208be04086e1d4067b2ae3c61e2d429", 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" "c1b867e04b51917941f672842730ea7dc208be04086e1d4067b2ae3c61e2d429" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.8" "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 Bitmask { [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 { [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 { [INFO] [stderr] | -------------------- method in this trait [INFO] [stderr] 24 | fn bitor_white_pieces(self, rhs: Bitmask) -> Bitmask; [INFO] [stderr] 25 | fn bitand_white_pieces(self, rhs: Bitmask) -> Bitmask; [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 { [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 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, 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] [stderr] --> src/chess_state/moves/attack_maps.rs:27:11 [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 { [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.08s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/release/deps/chess_engine-a8495c7fd0fb2b21) [INFO] [stdout] [INFO] [stdout] running 76 tests [INFO] [stdout] test chess_state::board_bitmask::tests::unit_tests::new::initialises_empty_bitmask_board_when_using_new ... ok [INFO] [stdout] test chess_state::chess_pieces::tests::generates_valid_string_when_using_to_string_method_from_display_trait ... ok [INFO] [stdout] test bitmask::bitmask_tests::can_use_from ... 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::round_trips::completes_round_trip_when_to_and_from_str ... 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_empty_bitmask ... 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_valid_coordinate_position_when_given_valid_bitmask ... 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::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_u64::returns_correct_enum_values_when_given_valid_u64s ... 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::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::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::double_step_moves::pawns_in_invalid_positions_are_ignored_when_calculating_valid_moves ... 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::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::attack_maps::test::attack_maps_for_u64::bishop_attack_map_correct_when_trait_used_on_u64 ... 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::coordinates::coordinates_tests::x_coordinate_conversion_to_char::converts_enum_value_correctly_when_given_valid_char ... 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_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_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_pin_when_in_noisy_valid_pin_stituation ... 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::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::check_for_pin_tests::returns_0_when_no_pieces ... 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::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_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_one_when_directed ... 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::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_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_eleven_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::knight_move_two_when_directed ... 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_down_right_when_directed_down_right ... 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_left_when_directed_left ... 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::board_hash_map::tests::new::creates_empty_hash_map_when_initialised ... ok [INFO] [stdout] test chess_state::moves::chess_move::tests::chess_move_for_u64::moves_up_right_when_directed_up_right ... 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::chess_move::tests::chess_move_for_u64::moves_up_when_directed_up ... 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_checking_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_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_promotion_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::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_char::returns_correct_char_when_converted_from_enum ... 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" "c1b867e04b51917941f672842730ea7dc208be04086e1d4067b2ae3c61e2d429", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c1b867e04b51917941f672842730ea7dc208be04086e1d4067b2ae3c61e2d429", kill_on_drop: false }` [INFO] [stdout] c1b867e04b51917941f672842730ea7dc208be04086e1d4067b2ae3c61e2d429