[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 615014f15745532730b9ce7a1d9309f8b4756f93 for pr-160491
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fconorlindahl%2Fchess-engine" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-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-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/conorlindahl/chess-engine on toolchain 615014f15745532730b9ce7a1d9309f8b4756f93
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+615014f15745532730b9ce7a1d9309f8b4756f93" "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" "+615014f15745532730b9ce7a1d9309f8b4756f93" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] checking conorlindahl/chess-engine against 615014f15745532730b9ce7a1d9309f8b4756f93 for pr-160491
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fconorlindahl%2Fchess-engine" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-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-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/conorlindahl/chess-engine on toolchain 615014f15745532730b9ce7a1d9309f8b4756f93
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+615014f15745532730b9ce7a1d9309f8b4756f93" "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" "+615014f15745532730b9ce7a1d9309f8b4756f93" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:00c5645b54fe3ce5dae1417175e3c7fb6a6646c021d554ecd63a097b8b9f3602" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 4e31bc1de225356101153e5e9d9ba93093d96ac50dc39e2ca6e07c4d00d827f9
[INFO] running `Command { std: "docker" "start" "4e31bc1de225356101153e5e9d9ba93093d96ac50dc39e2ca6e07c4d00d827f9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4e31bc1de225356101153e5e9d9ba93093d96ac50dc39e2ca6e07c4d00d827f9", 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" "4e31bc1de225356101153e5e9d9ba93093d96ac50dc39e2ca6e07c4d00d827f9" "/opt/rustwide/cargo-home/bin/cargo" "+615014f15745532730b9ce7a1d9309f8b4756f93" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4e31bc1de225356101153e5e9d9ba93093d96ac50dc39e2ca6e07c4d00d827f9", 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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "4e31bc1de225356101153e5e9d9ba93093d96ac50dc39e2ca6e07c4d00d827f9" "/opt/rustwide/cargo-home/bin/cargo" "+615014f15745532730b9ce7a1d9309f8b4756f93" "check" "--frozen" "--all" "--all-targets" "--message-format=json", 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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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) -> B...
[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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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) -> B...
[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.17s
[INFO] running `Command { std: "docker" "inspect" "4e31bc1de225356101153e5e9d9ba93093d96ac50dc39e2ca6e07c4d00d827f9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4e31bc1de225356101153e5e9d9ba93093d96ac50dc39e2ca6e07c4d00d827f9", kill_on_drop: false }`
[INFO] [stdout] 4e31bc1de225356101153e5e9d9ba93093d96ac50dc39e2ca6e07c4d00d827f9
