[INFO] cloning repository https://github.com/conorlindahl/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/conorlindahl/chess-engine" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fconorlindahl%2Fchess-engine", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fconorlindahl%2Fchess-engine'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 110f847df8c344a014e4574ec1d4c754c8ec6fe4
[INFO] checking conorlindahl/chess-engine against master#3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0 for pr-143164
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fconorlindahl%2Fchess-engine" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/conorlindahl/chess-engine
[INFO] finished tweaking git repo https://github.com/conorlindahl/chess-engine
[INFO] tweaked toml for git repo https://github.com/conorlindahl/chess-engine written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/conorlindahl/chess-engine on toolchain 3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/conorlindahl/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" "+3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 08d62194028665653d2624114eaa9eb8c9e4a55b3313262508e329e063e00b9d
[INFO] running `Command { std: "docker" "start" "-a" "08d62194028665653d2624114eaa9eb8c9e4a55b3313262508e329e063e00b9d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "08d62194028665653d2624114eaa9eb8c9e4a55b3313262508e329e063e00b9d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "08d62194028665653d2624114eaa9eb8c9e4a55b3313262508e329e063e00b9d", kill_on_drop: false }`
[INFO] [stdout] 08d62194028665653d2624114eaa9eb8c9e4a55b3313262508e329e063e00b9d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ea31c885ab72f8a50c421774eb89bf7c9f3f4f4eaa74edbe626d71fb2b4c4bc3
[INFO] running `Command { std: "docker" "start" "-a" "ea31c885ab72f8a50c421774eb89bf7c9f3f4f4eaa74edbe626d71fb2b4c4bc3", kill_on_drop: false }`
[INFO] [stderr]     Checking chess-engine v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `king_square`
[INFO] [stdout]    --> src/board.rs:128:69
[INFO] [stdout]     |
[INFO] [stdout] 128 |     fn kingside_castle_valid(&self, castling_state: &CastlingState, king_square: &Square) -> bool {
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_king_square`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `king_square`
[INFO] [stdout]    --> src/board.rs:132:70
[INFO] [stdout]     |
[INFO] [stdout] 132 |     fn queenside_castle_valid(&self, castling_state: &CastlingState, king_square: &Square) -> bool {
[INFO] [stdout]     |                                                                      ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_king_square`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `iter_ranks`, `next_by`, and `previous_by` are never used
[INFO] [stdout]   --> src/rank.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 8  | impl Rank {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 16 |     fn new(rank: u8) -> Rank {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn iter_ranks(range: impl Iterator<Item = u8>) -> impl Iterator<Item = Rank> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn next_by(&self, jump: u8) -> Result<Rank, &'static str> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn previous_by(&self, jump: u8) -> Result<Rank, &'static str> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `iter_files`, `next_by`, and `previous_by` are never used
[INFO] [stdout]   --> src/file.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 8  | impl File {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 16 |     fn new(file: u8) -> File {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn iter_files(range: impl Iterator<Item = u8>) -> impl Iterator<Item = File> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn next_by(&self, jump: u8) -> Result<File, &'static str> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn previous_by(&self, jump: u8) -> Result<File, &'static str> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `piece` is never read
[INFO] [stdout]   --> src/square.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 8  | pub struct Square {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub piece: Option<Piece>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Square` 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 items `build`, `rank`, `file`, `is_empty`, and `piece_matches_color` are never used
[INFO] [stdout]   --> src/square.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Square {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 16 |     pub fn build(file: u8, rank: u8) -> Result<Square, &'static str> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn rank(&self) -> Rank {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn file(&self) -> File {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn piece_matches_color(&self, color: Color) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Board` is never constructed
[INFO] [stdout]   --> src/board.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Board {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/board.rs:21:12
[INFO] [stdout]     |
[INFO] [stdout] 19  | impl Board {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 20  |     // Build an empty board at initial state
[INFO] [stdout] 21  |     pub fn build_empty() -> Result<Board, &'static str> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42  |     pub fn build_custom(squares: [[Square; 8]; 8], white_castling_rights: CastlingState, black_castling_rights: CastlingState) -> Board {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50  |     pub fn get_square(&self, file: File, rank: Rank) -> &Square {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56  |     pub fn get_rank(&self, rank: Rank) -> Vec<&Square> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62  |     pub fn get_file(&self, file: File) -> Vec<&Square> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68  |     pub fn get_diagonals(&self, square: &Square) -> Vec<&Square> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 99  |     pub fn add_piece(&mut self, piece: Piece, file: File, rank: Rank) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn move_pice(&mut self, sq_a: &mut Square, sq_b: &mut Square) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn can_castle_kingside(&self, color: Color) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn can_castle_queenside(&self, color: Color) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn kingside_castle_valid(&self, castling_state: &CastlingState, king_square: &Square) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     fn queenside_castle_valid(&self, castling_state: &CastlingState, king_square: &Square) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CastlingState` is never constructed
[INFO] [stdout]    --> src/board.rs:137:12
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub struct CastlingState {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `has_kingside_castling_rights`, and `has_queenside_castling_rights` are never used
[INFO] [stdout]    --> src/board.rs:144:12
[INFO] [stdout]     |
[INFO] [stdout] 143 | impl CastlingState {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 144 |     pub fn new() -> CastlingState {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     fn has_kingside_castling_rights(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     fn has_queenside_castling_rights(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `White` and `Black` are never constructed
[INFO] [stdout]  --> src/piece.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum Color {
[INFO] [stdout]   |          ----- variants in this enum
[INFO] [stdout] 8 |     White,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 9 |     Black,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Color` 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: variants `Pawn`, `Knight`, `Bishop`, `Rook`, `Queen`, and `King` are never constructed
[INFO] [stdout]   --> src/piece.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum PieceType {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] 14 |     Pawn,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 15 |     Knight,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 16 |     Bishop,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 17 |     Rook,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 18 |     Queen,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 19 |     King
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PieceType` 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: fields `color`, `piece_type`, and `has_moved` are never read
[INFO] [stdout]   --> src/piece.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct Piece {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 24 |     color: Color,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 25 |     piece_type: PieceType,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 26 |     has_moved: bool,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Piece` 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 associated items are never used
[INFO] [stdout]    --> src/piece.rs:30:8
[INFO] [stdout]     |
[INFO] [stdout] 29  | impl Piece {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 30  |     fn new(color: Color, piece_type: PieceType, has_moved: bool) -> Piece {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 34  |     pub fn get_color(&self) -> Color { self.color }
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 35  |
[INFO] [stdout] 36  |     pub fn has_moved(&self) -> bool  { self.has_moved }
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 37  |
[INFO] [stdout] 38  |     pub fn set_moved(&mut self) { self.has_moved = true }
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 39  |
[INFO] [stdout] 40  |     pub fn piece_type(&self) -> PieceType { self.piece_type }
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 41  |
[INFO] [stdout] 42  |     pub fn get_moves<'a>(&self, board: &'a Board, square: &Square) -> Vec<&'a Square> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53  |     fn get_pawn_moves<'a>(&self, board: &'a Board, square: &Square) -> Vec<&'a Square> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60  |     fn get_white_pawn_moves<'a>(&self, board: &'a Board, square: &Square) -> Vec<&'a Square> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97  |     fn get_black_pawn_moves<'a>(&self, board: &'a Board, square: &Square) -> Vec<&'a Square> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     fn get_knight_moves<'a>(&self, board: &'a Board, square: &Square) -> Vec<&'a Square> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     fn get_bishop_moves<'a>(&self, board: &'a Board, square: &Square) -> Vec<&'a Square> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     fn get_rook_moves<'a>(&self, board: &'a Board, square: &Square) -> Vec<&'a Square> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     fn get_queen_moves<'a>(&self, board: &'a Board, square: &Square) -> Vec<&'a Square> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     fn get_king_moves<'a>(&self, board: &'a Board, square: &Square) -> Vec<&'a Square> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `king_square`
[INFO] [stdout]    --> src/board.rs:128:69
[INFO] [stdout]     |
[INFO] [stdout] 128 |     fn kingside_castle_valid(&self, castling_state: &CastlingState, king_square: &Square) -> bool {
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_king_square`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `king_square`
[INFO] [stdout]    --> src/board.rs:132:70
[INFO] [stdout]     |
[INFO] [stdout] 132 |     fn queenside_castle_valid(&self, castling_state: &CastlingState, king_square: &Square) -> bool {
[INFO] [stdout]     |                                                                      ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_king_square`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `white_castling_rights` and `black_castling_rights` are never read
[INFO] [stdout]   --> src/board.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Board {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 15 |     white_castling_rights: CastlingState,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 16 |     black_castling_rights: CastlingState
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `build_custom`, `move_pice`, `can_castle_kingside`, `can_castle_queenside`, `kingside_castle_valid`, and `queenside_castle_valid` are never used
[INFO] [stdout]    --> src/board.rs:42:12
[INFO] [stdout]     |
[INFO] [stdout] 19  | impl Board {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 42  |     pub fn build_custom(squares: [[Square; 8]; 8], white_castling_rights: CastlingState, black_castling_rights: CastlingState) -> Board {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn move_pice(&mut self, sq_a: &mut Square, sq_b: &mut Square) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn can_castle_kingside(&self, color: Color) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn can_castle_queenside(&self, color: Color) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn kingside_castle_valid(&self, castling_state: &CastlingState, king_square: &Square) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     fn queenside_castle_valid(&self, castling_state: &CastlingState, king_square: &Square) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `king_has_moved`, `queenside_rook_has_moved`, and `kingside_rook_has_moved` are never read
[INFO] [stdout]    --> src/board.rs:138:5
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub struct CastlingState {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] 138 |     king_has_moved: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 139 |     queenside_rook_has_moved: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 140 |     kingside_rook_has_moved: bool
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `has_kingside_castling_rights` and `has_queenside_castling_rights` are never used
[INFO] [stdout]    --> src/board.rs:152:8
[INFO] [stdout]     |
[INFO] [stdout] 143 | impl CastlingState {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 152 |     fn has_kingside_castling_rights(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     fn has_queenside_castling_rights(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `has_moved`, `set_moved`, and `piece_type` are never used
[INFO] [stdout]   --> src/piece.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl Piece {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn has_moved(&self) -> bool  { self.has_moved }
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 37 |
[INFO] [stdout] 38 |     pub fn set_moved(&mut self) { self.has_moved = true }
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 39 |
[INFO] [stdout] 40 |     pub fn piece_type(&self) -> PieceType { self.piece_type }
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.18s
[INFO] running `Command { std: "docker" "inspect" "ea31c885ab72f8a50c421774eb89bf7c9f3f4f4eaa74edbe626d71fb2b4c4bc3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ea31c885ab72f8a50c421774eb89bf7c9f3f4f4eaa74edbe626d71fb2b4c4bc3", kill_on_drop: false }`
[INFO] [stdout] ea31c885ab72f8a50c421774eb89bf7c9f3f4f4eaa74edbe626d71fb2b4c4bc3
