[INFO] cloning repository https://github.com/fangs124/chessbb
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/fangs124/chessbb" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffangs124%2Fchessbb", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffangs124%2Fchessbb'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 186e555e3a6013b961c426e8c2d8db14837a3148
[INFO] testing fangs124/chessbb against try#bd7d74411512a3dd3b35d2f699c51dd2557c7e7e+cargoflags=-Zbuild-dir-new-layout for pr-149852-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffangs124%2Fchessbb" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/fangs124/chessbb
[INFO] finished tweaking git repo https://github.com/fangs124/chessbb
[INFO] tweaked toml for git repo https://github.com/fangs124/chessbb written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/fangs124/chessbb on toolchain bd7d74411512a3dd3b35d2f699c51dd2557c7e7e
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/fangs124/chessbb 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" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]      Locking 4 packages to latest Rust 1.94.0-nightly compatible versions
[INFO] [stderr]       Adding arrayvec v0.7.6
[INFO] [stderr]       Adding serde v1.0.228
[INFO] [stderr]       Adding serde_core v1.0.228
[INFO] [stderr]       Adding serde_derive v1.0.228
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] b519f9f68d109306b7ef83f7a49f839bb5ff6673f690b65df86f2e780e1485ff
[INFO] running `Command { std: "docker" "start" "-a" "b519f9f68d109306b7ef83f7a49f839bb5ff6673f690b65df86f2e780e1485ff", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b519f9f68d109306b7ef83f7a49f839bb5ff6673f690b65df86f2e780e1485ff", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b519f9f68d109306b7ef83f7a49f839bb5ff6673f690b65df86f2e780e1485ff", kill_on_drop: false }`
[INFO] [stdout] b519f9f68d109306b7ef83f7a49f839bb5ff6673f690b65df86f2e780e1485ff
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "build" "--frozen" "--message-format=json" "-Zbuild-dir-new-layout", kill_on_drop: false }`
[INFO] [stdout] 1b9239955f0330c605d58c2640632db0468330462027f030d051cd5eb4ef528b
[INFO] running `Command { std: "docker" "start" "-a" "1b9239955f0330c605d58c2640632db0468330462027f030d051cd5eb4ef528b", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]    Compiling bytemuck_derive v1.10.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling bytemuck v1.23.2
[INFO] [stderr]    Compiling atomic v0.6.1
[INFO] [stderr]    Compiling chessbb v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `ops::Neg`
[INFO] [stdout]  --> src/search.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     ops::Neg,
[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 imports: `PositionData` and `TranspositionTable`
[INFO] [stdout]  --> src/search.rs:9:92
[INFO] [stdout]   |
[INFO] [stdout] 9 |     ChessBoard, ChessBoardSnapshot, ChessMove, GameResult, GameState, NodeType, PieceType, PositionData, Side, TranspositionTable,
[INFO] [stdout]   |                                                                                            ^^^^^^^^^^^^        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicU64` and `rc::Rc`
[INFO] [stdout]  --> src/transposition.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     rc::Rc,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 5 |     sync::atomic::{AtomicU64, Ordering},
[INFO] [stdout]   |                    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `movegen::SIZE`
[INFO] [stdout]   --> src/lib.rs:16:39
[INFO] [stdout]    |
[INFO] [stdout] 16 |     bitboard::*, chessmove::MoveType, movegen::SIZE, zobrist::{ZobristHash, ZobristTable}
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/lib.rs:551:39
[INFO] [stdout]     |
[INFO] [stdout] 551 |                     check_bitboard |= (chessboard.piece_bbs[07] & get_queen_attack(king_pos, blockers));
[INFO] [stdout]     |                                       ^                                                               ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 551 -                     check_bitboard |= (chessboard.piece_bbs[07] & get_queen_attack(king_pos, blockers));
[INFO] [stdout] 551 +                     check_bitboard |= chessboard.piece_bbs[07] & get_queen_attack(king_pos, blockers) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/lib.rs:553:39
[INFO] [stdout]     |
[INFO] [stdout] 553 |                     check_bitboard |= (chessboard.piece_bbs[08] & get_knight_attack(king_pos));
[INFO] [stdout]     |                                       ^                                                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 553 -                     check_bitboard |= (chessboard.piece_bbs[08] & get_knight_attack(king_pos));
[INFO] [stdout] 553 +                     check_bitboard |= chessboard.piece_bbs[08] & get_knight_attack(king_pos) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/lib.rs:555:39
[INFO] [stdout]     |
[INFO] [stdout] 555 |                     check_bitboard |= (chessboard.piece_bbs[09] & get_bishop_attack(king_pos, blockers));
[INFO] [stdout]     |                                       ^                                                                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 555 -                     check_bitboard |= (chessboard.piece_bbs[09] & get_bishop_attack(king_pos, blockers));
[INFO] [stdout] 555 +                     check_bitboard |= chessboard.piece_bbs[09] & get_bishop_attack(king_pos, blockers) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/lib.rs:557:39
[INFO] [stdout]     |
[INFO] [stdout] 557 |                     check_bitboard |= (chessboard.piece_bbs[10] & get_rook_attack(king_pos, blockers));
[INFO] [stdout]     |                                       ^                                                              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 557 -                     check_bitboard |= (chessboard.piece_bbs[10] & get_rook_attack(king_pos, blockers));
[INFO] [stdout] 557 +                     check_bitboard |= chessboard.piece_bbs[10] & get_rook_attack(king_pos, blockers) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/lib.rs:559:39
[INFO] [stdout]     |
[INFO] [stdout] 559 |                     check_bitboard |= (chessboard.piece_bbs[11] & get_w_pawn_attack(king_pos));
[INFO] [stdout]     |                                       ^                                                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 559 -                     check_bitboard |= (chessboard.piece_bbs[11] & get_w_pawn_attack(king_pos));
[INFO] [stdout] 559 +                     check_bitboard |= chessboard.piece_bbs[11] & get_w_pawn_attack(king_pos) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/lib.rs:568:39
[INFO] [stdout]     |
[INFO] [stdout] 568 |                     check_bitboard |= (chessboard.piece_bbs[01] & get_queen_attack(king_pos, blockers));
[INFO] [stdout]     |                                       ^                                                               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 568 -                     check_bitboard |= (chessboard.piece_bbs[01] & get_queen_attack(king_pos, blockers));
[INFO] [stdout] 568 +                     check_bitboard |= chessboard.piece_bbs[01] & get_queen_attack(king_pos, blockers) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/lib.rs:570:39
[INFO] [stdout]     |
[INFO] [stdout] 570 |                     check_bitboard |= (chessboard.piece_bbs[02] & get_knight_attack(king_pos));
[INFO] [stdout]     |                                       ^                                                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 570 -                     check_bitboard |= (chessboard.piece_bbs[02] & get_knight_attack(king_pos));
[INFO] [stdout] 570 +                     check_bitboard |= chessboard.piece_bbs[02] & get_knight_attack(king_pos) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/lib.rs:572:39
[INFO] [stdout]     |
[INFO] [stdout] 572 |                     check_bitboard |= (chessboard.piece_bbs[03] & get_bishop_attack(king_pos, blockers));
[INFO] [stdout]     |                                       ^                                                                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 572 -                     check_bitboard |= (chessboard.piece_bbs[03] & get_bishop_attack(king_pos, blockers));
[INFO] [stdout] 572 +                     check_bitboard |= chessboard.piece_bbs[03] & get_bishop_attack(king_pos, blockers) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/lib.rs:574:39
[INFO] [stdout]     |
[INFO] [stdout] 574 |                     check_bitboard |= (chessboard.piece_bbs[04] & get_rook_attack(king_pos, blockers));
[INFO] [stdout]     |                                       ^                                                              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 574 -                     check_bitboard |= (chessboard.piece_bbs[04] & get_rook_attack(king_pos, blockers));
[INFO] [stdout] 574 +                     check_bitboard |= chessboard.piece_bbs[04] & get_rook_attack(king_pos, blockers) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/lib.rs:576:39
[INFO] [stdout]     |
[INFO] [stdout] 576 |                     check_bitboard |= (chessboard.piece_bbs[05] & get_b_pawn_attack(king_pos));
[INFO] [stdout]     |                                       ^                                                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 576 -                     check_bitboard |= (chessboard.piece_bbs[05] & get_b_pawn_attack(king_pos));
[INFO] [stdout] 576 +                     check_bitboard |= chessboard.piece_bbs[05] & get_b_pawn_attack(king_pos) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/search.rs:147:13
[INFO] [stdout]     |
[INFO] [stdout] 147 |         let mut moves = moves.unwrap_or_else(|| self.core.generate_moves(None));
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `piece_type`
[INFO] [stdout]    --> src/lib.rs:426:36
[INFO] [stdout]     |
[INFO] [stdout] 426 |     pub const fn is_present(&self, piece_type: ChessPiece, square: Square) -> bool {
[INFO] [stdout]     |                                    ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_piece_type`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `piece_type`
[INFO] [stdout]    --> src/lib.rs:427:56
[INFO] [stdout]     |
[INFO] [stdout] 427 |         matches!(self.mailbox[square.to_usize()], Some(piece_type))
[INFO] [stdout]     |                                                        ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_piece_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `chessmove::MoveType` is more private than the item `chessmove::ChessMove::new`
[INFO] [stdout]    --> src/chessmove/mod.rs:159:5
[INFO] [stdout]     |
[INFO] [stdout] 159 |     pub const fn new(s: Square, t: Square, m: MoveType) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `chessmove::ChessMove::new` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `chessmove::MoveType` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/chessmove/mod.rs:81:1
[INFO] [stdout]     |
[INFO] [stdout]  81 | pub(crate) enum MoveType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `is_piece_pinned`, `count_checking_pieces`, and `INITIAL_ATTACKED_BB` are never used
[INFO] [stdout]    --> src/lib.rs:862:19
[INFO] [stdout]     |
[INFO] [stdout] 396 | impl ChessBoardCore {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 862 |     pub(crate) fn is_piece_pinned(&self, square: Square) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 868 |     pub(crate) const fn count_checking_pieces(&self) -> u32 {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 947 |     const INITIAL_ATTACKED_BB: BitBoard = BitBoard::new(0b00000000_00000000_11111111_00000000_00000000_00000000_00000000_00000000);
[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 `ONES`, `get_bit`, `lsb_index`, and `bit_xor` are never used
[INFO] [stdout]    --> src/bitboard/mod.rs:91:22
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl BitBoard {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub(crate) const ONES: BitBoard = BitBoard { data: u64::MAX };
[INFO] [stdout]     |                      ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub(crate) const fn get_bit(&self, i: usize) -> BitBoard {
[INFO] [stdout]     |                         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     pub(crate) const fn lsb_index(&self) -> Option<usize> {
[INFO] [stdout]     |                         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     pub(crate) const fn bit_xor(&self, other: &BitBoard) -> BitBoard {
[INFO] [stdout]     |                         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNICODE_SYM` is never used
[INFO] [stdout]    --> src/bitboard/mod.rs:237:18
[INFO] [stdout]     |
[INFO] [stdout] 237 | pub(super) const UNICODE_SYM: [char; 12] = ['♚', '♛', '♞', '♝', '♜', '♟', '♔', '♕', '♘', '♗', '♖', '♙'];
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_same_diag` is never used
[INFO] [stdout]    --> src/bitboard/mod.rs:249:21
[INFO] [stdout]     |
[INFO] [stdout] 249 | pub(crate) const fn is_same_diag(source: Square, target: Square) -> bool {
[INFO] [stdout]     |                     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SQUARE_SYM_REV` is never used
[INFO] [stdout]    --> src/bitboard/mod.rs:299:18
[INFO] [stdout]     |
[INFO] [stdout] 299 | pub(crate) const SQUARE_SYM_REV: [&str; 64] = [
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RANK_CHAR` is never used
[INFO] [stdout]    --> src/bitboard/mod.rs:310:18
[INFO] [stdout]     |
[INFO] [stdout] 310 | pub(crate) const RANK_CHAR: [char; 64] = [
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FILE_CHAR` is never used
[INFO] [stdout]    --> src/bitboard/mod.rs:321:18
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub(crate) const FILE_CHAR: [char; 64] = [
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_pawn_attack` is never used
[INFO] [stdout]   --> src/bitboard/attack.rs:30:14
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub const fn get_pawn_attack(square: Square, side: Side) -> BitBoard {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_occ_bb` is never used
[INFO] [stdout]   --> src/bitboard/attack/magic.rs:77:10
[INFO] [stdout]    |
[INFO] [stdout] 77 | const fn compute_occ_bb(index: usize, mask_bitcount: usize, attack_mask: BitBoard) -> BitBoard {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bishop_attack_mbb` is never used
[INFO] [stdout]    --> src/bitboard/attack/magic.rs:167:10
[INFO] [stdout]     |
[INFO] [stdout] 167 | const fn bishop_attack_mbb() -> [[BitBoard; SIZE_BISHOP]; 64] {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rook_attack_mbb` is never used
[INFO] [stdout]    --> src/bitboard/attack/magic.rs:194:10
[INFO] [stdout]     |
[INFO] [stdout] 194 | const fn rook_attack_mbb() -> [[BitBoard; SIZE_ROOK]; 64] {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_source` and `set_target` are never used
[INFO] [stdout]    --> src/chessmove/mod.rs:140:25
[INFO] [stdout]     |
[INFO] [stdout]  94 | impl ChessMove {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub(crate) const fn set_source(&mut self, index: usize) {
[INFO] [stdout]     |                         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub(crate) const fn set_target(&mut self, index: usize) {
[INFO] [stdout]     |                         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIZE` is never used
[INFO] [stdout]  --> src/movegen.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub(crate) const SIZE: usize = 218; //256 looks nicer..
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_move_capture` and `mvv_score` are never used
[INFO] [stdout]   --> src/movegen.rs:9:19
[INFO] [stdout]    |
[INFO] [stdout]  5 | impl ChessBoardCore {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  9 |     pub(crate) fn is_move_capture(&self, chess_move: &ChessMove) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub(crate) fn mvv_score(&self, chess_move: &ChessMove) -> i16 {
[INFO] [stdout]    |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `AtomicTT` is never used
[INFO] [stdout]    --> src/search.rs:106:6
[INFO] [stdout]     |
[INFO] [stdout] 106 | type AtomicTT = AtomicTranspositionTable;
[INFO] [stdout]     |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `QUIESCENE_FALLBACK_DEPTH` is never used
[INFO] [stdout]    --> src/search.rs:108:7
[INFO] [stdout]     |
[INFO] [stdout] 108 | const QUIESCENE_FALLBACK_DEPTH: u16 = u8::MAX as u16;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SQUARE_SYM` is never used
[INFO] [stdout]    --> src/square/mod.rs:150:18
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub(crate) const SQUARE_SYM: [&str; 64] = [
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SQUARES_RAW` is never used
[INFO] [stdout]    --> src/square/mod.rs:161:7
[INFO] [stdout]     |
[INFO] [stdout] 161 | const SQUARES_RAW: [u8; 64] = [
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SQUARES_RAW_USIZE` is never used
[INFO] [stdout]    --> src/square/mod.rs:172:7
[INFO] [stdout]     |
[INFO] [stdout] 172 | const SQUARES_RAW_USIZE: [usize; 64] = [
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `compute_castle_hash` are never used
[INFO] [stdout]    --> src/zobrist/mod.rs:74:25
[INFO] [stdout]     |
[INFO] [stdout]  70 | impl ZobristHash {
[INFO] [stdout]     | ---------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub(super) const fn new(value: u64) -> ZobristHash {
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub(super) const fn compute_castle_hash(chessboard: &ChessBoardCore) -> ZobristHash {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `const_default` is never used
[INFO] [stdout]   --> src/transposition.rs:83:14
[INFO] [stdout]    |
[INFO] [stdout] 76 | impl PositionData {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 83 |     const fn const_default() -> Self {
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `look_up` is never used
[INFO] [stdout]    --> src/transposition.rs:204:19
[INFO] [stdout]     |
[INFO] [stdout] 177 | impl TranspositionTable {
[INFO] [stdout]     | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 204 |     pub(crate) fn look_up(&self, hash: &ZobristHash) -> PositionData {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IS_POSITION_DATA_LOCK_FREE` is never used
[INFO] [stdout]    --> src/transposition.rs:255:7
[INFO] [stdout]     |
[INFO] [stdout] 255 | const IS_POSITION_DATA_LOCK_FREE: bool = Atomic::<PositionData>::is_lock_free();
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `const_default` are never used
[INFO] [stdout]    --> src/transposition.rs:271:8
[INFO] [stdout]     |
[INFO] [stdout] 269 | impl AtomicPositionData {
[INFO] [stdout]     | ----------------------- associated functions in this implementation
[INFO] [stdout] 270 |     #[inline(always)]
[INFO] [stdout] 271 |     fn new(key: ZobristHash, depth: u16, eval: i16, ty: NodeType, best: Option<ChessMove>) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 301 |     const fn const_default() -> Self {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `load` is never used
[INFO] [stdout]    --> src/transposition.rs:411:19
[INFO] [stdout]     |
[INFO] [stdout] 386 | impl AtomicTranspositionTable {
[INFO] [stdout]     | ----------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 411 |     pub(crate) fn load(&self, hash: ZobristHash, order: Ordering) -> Option<PositionData> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IS_SMALL_POSITION_DATA_LOCK_FREE` is never used
[INFO] [stdout]    --> src/transposition.rs:440:7
[INFO] [stdout]     |
[INFO] [stdout] 440 | const IS_SMALL_POSITION_DATA_LOCK_FREE: bool = Atomic::<SmallPositionData>::is_lock_free();
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IS_ZOBRIST_HASH_LOCK_FREE` is never used
[INFO] [stdout]    --> src/transposition.rs:441:7
[INFO] [stdout]     |
[INFO] [stdout] 441 | const IS_ZOBRIST_HASH_LOCK_FREE: bool = Atomic::<ZobristHash>::is_lock_free();
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/transposition.rs:492:8
[INFO] [stdout]     |
[INFO] [stdout] 488 | impl SmallAtomicPositionData {
[INFO] [stdout]     | ---------------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 492 |     fn new(key: ZobristHash, depth: u16, eval: i16, ty: NodeType, best: Option<ChessMove>) -> SmallAtomicPositionData {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_sync` is never used
[INFO] [stdout]    --> src/transposition.rs:665:10
[INFO] [stdout]     |
[INFO] [stdout] 665 | const fn check_sync<T: Sync>() {}
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIZE` is never used
[INFO] [stdout]    --> src/transposition.rs:669:7
[INFO] [stdout]     |
[INFO] [stdout] 669 | const SIZE: usize = mem::size_of::<SmallPositionData>(); // 8
[INFO] [stdout]     |       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ALIGN` is never used
[INFO] [stdout]    --> src/transposition.rs:670:7
[INFO] [stdout]     |
[INFO] [stdout] 670 | const ALIGN: usize = mem::align_of::<SmallPositionData>(); // 2
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HAS_ATOMIC_64` is never used
[INFO] [stdout]    --> src/transposition.rs:671:7
[INFO] [stdout]     |
[INFO] [stdout] 671 | const HAS_ATOMIC_64: bool = cfg!(target_has_atomic = "64"); // true
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HAS_ATOMIC_128` is never used
[INFO] [stdout]    --> src/transposition.rs:672:7
[INFO] [stdout]     |
[INFO] [stdout] 672 | const HAS_ATOMIC_128: bool = cfg!(target_has_atomic = "128"); // false
[INFO] [stdout]     |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::error`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use core::error;
[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: `env`
[INFO] [stdout]  --> src/main.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::{env, time::Instant};
[INFO] [stdout]   |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_fen`
[INFO] [stdout]   --> src/main.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let start_fen = "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1";
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_fen`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `USE_RUSTIC_EPDS` is never used
[INFO] [stdout]   --> src/main.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const USE_RUSTIC_EPDS: bool = false;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `perft_test` is never used
[INFO] [stdout]   --> src/main.rs:92:4
[INFO] [stdout]    |
[INFO] [stdout] 92 | fn perft_test(skip_to: Option<usize>) {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LARGE_TEST_EPDS` is never used
[INFO] [stdout]  --> src/epds.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const LARGE_TEST_EPDS: [&str; 172] = [
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [optimized + debuginfo] target(s) in 18.83s
[INFO] running `Command { std: "docker" "inspect" "1b9239955f0330c605d58c2640632db0468330462027f030d051cd5eb4ef528b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1b9239955f0330c605d58c2640632db0468330462027f030d051cd5eb4ef528b", kill_on_drop: false }`
[INFO] [stdout] 1b9239955f0330c605d58c2640632db0468330462027f030d051cd5eb4ef528b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "test" "--frozen" "--no-run" "--message-format=json" "-Zbuild-dir-new-layout", kill_on_drop: false }`
[INFO] [stdout] b6c35af5ddbbfbfde9f1a22154f18021988ab41f3c9653699a740901b7c7a37c
[INFO] running `Command { std: "docker" "start" "-a" "b6c35af5ddbbfbfde9f1a22154f18021988ab41f3c9653699a740901b7c7a37c", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `ops::Neg`
[INFO] [stdout]  --> src/search.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     ops::Neg,
[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 imports: `PositionData` and `TranspositionTable`
[INFO] [stdout]  --> src/search.rs:9:92
[INFO] [stdout]   |
[INFO] [stdout] 9 |     ChessBoard, ChessBoardSnapshot, ChessMove, GameResult, GameState, NodeType, PieceType, PositionData, Side, TranspositionTable,
[INFO] [stdout]   |                                                                                            ^^^^^^^^^^^^        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicU64` and `rc::Rc`
[INFO] [stdout]  --> src/transposition.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     rc::Rc,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 5 |     sync::atomic::{AtomicU64, Ordering},
[INFO] [stdout]   |                    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `movegen::SIZE`
[INFO] [stdout]   --> src/lib.rs:16:39
[INFO] [stdout]    |
[INFO] [stdout] 16 |     bitboard::*, chessmove::MoveType, movegen::SIZE, zobrist::{ZobristHash, ZobristTable}
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/lib.rs:551:39
[INFO] [stdout]     |
[INFO] [stdout] 551 |                     check_bitboard |= (chessboard.piece_bbs[07] & get_queen_attack(king_pos, blockers));
[INFO] [stdout]     |                                       ^                                                               ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 551 -                     check_bitboard |= (chessboard.piece_bbs[07] & get_queen_attack(king_pos, blockers));
[INFO] [stdout] 551 +                     check_bitboard |= chessboard.piece_bbs[07] & get_queen_attack(king_pos, blockers) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/lib.rs:553:39
[INFO] [stdout]     |
[INFO] [stdout] 553 |                     check_bitboard |= (chessboard.piece_bbs[08] & get_knight_attack(king_pos));
[INFO] [stdout]     |                                       ^                                                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 553 -                     check_bitboard |= (chessboard.piece_bbs[08] & get_knight_attack(king_pos));
[INFO] [stdout] 553 +                     check_bitboard |= chessboard.piece_bbs[08] & get_knight_attack(king_pos) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/lib.rs:555:39
[INFO] [stdout]     |
[INFO] [stdout] 555 |                     check_bitboard |= (chessboard.piece_bbs[09] & get_bishop_attack(king_pos, blockers));
[INFO] [stdout]     |                                       ^                                                                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 555 -                     check_bitboard |= (chessboard.piece_bbs[09] & get_bishop_attack(king_pos, blockers));
[INFO] [stdout] 555 +                     check_bitboard |= chessboard.piece_bbs[09] & get_bishop_attack(king_pos, blockers) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/lib.rs:557:39
[INFO] [stdout]     |
[INFO] [stdout] 557 |                     check_bitboard |= (chessboard.piece_bbs[10] & get_rook_attack(king_pos, blockers));
[INFO] [stdout]     |                                       ^                                                              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 557 -                     check_bitboard |= (chessboard.piece_bbs[10] & get_rook_attack(king_pos, blockers));
[INFO] [stdout] 557 +                     check_bitboard |= chessboard.piece_bbs[10] & get_rook_attack(king_pos, blockers) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/lib.rs:559:39
[INFO] [stdout]     |
[INFO] [stdout] 559 |                     check_bitboard |= (chessboard.piece_bbs[11] & get_w_pawn_attack(king_pos));
[INFO] [stdout]     |                                       ^                                                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 559 -                     check_bitboard |= (chessboard.piece_bbs[11] & get_w_pawn_attack(king_pos));
[INFO] [stdout] 559 +                     check_bitboard |= chessboard.piece_bbs[11] & get_w_pawn_attack(king_pos) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/lib.rs:568:39
[INFO] [stdout]     |
[INFO] [stdout] 568 |                     check_bitboard |= (chessboard.piece_bbs[01] & get_queen_attack(king_pos, blockers));
[INFO] [stdout]     |                                       ^                                                               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 568 -                     check_bitboard |= (chessboard.piece_bbs[01] & get_queen_attack(king_pos, blockers));
[INFO] [stdout] 568 +                     check_bitboard |= chessboard.piece_bbs[01] & get_queen_attack(king_pos, blockers) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/lib.rs:570:39
[INFO] [stdout]     |
[INFO] [stdout] 570 |                     check_bitboard |= (chessboard.piece_bbs[02] & get_knight_attack(king_pos));
[INFO] [stdout]     |                                       ^                                                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 570 -                     check_bitboard |= (chessboard.piece_bbs[02] & get_knight_attack(king_pos));
[INFO] [stdout] 570 +                     check_bitboard |= chessboard.piece_bbs[02] & get_knight_attack(king_pos) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/lib.rs:572:39
[INFO] [stdout]     |
[INFO] [stdout] 572 |                     check_bitboard |= (chessboard.piece_bbs[03] & get_bishop_attack(king_pos, blockers));
[INFO] [stdout]     |                                       ^                                                                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 572 -                     check_bitboard |= (chessboard.piece_bbs[03] & get_bishop_attack(king_pos, blockers));
[INFO] [stdout] 572 +                     check_bitboard |= chessboard.piece_bbs[03] & get_bishop_attack(king_pos, blockers) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/lib.rs:574:39
[INFO] [stdout]     |
[INFO] [stdout] 574 |                     check_bitboard |= (chessboard.piece_bbs[04] & get_rook_attack(king_pos, blockers));
[INFO] [stdout]     |                                       ^                                                              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 574 -                     check_bitboard |= (chessboard.piece_bbs[04] & get_rook_attack(king_pos, blockers));
[INFO] [stdout] 574 +                     check_bitboard |= chessboard.piece_bbs[04] & get_rook_attack(king_pos, blockers) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/lib.rs:576:39
[INFO] [stdout]     |
[INFO] [stdout] 576 |                     check_bitboard |= (chessboard.piece_bbs[05] & get_b_pawn_attack(king_pos));
[INFO] [stdout]     |                                       ^                                                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 576 -                     check_bitboard |= (chessboard.piece_bbs[05] & get_b_pawn_attack(king_pos));
[INFO] [stdout] 576 +                     check_bitboard |= chessboard.piece_bbs[05] & get_b_pawn_attack(king_pos) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/search.rs:147:13
[INFO] [stdout]     |
[INFO] [stdout] 147 |         let mut moves = moves.unwrap_or_else(|| self.core.generate_moves(None));
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `piece_type`
[INFO] [stdout]    --> src/lib.rs:426:36
[INFO] [stdout]     |
[INFO] [stdout] 426 |     pub const fn is_present(&self, piece_type: ChessPiece, square: Square) -> bool {
[INFO] [stdout]     |                                    ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_piece_type`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `piece_type`
[INFO] [stdout]    --> src/lib.rs:427:56
[INFO] [stdout]     |
[INFO] [stdout] 427 |         matches!(self.mailbox[square.to_usize()], Some(piece_type))
[INFO] [stdout]     |                                                        ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_piece_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `chessmove::MoveType` is more private than the item `chessmove::ChessMove::new`
[INFO] [stdout]    --> src/chessmove/mod.rs:159:5
[INFO] [stdout]     |
[INFO] [stdout] 159 |     pub const fn new(s: Square, t: Square, m: MoveType) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `chessmove::ChessMove::new` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `chessmove::MoveType` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/chessmove/mod.rs:81:1
[INFO] [stdout]     |
[INFO] [stdout]  81 | pub(crate) enum MoveType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `is_piece_pinned`, `count_checking_pieces`, and `INITIAL_ATTACKED_BB` are never used
[INFO] [stdout]    --> src/lib.rs:862:19
[INFO] [stdout]     |
[INFO] [stdout] 396 | impl ChessBoardCore {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 862 |     pub(crate) fn is_piece_pinned(&self, square: Square) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 868 |     pub(crate) const fn count_checking_pieces(&self) -> u32 {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 947 |     const INITIAL_ATTACKED_BB: BitBoard = BitBoard::new(0b00000000_00000000_11111111_00000000_00000000_00000000_00000000_00000000);
[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 `ONES`, `get_bit`, `lsb_index`, and `bit_xor` are never used
[INFO] [stdout]    --> src/bitboard/mod.rs:91:22
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl BitBoard {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub(crate) const ONES: BitBoard = BitBoard { data: u64::MAX };
[INFO] [stdout]     |                      ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub(crate) const fn get_bit(&self, i: usize) -> BitBoard {
[INFO] [stdout]     |                         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     pub(crate) const fn lsb_index(&self) -> Option<usize> {
[INFO] [stdout]     |                         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     pub(crate) const fn bit_xor(&self, other: &BitBoard) -> BitBoard {
[INFO] [stdout]     |                         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNICODE_SYM` is never used
[INFO] [stdout]    --> src/bitboard/mod.rs:237:18
[INFO] [stdout]     |
[INFO] [stdout] 237 | pub(super) const UNICODE_SYM: [char; 12] = ['♚', '♛', '♞', '♝', '♜', '♟', '♔', '♕', '♘', '♗', '♖', '♙'];
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_same_diag` is never used
[INFO] [stdout]    --> src/bitboard/mod.rs:249:21
[INFO] [stdout]     |
[INFO] [stdout] 249 | pub(crate) const fn is_same_diag(source: Square, target: Square) -> bool {
[INFO] [stdout]     |                     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SQUARE_SYM_REV` is never used
[INFO] [stdout]    --> src/bitboard/mod.rs:299:18
[INFO] [stdout]     |
[INFO] [stdout] 299 | pub(crate) const SQUARE_SYM_REV: [&str; 64] = [
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RANK_CHAR` is never used
[INFO] [stdout]    --> src/bitboard/mod.rs:310:18
[INFO] [stdout]     |
[INFO] [stdout] 310 | pub(crate) const RANK_CHAR: [char; 64] = [
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FILE_CHAR` is never used
[INFO] [stdout]    --> src/bitboard/mod.rs:321:18
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub(crate) const FILE_CHAR: [char; 64] = [
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_pawn_attack` is never used
[INFO] [stdout]   --> src/bitboard/attack.rs:30:14
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub const fn get_pawn_attack(square: Square, side: Side) -> BitBoard {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_occ_bb` is never used
[INFO] [stdout]   --> src/bitboard/attack/magic.rs:77:10
[INFO] [stdout]    |
[INFO] [stdout] 77 | const fn compute_occ_bb(index: usize, mask_bitcount: usize, attack_mask: BitBoard) -> BitBoard {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bishop_attack_mbb` is never used
[INFO] [stdout]    --> src/bitboard/attack/magic.rs:167:10
[INFO] [stdout]     |
[INFO] [stdout] 167 | const fn bishop_attack_mbb() -> [[BitBoard; SIZE_BISHOP]; 64] {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rook_attack_mbb` is never used
[INFO] [stdout]    --> src/bitboard/attack/magic.rs:194:10
[INFO] [stdout]     |
[INFO] [stdout] 194 | const fn rook_attack_mbb() -> [[BitBoard; SIZE_ROOK]; 64] {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_source` and `set_target` are never used
[INFO] [stdout]    --> src/chessmove/mod.rs:140:25
[INFO] [stdout]     |
[INFO] [stdout]  94 | impl ChessMove {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub(crate) const fn set_source(&mut self, index: usize) {
[INFO] [stdout]     |                         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub(crate) const fn set_target(&mut self, index: usize) {
[INFO] [stdout]     |                         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIZE` is never used
[INFO] [stdout]  --> src/movegen.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub(crate) const SIZE: usize = 218; //256 looks nicer..
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_move_capture` and `mvv_score` are never used
[INFO] [stdout]   --> src/movegen.rs:9:19
[INFO] [stdout]    |
[INFO] [stdout]  5 | impl ChessBoardCore {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  9 |     pub(crate) fn is_move_capture(&self, chess_move: &ChessMove) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub(crate) fn mvv_score(&self, chess_move: &ChessMove) -> i16 {
[INFO] [stdout]    |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `AtomicTT` is never used
[INFO] [stdout]    --> src/search.rs:106:6
[INFO] [stdout]     |
[INFO] [stdout] 106 | type AtomicTT = AtomicTranspositionTable;
[INFO] [stdout]     |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `QUIESCENE_FALLBACK_DEPTH` is never used
[INFO] [stdout]    --> src/search.rs:108:7
[INFO] [stdout]     |
[INFO] [stdout] 108 | const QUIESCENE_FALLBACK_DEPTH: u16 = u8::MAX as u16;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SQUARE_SYM` is never used
[INFO] [stdout]    --> src/square/mod.rs:150:18
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub(crate) const SQUARE_SYM: [&str; 64] = [
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SQUARES_RAW` is never used
[INFO] [stdout]    --> src/square/mod.rs:161:7
[INFO] [stdout]     |
[INFO] [stdout] 161 | const SQUARES_RAW: [u8; 64] = [
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SQUARES_RAW_USIZE` is never used
[INFO] [stdout]    --> src/square/mod.rs:172:7
[INFO] [stdout]     |
[INFO] [stdout] 172 | const SQUARES_RAW_USIZE: [usize; 64] = [
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `compute_castle_hash` are never used
[INFO] [stdout]    --> src/zobrist/mod.rs:74:25
[INFO] [stdout]     |
[INFO] [stdout]  70 | impl ZobristHash {
[INFO] [stdout]     | ---------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub(super) const fn new(value: u64) -> ZobristHash {
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub(super) const fn compute_castle_hash(chessboard: &ChessBoardCore) -> ZobristHash {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `const_default` is never used
[INFO] [stdout]   --> src/transposition.rs:83:14
[INFO] [stdout]    |
[INFO] [stdout] 76 | impl PositionData {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 83 |     const fn const_default() -> Self {
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `look_up` is never used
[INFO] [stdout]    --> src/transposition.rs:204:19
[INFO] [stdout]     |
[INFO] [stdout] 177 | impl TranspositionTable {
[INFO] [stdout]     | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 204 |     pub(crate) fn look_up(&self, hash: &ZobristHash) -> PositionData {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IS_POSITION_DATA_LOCK_FREE` is never used
[INFO] [stdout]    --> src/transposition.rs:255:7
[INFO] [stdout]     |
[INFO] [stdout] 255 | const IS_POSITION_DATA_LOCK_FREE: bool = Atomic::<PositionData>::is_lock_free();
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `const_default` are never used
[INFO] [stdout]    --> src/transposition.rs:271:8
[INFO] [stdout]     |
[INFO] [stdout] 269 | impl AtomicPositionData {
[INFO] [stdout]     | ----------------------- associated functions in this implementation
[INFO] [stdout] 270 |     #[inline(always)]
[INFO] [stdout] 271 |     fn new(key: ZobristHash, depth: u16, eval: i16, ty: NodeType, best: Option<ChessMove>) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 301 |     const fn const_default() -> Self {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `load` is never used
[INFO] [stdout]    --> src/transposition.rs:411:19
[INFO] [stdout]     |
[INFO] [stdout] 386 | impl AtomicTranspositionTable {
[INFO] [stdout]     | ----------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 411 |     pub(crate) fn load(&self, hash: ZobristHash, order: Ordering) -> Option<PositionData> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IS_SMALL_POSITION_DATA_LOCK_FREE` is never used
[INFO] [stdout]    --> src/transposition.rs:440:7
[INFO] [stdout]     |
[INFO] [stdout] 440 | const IS_SMALL_POSITION_DATA_LOCK_FREE: bool = Atomic::<SmallPositionData>::is_lock_free();
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IS_ZOBRIST_HASH_LOCK_FREE` is never used
[INFO] [stdout]    --> src/transposition.rs:441:7
[INFO] [stdout]     |
[INFO] [stdout] 441 | const IS_ZOBRIST_HASH_LOCK_FREE: bool = Atomic::<ZobristHash>::is_lock_free();
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/transposition.rs:492:8
[INFO] [stdout]     |
[INFO] [stdout] 488 | impl SmallAtomicPositionData {
[INFO] [stdout]     | ---------------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 492 |     fn new(key: ZobristHash, depth: u16, eval: i16, ty: NodeType, best: Option<ChessMove>) -> SmallAtomicPositionData {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_sync` is never used
[INFO] [stdout]    --> src/transposition.rs:665:10
[INFO] [stdout]     |
[INFO] [stdout] 665 | const fn check_sync<T: Sync>() {}
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIZE` is never used
[INFO] [stdout]    --> src/transposition.rs:669:7
[INFO] [stdout]     |
[INFO] [stdout] 669 | const SIZE: usize = mem::size_of::<SmallPositionData>(); // 8
[INFO] [stdout]     |       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ALIGN` is never used
[INFO] [stdout]    --> src/transposition.rs:670:7
[INFO] [stdout]     |
[INFO] [stdout] 670 | const ALIGN: usize = mem::align_of::<SmallPositionData>(); // 2
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HAS_ATOMIC_64` is never used
[INFO] [stdout]    --> src/transposition.rs:671:7
[INFO] [stdout]     |
[INFO] [stdout] 671 | const HAS_ATOMIC_64: bool = cfg!(target_has_atomic = "64"); // true
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HAS_ATOMIC_128` is never used
[INFO] [stdout]    --> src/transposition.rs:672:7
[INFO] [stdout]     |
[INFO] [stdout] 672 | const HAS_ATOMIC_128: bool = cfg!(target_has_atomic = "128"); // false
[INFO] [stdout]     |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling chessbb v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `core::error`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use core::error;
[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: `env`
[INFO] [stdout]  --> src/main.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::{env, time::Instant};
[INFO] [stdout]   |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_fen`
[INFO] [stdout]   --> src/main.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let start_fen = "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1";
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_fen`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:192:17
[INFO] [stdout]     |
[INFO] [stdout] 192 |             let mut perft_result: Vec<(usize, usize)> = Vec::new();
[INFO] [stdout]     |                 ----^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `perft_result`
[INFO] [stdout]    --> src/main.rs:192:17
[INFO] [stdout]     |
[INFO] [stdout] 192 |             let mut perft_result: Vec<(usize, usize)> = Vec::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_perft_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `USE_RUSTIC_EPDS` is never used
[INFO] [stdout]   --> src/main.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const USE_RUSTIC_EPDS: bool = false;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `perft_test` is never used
[INFO] [stdout]   --> src/main.rs:92:4
[INFO] [stdout]    |
[INFO] [stdout] 92 | fn perft_test(skip_to: Option<usize>) {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LARGE_TEST_EPDS` is never used
[INFO] [stdout]  --> src/epds.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const LARGE_TEST_EPDS: [&str; 172] = [
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ops::Neg`
[INFO] [stdout]  --> src/search.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     ops::Neg,
[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 imports: `PositionData` and `TranspositionTable`
[INFO] [stdout]  --> src/search.rs:9:92
[INFO] [stdout]   |
[INFO] [stdout] 9 |     ChessBoard, ChessBoardSnapshot, ChessMove, GameResult, GameState, NodeType, PieceType, PositionData, Side, TranspositionTable,
[INFO] [stdout]   |                                                                                            ^^^^^^^^^^^^        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicU64` and `rc::Rc`
[INFO] [stdout]  --> src/transposition.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     rc::Rc,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 5 |     sync::atomic::{AtomicU64, Ordering},
[INFO] [stdout]   |                    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `movegen::SIZE`
[INFO] [stdout]   --> src/lib.rs:16:39
[INFO] [stdout]    |
[INFO] [stdout] 16 |     bitboard::*, chessmove::MoveType, movegen::SIZE, zobrist::{ZobristHash, ZobristTable}
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/lib.rs:551:39
[INFO] [stdout]     |
[INFO] [stdout] 551 |                     check_bitboard |= (chessboard.piece_bbs[07] & get_queen_attack(king_pos, blockers));
[INFO] [stdout]     |                                       ^                                                               ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 551 -                     check_bitboard |= (chessboard.piece_bbs[07] & get_queen_attack(king_pos, blockers));
[INFO] [stdout] 551 +                     check_bitboard |= chessboard.piece_bbs[07] & get_queen_attack(king_pos, blockers) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/lib.rs:553:39
[INFO] [stdout]     |
[INFO] [stdout] 553 |                     check_bitboard |= (chessboard.piece_bbs[08] & get_knight_attack(king_pos));
[INFO] [stdout]     |                                       ^                                                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 553 -                     check_bitboard |= (chessboard.piece_bbs[08] & get_knight_attack(king_pos));
[INFO] [stdout] 553 +                     check_bitboard |= chessboard.piece_bbs[08] & get_knight_attack(king_pos) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/lib.rs:555:39
[INFO] [stdout]     |
[INFO] [stdout] 555 |                     check_bitboard |= (chessboard.piece_bbs[09] & get_bishop_attack(king_pos, blockers));
[INFO] [stdout]     |                                       ^                                                                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 555 -                     check_bitboard |= (chessboard.piece_bbs[09] & get_bishop_attack(king_pos, blockers));
[INFO] [stdout] 555 +                     check_bitboard |= chessboard.piece_bbs[09] & get_bishop_attack(king_pos, blockers) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/lib.rs:557:39
[INFO] [stdout]     |
[INFO] [stdout] 557 |                     check_bitboard |= (chessboard.piece_bbs[10] & get_rook_attack(king_pos, blockers));
[INFO] [stdout]     |                                       ^                                                              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 557 -                     check_bitboard |= (chessboard.piece_bbs[10] & get_rook_attack(king_pos, blockers));
[INFO] [stdout] 557 +                     check_bitboard |= chessboard.piece_bbs[10] & get_rook_attack(king_pos, blockers) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/lib.rs:559:39
[INFO] [stdout]     |
[INFO] [stdout] 559 |                     check_bitboard |= (chessboard.piece_bbs[11] & get_w_pawn_attack(king_pos));
[INFO] [stdout]     |                                       ^                                                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 559 -                     check_bitboard |= (chessboard.piece_bbs[11] & get_w_pawn_attack(king_pos));
[INFO] [stdout] 559 +                     check_bitboard |= chessboard.piece_bbs[11] & get_w_pawn_attack(king_pos) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/lib.rs:568:39
[INFO] [stdout]     |
[INFO] [stdout] 568 |                     check_bitboard |= (chessboard.piece_bbs[01] & get_queen_attack(king_pos, blockers));
[INFO] [stdout]     |                                       ^                                                               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 568 -                     check_bitboard |= (chessboard.piece_bbs[01] & get_queen_attack(king_pos, blockers));
[INFO] [stdout] 568 +                     check_bitboard |= chessboard.piece_bbs[01] & get_queen_attack(king_pos, blockers) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/lib.rs:570:39
[INFO] [stdout]     |
[INFO] [stdout] 570 |                     check_bitboard |= (chessboard.piece_bbs[02] & get_knight_attack(king_pos));
[INFO] [stdout]     |                                       ^                                                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 570 -                     check_bitboard |= (chessboard.piece_bbs[02] & get_knight_attack(king_pos));
[INFO] [stdout] 570 +                     check_bitboard |= chessboard.piece_bbs[02] & get_knight_attack(king_pos) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/lib.rs:572:39
[INFO] [stdout]     |
[INFO] [stdout] 572 |                     check_bitboard |= (chessboard.piece_bbs[03] & get_bishop_attack(king_pos, blockers));
[INFO] [stdout]     |                                       ^                                                                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 572 -                     check_bitboard |= (chessboard.piece_bbs[03] & get_bishop_attack(king_pos, blockers));
[INFO] [stdout] 572 +                     check_bitboard |= chessboard.piece_bbs[03] & get_bishop_attack(king_pos, blockers) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/lib.rs:574:39
[INFO] [stdout]     |
[INFO] [stdout] 574 |                     check_bitboard |= (chessboard.piece_bbs[04] & get_rook_attack(king_pos, blockers));
[INFO] [stdout]     |                                       ^                                                              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 574 -                     check_bitboard |= (chessboard.piece_bbs[04] & get_rook_attack(king_pos, blockers));
[INFO] [stdout] 574 +                     check_bitboard |= chessboard.piece_bbs[04] & get_rook_attack(king_pos, blockers) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/lib.rs:576:39
[INFO] [stdout]     |
[INFO] [stdout] 576 |                     check_bitboard |= (chessboard.piece_bbs[05] & get_b_pawn_attack(king_pos));
[INFO] [stdout]     |                                       ^                                                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 576 -                     check_bitboard |= (chessboard.piece_bbs[05] & get_b_pawn_attack(king_pos));
[INFO] [stdout] 576 +                     check_bitboard |= chessboard.piece_bbs[05] & get_b_pawn_attack(king_pos) ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/search.rs:147:13
[INFO] [stdout]     |
[INFO] [stdout] 147 |         let mut moves = moves.unwrap_or_else(|| self.core.generate_moves(None));
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `piece_type`
[INFO] [stdout]    --> src/lib.rs:426:36
[INFO] [stdout]     |
[INFO] [stdout] 426 |     pub const fn is_present(&self, piece_type: ChessPiece, square: Square) -> bool {
[INFO] [stdout]     |                                    ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_piece_type`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `piece_type`
[INFO] [stdout]    --> src/lib.rs:427:56
[INFO] [stdout]     |
[INFO] [stdout] 427 |         matches!(self.mailbox[square.to_usize()], Some(piece_type))
[INFO] [stdout]     |                                                        ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_piece_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `chessmove::MoveType` is more private than the item `chessmove::ChessMove::new`
[INFO] [stdout]    --> src/chessmove/mod.rs:159:5
[INFO] [stdout]     |
[INFO] [stdout] 159 |     pub const fn new(s: Square, t: Square, m: MoveType) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `chessmove::ChessMove::new` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `chessmove::MoveType` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> src/chessmove/mod.rs:81:1
[INFO] [stdout]     |
[INFO] [stdout]  81 | pub(crate) enum MoveType {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `is_piece_pinned`, `count_checking_pieces`, and `INITIAL_ATTACKED_BB` are never used
[INFO] [stdout]    --> src/lib.rs:862:19
[INFO] [stdout]     |
[INFO] [stdout] 396 | impl ChessBoardCore {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 862 |     pub(crate) fn is_piece_pinned(&self, square: Square) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 868 |     pub(crate) const fn count_checking_pieces(&self) -> u32 {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 947 |     const INITIAL_ATTACKED_BB: BitBoard = BitBoard::new(0b00000000_00000000_11111111_00000000_00000000_00000000_00000000_00000000);
[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 `ONES`, `get_bit`, `lsb_index`, and `bit_xor` are never used
[INFO] [stdout]    --> src/bitboard/mod.rs:91:22
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl BitBoard {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub(crate) const ONES: BitBoard = BitBoard { data: u64::MAX };
[INFO] [stdout]     |                      ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub(crate) const fn get_bit(&self, i: usize) -> BitBoard {
[INFO] [stdout]     |                         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     pub(crate) const fn lsb_index(&self) -> Option<usize> {
[INFO] [stdout]     |                         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     pub(crate) const fn bit_xor(&self, other: &BitBoard) -> BitBoard {
[INFO] [stdout]     |                         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNICODE_SYM` is never used
[INFO] [stdout]    --> src/bitboard/mod.rs:237:18
[INFO] [stdout]     |
[INFO] [stdout] 237 | pub(super) const UNICODE_SYM: [char; 12] = ['♚', '♛', '♞', '♝', '♜', '♟', '♔', '♕', '♘', '♗', '♖', '♙'];
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_same_diag` is never used
[INFO] [stdout]    --> src/bitboard/mod.rs:249:21
[INFO] [stdout]     |
[INFO] [stdout] 249 | pub(crate) const fn is_same_diag(source: Square, target: Square) -> bool {
[INFO] [stdout]     |                     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SQUARE_SYM_REV` is never used
[INFO] [stdout]    --> src/bitboard/mod.rs:299:18
[INFO] [stdout]     |
[INFO] [stdout] 299 | pub(crate) const SQUARE_SYM_REV: [&str; 64] = [
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RANK_CHAR` is never used
[INFO] [stdout]    --> src/bitboard/mod.rs:310:18
[INFO] [stdout]     |
[INFO] [stdout] 310 | pub(crate) const RANK_CHAR: [char; 64] = [
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FILE_CHAR` is never used
[INFO] [stdout]    --> src/bitboard/mod.rs:321:18
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub(crate) const FILE_CHAR: [char; 64] = [
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_pawn_attack` is never used
[INFO] [stdout]   --> src/bitboard/attack.rs:30:14
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub const fn get_pawn_attack(square: Square, side: Side) -> BitBoard {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_occ_bb` is never used
[INFO] [stdout]   --> src/bitboard/attack/magic.rs:77:10
[INFO] [stdout]    |
[INFO] [stdout] 77 | const fn compute_occ_bb(index: usize, mask_bitcount: usize, attack_mask: BitBoard) -> BitBoard {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bishop_attack_mbb` is never used
[INFO] [stdout]    --> src/bitboard/attack/magic.rs:167:10
[INFO] [stdout]     |
[INFO] [stdout] 167 | const fn bishop_attack_mbb() -> [[BitBoard; SIZE_BISHOP]; 64] {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rook_attack_mbb` is never used
[INFO] [stdout]    --> src/bitboard/attack/magic.rs:194:10
[INFO] [stdout]     |
[INFO] [stdout] 194 | const fn rook_attack_mbb() -> [[BitBoard; SIZE_ROOK]; 64] {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_source` and `set_target` are never used
[INFO] [stdout]    --> src/chessmove/mod.rs:140:25
[INFO] [stdout]     |
[INFO] [stdout]  94 | impl ChessMove {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub(crate) const fn set_source(&mut self, index: usize) {
[INFO] [stdout]     |                         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub(crate) const fn set_target(&mut self, index: usize) {
[INFO] [stdout]     |                         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIZE` is never used
[INFO] [stdout]  --> src/movegen.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub(crate) const SIZE: usize = 218; //256 looks nicer..
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_move_capture` and `mvv_score` are never used
[INFO] [stdout]   --> src/movegen.rs:9:19
[INFO] [stdout]    |
[INFO] [stdout]  5 | impl ChessBoardCore {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  9 |     pub(crate) fn is_move_capture(&self, chess_move: &ChessMove) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub(crate) fn mvv_score(&self, chess_move: &ChessMove) -> i16 {
[INFO] [stdout]    |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `AtomicTT` is never used
[INFO] [stdout]    --> src/search.rs:106:6
[INFO] [stdout]     |
[INFO] [stdout] 106 | type AtomicTT = AtomicTranspositionTable;
[INFO] [stdout]     |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `QUIESCENE_FALLBACK_DEPTH` is never used
[INFO] [stdout]    --> src/search.rs:108:7
[INFO] [stdout]     |
[INFO] [stdout] 108 | const QUIESCENE_FALLBACK_DEPTH: u16 = u8::MAX as u16;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SQUARE_SYM` is never used
[INFO] [stdout]    --> src/square/mod.rs:150:18
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub(crate) const SQUARE_SYM: [&str; 64] = [
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SQUARES_RAW` is never used
[INFO] [stdout]    --> src/square/mod.rs:161:7
[INFO] [stdout]     |
[INFO] [stdout] 161 | const SQUARES_RAW: [u8; 64] = [
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SQUARES_RAW_USIZE` is never used
[INFO] [stdout]    --> src/square/mod.rs:172:7
[INFO] [stdout]     |
[INFO] [stdout] 172 | const SQUARES_RAW_USIZE: [usize; 64] = [
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `compute_castle_hash` are never used
[INFO] [stdout]    --> src/zobrist/mod.rs:74:25
[INFO] [stdout]     |
[INFO] [stdout]  70 | impl ZobristHash {
[INFO] [stdout]     | ---------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub(super) const fn new(value: u64) -> ZobristHash {
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub(super) const fn compute_castle_hash(chessboard: &ChessBoardCore) -> ZobristHash {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `const_default` is never used
[INFO] [stdout]   --> src/transposition.rs:83:14
[INFO] [stdout]    |
[INFO] [stdout] 76 | impl PositionData {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 83 |     const fn const_default() -> Self {
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `look_up` is never used
[INFO] [stdout]    --> src/transposition.rs:204:19
[INFO] [stdout]     |
[INFO] [stdout] 177 | impl TranspositionTable {
[INFO] [stdout]     | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 204 |     pub(crate) fn look_up(&self, hash: &ZobristHash) -> PositionData {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IS_POSITION_DATA_LOCK_FREE` is never used
[INFO] [stdout]    --> src/transposition.rs:255:7
[INFO] [stdout]     |
[INFO] [stdout] 255 | const IS_POSITION_DATA_LOCK_FREE: bool = Atomic::<PositionData>::is_lock_free();
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `const_default` are never used
[INFO] [stdout]    --> src/transposition.rs:271:8
[INFO] [stdout]     |
[INFO] [stdout] 269 | impl AtomicPositionData {
[INFO] [stdout]     | ----------------------- associated functions in this implementation
[INFO] [stdout] 270 |     #[inline(always)]
[INFO] [stdout] 271 |     fn new(key: ZobristHash, depth: u16, eval: i16, ty: NodeType, best: Option<ChessMove>) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 301 |     const fn const_default() -> Self {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `load` is never used
[INFO] [stdout]    --> src/transposition.rs:411:19
[INFO] [stdout]     |
[INFO] [stdout] 386 | impl AtomicTranspositionTable {
[INFO] [stdout]     | ----------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 411 |     pub(crate) fn load(&self, hash: ZobristHash, order: Ordering) -> Option<PositionData> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IS_SMALL_POSITION_DATA_LOCK_FREE` is never used
[INFO] [stdout]    --> src/transposition.rs:440:7
[INFO] [stdout]     |
[INFO] [stdout] 440 | const IS_SMALL_POSITION_DATA_LOCK_FREE: bool = Atomic::<SmallPositionData>::is_lock_free();
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IS_ZOBRIST_HASH_LOCK_FREE` is never used
[INFO] [stdout]    --> src/transposition.rs:441:7
[INFO] [stdout]     |
[INFO] [stdout] 441 | const IS_ZOBRIST_HASH_LOCK_FREE: bool = Atomic::<ZobristHash>::is_lock_free();
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/transposition.rs:492:8
[INFO] [stdout]     |
[INFO] [stdout] 488 | impl SmallAtomicPositionData {
[INFO] [stdout]     | ---------------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 492 |     fn new(key: ZobristHash, depth: u16, eval: i16, ty: NodeType, best: Option<ChessMove>) -> SmallAtomicPositionData {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_sync` is never used
[INFO] [stdout]    --> src/transposition.rs:665:10
[INFO] [stdout]     |
[INFO] [stdout] 665 | const fn check_sync<T: Sync>() {}
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIZE` is never used
[INFO] [stdout]    --> src/transposition.rs:669:7
[INFO] [stdout]     |
[INFO] [stdout] 669 | const SIZE: usize = mem::size_of::<SmallPositionData>(); // 8
[INFO] [stdout]     |       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ALIGN` is never used
[INFO] [stdout]    --> src/transposition.rs:670:7
[INFO] [stdout]     |
[INFO] [stdout] 670 | const ALIGN: usize = mem::align_of::<SmallPositionData>(); // 2
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HAS_ATOMIC_64` is never used
[INFO] [stdout]    --> src/transposition.rs:671:7
[INFO] [stdout]     |
[INFO] [stdout] 671 | const HAS_ATOMIC_64: bool = cfg!(target_has_atomic = "64"); // true
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HAS_ATOMIC_128` is never used
[INFO] [stdout]    --> src/transposition.rs:672:7
[INFO] [stdout]     |
[INFO] [stdout] 672 | const HAS_ATOMIC_128: bool = cfg!(target_has_atomic = "128"); // false
[INFO] [stdout]     |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [optimized + debuginfo] target(s) in 9.90s
[INFO] running `Command { std: "docker" "inspect" "b6c35af5ddbbfbfde9f1a22154f18021988ab41f3c9653699a740901b7c7a37c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b6c35af5ddbbfbfde9f1a22154f18021988ab41f3c9653699a740901b7c7a37c", kill_on_drop: false }`
[INFO] [stdout] b6c35af5ddbbfbfde9f1a22154f18021988ab41f3c9653699a740901b7c7a37c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "test" "--frozen" "-Zbuild-dir-new-layout", kill_on_drop: false }`
[INFO] [stdout] d279cdcd6e12207eb047978f08f165558908f98e4e21821100ce173db6d5d2c2
[INFO] running `Command { std: "docker" "start" "-a" "d279cdcd6e12207eb047978f08f165558908f98e4e21821100ce173db6d5d2c2", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `ops::Neg`
[INFO] [stderr]  --> src/search.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 |     ops::Neg,
[INFO] [stderr]   |     ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `PositionData` and `TranspositionTable`
[INFO] [stderr]  --> src/search.rs:9:92
[INFO] [stderr]   |
[INFO] [stderr] 9 |     ChessBoard, ChessBoardSnapshot, ChessMove, GameResult, GameState, NodeType, PieceType, PositionData, Side, TranspositionTable,
[INFO] [stderr]   |                                                                                            ^^^^^^^^^^^^        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `AtomicU64` and `rc::Rc`
[INFO] [stderr]  --> src/transposition.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 |     rc::Rc,
[INFO] [stderr]   |     ^^^^^^
[INFO] [stderr] 5 |     sync::atomic::{AtomicU64, Ordering},
[INFO] [stderr]   |                    ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `movegen::SIZE`
[INFO] [stderr]   --> src/lib.rs:16:39
[INFO] [stderr]    |
[INFO] [stderr] 16 |     bitboard::*, chessmove::MoveType, movegen::SIZE, zobrist::{ZobristHash, ZobristTable}
[INFO] [stderr]    |                                       ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/lib.rs:551:39
[INFO] [stderr]     |
[INFO] [stderr] 551 |                     check_bitboard |= (chessboard.piece_bbs[07] & get_queen_attack(king_pos, blockers));
[INFO] [stderr]     |                                       ^                                                               ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 551 -                     check_bitboard |= (chessboard.piece_bbs[07] & get_queen_attack(king_pos, blockers));
[INFO] [stderr] 551 +                     check_bitboard |= chessboard.piece_bbs[07] & get_queen_attack(king_pos, blockers) ;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/lib.rs:553:39
[INFO] [stderr]     |
[INFO] [stderr] 553 |                     check_bitboard |= (chessboard.piece_bbs[08] & get_knight_attack(king_pos));
[INFO] [stderr]     |                                       ^                                                      ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 553 -                     check_bitboard |= (chessboard.piece_bbs[08] & get_knight_attack(king_pos));
[INFO] [stderr] 553 +                     check_bitboard |= chessboard.piece_bbs[08] & get_knight_attack(king_pos) ;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/lib.rs:555:39
[INFO] [stderr]     |
[INFO] [stderr] 555 |                     check_bitboard |= (chessboard.piece_bbs[09] & get_bishop_attack(king_pos, blockers));
[INFO] [stderr]     |                                       ^                                                                ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 555 -                     check_bitboard |= (chessboard.piece_bbs[09] & get_bishop_attack(king_pos, blockers));
[INFO] [stderr] 555 +                     check_bitboard |= chessboard.piece_bbs[09] & get_bishop_attack(king_pos, blockers) ;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/lib.rs:557:39
[INFO] [stderr]     |
[INFO] [stderr] 557 |                     check_bitboard |= (chessboard.piece_bbs[10] & get_rook_attack(king_pos, blockers));
[INFO] [stderr]     |                                       ^                                                              ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 557 -                     check_bitboard |= (chessboard.piece_bbs[10] & get_rook_attack(king_pos, blockers));
[INFO] [stderr] 557 +                     check_bitboard |= chessboard.piece_bbs[10] & get_rook_attack(king_pos, blockers) ;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/lib.rs:559:39
[INFO] [stderr]     |
[INFO] [stderr] 559 |                     check_bitboard |= (chessboard.piece_bbs[11] & get_w_pawn_attack(king_pos));
[INFO] [stderr]     |                                       ^                                                      ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 559 -                     check_bitboard |= (chessboard.piece_bbs[11] & get_w_pawn_attack(king_pos));
[INFO] [stderr] 559 +                     check_bitboard |= chessboard.piece_bbs[11] & get_w_pawn_attack(king_pos) ;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/lib.rs:568:39
[INFO] [stderr]     |
[INFO] [stderr] 568 |                     check_bitboard |= (chessboard.piece_bbs[01] & get_queen_attack(king_pos, blockers));
[INFO] [stderr]     |                                       ^                                                               ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 568 -                     check_bitboard |= (chessboard.piece_bbs[01] & get_queen_attack(king_pos, blockers));
[INFO] [stderr] 568 +                     check_bitboard |= chessboard.piece_bbs[01] & get_queen_attack(king_pos, blockers) ;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/lib.rs:570:39
[INFO] [stderr]     |
[INFO] [stderr] 570 |                     check_bitboard |= (chessboard.piece_bbs[02] & get_knight_attack(king_pos));
[INFO] [stderr]     |                                       ^                                                      ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 570 -                     check_bitboard |= (chessboard.piece_bbs[02] & get_knight_attack(king_pos));
[INFO] [stderr] 570 +                     check_bitboard |= chessboard.piece_bbs[02] & get_knight_attack(king_pos) ;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/lib.rs:572:39
[INFO] [stderr]     |
[INFO] [stderr] 572 |                     check_bitboard |= (chessboard.piece_bbs[03] & get_bishop_attack(king_pos, blockers));
[INFO] [stderr]     |                                       ^                                                                ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 572 -                     check_bitboard |= (chessboard.piece_bbs[03] & get_bishop_attack(king_pos, blockers));
[INFO] [stderr] 572 +                     check_bitboard |= chessboard.piece_bbs[03] & get_bishop_attack(king_pos, blockers) ;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/lib.rs:574:39
[INFO] [stderr]     |
[INFO] [stderr] 574 |                     check_bitboard |= (chessboard.piece_bbs[04] & get_rook_attack(king_pos, blockers));
[INFO] [stderr]     |                                       ^                                                              ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 574 -                     check_bitboard |= (chessboard.piece_bbs[04] & get_rook_attack(king_pos, blockers));
[INFO] [stderr] 574 +                     check_bitboard |= chessboard.piece_bbs[04] & get_rook_attack(king_pos, blockers) ;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/lib.rs:576:39
[INFO] [stderr]     |
[INFO] [stderr] 576 |                     check_bitboard |= (chessboard.piece_bbs[05] & get_b_pawn_attack(king_pos));
[INFO] [stderr]     |                                       ^                                                      ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 576 -                     check_bitboard |= (chessboard.piece_bbs[05] & get_b_pawn_attack(king_pos));
[INFO] [stderr] 576 +                     check_bitboard |= chessboard.piece_bbs[05] & get_b_pawn_attack(king_pos) ;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/search.rs:147:13
[INFO] [stderr]     |
[INFO] [stderr] 147 |         let mut moves = moves.unwrap_or_else(|| self.core.generate_moves(None));
[INFO] [stderr]     |             ----^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `piece_type`
[INFO] [stderr]    --> src/lib.rs:426:36
[INFO] [stderr]     |
[INFO] [stderr] 426 |     pub const fn is_present(&self, piece_type: ChessPiece, square: Square) -> bool {
[INFO] [stderr]     |                                    ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_piece_type`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `piece_type`
[INFO] [stderr]    --> src/lib.rs:427:56
[INFO] [stderr]     |
[INFO] [stderr] 427 |         matches!(self.mailbox[square.to_usize()], Some(piece_type))
[INFO] [stderr]     |                                                        ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_piece_type`
[INFO] [stderr] 
[INFO] [stderr] warning: type `chessmove::MoveType` is more private than the item `chessmove::ChessMove::new`
[INFO] [stderr]    --> src/chessmove/mod.rs:159:5
[INFO] [stderr]     |
[INFO] [stderr] 159 |     pub const fn new(s: Square, t: Square, m: MoveType) -> Self {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `chessmove::ChessMove::new` is reachable at visibility `pub`
[INFO] [stderr]     |
[INFO] [stderr] note: but type `chessmove::MoveType` is only usable at visibility `pub(crate)`
[INFO] [stderr]    --> src/chessmove/mod.rs:81:1
[INFO] [stderr]     |
[INFO] [stderr]  81 | pub(crate) enum MoveType {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `is_piece_pinned`, `count_checking_pieces`, and `INITIAL_ATTACKED_BB` are never used
[INFO] [stderr]    --> src/lib.rs:862:19
[INFO] [stderr]     |
[INFO] [stderr] 396 | impl ChessBoardCore {
[INFO] [stderr]     | ------------------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 862 |     pub(crate) fn is_piece_pinned(&self, square: Square) -> bool {
[INFO] [stderr]     |                   ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 868 |     pub(crate) const fn count_checking_pieces(&self) -> u32 {
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 947 |     const INITIAL_ATTACKED_BB: BitBoard = BitBoard::new(0b00000000_00000000_11111111_00000000_00000000_00000000_00000000_00000000);
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `ONES`, `get_bit`, `lsb_index`, and `bit_xor` are never used
[INFO] [stderr]    --> src/bitboard/mod.rs:91:22
[INFO] [stderr]     |
[INFO] [stderr]  84 | impl BitBoard {
[INFO] [stderr]     | ------------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  91 |     pub(crate) const ONES: BitBoard = BitBoard { data: u64::MAX };
[INFO] [stderr]     |                      ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 125 |     pub(crate) const fn get_bit(&self, i: usize) -> BitBoard {
[INFO] [stderr]     |                         ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 156 |     pub(crate) const fn lsb_index(&self) -> Option<usize> {
[INFO] [stderr]     |                         ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 194 |     pub(crate) const fn bit_xor(&self, other: &BitBoard) -> BitBoard {
[INFO] [stderr]     |                         ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `UNICODE_SYM` is never used
[INFO] [stderr]    --> src/bitboard/mod.rs:237:18
[INFO] [stderr]     |
[INFO] [stderr] 237 | pub(super) const UNICODE_SYM: [char; 12] = ['♚', '♛', '♞', '♝', '♜', '♟', '♔', '♕', '♘', '♗', '♖', '♙'];
[INFO] [stderr]     |                  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_same_diag` is never used
[INFO] [stderr]    --> src/bitboard/mod.rs:249:21
[INFO] [stderr]     |
[INFO] [stderr] 249 | pub(crate) const fn is_same_diag(source: Square, target: Square) -> bool {
[INFO] [stderr]     |                     ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SQUARE_SYM_REV` is never used
[INFO] [stderr]    --> src/bitboard/mod.rs:299:18
[INFO] [stderr]     |
[INFO] [stderr] 299 | pub(crate) const SQUARE_SYM_REV: [&str; 64] = [
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `RANK_CHAR` is never used
[INFO] [stderr]    --> src/bitboard/mod.rs:310:18
[INFO] [stderr]     |
[INFO] [stderr] 310 | pub(crate) const RANK_CHAR: [char; 64] = [
[INFO] [stderr]     |                  ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `FILE_CHAR` is never used
[INFO] [stderr]    --> src/bitboard/mod.rs:321:18
[INFO] [stderr]     |
[INFO] [stderr] 321 | pub(crate) const FILE_CHAR: [char; 64] = [
[INFO] [stderr]     |                  ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_pawn_attack` is never used
[INFO] [stderr]   --> src/bitboard/attack.rs:30:14
[INFO] [stderr]    |
[INFO] [stderr] 30 | pub const fn get_pawn_attack(square: Square, side: Side) -> BitBoard {
[INFO] [stderr]    |              ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `compute_occ_bb` is never used
[INFO] [stderr]   --> src/bitboard/attack/magic.rs:77:10
[INFO] [stderr]    |
[INFO] [stderr] 77 | const fn compute_occ_bb(index: usize, mask_bitcount: usize, attack_mask: BitBoard) -> BitBoard {
[INFO] [stderr]    |          ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `bishop_attack_mbb` is never used
[INFO] [stderr]    --> src/bitboard/attack/magic.rs:167:10
[INFO] [stderr]     |
[INFO] [stderr] 167 | const fn bishop_attack_mbb() -> [[BitBoard; SIZE_BISHOP]; 64] {
[INFO] [stderr]     |          ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `rook_attack_mbb` is never used
[INFO] [stderr]    --> src/bitboard/attack/magic.rs:194:10
[INFO] [stderr]     |
[INFO] [stderr] 194 | const fn rook_attack_mbb() -> [[BitBoard; SIZE_ROOK]; 64] {
[INFO] [stderr]     |          ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `set_source` and `set_target` are never used
[INFO] [stderr]    --> src/chessmove/mod.rs:140:25
[INFO] [stderr]     |
[INFO] [stderr]  94 | impl ChessMove {
[INFO] [stderr]     | -------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 140 |     pub(crate) const fn set_source(&mut self, index: usize) {
[INFO] [stderr]     |                         ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 145 |     pub(crate) const fn set_target(&mut self, index: usize) {
[INFO] [stderr]     |                         ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SIZE` is never used
[INFO] [stderr]  --> src/movegen.rs:4:18
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub(crate) const SIZE: usize = 218; //256 looks nicer..
[INFO] [stderr]   |                  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `is_move_capture` and `mvv_score` are never used
[INFO] [stderr]   --> src/movegen.rs:9:19
[INFO] [stderr]    |
[INFO] [stderr]  5 | impl ChessBoardCore {
[INFO] [stderr]    | ------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  9 |     pub(crate) fn is_move_capture(&self, chess_move: &ChessMove) -> bool {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 25 |     pub(crate) fn mvv_score(&self, chess_move: &ChessMove) -> i16 {
[INFO] [stderr]    |                   ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `AtomicTT` is never used
[INFO] [stderr]    --> src/search.rs:106:6
[INFO] [stderr]     |
[INFO] [stderr] 106 | type AtomicTT = AtomicTranspositionTable;
[INFO] [stderr]     |      ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `QUIESCENE_FALLBACK_DEPTH` is never used
[INFO] [stderr]    --> src/search.rs:108:7
[INFO] [stderr]     |
[INFO] [stderr] 108 | const QUIESCENE_FALLBACK_DEPTH: u16 = u8::MAX as u16;
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SQUARE_SYM` is never used
[INFO] [stderr]    --> src/square/mod.rs:150:18
[INFO] [stderr]     |
[INFO] [stderr] 150 | pub(crate) const SQUARE_SYM: [&str; 64] = [
[INFO] [stderr]     |                  ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SQUARES_RAW` is never used
[INFO] [stderr]    --> src/square/mod.rs:161:7
[INFO] [stderr]     |
[INFO] [stderr] 161 | const SQUARES_RAW: [u8; 64] = [
[INFO] [stderr]     |       ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SQUARES_RAW_USIZE` is never used
[INFO] [stderr]    --> src/square/mod.rs:172:7
[INFO] [stderr]     |
[INFO] [stderr] 172 | const SQUARES_RAW_USIZE: [usize; 64] = [
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `new` and `compute_castle_hash` are never used
[INFO] [stderr]    --> src/zobrist/mod.rs:74:25
[INFO] [stderr]     |
[INFO] [stderr]  70 | impl ZobristHash {
[INFO] [stderr]     | ---------------- associated functions in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  74 |     pub(super) const fn new(value: u64) -> ZobristHash {
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] ...
[INFO] [stderr] 180 |     pub(super) const fn compute_castle_hash(chessboard: &ChessBoardCore) -> ZobristHash {
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `const_default` is never used
[INFO] [stderr]   --> src/transposition.rs:83:14
[INFO] [stderr]    |
[INFO] [stderr] 76 | impl PositionData {
[INFO] [stderr]    | ----------------- associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 83 |     const fn const_default() -> Self {
[INFO] [stderr]    |              ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `look_up` is never used
[INFO] [stderr]    --> src/transposition.rs:204:19
[INFO] [stderr]     |
[INFO] [stderr] 177 | impl TranspositionTable {
[INFO] [stderr]     | ----------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 204 |     pub(crate) fn look_up(&self, hash: &ZobristHash) -> PositionData {
[INFO] [stderr]     |                   ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `IS_POSITION_DATA_LOCK_FREE` is never used
[INFO] [stderr]    --> src/transposition.rs:255:7
[INFO] [stderr]     |
[INFO] [stderr] 255 | const IS_POSITION_DATA_LOCK_FREE: bool = Atomic::<PositionData>::is_lock_free();
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `new` and `const_default` are never used
[INFO] [stderr]    --> src/transposition.rs:271:8
[INFO] [stderr]     |
[INFO] [stderr] 269 | impl AtomicPositionData {
[INFO] [stderr]     | ----------------------- associated functions in this implementation
[INFO] [stderr] 270 |     #[inline(always)]
[INFO] [stderr] 271 |     fn new(key: ZobristHash, depth: u16, eval: i16, ty: NodeType, best: Option<ChessMove>) -> Self {
[INFO] [stderr]     |        ^^^
[INFO] [stderr] ...
[INFO] [stderr] 301 |     const fn const_default() -> Self {
[INFO] [stderr]     |              ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `load` is never used
[INFO] [stderr]    --> src/transposition.rs:411:19
[INFO] [stderr]     |
[INFO] [stderr] 386 | impl AtomicTranspositionTable {
[INFO] [stderr]     | ----------------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 411 |     pub(crate) fn load(&self, hash: ZobristHash, order: Ordering) -> Option<PositionData> {
[INFO] [stderr]     |                   ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `IS_SMALL_POSITION_DATA_LOCK_FREE` is never used
[INFO] [stderr]    --> src/transposition.rs:440:7
[INFO] [stderr]     |
[INFO] [stderr] 440 | const IS_SMALL_POSITION_DATA_LOCK_FREE: bool = Atomic::<SmallPositionData>::is_lock_free();
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `IS_ZOBRIST_HASH_LOCK_FREE` is never used
[INFO] [stderr]    --> src/transposition.rs:441:7
[INFO] [stderr]     |
[INFO] [stderr] 441 | const IS_ZOBRIST_HASH_LOCK_FREE: bool = Atomic::<ZobristHash>::is_lock_free();
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]    --> src/transposition.rs:492:8
[INFO] [stderr]     |
[INFO] [stderr] 488 | impl SmallAtomicPositionData {
[INFO] [stderr]     | ---------------------------- associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 492 |     fn new(key: ZobristHash, depth: u16, eval: i16, ty: NodeType, best: Option<ChessMove>) -> SmallAtomicPositionData {
[INFO] [stderr]     |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `check_sync` is never used
[INFO] [stderr]    --> src/transposition.rs:665:10
[INFO] [stderr]     |
[INFO] [stderr] 665 | const fn check_sync<T: Sync>() {}
[INFO] [stderr]     |          ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SIZE` is never used
[INFO] [stderr]    --> src/transposition.rs:669:7
[INFO] [stderr]     |
[INFO] [stderr] 669 | const SIZE: usize = mem::size_of::<SmallPositionData>(); // 8
[INFO] [stderr]     |       ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ALIGN` is never used
[INFO] [stderr]    --> src/transposition.rs:670:7
[INFO] [stderr]     |
[INFO] [stderr] 670 | const ALIGN: usize = mem::align_of::<SmallPositionData>(); // 2
[INFO] [stderr]     |       ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HAS_ATOMIC_64` is never used
[INFO] [stderr]    --> src/transposition.rs:671:7
[INFO] [stderr]     |
[INFO] [stderr] 671 | const HAS_ATOMIC_64: bool = cfg!(target_has_atomic = "64"); // true
[INFO] [stderr]     |       ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HAS_ATOMIC_128` is never used
[INFO] [stderr]    --> src/transposition.rs:672:7
[INFO] [stderr]     |
[INFO] [stderr] 672 | const HAS_ATOMIC_128: bool = cfg!(target_has_atomic = "128"); // false
[INFO] [stderr]     |       ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `chessbb` (lib) generated 51 warnings (run `cargo fix --lib -p chessbb` to apply 17 suggestions)
[INFO] [stderr] warning: `chessbb` (lib test) generated 51 warnings (51 duplicates)
[INFO] [stderr] warning: unused import: `core::error`
[INFO] [stderr]  --> src/main.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use core::error;
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `env`
[INFO] [stderr]  --> src/main.rs:9:11
[INFO] [stderr]   |
[INFO] [stderr] 9 | use std::{env, time::Instant};
[INFO] [stderr]   |           ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `start_fen`
[INFO] [stderr]   --> src/main.rs:24:9
[INFO] [stderr]    |
[INFO] [stderr] 24 |     let start_fen = "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1";
[INFO] [stderr]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_fen`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:192:17
[INFO] [stderr]     |
[INFO] [stderr] 192 |             let mut perft_result: Vec<(usize, usize)> = Vec::new();
[INFO] [stderr]     |                 ----^^^^^^^^^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `perft_result`
[INFO] [stderr]    --> src/main.rs:192:17
[INFO] [stderr]     |
[INFO] [stderr] 192 |             let mut perft_result: Vec<(usize, usize)> = Vec::new();
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_perft_result`
[INFO] [stderr] 
[INFO] [stderr] warning: constant `USE_RUSTIC_EPDS` is never used
[INFO] [stderr]   --> src/main.rs:13:7
[INFO] [stderr]    |
[INFO] [stderr] 13 | const USE_RUSTIC_EPDS: bool = false;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `perft_test` is never used
[INFO] [stderr]   --> src/main.rs:92:4
[INFO] [stderr]    |
[INFO] [stderr] 92 | fn perft_test(skip_to: Option<usize>) {
[INFO] [stderr]    |    ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `LARGE_TEST_EPDS` is never used
[INFO] [stderr]  --> src/epds.rs:4:11
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub const LARGE_TEST_EPDS: [&str; 172] = [
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `chessbb` (bin "chessbb" test) generated 8 warnings (run `cargo fix --bin "chessbb" -p chessbb --tests` to apply 5 suggestions)
[INFO] [stderr]     Finished `test` profile [optimized + debuginfo] target(s) in 0.40s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/build/chessbb/64d851ebf1c91429/deps/chessbb-64d851ebf1c91429)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/build/chessbb/cad43ef1a869cc55/deps/chessbb-cad43ef1a869cc55)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test tests::perft_test has been running for over 60 seconds
[ERROR] error running command: no output for 300 seconds
[INFO] running `Command { std: "docker" "inspect" "d279cdcd6e12207eb047978f08f165558908f98e4e21821100ce173db6d5d2c2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d279cdcd6e12207eb047978f08f165558908f98e4e21821100ce173db6d5d2c2", kill_on_drop: false }`
[INFO] [stdout] d279cdcd6e12207eb047978f08f165558908f98e4e21821100ce173db6d5d2c2
