[INFO] cloning repository https://github.com/np425/rust_chess [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/np425/rust_chess" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnp425%2Frust_chess", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnp425%2Frust_chess'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] ba4bd58fec1665aeea34ab1411e182a450df186c [INFO] checking np425/rust_chess against try#b8ee37b59c6e1f39bae18b85e057975ab0d89308 for pr-139587-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnp425%2Frust_chess" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/np425/rust_chess on toolchain b8ee37b59c6e1f39bae18b85e057975ab0d89308 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b8ee37b59c6e1f39bae18b85e057975ab0d89308" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/np425/rust_chess [INFO] finished tweaking git repo https://github.com/np425/rust_chess [INFO] tweaked toml for git repo https://github.com/np425/rust_chess written to /workspace/builds/worker-5-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/np425/rust_chess 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" "+b8ee37b59c6e1f39bae18b85e057975ab0d89308" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+b8ee37b59c6e1f39bae18b85e057975ab0d89308" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 57ae2f8c1290ba5050409c7f8dc7817b4ed7e6ee9ea29bc6f028eeffdbadae4c [INFO] running `Command { std: "docker" "start" "-a" "57ae2f8c1290ba5050409c7f8dc7817b4ed7e6ee9ea29bc6f028eeffdbadae4c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "57ae2f8c1290ba5050409c7f8dc7817b4ed7e6ee9ea29bc6f028eeffdbadae4c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "57ae2f8c1290ba5050409c7f8dc7817b4ed7e6ee9ea29bc6f028eeffdbadae4c", kill_on_drop: false }` [INFO] [stdout] 57ae2f8c1290ba5050409c7f8dc7817b4ed7e6ee9ea29bc6f028eeffdbadae4c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+b8ee37b59c6e1f39bae18b85e057975ab0d89308" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 94b9f4d297132d76927bf9b7f4cb692ad4947c52af9820a57976494ac46d2ebd [INFO] running `Command { std: "docker" "start" "-a" "94b9f4d297132d76927bf9b7f4cb692ad4947c52af9820a57976494ac46d2ebd", kill_on_drop: false }` [INFO] [stderr] Checking chess v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused variable: `from` [INFO] [stdout] --> src/position.rs:251:28 [INFO] [stdout] | [INFO] [stdout] 251 | pub fn can_move(&self, from: Coord, to: Coord, promotion: Option) -> Result { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_from` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `to` [INFO] [stdout] --> src/position.rs:251:41 [INFO] [stdout] | [INFO] [stdout] 251 | pub fn can_move(&self, from: Coord, to: Coord, promotion: Option) -> Result { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_to` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `from` [INFO] [stdout] --> src/position.rs:251:28 [INFO] [stdout] | [INFO] [stdout] 251 | pub fn can_move(&self, from: Coord, to: Coord, promotion: Option) -> Result { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_from` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `promotion` [INFO] [stdout] --> src/position.rs:251:52 [INFO] [stdout] | [INFO] [stdout] 251 | pub fn can_move(&self, from: Coord, to: Coord, promotion: Option) -> Result { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_promotion` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `to` [INFO] [stdout] --> src/position.rs:251:41 [INFO] [stdout] | [INFO] [stdout] 251 | pub fn can_move(&self, from: Coord, to: Coord, promotion: Option) -> Result { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_to` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `promotion` [INFO] [stdout] --> src/position.rs:251:52 [INFO] [stdout] | [INFO] [stdout] 251 | pub fn can_move(&self, from: Coord, to: Coord, promotion: Option) -> Result { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_promotion` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `piece_move` [INFO] [stdout] --> src/position.rs:261:13 [INFO] [stdout] | [INFO] [stdout] 261 | let piece_move = self.can_move(from, to, promotion)?; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_piece_move` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `piece_move` [INFO] [stdout] --> src/position.rs:261:13 [INFO] [stdout] | [INFO] [stdout] 261 | let piece_move = self.can_move(from, to, promotion)?; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_piece_move` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `is_empty` is never used [INFO] [stdout] --> src/board.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl Square { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] 26 | pub fn is_empty(self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `square`, `square_mut`, and `move_piece` are never used [INFO] [stdout] --> src/board.rs:43:12 [INFO] [stdout] | [INFO] [stdout] 42 | impl Board { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] 43 | pub fn square(&self, coord: Coord) -> Option { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn square_mut(&mut self, coord: Coord) -> Option<&mut Square> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 56 | pub fn move_piece(&mut self, from: Coord, to: Coord) -> Option { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `King` and `Queen` are never constructed [INFO] [stdout] --> src/position.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum CastleSide { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 5 | King, [INFO] [stdout] | ^^^^ [INFO] [stdout] 6 | Queen, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CastleSide` 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 `Checkmate` and `Stalemate` are never constructed [INFO] [stdout] --> src/position.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 16 | pub enum State { [INFO] [stdout] | ----- variants in this enum [INFO] [stdout] 17 | Playing, [INFO] [stdout] 18 | Checkmate(Color), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 19 | Stalemate(Color), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `State` 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/position.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 23 | pub enum MoveErr { [INFO] [stdout] | ------- variants in this enum [INFO] [stdout] 24 | PieceNotOwned, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 25 | DestinationOccupied, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 26 | KingInCheck, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 27 | NoCastlingRight, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 28 | PathBlocked, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 29 | InvalidPromotion, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 30 | OutOfBounds, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MoveErr` 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 methods are never used [INFO] [stdout] --> src/position.rs:80:12 [INFO] [stdout] | [INFO] [stdout] 59 | impl Position { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn board(&self) -> &Board { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn state(&self) -> State { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | pub fn to_play(&self) -> Color { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub fn castle_rights(&self, player: Color) -> CastleRights { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | fn castle_rights_mut(&mut self, player: Color) -> &mut CastleRights { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn king_coord(&self, player: Color) -> Coord { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 113 | fn king_coord_mut(&mut self, player: Color) -> &mut Coord { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn is_in_check(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 124 | pub fn get_attackers(&self, coord: Coord, player: Color) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 150 | pub fn is_square_attacked(&self, coord: Coord, player: Color) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 154 | pub fn can_castle(&self, side: CastleSide) -> Option { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 203 | pub fn try_castle(&mut self, side: CastleSide) -> Result<(), MoveErr> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 251 | pub fn can_move(&self, from: Coord, to: Coord, promotion: Option) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 255 | pub fn try_move( [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 266 | fn next_move(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `can_piece_attack` is never used [INFO] [stdout] --> src/position.rs:281:4 [INFO] [stdout] | [INFO] [stdout] 281 | fn can_piece_attack(board: Board, from: Coord, piece: Piece, color: Color, to: Coord) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `can_pawn_attack` is never used [INFO] [stdout] --> src/position.rs:292:4 [INFO] [stdout] | [INFO] [stdout] 292 | fn can_pawn_attack(from: Coord, to: Coord, color: Color) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `can_knight_attack` is never used [INFO] [stdout] --> src/position.rs:302:4 [INFO] [stdout] | [INFO] [stdout] 302 | fn can_knight_attack(from: Coord, to: Coord) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `can_bishop_attack` is never used [INFO] [stdout] --> src/position.rs:307:4 [INFO] [stdout] | [INFO] [stdout] 307 | fn can_bishop_attack(board: Board, from: Coord, to: Coord) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `can_rook_attack` is never used [INFO] [stdout] --> src/position.rs:315:4 [INFO] [stdout] | [INFO] [stdout] 315 | fn can_rook_attack(board: Board, from: Coord, to: Coord) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `can_queen_attack` is never used [INFO] [stdout] --> src/position.rs:320:4 [INFO] [stdout] | [INFO] [stdout] 320 | fn can_queen_attack(board: Board, from: Coord, to: Coord) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `can_king_attack` is never used [INFO] [stdout] --> src/position.rs:325:4 [INFO] [stdout] | [INFO] [stdout] 325 | fn can_king_attack(from: Coord, to: Coord) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_clear_line` is never used [INFO] [stdout] --> src/position.rs:333:4 [INFO] [stdout] | [INFO] [stdout] 333 | fn is_clear_line(board: Board, from: Coord, to: Coord) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_clear_diagonal` is never used [INFO] [stdout] --> src/position.rs:370:4 [INFO] [stdout] | [INFO] [stdout] 370 | fn is_clear_diagonal(board: Board, from: Coord, to: Coord) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `is_empty` is never used [INFO] [stdout] --> src/board.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl Square { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] 26 | pub fn is_empty(self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `square`, `square_mut`, and `move_piece` are never used [INFO] [stdout] --> src/board.rs:43:12 [INFO] [stdout] | [INFO] [stdout] 42 | impl Board { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] 43 | pub fn square(&self, coord: Coord) -> Option { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn square_mut(&mut self, coord: Coord) -> Option<&mut Square> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 56 | pub fn move_piece(&mut self, from: Coord, to: Coord) -> Option { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `King` and `Queen` are never constructed [INFO] [stdout] --> src/position.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum CastleSide { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 5 | King, [INFO] [stdout] | ^^^^ [INFO] [stdout] 6 | Queen, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CastleSide` 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 `Checkmate` and `Stalemate` are never constructed [INFO] [stdout] --> src/position.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 16 | pub enum State { [INFO] [stdout] | ----- variants in this enum [INFO] [stdout] 17 | Playing, [INFO] [stdout] 18 | Checkmate(Color), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 19 | Stalemate(Color), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `State` 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/position.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 23 | pub enum MoveErr { [INFO] [stdout] | ------- variants in this enum [INFO] [stdout] 24 | PieceNotOwned, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 25 | DestinationOccupied, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 26 | KingInCheck, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 27 | NoCastlingRight, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 28 | PathBlocked, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 29 | InvalidPromotion, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 30 | OutOfBounds, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MoveErr` 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 methods are never used [INFO] [stdout] --> src/position.rs:80:12 [INFO] [stdout] | [INFO] [stdout] 59 | impl Position { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn board(&self) -> &Board { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn state(&self) -> State { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | pub fn to_play(&self) -> Color { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub fn castle_rights(&self, player: Color) -> CastleRights { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | fn castle_rights_mut(&mut self, player: Color) -> &mut CastleRights { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn king_coord(&self, player: Color) -> Coord { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 113 | fn king_coord_mut(&mut self, player: Color) -> &mut Coord { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn is_in_check(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 124 | pub fn get_attackers(&self, coord: Coord, player: Color) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 150 | pub fn is_square_attacked(&self, coord: Coord, player: Color) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 154 | pub fn can_castle(&self, side: CastleSide) -> Option { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 203 | pub fn try_castle(&mut self, side: CastleSide) -> Result<(), MoveErr> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 251 | pub fn can_move(&self, from: Coord, to: Coord, promotion: Option) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 255 | pub fn try_move( [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 266 | fn next_move(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `can_piece_attack` is never used [INFO] [stdout] --> src/position.rs:281:4 [INFO] [stdout] | [INFO] [stdout] 281 | fn can_piece_attack(board: Board, from: Coord, piece: Piece, color: Color, to: Coord) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `can_pawn_attack` is never used [INFO] [stdout] --> src/position.rs:292:4 [INFO] [stdout] | [INFO] [stdout] 292 | fn can_pawn_attack(from: Coord, to: Coord, color: Color) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `can_knight_attack` is never used [INFO] [stdout] --> src/position.rs:302:4 [INFO] [stdout] | [INFO] [stdout] 302 | fn can_knight_attack(from: Coord, to: Coord) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `can_bishop_attack` is never used [INFO] [stdout] --> src/position.rs:307:4 [INFO] [stdout] | [INFO] [stdout] 307 | fn can_bishop_attack(board: Board, from: Coord, to: Coord) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `can_rook_attack` is never used [INFO] [stdout] --> src/position.rs:315:4 [INFO] [stdout] | [INFO] [stdout] 315 | fn can_rook_attack(board: Board, from: Coord, to: Coord) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `can_queen_attack` is never used [INFO] [stdout] --> src/position.rs:320:4 [INFO] [stdout] | [INFO] [stdout] 320 | fn can_queen_attack(board: Board, from: Coord, to: Coord) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `can_king_attack` is never used [INFO] [stdout] --> src/position.rs:325:4 [INFO] [stdout] | [INFO] [stdout] 325 | fn can_king_attack(from: Coord, to: Coord) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_clear_line` is never used [INFO] [stdout] --> src/position.rs:333:4 [INFO] [stdout] | [INFO] [stdout] 333 | fn is_clear_line(board: Board, from: Coord, to: Coord) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_clear_diagonal` is never used [INFO] [stdout] --> src/position.rs:370:4 [INFO] [stdout] | [INFO] [stdout] 370 | fn is_clear_diagonal(board: Board, from: Coord, to: Coord) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.24s [INFO] running `Command { std: "docker" "inspect" "94b9f4d297132d76927bf9b7f4cb692ad4947c52af9820a57976494ac46d2ebd", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "94b9f4d297132d76927bf9b7f4cb692ad4947c52af9820a57976494ac46d2ebd", kill_on_drop: false }` [INFO] [stdout] 94b9f4d297132d76927bf9b7f4cb692ad4947c52af9820a57976494ac46d2ebd