[INFO] cloning repository https://github.com/themreKalkan/RuthChess-6.0
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/themreKalkan/RuthChess-6.0" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FthemreKalkan%2FRuthChess-6.0", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FthemreKalkan%2FRuthChess-6.0'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 41adbadc61fc89e1689b78db2593af76504d4ced
[INFO] testing themreKalkan/RuthChess-6.0 against try#db823df02fd0c2cf67b43025ac3fef3f2d743245 for pr-150681
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FthemreKalkan%2FRuthChess-6.0" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/themreKalkan/RuthChess-6.0
[INFO] finished tweaking git repo https://github.com/themreKalkan/RuthChess-6.0
[INFO] tweaked toml for git repo https://github.com/themreKalkan/RuthChess-6.0 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/themreKalkan/RuthChess-6.0 on toolchain db823df02fd0c2cf67b43025ac3fef3f2d743245
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/themreKalkan/RuthChess-6.0 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" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 62ee5980dfd53d9352fa2c99bfb264ed257925bcb3c50c6b76ff0fe09514b582
[INFO] running `Command { std: "docker" "start" "-a" "62ee5980dfd53d9352fa2c99bfb264ed257925bcb3c50c6b76ff0fe09514b582", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "62ee5980dfd53d9352fa2c99bfb264ed257925bcb3c50c6b76ff0fe09514b582", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "62ee5980dfd53d9352fa2c99bfb264ed257925bcb3c50c6b76ff0fe09514b582", kill_on_drop: false }`
[INFO] [stdout] 62ee5980dfd53d9352fa2c99bfb264ed257925bcb3c50c6b76ff0fe09514b582
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b60fc578ba3bc481eb145643bb53cc940acc95032ff4c387e330ac11c61a00ae
[INFO] running `Command { std: "docker" "start" "-a" "b60fc578ba3bc481eb145643bb53cc940acc95032ff4c387e330ac11c61a00ae", kill_on_drop: false }`
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling libc v0.2.174
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling cfg-if v1.0.1
[INFO] [stderr]    Compiling zerocopy v0.8.26
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling rayon-core v1.12.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling iana-time-zone v0.1.63
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling arrayvec v0.7.6
[INFO] [stderr]    Compiling bytemuck v1.23.1
[INFO] [stderr]    Compiling lock_api v0.4.13
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling crossbeam-queue v0.3.12
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling crossbeam v0.8.4
[INFO] [stderr]    Compiling chrono v0.4.41
[INFO] [stderr]    Compiling rand_core v0.9.3
[INFO] [stderr]    Compiling parking_lot v0.12.4
[INFO] [stderr]    Compiling rayon v1.10.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.1
[INFO] [stderr]    Compiling RuthChessOVI v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::eval::evaluate::Score`
[INFO] [stdout]  --> src/board/position.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::eval::evaluate::Score;
[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: `get_queen_attacks`
[INFO] [stdout]  --> src/board/position.rs:6:120
[INFO] [stdout]   |
[INFO] [stdout] 6 | ...acks,get_king_attacks,get_pawn_attacks,get_rook_attacks,get_queen_attacks,get_knight_attacks};
[INFO] [stdout]   |                                                            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/board/position.rs:1730:20
[INFO] [stdout]      |
[INFO] [stdout] 1730 |                 if (self.has_diagonal_attack(square, bishops)) {
[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] 1730 -                 if (self.has_diagonal_attack(square, bishops)) {
[INFO] [stdout] 1730 +                 if self.has_diagonal_attack(square, bishops) {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/board/position.rs:1740:20
[INFO] [stdout]      |
[INFO] [stdout] 1740 |                 if (self.has_straight_attack(square, rooks)) {
[INFO] [stdout]      |                    ^                                       ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1740 -                 if (self.has_straight_attack(square, rooks)) {
[INFO] [stdout] 1740 +                 if self.has_straight_attack(square, rooks) {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::bitboard::Bitboard`
[INFO] [stdout]  --> src/board/zobrist.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use super::bitboard::Bitboard;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::board::bitboard::Bitboard`
[INFO] [stdout]  --> src/eval/material.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::board::bitboard::Bitboard;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EMPTY`, `FILE_A`, `FILE_B`, `FILE_C`, `FILE_D`, `FILE_E`, `FILE_F`, `FILE_G`, and `FILE_H`
[INFO] [stdout]  --> src/eval/pawns.rs:2:40
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::board::bitboard::{Bitboard, EMPTY, FILE_A, FILE_B, FILE_C, FILE_D, FILE_E, FILE_F, FILE_G, FILE_H};
[INFO] [stdout]   |                                        ^^^^^  ^^^^^^  ^^^^^^  ^^^^^^  ^^^^^^  ^^^^^^  ^^^^^^  ^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::nnue::nnue_accumulator::AccumulatorCache`
[INFO] [stdout]  --> src/eval/evaluate.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::nnue::nnue_accumulator::AccumulatorCache;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `get_bishop_attacks`, `get_knight_attacks`, `get_queen_attacks`, and `get_rook_attacks`
[INFO] [stdout]    --> src/eval/evaluate.rs:543:33
[INFO] [stdout]     |
[INFO] [stdout] 543 |     use crate::movegen::magic::{get_knight_attacks, get_bishop_attacks, get_rook_attacks, get_queen_attacks};
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EMPTY`
[INFO] [stdout]  --> src/eval/mobility.rs:2:40
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::board::bitboard::{Bitboard, EMPTY};
[INFO] [stdout]   |                                        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `get_king_attacks` and `get_pawn_attacks`
[INFO] [stdout]  --> src/eval/mobility.rs:6:24
[INFO] [stdout]   |
[INFO] [stdout] 6 |     get_queen_attacks, get_king_attacks, get_pawn_attacks
[INFO] [stdout]   |                        ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/eval/mobility.rs:281:11
[INFO] [stdout]     |
[INFO] [stdout] 281 |         if((our_pawns.count_ones()+opposite_pawns.count_ones())<=12){
[INFO] [stdout]     |           ^                                                        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 281 -         if((our_pawns.count_ones()+opposite_pawns.count_ones())<=12){
[INFO] [stdout] 281 +         if (our_pawns.count_ones()+opposite_pawns.count_ones())<=12 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EMPTY`
[INFO] [stdout]  --> src/eval/space.rs:3:40
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::board::bitboard::{Bitboard, EMPTY, CENTER, EXTENDED_CENTER};
[INFO] [stdout]   |                                        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `get_pawn_attacks`
[INFO] [stdout]  --> src/eval/space.rs:5:42
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::movegen::magic::{all_attacks, get_pawn_attacks};
[INFO] [stdout]   |                                          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EMPTY`, `FILE_A`, and `FILE_H`
[INFO] [stdout]  --> src/eval/king_safety.rs:2:40
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::board::bitboard::{Bitboard, EMPTY, FILE_A, FILE_H};
[INFO] [stdout]   |                                        ^^^^^  ^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `file_of` and `relative_rank`
[INFO] [stdout]  --> src/eval/king_safety.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::eval::pst::{file_of, rank_of, relative_rank};
[INFO] [stdout]   |                        ^^^^^^^           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EMPTY`
[INFO] [stdout]  --> src/eval/threats.rs:2:40
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::board::bitboard::{Bitboard, EMPTY};
[INFO] [stdout]   |                                        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `file_of` and `rank_of`
[INFO] [stdout]  --> src/eval/threats.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::eval::pst::{file_of, rank_of};
[INFO] [stdout]   |                        ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::eval::evaluate::Score`
[INFO] [stdout]  --> src/eval/eval_util.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::eval::evaluate::Score;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `popcount` and `square_mask`
[INFO] [stdout]  --> src/movegen/magic.rs:1:40
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::board::bitboard::{Bitboard, popcount, square_mask, EMPTY};
[INFO] [stdout]   |                                        ^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/movegen/magic.rs:131:7
[INFO] [stdout]     |
[INFO] [stdout] 131 |     if(square == 64){
[INFO] [stdout]     |       ^            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 131 -     if(square == 64){
[INFO] [stdout] 131 +     if square == 64 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `has_bit` and `square_mask`
[INFO] [stdout]  --> src/movegen/moves.rs:1:40
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::board::bitboard::{Bitboard, square_mask, has_bit};
[INFO] [stdout]   |                                        ^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `all_attacks`
[INFO] [stdout]  --> src/movegen/moves.rs:7:44
[INFO] [stdout]   |
[INFO] [stdout] 7 |                    add_moves_from_bitboard,all_attacks};
[INFO] [stdout]   |                                            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::arch::x86_64::*`
[INFO] [stdout]   --> src/movegen/moves.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use std::arch::x86_64::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::movegen::magic::all_attacks_for_king`
[INFO] [stdout]  --> src/movegen/legal_moves.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::movegen::magic::all_attacks_for_king;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MoveType`, `move_to_uci`, `nnue::nnue`, and `transposition::TranspositionTable`
[INFO] [stdout]   --> src/uci/protocol.rs:4:47
[INFO] [stdout]    |
[INFO] [stdout]  4 |         position::{Position, Move, PieceType, MoveType, Color},
[INFO] [stdout]    |                                               ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  9 |         legal_moves::{generate_legal_moves,move_to_uci},
[INFO] [stdout]    |                                            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |         transposition::TranspositionTable,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     nnue::nnue
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DRAW_VALUE`, `Score`, `TTData`, `ZOBRIST`, `all_attacks_for_king`, `all_attacks`, `eval_util`, `evaluate_int`, `get_queen_attacks`, and `nnue::NNUE`
[INFO] [stdout]   --> src/search/alphabeta.rs:4:19
[INFO] [stdout]    |
[INFO] [stdout]  4 |         zobrist::{ZOBRIST},
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  7 |         evaluate::{evaluate, evaluate_fast, Score, MATE_VALUE, DRAW_VALUE, evaluate_int,nnue_push_move, nnue_pop_move,nnue_refresh},
[INFO] [stdout]    |                                             ^^^^^              ^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout]  8 |         material::calculate_phase,
[INFO] [stdout]  9 |         eval_util,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |         magic::{all_attacks, get_bishop_attacks, get_rook_attacks, get_queen_attacks,
[INFO] [stdout]    |                 ^^^^^^^^^^^                                        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |                 get_knight_attacks, get_king_attacks, get_pawn_attacks, all_attacks_for_king},
[INFO] [stdout]    |                                                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |         transposition::{TranspositionTable, TT_BOUND_EXACT, TT_BOUND_LOWER, TT_BOUND_UPPER, TTData},
[INFO] [stdout]    |                                                                                             ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     nnue::{nnue::NNUE}
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `max` and `min`
[INFO] [stdout]   --> src/search/alphabeta.rs:27:16
[INFO] [stdout]    |
[INFO] [stdout] 27 | use std::cmp::{max, min};
[INFO] [stdout]    |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]     --> src/search/alphabeta.rs:1413:61
[INFO] [stdout]      |
[INFO] [stdout] 1413 |                 depth_offset: if thread_id < 4 { 0 } else { (thread_id as i32 / 4) },
[INFO] [stdout]      |                                                             ^                    ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1413 -                 depth_offset: if thread_id < 4 { 0 } else { (thread_id as i32 / 4) },
[INFO] [stdout] 1413 +                 depth_offset: if thread_id < 4 { 0 } else { thread_id as i32 / 4  },
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/search/search_node.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::atomic::AtomicBool`
[INFO] [stdout]  --> src/search/search_node.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::sync::atomic::AtomicBool;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Position`, `search::alphabeta::alpha_beta_search`, and `search::time_management::TimeManager`
[INFO] [stdout]  --> src/search/search_node.rs:4:23
[INFO] [stdout]   |
[INFO] [stdout] 4 |     board::position::{Position, Move},
[INFO] [stdout]   |                       ^^^^^^^^
[INFO] [stdout] 5 |     eval::evaluate::Score,
[INFO] [stdout] 6 |     search::alphabeta::alpha_beta_search,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 7 |     search::time_management::TimeManager,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Move`
[INFO] [stdout]  --> src/search/pruning.rs:1:40
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::board::position::{Position, Move, Color, PieceType};
[INFO] [stdout]   |                                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::eval::material::calculate_phase`
[INFO] [stdout]  --> src/search/pruning.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::eval::material::calculate_phase;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PieceType`
[INFO] [stdout]  --> src/nnue/nnue.rs:3:47
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::board::position::{Position, Color, PieceType};
[INFO] [stdout]   |                                               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `captured_pawn_square`
[INFO] [stdout]    --> src/board/position.rs:805:13
[INFO] [stdout]     |
[INFO] [stdout] 805 |         let captured_pawn_square = to ^ 8;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_captured_pawn_square`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `king_square`
[INFO] [stdout]    --> src/board/position.rs:807:13
[INFO] [stdout]     |
[INFO] [stdout] 807 |         let king_square = self.king_square(self.side_to_move);
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_king_square`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `undo`
[INFO] [stdout]     --> src/board/position.rs:1247:28
[INFO] [stdout]      |
[INFO] [stdout] 1247 |     pub fn push_undo(self, undo: UndoInfo) {
[INFO] [stdout]      |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_undo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/board/position.rs:1752:9
[INFO] [stdout]      |
[INFO] [stdout] 1752 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/board/position.rs:1766:9
[INFO] [stdout]      |
[INFO] [stdout] 1766 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `by_color`
[INFO] [stdout]     --> src/board/position.rs:1765:58
[INFO] [stdout]      |
[INFO] [stdout] 1765 |     pub fn is_square_attacked_ovi_upg(&self, square: u8, by_color: Color,atts:Bitboard) -> bool {
[INFO] [stdout]      |                                                          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_by_color`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/board/position.rs:1779:9
[INFO] [stdout]      |
[INFO] [stdout] 1779 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]    --> src/eval/material.rs:483:33
[INFO] [stdout]     |
[INFO] [stdout] 483 | pub fn get_endgame_scale_factor(pos: &Position, endgame_type: EndgameType) -> f32 {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:185:9
[INFO] [stdout]     |
[INFO] [stdout] 185 |         (*table_ptr)[PieceType::Pawn as usize].mg[sq] = PAWN_MG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/eval/pst.rs:182:1
[INFO] [stdout]     |
[INFO] [stdout] 182 | unsafe fn init_pawn_table() {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:186:9
[INFO] [stdout]     |
[INFO] [stdout] 186 |         (*table_ptr)[PieceType::Pawn as usize].eg[sq] = PAWN_EG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:193:9
[INFO] [stdout]     |
[INFO] [stdout] 193 |         (*table_ptr)[PieceType::Knight as usize].mg[sq] = KNIGHT_MG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/eval/pst.rs:190:1
[INFO] [stdout]     |
[INFO] [stdout] 190 | unsafe fn init_knight_table() {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:194:9
[INFO] [stdout]     |
[INFO] [stdout] 194 |         (*table_ptr)[PieceType::Knight as usize].eg[sq] = KNIGHT_EG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:201:9
[INFO] [stdout]     |
[INFO] [stdout] 201 |         (*table_ptr)[PieceType::Bishop as usize].mg[sq] = BISHOP_MG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/eval/pst.rs:198:1
[INFO] [stdout]     |
[INFO] [stdout] 198 | unsafe fn init_bishop_table() {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:202:9
[INFO] [stdout]     |
[INFO] [stdout] 202 |         (*table_ptr)[PieceType::Bishop as usize].eg[sq] = BISHOP_EG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 209 |         (*table_ptr)[PieceType::Rook as usize].mg[sq] = ROOK_MG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/eval/pst.rs:206:1
[INFO] [stdout]     |
[INFO] [stdout] 206 | unsafe fn init_rook_table() {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:210:9
[INFO] [stdout]     |
[INFO] [stdout] 210 |         (*table_ptr)[PieceType::Rook as usize].eg[sq] = ROOK_EG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:217:9
[INFO] [stdout]     |
[INFO] [stdout] 217 |         (*table_ptr)[PieceType::Queen as usize].mg[sq] = QUEEN_MG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/eval/pst.rs:214:1
[INFO] [stdout]     |
[INFO] [stdout] 214 | unsafe fn init_queen_table() {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:218:9
[INFO] [stdout]     |
[INFO] [stdout] 218 |         (*table_ptr)[PieceType::Queen as usize].eg[sq] = QUEEN_EG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:225:9
[INFO] [stdout]     |
[INFO] [stdout] 225 |         (*table_ptr)[PieceType::King as usize].mg[sq] = KING_MG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/eval/pst.rs:222:1
[INFO] [stdout]     |
[INFO] [stdout] 222 | unsafe fn init_king_table() {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:226:9
[INFO] [stdout]     |
[INFO] [stdout] 226 |         (*table_ptr)[PieceType::King as usize].eg[sq] = KING_EG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `doubled_count` is assigned to, but never used
[INFO] [stdout]    --> src/eval/pawns.rs:279:9
[INFO] [stdout]     |
[INFO] [stdout] 279 |     let mut doubled_count = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_doubled_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `square_bb`
[INFO] [stdout]    --> src/eval/pawns.rs:310:13
[INFO] [stdout]     |
[INFO] [stdout] 310 |         let square_bb = 1u64 << square;
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_square_bb`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rank`
[INFO] [stdout]    --> src/eval/pawns.rs:313:13
[INFO] [stdout]     |
[INFO] [stdout] 313 |         let rank = rank_of(square);
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_rank`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `doubled_count` is never read
[INFO] [stdout]    --> src/eval/pawns.rs:290:17
[INFO] [stdout]     |
[INFO] [stdout] 290 |                 doubled_count += pawn_count - 1;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `same_rank_mask`
[INFO] [stdout]    --> src/eval/pawns.rs:440:9
[INFO] [stdout]     |
[INFO] [stdout] 440 |     let same_rank_mask = 0xFFu64 << (rank * 8);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_same_rank_mask`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `weights_arc`
[INFO] [stdout]    --> src/eval/evaluate.rs:337:17
[INFO] [stdout]     |
[INFO] [stdout] 337 |     if let Some(weights_arc) = GLOBAL_NNUE_WEIGHTS.get().and_then(|opt| opt.as_ref()) {
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_weights_arc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `weights_arc`
[INFO] [stdout]    --> src/eval/evaluate.rs:392:17
[INFO] [stdout]     |
[INFO] [stdout] 392 |     if let Some(weights_arc) = GLOBAL_NNUE_WEIGHTS.get().and_then(|opt| opt.as_ref()) {
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_weights_arc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `all_pieces`
[INFO] [stdout]    --> src/eval/evaluate.rs:546:9
[INFO] [stdout]     |
[INFO] [stdout] 546 |     let all_pieces = pos.all_pieces();
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_all_pieces`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `our_pieces`
[INFO] [stdout]    --> src/eval/evaluate.rs:550:13
[INFO] [stdout]     |
[INFO] [stdout] 550 |         let our_pieces = pos.pieces(color);
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_our_pieces`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enemy_pieces`
[INFO] [stdout]    --> src/eval/mobility.rs:222:9
[INFO] [stdout]     |
[INFO] [stdout] 222 |     let enemy_pieces = pos.pieces(color.opposite());
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enemy_pieces`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `square_bb`
[INFO] [stdout]   --> src/eval/space.rs:96:13
[INFO] [stdout]    |
[INFO] [stdout] 96 |         let square_bb = 1u64 << square;
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_square_bb`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `king_rank`
[INFO] [stdout]    --> src/eval/king_safety.rs:162:9
[INFO] [stdout]     |
[INFO] [stdout] 162 |     let king_rank = king_sq / 8;
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_king_rank`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `our_pawns`
[INFO] [stdout]    --> src/eval/king_safety.rs:476:9
[INFO] [stdout]     |
[INFO] [stdout] 476 |     let our_pawns = pos.pieces_colored(PieceType::Pawn, color);
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_our_pawns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `piece_type`
[INFO] [stdout]    --> src/eval/threats.rs:153:46
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn is_piece_weak(pos: &Position, square: u8, piece_type: PieceType, color: Color) -> bool {
[INFO] [stdout]     |                                              ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_piece_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enemy_king`
[INFO] [stdout]    --> src/eval/threats.rs:404:9
[INFO] [stdout]     |
[INFO] [stdout] 404 |     let enemy_king = pos.king_square(color.opposite());
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enemy_king`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `our_pieces`
[INFO] [stdout]    --> src/eval/threats.rs:434:9
[INFO] [stdout]     |
[INFO] [stdout] 434 |     let our_pieces = pos.pieces(color);
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_our_pieces`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enemy_valuable`
[INFO] [stdout]    --> src/eval/threats.rs:435:9
[INFO] [stdout]     |
[INFO] [stdout] 435 |     let enemy_valuable = pos.pieces_colored(PieceType::Queen, color.opposite()) |
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enemy_valuable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ray`
[INFO] [stdout]    --> src/eval/threats.rs:758:22
[INFO] [stdout]     |
[INFO] [stdout] 758 | fn extend_ray_beyond(ray: Bitboard, from: u8, through: u8) -> Bitboard {
[INFO] [stdout]     |                      ^^^ help: if this is intentional, prefix it with an underscore: `_ray`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/eval/threats.rs:803:9
[INFO] [stdout]     |
[INFO] [stdout] 803 |     let mut temp_all_pieces = pos.all_pieces() & !(1u64 << blocker);
[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: `color`
[INFO] [stdout]   --> src/eval/initiative.rs:45:55
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn evaluate_pawn_asymmetry_initiative(pos: &Position, color: Color) -> Score {
[INFO] [stdout]    |                                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_color`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/movegen/moves.rs:174:9
[INFO] [stdout]     |
[INFO] [stdout] 174 |     let mut attacks = get_king_attacks(from);
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/movegen/moves.rs:274:9
[INFO] [stdout]     |
[INFO] [stdout] 274 |     let mut attacks = get_king_attacks(from);
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opponent_color`
[INFO] [stdout]   --> src/movegen/legal_moves.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let opponent_color = our_color.opposite();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_opponent_color`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `found_moves` is assigned to, but never used
[INFO] [stdout]    --> src/uci/protocol.rs:383:21
[INFO] [stdout]     |
[INFO] [stdout] 383 |                 let mut found_moves = false;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_found_moves` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `old_hash`
[INFO] [stdout]    --> src/uci/protocol.rs:424:29
[INFO] [stdout]     |
[INFO] [stdout] 424 |                         let old_hash = pos.hash;
[INFO] [stdout]     |                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_old_hash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `new_position` is never read
[INFO] [stdout]    --> src/uci/protocol.rs:363:32
[INFO] [stdout]     |
[INFO] [stdout] 363 |         let mut new_position = None;
[INFO] [stdout]     |                                ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `found_moves` is never read
[INFO] [stdout]    --> src/uci/protocol.rs:388:25
[INFO] [stdout]     |
[INFO] [stdout] 388 |                         found_moves = true;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `piece`
[INFO] [stdout]    --> src/search/alphabeta.rs:356:14
[INFO] [stdout]     |
[INFO] [stdout] 356 |         let (piece, color) = pos.piece_at(from);
[INFO] [stdout]     |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_piece`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]    --> src/search/alphabeta.rs:495:34
[INFO] [stdout]     |
[INFO] [stdout] 495 |     fn is_repetition_draw(&self, pos: &Position) -> bool {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `score`
[INFO] [stdout]    --> src/search/alphabeta.rs:632:29
[INFO] [stdout]     |
[INFO] [stdout] 632 |                 if let Some(score) = razoring(pos, depth, alpha, static_eval) {
[INFO] [stdout]     |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_score`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `piece`
[INFO] [stdout]    --> src/search/alphabeta.rs:849:34
[INFO] [stdout]     |
[INFO] [stdout] 849 | ...                   let (piece, color) = pos.piece_at(mv.from());
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_piece`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `move_count` is assigned to, but never used
[INFO] [stdout]     --> src/search/alphabeta.rs:1008:17
[INFO] [stdout]      |
[INFO] [stdout] 1008 |             let mut move_count = 0;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_move_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `move_count` is never read
[INFO] [stdout]     --> src/search/alphabeta.rs:1054:17
[INFO] [stdout]      |
[INFO] [stdout] 1054 |                 move_count += 1;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `best_pv` is never read
[INFO] [stdout]     --> src/search/alphabeta.rs:1249:27
[INFO] [stdout]      |
[INFO] [stdout] 1249 |         let mut best_pv = Vec::new();
[INFO] [stdout]      |                           ^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_age`
[INFO] [stdout]    --> src/search/transposition.rs:136:62
[INFO] [stdout]     |
[INFO] [stdout] 136 |     fn should_replace(&self, entry: &TTEntry, new_depth: u8, new_age: u8, new_bound: u8) -> bool {
[INFO] [stdout]     |                                                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_age`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lmp_idx`
[INFO] [stdout]   --> src/search/pruning.rs:99:9
[INFO] [stdout]    |
[INFO] [stdout] 99 |     let lmp_idx = is_pv as usize;
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lmp_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `depth`
[INFO] [stdout]    --> src/search/pruning.rs:190:12
[INFO] [stdout]     |
[INFO] [stdout] 190 | pub fn new(depth: i32) -> Self {
[INFO] [stdout]     |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_depth`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tt_score`
[INFO] [stdout]    --> src/search/pruning.rs:341:5
[INFO] [stdout]     |
[INFO] [stdout] 341 |     tt_score: i32,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tt_score`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `depth`
[INFO] [stdout]    --> src/search/pruning.rs:342:5
[INFO] [stdout]     |
[INFO] [stdout] 342 |     depth: i32,
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_depth`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_pv`
[INFO] [stdout]    --> src/search/pruning.rs:343:5
[INFO] [stdout]     |
[INFO] [stdout] 343 |     is_pv: bool,
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_is_pv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]    --> src/nnue/nnue.rs:302:30
[INFO] [stdout]     |
[INFO] [stdout] 302 |     pub fn debug_psqt(&self, pos: &Position) {
[INFO] [stdout]     |                              ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `version`
[INFO] [stdout]   --> src/nnue/nnue_weights.rs:52:13
[INFO] [stdout]    |
[INFO] [stdout] 52 |         let version = reader.read_u32::<LittleEndian>()?;
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_version`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `description`
[INFO] [stdout]   --> src/nnue/nnue_weights.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |         let description = String::from_utf8_lossy(&desc_bytes);
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_description`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `CASTLE_MOVES` is never used
[INFO] [stdout]    --> src/board/position.rs:174:8
[INFO] [stdout]     |
[INFO] [stdout] 174 | static CASTLE_MOVES: [[(u8, u8, u8); 2]; 2] = [
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `CASTLE_TYPE` is never used
[INFO] [stdout]    --> src/board/position.rs:179:8
[INFO] [stdout]     |
[INFO] [stdout] 179 | static CASTLE_TYPE: [Option<(Color, usize)>; 64] = {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MoveHashData` is never constructed
[INFO] [stdout]    --> src/board/position.rs:306:8
[INFO] [stdout]     |
[INFO] [stdout] 306 | struct MoveHashData {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `find_checking_piece` and `count_checks` are never used
[INFO] [stdout]     --> src/board/position.rs:951:8
[INFO] [stdout]      |
[INFO] [stdout]  313 | impl Position {
[INFO] [stdout]      | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  951 |     fn find_checking_piece(&self, king_square: u8, color: Color) -> Option<(u8, PieceType)> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1029 |     fn count_checks(&self, color: Color) -> u32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PHASE_VALUES` is never used
[INFO] [stdout]   --> src/eval/material.rs:97:7
[INFO] [stdout]    |
[INFO] [stdout] 97 | const PHASE_VALUES: [u32; 6] = [0, 1, 1, 2, 4, 0];
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PIECE_VALUES` is never used
[INFO] [stdout]    --> src/eval/evaluate.rs:101:7
[INFO] [stdout]     |
[INFO] [stdout] 101 | const PIECE_VALUES: [i32; 7] = [0, 100, 320, 330, 500, 900, 10000];
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROOK_ON_FILE` is never used
[INFO] [stdout]   --> src/eval/mobility.rs:89:7
[INFO] [stdout]    |
[INFO] [stdout] 89 | const ROOK_ON_FILE: [Score; 4] = [
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KNIGHT_ON_HOLE` is never used
[INFO] [stdout]    --> src/eval/mobility.rs:106:7
[INFO] [stdout]     |
[INFO] [stdout] 106 | const KNIGHT_ON_HOLE: Score = Score::new(17, 10);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WING_FILES` is never used
[INFO] [stdout]   --> src/eval/space.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const WING_FILES: Bitboard = 0xC3C3C3C3C3C3C3C3;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PIN_BONUS` is never used
[INFO] [stdout]   --> src/eval/threats.rs:50:7
[INFO] [stdout]    |
[INFO] [stdout] 50 | const PIN_BONUS: Score = Score::new(20, 25);
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DISCOVERED_ATTACK_BONUS` is never used
[INFO] [stdout]   --> src/eval/threats.rs:55:7
[INFO] [stdout]    |
[INFO] [stdout] 55 | const DISCOVERED_ATTACK_BONUS: Score = Score::new(35, 40);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_path_attacked` is never used
[INFO] [stdout]    --> src/movegen/moves.rs:238:4
[INFO] [stdout]     |
[INFO] [stdout] 238 | fn is_path_attacked(pos: &Position, path: Bitboard, king_sq: u8, by_color: Color) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_MOVES` is never used
[INFO] [stdout]   --> src/search/alphabeta.rs:31:7
[INFO] [stdout]    |
[INFO] [stdout] 31 | const MAX_MOVES: usize = 256;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MIN_SEARCH_DEPTH` is never used
[INFO] [stdout]   --> src/search/alphabeta.rs:33:7
[INFO] [stdout]    |
[INFO] [stdout] 33 | const MIN_SEARCH_DEPTH: i32 = 0;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LMR_BASE` is never used
[INFO] [stdout]   --> src/search/alphabeta.rs:42:7
[INFO] [stdout]    |
[INFO] [stdout] 42 | const LMR_BASE: f64 = 0.75;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LMR_FACTOR` is never used
[INFO] [stdout]   --> src/search/alphabeta.rs:43:7
[INFO] [stdout]    |
[INFO] [stdout] 43 | const LMR_FACTOR: f64 = 2.5;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NULL_MOVE_REDUCTION` is never used
[INFO] [stdout]   --> src/search/alphabeta.rs:49:7
[INFO] [stdout]    |
[INFO] [stdout] 49 | const NULL_MOVE_REDUCTION: i32 = 2;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NULL_MOVE_DEPTH_REDUCTION` is never used
[INFO] [stdout]   --> src/search/alphabeta.rs:50:7
[INFO] [stdout]    |
[INFO] [stdout] 50 | const NULL_MOVE_DEPTH_REDUCTION: i32 = 3;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EQUAL_CAPTURE_SCORE` is never used
[INFO] [stdout]   --> src/search/alphabeta.rs:54:7
[INFO] [stdout]    |
[INFO] [stdout] 54 | const EQUAL_CAPTURE_SCORE: i32 = 800000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `hash_move` is never read
[INFO] [stdout]    --> src/search/alphabeta.rs:308:5
[INFO] [stdout]     |
[INFO] [stdout] 304 | struct MoveOrder {
[INFO] [stdout]     |        --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 308 |     hash_move: Move,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `root_position` and `thread_id` are never read
[INFO] [stdout]    --> src/search/alphabeta.rs:445:5
[INFO] [stdout]     |
[INFO] [stdout] 440 | pub struct SearchContext {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 445 |     root_position: Position,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 448 |     thread_id: usize,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/search/alphabeta.rs:457:8
[INFO] [stdout]     |
[INFO] [stdout] 456 | impl SearchContext {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] 457 |     fn new(
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCORE_NONE` is never used
[INFO] [stdout]  --> src/search/transposition.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const SCORE_NONE: i32 = -32768;
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: crate `RuthChessOVI` should have a snake case name
[INFO] [stdout]   |
[INFO] [stdout]   = help: convert the identifier to snake case: `ruth_chess_ovi`
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::eval::evaluate::Score`
[INFO] [stdout]  --> src/board/position.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::eval::evaluate::Score;
[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: `get_queen_attacks`
[INFO] [stdout]  --> src/board/position.rs:6:120
[INFO] [stdout]   |
[INFO] [stdout] 6 | ...acks,get_king_attacks,get_pawn_attacks,get_rook_attacks,get_queen_attacks,get_knight_attacks};
[INFO] [stdout]   |                                                            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/board/position.rs:1730:20
[INFO] [stdout]      |
[INFO] [stdout] 1730 |                 if (self.has_diagonal_attack(square, bishops)) {
[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] 1730 -                 if (self.has_diagonal_attack(square, bishops)) {
[INFO] [stdout] 1730 +                 if self.has_diagonal_attack(square, bishops) {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/board/position.rs:1740:20
[INFO] [stdout]      |
[INFO] [stdout] 1740 |                 if (self.has_straight_attack(square, rooks)) {
[INFO] [stdout]      |                    ^                                       ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1740 -                 if (self.has_straight_attack(square, rooks)) {
[INFO] [stdout] 1740 +                 if self.has_straight_attack(square, rooks) {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::bitboard::Bitboard`
[INFO] [stdout]  --> src/board/zobrist.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use super::bitboard::Bitboard;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::board::bitboard::Bitboard`
[INFO] [stdout]  --> src/eval/material.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::board::bitboard::Bitboard;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EMPTY`, `FILE_A`, `FILE_B`, `FILE_C`, `FILE_D`, `FILE_E`, `FILE_F`, `FILE_G`, and `FILE_H`
[INFO] [stdout]  --> src/eval/pawns.rs:2:40
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::board::bitboard::{Bitboard, EMPTY, FILE_A, FILE_B, FILE_C, FILE_D, FILE_E, FILE_F, FILE_G, FILE_H};
[INFO] [stdout]   |                                        ^^^^^  ^^^^^^  ^^^^^^  ^^^^^^  ^^^^^^  ^^^^^^  ^^^^^^  ^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EMPTY`
[INFO] [stdout]  --> src/eval/mobility.rs:2:40
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::board::bitboard::{Bitboard, EMPTY};
[INFO] [stdout]   |                                        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `get_king_attacks` and `get_pawn_attacks`
[INFO] [stdout]  --> src/eval/mobility.rs:6:24
[INFO] [stdout]   |
[INFO] [stdout] 6 |     get_queen_attacks, get_king_attacks, get_pawn_attacks
[INFO] [stdout]   |                        ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/eval/mobility.rs:281:11
[INFO] [stdout]     |
[INFO] [stdout] 281 |         if((our_pawns.count_ones()+opposite_pawns.count_ones())<=12){
[INFO] [stdout]     |           ^                                                        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 281 -         if((our_pawns.count_ones()+opposite_pawns.count_ones())<=12){
[INFO] [stdout] 281 +         if (our_pawns.count_ones()+opposite_pawns.count_ones())<=12 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EMPTY`
[INFO] [stdout]  --> src/eval/space.rs:3:40
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::board::bitboard::{Bitboard, EMPTY, CENTER, EXTENDED_CENTER};
[INFO] [stdout]   |                                        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `get_pawn_attacks`
[INFO] [stdout]  --> src/eval/space.rs:5:42
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::movegen::magic::{all_attacks, get_pawn_attacks};
[INFO] [stdout]   |                                          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EMPTY`, `FILE_A`, and `FILE_H`
[INFO] [stdout]  --> src/eval/king_safety.rs:2:40
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::board::bitboard::{Bitboard, EMPTY, FILE_A, FILE_H};
[INFO] [stdout]   |                                        ^^^^^  ^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `file_of` and `relative_rank`
[INFO] [stdout]  --> src/eval/king_safety.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::eval::pst::{file_of, rank_of, relative_rank};
[INFO] [stdout]   |                        ^^^^^^^           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EMPTY`
[INFO] [stdout]  --> src/eval/threats.rs:2:40
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::board::bitboard::{Bitboard, EMPTY};
[INFO] [stdout]   |                                        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `file_of` and `rank_of`
[INFO] [stdout]  --> src/eval/threats.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::eval::pst::{file_of, rank_of};
[INFO] [stdout]   |                        ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::eval::evaluate::Score`
[INFO] [stdout]  --> src/eval/eval_util.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::eval::evaluate::Score;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::nnue::nnue_accumulator::AccumulatorCache`
[INFO] [stdout]  --> src/eval/evaluate.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::nnue::nnue_accumulator::AccumulatorCache;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `get_bishop_attacks`, `get_knight_attacks`, `get_queen_attacks`, and `get_rook_attacks`
[INFO] [stdout]    --> src/eval/evaluate.rs:543:33
[INFO] [stdout]     |
[INFO] [stdout] 543 |     use crate::movegen::magic::{get_knight_attacks, get_bishop_attacks, get_rook_attacks, get_queen_attacks};
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DRAW_VALUE`, `EvalResult`, `MATE_VALUE`, `Score`, `evaluate_detailed`, `evaluate_fast`, and `evaluate`
[INFO] [stdout]   --> src/eval/mod.rs:15:20
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use evaluate::{Score, EvalResult, evaluate, evaluate_fast, evaluate_detailed, MATE_VALUE, DRAW_VALUE};
[INFO] [stdout]    |                    ^^^^^  ^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EvalCache`, `is_endgame`, `is_middlegame`, and `phase_value`
[INFO] [stdout]   --> src/eval/mod.rs:16:21
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub use eval_util::{EvalCache, phase_value, is_endgame, is_middlegame};
[INFO] [stdout]    |                     ^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MAX_PHASE` and `calculate_phase`
[INFO] [stdout]   --> src/eval/mod.rs:17:20
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub use material::{calculate_phase, MAX_PHASE};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `popcount` and `square_mask`
[INFO] [stdout]  --> src/movegen/magic.rs:1:40
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::board::bitboard::{Bitboard, popcount, square_mask, EMPTY};
[INFO] [stdout]   |                                        ^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/movegen/magic.rs:131:7
[INFO] [stdout]     |
[INFO] [stdout] 131 |     if(square == 64){
[INFO] [stdout]     |       ^            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 131 -     if(square == 64){
[INFO] [stdout] 131 +     if square == 64 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `has_bit` and `square_mask`
[INFO] [stdout]  --> src/movegen/moves.rs:1:40
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::board::bitboard::{Bitboard, square_mask, has_bit};
[INFO] [stdout]   |                                        ^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `all_attacks`
[INFO] [stdout]  --> src/movegen/moves.rs:7:44
[INFO] [stdout]   |
[INFO] [stdout] 7 |                    add_moves_from_bitboard,all_attacks};
[INFO] [stdout]   |                                            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::arch::x86_64::*`
[INFO] [stdout]   --> src/movegen/moves.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use std::arch::x86_64::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::movegen::magic::all_attacks_for_king`
[INFO] [stdout]  --> src/movegen/legal_moves.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::movegen::magic::all_attacks_for_king;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DRAW_VALUE`, `Score`, `TTData`, `ZOBRIST`, `all_attacks_for_king`, `all_attacks`, `eval_util`, `evaluate_int`, `get_queen_attacks`, and `nnue::NNUE`
[INFO] [stdout]   --> src/search/alphabeta.rs:4:19
[INFO] [stdout]    |
[INFO] [stdout]  4 |         zobrist::{ZOBRIST},
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  7 |         evaluate::{evaluate, evaluate_fast, Score, MATE_VALUE, DRAW_VALUE, evaluate_int,nnue_push_move, nnue_pop_move,nnue_refresh},
[INFO] [stdout]    |                                             ^^^^^              ^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout]  8 |         material::calculate_phase,
[INFO] [stdout]  9 |         eval_util,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |         magic::{all_attacks, get_bishop_attacks, get_rook_attacks, get_queen_attacks,
[INFO] [stdout]    |                 ^^^^^^^^^^^                                        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |                 get_knight_attacks, get_king_attacks, get_pawn_attacks, all_attacks_for_king},
[INFO] [stdout]    |                                                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |         transposition::{TranspositionTable, TT_BOUND_EXACT, TT_BOUND_LOWER, TT_BOUND_UPPER, TTData},
[INFO] [stdout]    |                                                                                             ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     nnue::{nnue::NNUE}
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `max` and `min`
[INFO] [stdout]   --> src/search/alphabeta.rs:27:16
[INFO] [stdout]    |
[INFO] [stdout] 27 | use std::cmp::{max, min};
[INFO] [stdout]    |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]     --> src/search/alphabeta.rs:1413:61
[INFO] [stdout]      |
[INFO] [stdout] 1413 |                 depth_offset: if thread_id < 4 { 0 } else { (thread_id as i32 / 4) },
[INFO] [stdout]      |                                                             ^                    ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1413 -                 depth_offset: if thread_id < 4 { 0 } else { (thread_id as i32 / 4) },
[INFO] [stdout] 1413 +                 depth_offset: if thread_id < 4 { 0 } else { thread_id as i32 / 4  },
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/search/search_node.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::atomic::AtomicBool`
[INFO] [stdout]  --> src/search/search_node.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::sync::atomic::AtomicBool;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Position`, `search::alphabeta::alpha_beta_search`, and `search::time_management::TimeManager`
[INFO] [stdout]  --> src/search/search_node.rs:4:23
[INFO] [stdout]   |
[INFO] [stdout] 4 |     board::position::{Position, Move},
[INFO] [stdout]   |                       ^^^^^^^^
[INFO] [stdout] 5 |     eval::evaluate::Score,
[INFO] [stdout] 6 |     search::alphabeta::alpha_beta_search,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 7 |     search::time_management::TimeManager,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Move`
[INFO] [stdout]  --> src/search/pruning.rs:1:40
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::board::position::{Position, Move, Color, PieceType};
[INFO] [stdout]   |                                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::eval::material::calculate_phase`
[INFO] [stdout]  --> src/search/pruning.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::eval::material::calculate_phase;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MoveType`, `move_to_uci`, `nnue::nnue`, and `transposition::TranspositionTable`
[INFO] [stdout]   --> src/uci/protocol.rs:4:47
[INFO] [stdout]    |
[INFO] [stdout]  4 |         position::{Position, Move, PieceType, MoveType, Color},
[INFO] [stdout]    |                                               ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  9 |         legal_moves::{generate_legal_moves,move_to_uci},
[INFO] [stdout]    |                                            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |         transposition::TranspositionTable,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     nnue::nnue
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PieceType`
[INFO] [stdout]  --> src/nnue/nnue.rs:3:47
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::board::position::{Position, Color, PieceType};
[INFO] [stdout]   |                                               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nnue as nnue_fast`
[INFO] [stdout]  --> src/nnue/mod.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use nnue as nnue_fast;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nnue_accumulator as accumulator_fast`
[INFO] [stdout]  --> src/nnue/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use nnue_accumulator as accumulator_fast;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nnue_weights as weights_fast`
[INFO] [stdout]  --> src/nnue/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use nnue_weights as weights_fast;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::eval::evaluate::evaluate`
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::eval::evaluate::evaluate;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Move`, `PieceType`, and `Position`
[INFO] [stdout]   --> src/main.rs:12:37
[INFO] [stdout]    |
[INFO] [stdout] 12 | use RuthChessOVI::board::position::{Position,Move,PieceType,init_attack_tables};
[INFO] [stdout]    |                                     ^^^^^^^^ ^^^^ ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RuthChessOVI::nnue::nnue::NNUE`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use RuthChessOVI::nnue::nnue::NNUE;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufRead`, `BufReader`, and `self`
[INFO] [stdout]   --> src/main.rs:16:15
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::io::{self, BufRead, BufReader};
[INFO] [stdout]    |               ^^^^  ^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/main.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uci::protocol`
[INFO] [stdout]   --> src/main.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use uci::protocol;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `captured_pawn_square`
[INFO] [stdout]    --> src/board/position.rs:805:13
[INFO] [stdout]     |
[INFO] [stdout] 805 |         let captured_pawn_square = to ^ 8;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_captured_pawn_square`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `king_square`
[INFO] [stdout]    --> src/board/position.rs:807:13
[INFO] [stdout]     |
[INFO] [stdout] 807 |         let king_square = self.king_square(self.side_to_move);
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_king_square`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `undo`
[INFO] [stdout]     --> src/board/position.rs:1247:28
[INFO] [stdout]      |
[INFO] [stdout] 1247 |     pub fn push_undo(self, undo: UndoInfo) {
[INFO] [stdout]      |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_undo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/board/position.rs:1752:9
[INFO] [stdout]      |
[INFO] [stdout] 1752 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/board/position.rs:1766:9
[INFO] [stdout]      |
[INFO] [stdout] 1766 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `by_color`
[INFO] [stdout]     --> src/board/position.rs:1765:58
[INFO] [stdout]      |
[INFO] [stdout] 1765 |     pub fn is_square_attacked_ovi_upg(&self, square: u8, by_color: Color,atts:Bitboard) -> bool {
[INFO] [stdout]      |                                                          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_by_color`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/board/position.rs:1779:9
[INFO] [stdout]      |
[INFO] [stdout] 1779 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]    --> src/eval/material.rs:483:33
[INFO] [stdout]     |
[INFO] [stdout] 483 | pub fn get_endgame_scale_factor(pos: &Position, endgame_type: EndgameType) -> f32 {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:185:9
[INFO] [stdout]     |
[INFO] [stdout] 185 |         (*table_ptr)[PieceType::Pawn as usize].mg[sq] = PAWN_MG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/eval/pst.rs:182:1
[INFO] [stdout]     |
[INFO] [stdout] 182 | unsafe fn init_pawn_table() {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:186:9
[INFO] [stdout]     |
[INFO] [stdout] 186 |         (*table_ptr)[PieceType::Pawn as usize].eg[sq] = PAWN_EG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:193:9
[INFO] [stdout]     |
[INFO] [stdout] 193 |         (*table_ptr)[PieceType::Knight as usize].mg[sq] = KNIGHT_MG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/eval/pst.rs:190:1
[INFO] [stdout]     |
[INFO] [stdout] 190 | unsafe fn init_knight_table() {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:194:9
[INFO] [stdout]     |
[INFO] [stdout] 194 |         (*table_ptr)[PieceType::Knight as usize].eg[sq] = KNIGHT_EG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:201:9
[INFO] [stdout]     |
[INFO] [stdout] 201 |         (*table_ptr)[PieceType::Bishop as usize].mg[sq] = BISHOP_MG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/eval/pst.rs:198:1
[INFO] [stdout]     |
[INFO] [stdout] 198 | unsafe fn init_bishop_table() {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:202:9
[INFO] [stdout]     |
[INFO] [stdout] 202 |         (*table_ptr)[PieceType::Bishop as usize].eg[sq] = BISHOP_EG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 209 |         (*table_ptr)[PieceType::Rook as usize].mg[sq] = ROOK_MG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/eval/pst.rs:206:1
[INFO] [stdout]     |
[INFO] [stdout] 206 | unsafe fn init_rook_table() {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:210:9
[INFO] [stdout]     |
[INFO] [stdout] 210 |         (*table_ptr)[PieceType::Rook as usize].eg[sq] = ROOK_EG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:217:9
[INFO] [stdout]     |
[INFO] [stdout] 217 |         (*table_ptr)[PieceType::Queen as usize].mg[sq] = QUEEN_MG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/eval/pst.rs:214:1
[INFO] [stdout]     |
[INFO] [stdout] 214 | unsafe fn init_queen_table() {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:218:9
[INFO] [stdout]     |
[INFO] [stdout] 218 |         (*table_ptr)[PieceType::Queen as usize].eg[sq] = QUEEN_EG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:225:9
[INFO] [stdout]     |
[INFO] [stdout] 225 |         (*table_ptr)[PieceType::King as usize].mg[sq] = KING_MG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/eval/pst.rs:222:1
[INFO] [stdout]     |
[INFO] [stdout] 222 | unsafe fn init_king_table() {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:226:9
[INFO] [stdout]     |
[INFO] [stdout] 226 |         (*table_ptr)[PieceType::King as usize].eg[sq] = KING_EG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `doubled_count` is assigned to, but never used
[INFO] [stdout]    --> src/eval/pawns.rs:279:9
[INFO] [stdout]     |
[INFO] [stdout] 279 |     let mut doubled_count = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_doubled_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `square_bb`
[INFO] [stdout]    --> src/eval/pawns.rs:310:13
[INFO] [stdout]     |
[INFO] [stdout] 310 |         let square_bb = 1u64 << square;
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_square_bb`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rank`
[INFO] [stdout]    --> src/eval/pawns.rs:313:13
[INFO] [stdout]     |
[INFO] [stdout] 313 |         let rank = rank_of(square);
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_rank`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `doubled_count` is never read
[INFO] [stdout]    --> src/eval/pawns.rs:290:17
[INFO] [stdout]     |
[INFO] [stdout] 290 |                 doubled_count += pawn_count - 1;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `same_rank_mask`
[INFO] [stdout]    --> src/eval/pawns.rs:440:9
[INFO] [stdout]     |
[INFO] [stdout] 440 |     let same_rank_mask = 0xFFu64 << (rank * 8);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_same_rank_mask`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enemy_pieces`
[INFO] [stdout]    --> src/eval/mobility.rs:222:9
[INFO] [stdout]     |
[INFO] [stdout] 222 |     let enemy_pieces = pos.pieces(color.opposite());
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enemy_pieces`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `square_bb`
[INFO] [stdout]   --> src/eval/space.rs:96:13
[INFO] [stdout]    |
[INFO] [stdout] 96 |         let square_bb = 1u64 << square;
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_square_bb`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `king_rank`
[INFO] [stdout]    --> src/eval/king_safety.rs:162:9
[INFO] [stdout]     |
[INFO] [stdout] 162 |     let king_rank = king_sq / 8;
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_king_rank`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `our_pawns`
[INFO] [stdout]    --> src/eval/king_safety.rs:476:9
[INFO] [stdout]     |
[INFO] [stdout] 476 |     let our_pawns = pos.pieces_colored(PieceType::Pawn, color);
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_our_pawns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `piece_type`
[INFO] [stdout]    --> src/eval/threats.rs:153:46
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn is_piece_weak(pos: &Position, square: u8, piece_type: PieceType, color: Color) -> bool {
[INFO] [stdout]     |                                              ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_piece_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enemy_king`
[INFO] [stdout]    --> src/eval/threats.rs:404:9
[INFO] [stdout]     |
[INFO] [stdout] 404 |     let enemy_king = pos.king_square(color.opposite());
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enemy_king`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `our_pieces`
[INFO] [stdout]    --> src/eval/threats.rs:434:9
[INFO] [stdout]     |
[INFO] [stdout] 434 |     let our_pieces = pos.pieces(color);
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_our_pieces`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enemy_valuable`
[INFO] [stdout]    --> src/eval/threats.rs:435:9
[INFO] [stdout]     |
[INFO] [stdout] 435 |     let enemy_valuable = pos.pieces_colored(PieceType::Queen, color.opposite()) |
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enemy_valuable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ray`
[INFO] [stdout]    --> src/eval/threats.rs:758:22
[INFO] [stdout]     |
[INFO] [stdout] 758 | fn extend_ray_beyond(ray: Bitboard, from: u8, through: u8) -> Bitboard {
[INFO] [stdout]     |                      ^^^ help: if this is intentional, prefix it with an underscore: `_ray`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/eval/threats.rs:803:9
[INFO] [stdout]     |
[INFO] [stdout] 803 |     let mut temp_all_pieces = pos.all_pieces() & !(1u64 << blocker);
[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: `weights_arc`
[INFO] [stdout]    --> src/eval/evaluate.rs:337:17
[INFO] [stdout]     |
[INFO] [stdout] 337 |     if let Some(weights_arc) = GLOBAL_NNUE_WEIGHTS.get().and_then(|opt| opt.as_ref()) {
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_weights_arc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `weights_arc`
[INFO] [stdout]    --> src/eval/evaluate.rs:392:17
[INFO] [stdout]     |
[INFO] [stdout] 392 |     if let Some(weights_arc) = GLOBAL_NNUE_WEIGHTS.get().and_then(|opt| opt.as_ref()) {
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_weights_arc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `all_pieces`
[INFO] [stdout]    --> src/eval/evaluate.rs:546:9
[INFO] [stdout]     |
[INFO] [stdout] 546 |     let all_pieces = pos.all_pieces();
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_all_pieces`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `our_pieces`
[INFO] [stdout]    --> src/eval/evaluate.rs:550:13
[INFO] [stdout]     |
[INFO] [stdout] 550 |         let our_pieces = pos.pieces(color);
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_our_pieces`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `color`
[INFO] [stdout]   --> src/eval/initiative.rs:45:55
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn evaluate_pawn_asymmetry_initiative(pos: &Position, color: Color) -> Score {
[INFO] [stdout]    |                                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_color`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/movegen/moves.rs:174:9
[INFO] [stdout]     |
[INFO] [stdout] 174 |     let mut attacks = get_king_attacks(from);
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/movegen/moves.rs:274:9
[INFO] [stdout]     |
[INFO] [stdout] 274 |     let mut attacks = get_king_attacks(from);
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opponent_color`
[INFO] [stdout]   --> src/movegen/legal_moves.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let opponent_color = our_color.opposite();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_opponent_color`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `piece`
[INFO] [stdout]    --> src/search/alphabeta.rs:356:14
[INFO] [stdout]     |
[INFO] [stdout] 356 |         let (piece, color) = pos.piece_at(from);
[INFO] [stdout]     |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_piece`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]    --> src/search/alphabeta.rs:495:34
[INFO] [stdout]     |
[INFO] [stdout] 495 |     fn is_repetition_draw(&self, pos: &Position) -> bool {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `score`
[INFO] [stdout]    --> src/search/alphabeta.rs:632:29
[INFO] [stdout]     |
[INFO] [stdout] 632 |                 if let Some(score) = razoring(pos, depth, alpha, static_eval) {
[INFO] [stdout]     |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_score`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `piece`
[INFO] [stdout]    --> src/search/alphabeta.rs:849:34
[INFO] [stdout]     |
[INFO] [stdout] 849 | ...                   let (piece, color) = pos.piece_at(mv.from());
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_piece`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `move_count` is assigned to, but never used
[INFO] [stdout]     --> src/search/alphabeta.rs:1008:17
[INFO] [stdout]      |
[INFO] [stdout] 1008 |             let mut move_count = 0;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_move_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `move_count` is never read
[INFO] [stdout]     --> src/search/alphabeta.rs:1054:17
[INFO] [stdout]      |
[INFO] [stdout] 1054 |                 move_count += 1;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `best_pv` is never read
[INFO] [stdout]     --> src/search/alphabeta.rs:1249:27
[INFO] [stdout]      |
[INFO] [stdout] 1249 |         let mut best_pv = Vec::new();
[INFO] [stdout]      |                           ^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_age`
[INFO] [stdout]    --> src/search/transposition.rs:136:62
[INFO] [stdout]     |
[INFO] [stdout] 136 |     fn should_replace(&self, entry: &TTEntry, new_depth: u8, new_age: u8, new_bound: u8) -> bool {
[INFO] [stdout]     |                                                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_age`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lmp_idx`
[INFO] [stdout]   --> src/search/pruning.rs:99:9
[INFO] [stdout]    |
[INFO] [stdout] 99 |     let lmp_idx = is_pv as usize;
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lmp_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `depth`
[INFO] [stdout]    --> src/search/pruning.rs:190:12
[INFO] [stdout]     |
[INFO] [stdout] 190 | pub fn new(depth: i32) -> Self {
[INFO] [stdout]     |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_depth`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tt_score`
[INFO] [stdout]    --> src/search/pruning.rs:341:5
[INFO] [stdout]     |
[INFO] [stdout] 341 |     tt_score: i32,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tt_score`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `depth`
[INFO] [stdout]    --> src/search/pruning.rs:342:5
[INFO] [stdout]     |
[INFO] [stdout] 342 |     depth: i32,
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_depth`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_pv`
[INFO] [stdout]    --> src/search/pruning.rs:343:5
[INFO] [stdout]     |
[INFO] [stdout] 343 |     is_pv: bool,
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_is_pv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `found_moves` is assigned to, but never used
[INFO] [stdout]    --> src/uci/protocol.rs:383:21
[INFO] [stdout]     |
[INFO] [stdout] 383 |                 let mut found_moves = false;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_found_moves` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `old_hash`
[INFO] [stdout]    --> src/uci/protocol.rs:424:29
[INFO] [stdout]     |
[INFO] [stdout] 424 |                         let old_hash = pos.hash;
[INFO] [stdout]     |                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_old_hash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `new_position` is never read
[INFO] [stdout]    --> src/uci/protocol.rs:363:32
[INFO] [stdout]     |
[INFO] [stdout] 363 |         let mut new_position = None;
[INFO] [stdout]     |                                ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `found_moves` is never read
[INFO] [stdout]    --> src/uci/protocol.rs:388:25
[INFO] [stdout]     |
[INFO] [stdout] 388 |                         found_moves = true;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]    --> src/nnue/nnue.rs:302:30
[INFO] [stdout]     |
[INFO] [stdout] 302 |     pub fn debug_psqt(&self, pos: &Position) {
[INFO] [stdout]     |                              ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `version`
[INFO] [stdout]   --> src/nnue/nnue_weights.rs:52:13
[INFO] [stdout]    |
[INFO] [stdout] 52 |         let version = reader.read_u32::<LittleEndian>()?;
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_version`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `description`
[INFO] [stdout]   --> src/nnue/nnue_weights.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |         let description = String::from_utf8_lossy(&desc_bytes);
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_description`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FULL` is never used
[INFO] [stdout]  --> src/board/bitboard.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub const FULL: Bitboard = 0xFFFF_FFFF_FFFF_FFFF;
[INFO] [stdout]   |           ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RANK_1` is never used
[INFO] [stdout]  --> src/board/bitboard.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const RANK_1: Bitboard = 0x0000_0000_0000_00FF;
[INFO] [stdout]   |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RANK_2` is never used
[INFO] [stdout]  --> src/board/bitboard.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const RANK_2: Bitboard = 0x0000_0000_0000_FF00;
[INFO] [stdout]   |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RANK_3` is never used
[INFO] [stdout]  --> src/board/bitboard.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const RANK_3: Bitboard = 0x0000_0000_00FF_0000;
[INFO] [stdout]   |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RANK_4` is never used
[INFO] [stdout]   --> src/board/bitboard.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const RANK_4: Bitboard = 0x0000_0000_FF00_0000;
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RANK_5` is never used
[INFO] [stdout]   --> src/board/bitboard.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const RANK_5: Bitboard = 0x0000_00FF_0000_0000;
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RANK_6` is never used
[INFO] [stdout]   --> src/board/bitboard.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const RANK_6: Bitboard = 0x0000_FF00_0000_0000;
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RANK_7` is never used
[INFO] [stdout]   --> src/board/bitboard.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub const RANK_7: Bitboard = 0x00FF_0000_0000_0000;
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RANK_8` is never used
[INFO] [stdout]   --> src/board/bitboard.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub const RANK_8: Bitboard = 0xFF00_0000_0000_0000;
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FILE_B` is never used
[INFO] [stdout]   --> src/board/bitboard.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub const FILE_B: Bitboard = 0x0202_0202_0202_0202;
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FILE_C` is never used
[INFO] [stdout]   --> src/board/bitboard.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const FILE_C: Bitboard = 0x0404_0404_0404_0404;
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FILE_D` is never used
[INFO] [stdout]   --> src/board/bitboard.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub const FILE_D: Bitboard = 0x0808_0808_0808_0808;
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FILE_E` is never used
[INFO] [stdout]   --> src/board/bitboard.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const FILE_E: Bitboard = 0x1010_1010_1010_1010;
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FILE_F` is never used
[INFO] [stdout]   --> src/board/bitboard.rs:21:11
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub const FILE_F: Bitboard = 0x2020_2020_2020_2020;
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FILE_G` is never used
[INFO] [stdout]   --> src/board/bitboard.rs:22:11
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub const FILE_G: Bitboard = 0x4040_4040_4040_4040;
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `popcount` is never used
[INFO] [stdout]   --> src/board/bitboard.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn popcount(bb: Bitboard) -> u8 {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_bit` is never used
[INFO] [stdout]   --> src/board/bitboard.rs:60:14
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub const fn has_bit(bb: Bitboard, square: u8) -> bool {
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_bit` is never used
[INFO] [stdout]   --> src/board/bitboard.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn set_bit(bb: &mut Bitboard, square: u8) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clear_bit` is never used
[INFO] [stdout]   --> src/board/bitboard.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub fn clear_bit(bb: &mut Bitboard, square: u8) {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `toggle_bit` is never used
[INFO] [stdout]   --> src/board/bitboard.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub fn toggle_bit(bb: &mut Bitboard, square: u8) {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lsb` is never used
[INFO] [stdout]   --> src/board/bitboard.rs:80:14
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub const fn lsb(bb: Bitboard) -> Bitboard {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reset_lsb` is never used
[INFO] [stdout]   --> src/board/bitboard.rs:85:14
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub const fn reset_lsb(bb: Bitboard) -> Bitboard {
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `msb` is never used
[INFO] [stdout]   --> src/board/bitboard.rs:90:8
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub fn msb(bb: Bitboard) -> Bitboard {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_rank` is never used
[INFO] [stdout]    --> src/board/bitboard.rs:139:14
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub const fn get_rank(square: u8) -> u8 {
[INFO] [stdout]     |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_file` is never used
[INFO] [stdout]    --> src/board/bitboard.rs:144:14
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub const fn get_file(square: u8) -> u8 {
[INFO] [stdout]     |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rank_mask` is never used
[INFO] [stdout]    --> src/board/bitboard.rs:149:14
[INFO] [stdout]     |
[INFO] [stdout] 149 | pub const fn rank_mask(rank: u8) -> Bitboard {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `file_mask` is never used
[INFO] [stdout]    --> src/board/bitboard.rs:154:14
[INFO] [stdout]     |
[INFO] [stdout] 154 | pub const fn file_mask(file: u8) -> Bitboard {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `square_distance` is never used
[INFO] [stdout]    --> src/board/bitboard.rs:159:8
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub fn square_distance(sq1: u8, sq2: u8) -> u8 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BitboardIterator` is never constructed
[INFO] [stdout]    --> src/board/bitboard.rs:195:12
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub struct BitboardIterator {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/board/bitboard.rs:201:18
[INFO] [stdout]     |
[INFO] [stdout] 199 | impl BitboardIterator {
[INFO] [stdout]     | --------------------- associated function in this implementation
[INFO] [stdout] 200 |     #[inline(always)]
[INFO] [stdout] 201 |     pub const fn new(bb: Bitboard) -> Self {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `iter_bits` is never used
[INFO] [stdout]    --> src/board/bitboard.rs:221:14
[INFO] [stdout]     |
[INFO] [stdout] 221 | pub const fn iter_bits(bb: Bitboard) -> BitboardIterator {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print` is never used
[INFO] [stdout]    --> src/board/bitboard.rs:225:8
[INFO] [stdout]     |
[INFO] [stdout] 225 | pub fn print(bb: Bitboard) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `king_to` and `castling_rights_mask` are never read
[INFO] [stdout]    --> src/board/position.rs:140:9
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub struct CastleData {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 140 |     pub king_to: u8,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub castling_rights_mask: u8,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `CASTLE_MOVES` is never used
[INFO] [stdout]    --> src/board/position.rs:174:8
[INFO] [stdout]     |
[INFO] [stdout] 174 | static CASTLE_MOVES: [[(u8, u8, u8); 2]; 2] = [
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `CASTLE_TYPE` is never used
[INFO] [stdout]    --> src/board/position.rs:179:8
[INFO] [stdout]     |
[INFO] [stdout] 179 | static CASTLE_TYPE: [Option<(Color, usize)>; 64] = {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_u32`, `to_u32`, and `is_pawn_move` are never used
[INFO] [stdout]    --> src/board/position.rs:211:18
[INFO] [stdout]     |
[INFO] [stdout] 192 | impl Move {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub const fn from_u32(val:u32) -> Self { Self(val) }
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub const fn to_u32(self) -> u32 { self.0}
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub const fn is_pawn_move(&self) -> bool {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MoveHashData` is never constructed
[INFO] [stdout]    --> src/board/position.rs:306:8
[INFO] [stdout]     |
[INFO] [stdout] 306 | struct MoveHashData {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/board/position.rs:314:12
[INFO] [stdout]      |
[INFO] [stdout]  313 | impl Position {
[INFO] [stdout]      | ------------- associated items in this implementation
[INFO] [stdout]  314 |     pub fn new() -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  358 |     pub fn see_ge(&self, mv: Move, threshold: i32) -> bool {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  480 |     pub fn is_capture(&self, mv: Move) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  485 |     pub fn piece_value(&self, piece: PieceType) -> i32 {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  578 |     pub fn captured_piece(&self, mv: Move) -> PieceType {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  583 |     pub fn is_pinned(&self, square: u8, color: Color) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  831 |     pub fn get_pinned_piece_legal_squares(&self, square: u8, color: Color) -> Bitboard {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  951 |     fn find_checking_piece(&self, king_square: u8, color: Color) -> Option<(u8, PieceType)> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1029 |     fn count_checks(&self, color: Color) -> u32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1154 |     pub fn remove_piece(&mut self, square: u8) {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1213 |     pub fn king_check(&self, color: Color) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1247 |     pub fn push_undo(self, undo: UndoInfo) {
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1607 |     pub fn is_square_attacked_after_move(&self, square: u8, by_color: Color, occupied: u64) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1649 |     pub fn is_in_check_with_all_attackers(&self, color: Color) -> (bool, Vec<PieceType>) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1705 |     pub fn square_attacked_by(&self, square: u8, by_color: Color) -> Option<PieceType> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1905 |     pub fn get_knight_attacks(&self, square: u8) -> Bitboard {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1910 |     pub fn get_king_attacks(&self, square: u8) -> Bitboard {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1914 |     pub fn copy_from(&mut self, other: &Position) {
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1932 |     pub fn create_temp_copy(&self) -> Position {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2069 |     pub fn material_count(&self, color: Color) -> i32 {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2080 |     pub fn is_valid(&self) -> bool {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WHITE_PAWN` is never used
[INFO] [stdout]   --> src/board/zobrist.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub const WHITE_PAWN: usize = 0;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WHITE_KNIGHT` is never used
[INFO] [stdout]   --> src/board/zobrist.rs:25:11
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub const WHITE_KNIGHT: usize = 1;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WHITE_BISHOP` is never used
[INFO] [stdout]   --> src/board/zobrist.rs:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub const WHITE_BISHOP: usize = 2;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WHITE_ROOK` is never used
[INFO] [stdout]   --> src/board/zobrist.rs:27:11
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub const WHITE_ROOK: usize = 3;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WHITE_QUEEN` is never used
[INFO] [stdout]   --> src/board/zobrist.rs:28:11
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub const WHITE_QUEEN: usize = 4;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WHITE_KING` is never used
[INFO] [stdout]   --> src/board/zobrist.rs:29:11
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub const WHITE_KING: usize = 5;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLACK_PAWN` is never used
[INFO] [stdout]   --> src/board/zobrist.rs:30:11
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub const BLACK_PAWN: usize = 6;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLACK_KNIGHT` is never used
[INFO] [stdout]   --> src/board/zobrist.rs:31:11
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub const BLACK_KNIGHT: usize = 7;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLACK_BISHOP` is never used
[INFO] [stdout]   --> src/board/zobrist.rs:32:11
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub const BLACK_BISHOP: usize = 8;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLACK_ROOK` is never used
[INFO] [stdout]   --> src/board/zobrist.rs:33:11
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub const BLACK_ROOK: usize = 9;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLACK_QUEEN` is never used
[INFO] [stdout]   --> src/board/zobrist.rs:34:11
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub const BLACK_QUEEN: usize = 10;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLACK_KING` is never used
[INFO] [stdout]   --> src/board/zobrist.rs:35:11
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub const BLACK_KING: usize = 11;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_piece_hash` is never used
[INFO] [stdout]    --> src/board/zobrist.rs:128:8
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub fn get_piece_hash(piece_index: usize, square: u8) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_en_passant_hash` is never used
[INFO] [stdout]    --> src/board/zobrist.rs:133:8
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub fn get_en_passant_hash(file: u8) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_castling_hash` is never used
[INFO] [stdout]    --> src/board/zobrist.rs:138:8
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub fn get_castling_hash(rights: u8) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_side_to_move_hash` is never used
[INFO] [stdout]    --> src/board/zobrist.rs:143:8
[INFO] [stdout]     |
[INFO] [stdout] 143 | pub fn get_side_to_move_hash() -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TEMPO_BONUS` is never used
[INFO] [stdout]   --> src/eval/mod.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub const TEMPO_BONUS: i32 = 28;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LAZY_EVAL_MARGIN` is never used
[INFO] [stdout]   --> src/eval/mod.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const LAZY_EVAL_MARGIN: i32 = 400;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EVAL_CACHE_SIZE` is never used
[INFO] [stdout]   --> src/eval/mod.rs:22:11
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub const EVAL_CACHE_SIZE: usize = 1024 * 1024;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `quick_eval` is never used
[INFO] [stdout]   --> src/eval/mod.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn quick_eval(pos: &crate::board::position::Position) -> i32 {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `needs_deep_eval` is never used
[INFO] [stdout]   --> src/eval/mod.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn needs_deep_eval(pos: &crate::board::position::Position) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `complexity_score` is never used
[INFO] [stdout]   --> src/eval/mod.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn complexity_score(pos: &crate::board::position::Position) -> i32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PAWN_VALUE_MG` is never used
[INFO] [stdout]   --> src/eval/material.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub const PAWN_VALUE_MG: i32 = 124;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PAWN_VALUE_EG` is never used
[INFO] [stdout]   --> src/eval/material.rs:16:11
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub const PAWN_VALUE_EG: i32 = 206;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KNIGHT_VALUE_EG` is never used
[INFO] [stdout]   --> src/eval/material.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const KNIGHT_VALUE_EG: i32 = 854;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BISHOP_VALUE_EG` is never used
[INFO] [stdout]   --> src/eval/material.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const BISHOP_VALUE_EG: i32 = 915;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROOK_VALUE_EG` is never used
[INFO] [stdout]   --> src/eval/material.rs:22:11
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub const ROOK_VALUE_EG: i32 = 1380;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `QUEEN_VALUE_EG` is never used
[INFO] [stdout]   --> src/eval/material.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub const QUEEN_VALUE_EG: i32 = 2682;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_PHASE` is never used
[INFO] [stdout]   --> src/eval/material.rs:96:11
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub const MAX_PHASE: u32 = 256;
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PHASE_VALUES` is never used
[INFO] [stdout]   --> src/eval/material.rs:97:7
[INFO] [stdout]    |
[INFO] [stdout] 97 | const PHASE_VALUES: [u32; 6] = [0, 1, 1, 2, 4, 0];
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_material_signature` is never used
[INFO] [stdout]    --> src/eval/material.rs:409:8
[INFO] [stdout]     |
[INFO] [stdout] 409 | pub fn get_material_signature(pos: &Position) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `recognize_endgame_type` is never used
[INFO] [stdout]    --> src/eval/material.rs:425:8
[INFO] [stdout]     |
[INFO] [stdout] 425 | pub fn recognize_endgame_type(pos: &Position) -> EndgameType {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_endgame_scale_factor` is never used
[INFO] [stdout]    --> src/eval/material.rs:483:8
[INFO] [stdout]     |
[INFO] [stdout] 483 | pub fn get_endgame_scale_factor(pos: &Position, endgame_type: EndgameType) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EndgameType` is never used
[INFO] [stdout]    --> src/eval/material.rs:496:10
[INFO] [stdout]     |
[INFO] [stdout] 496 | pub enum EndgameType {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_pst_move_delta` is never used
[INFO] [stdout]    --> src/eval/pst.rs:269:8
[INFO] [stdout]     |
[INFO] [stdout] 269 | pub fn get_pst_move_delta(piece_type: PieceType, from: u8, to: u8, color: Color) -> Score {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flip_square` is never used
[INFO] [stdout]    --> src/eval/pst.rs:276:14
[INFO] [stdout]     |
[INFO] [stdout] 276 | pub const fn flip_square(square: u8) -> u8 {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rank_to_square` is never used
[INFO] [stdout]    --> src/eval/pst.rs:281:14
[INFO] [stdout]     |
[INFO] [stdout] 281 | pub const fn rank_to_square(rank: u8, file: u8) -> u8 {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SHELTER_STRENGTH` is never used
[INFO] [stdout]   --> src/eval/pawns.rs:57:7
[INFO] [stdout]    |
[INFO] [stdout] 57 | const SHELTER_STRENGTH: [[i32; 8]; 4] = [
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STORM_DANGER` is never used
[INFO] [stdout]   --> src/eval/pawns.rs:64:7
[INFO] [stdout]    |
[INFO] [stdout] 64 | const STORM_DANGER: [[i32; 8]; 4] = [
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_pawns` is never used
[INFO] [stdout]    --> src/eval/pawns.rs:250:8
[INFO] [stdout]     |
[INFO] [stdout] 250 | pub fn evaluate_pawns(pos: &Position) -> Score {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_pawn_asymmetry` is never used
[INFO] [stdout]    --> src/eval/pawns.rs:533:8
[INFO] [stdout]     |
[INFO] [stdout] 533 | pub fn evaluate_pawn_asymmetry(white_pawns: Bitboard, black_pawns: Bitboard) -> Score {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_king_pawn_shelter` is never used
[INFO] [stdout]    --> src/eval/pawns.rs:549:8
[INFO] [stdout]     |
[INFO] [stdout] 549 | pub fn evaluate_king_pawn_shelter(pos: &Position, color: Color) -> Score {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_outpost_square` is never used
[INFO] [stdout]    --> src/eval/pawns.rs:612:8
[INFO] [stdout]     |
[INFO] [stdout] 612 | pub fn is_outpost_square(pos: &Position, square: u8, color: Color) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROOK_ON_FILE` is never used
[INFO] [stdout]   --> src/eval/mobility.rs:89:7
[INFO] [stdout]    |
[INFO] [stdout] 89 | const ROOK_ON_FILE: [Score; 4] = [
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KNIGHT_ON_HOLE` is never used
[INFO] [stdout]    --> src/eval/mobility.rs:106:7
[INFO] [stdout]     |
[INFO] [stdout] 106 | const KNIGHT_ON_HOLE: Score = Score::new(17, 10);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_average_mobility` is never used
[INFO] [stdout]    --> src/eval/mobility.rs:593:8
[INFO] [stdout]     |
[INFO] [stdout] 593 | pub fn calculate_average_mobility(pos: &Position) -> (f32, f32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_total_mobility_count` is never used
[INFO] [stdout]    --> src/eval/mobility.rs:622:4
[INFO] [stdout]     |
[INFO] [stdout] 622 | fn calculate_total_mobility_count(pos: &Position, color: Color, mobility_area: Bitboard) -> u32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WING_FILES` is never used
[INFO] [stdout]   --> src/eval/space.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const WING_FILES: Bitboard = 0xC3C3C3C3C3C3C3C3;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_pawn_space` is never used
[INFO] [stdout]    --> src/eval/space.rs:308:8
[INFO] [stdout]     |
[INFO] [stdout] 308 | pub fn evaluate_pawn_space(pos: &Position) -> Score {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_piece_activity` is never used
[INFO] [stdout]    --> src/eval/space.rs:347:8
[INFO] [stdout]     |
[INFO] [stdout] 347 | pub fn evaluate_piece_activity(pos: &Position) -> Score {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_piece_activity_bonus` is never used
[INFO] [stdout]    --> src/eval/space.rs:373:4
[INFO] [stdout]     |
[INFO] [stdout] 373 | fn calculate_piece_activity_bonus(square: u8, color: Color) -> Score {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_king_in_danger` is never used
[INFO] [stdout]    --> src/eval/king_safety.rs:509:8
[INFO] [stdout]     |
[INFO] [stdout] 509 | pub fn is_king_in_danger(pos: &Position, color: Color) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_back_rank_threats` is never used
[INFO] [stdout]    --> src/eval/king_safety.rs:528:8
[INFO] [stdout]     |
[INFO] [stdout] 528 | pub fn evaluate_back_rank_threats(pos: &Position, color: Color) -> Score {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_castling_safety` is never used
[INFO] [stdout]    --> src/eval/king_safety.rs:585:8
[INFO] [stdout]     |
[INFO] [stdout] 585 | pub fn evaluate_castling_safety(pos: &Position, color: Color) -> Score {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_kingside_safety` is never used
[INFO] [stdout]    --> src/eval/king_safety.rs:611:4
[INFO] [stdout]     |
[INFO] [stdout] 611 | fn evaluate_kingside_safety(pos: &Position, color: Color) -> Score {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_queenside_safety` is never used
[INFO] [stdout]    --> src/eval/king_safety.rs:647:4
[INFO] [stdout]     |
[INFO] [stdout] 647 | fn evaluate_queenside_safety(pos: &Position, color: Color) -> Score {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_compensation` is never used
[INFO] [stdout]    --> src/eval/imbalance.rs:148:8
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub fn calculate_compensation(pos: &Position, color: Color) -> Score {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_total_material` is never used
[INFO] [stdout]    --> src/eval/imbalance.rs:170:4
[INFO] [stdout]     |
[INFO] [stdout] 170 | fn calculate_total_material(pos: &Position, color: Color) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_development_compensation` is never used
[INFO] [stdout]    --> src/eval/imbalance.rs:182:4
[INFO] [stdout]     |
[INFO] [stdout] 182 | fn evaluate_development_compensation(pos: &Position, color: Color, deficit: i32) -> Score {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_developed_pieces` is never used
[INFO] [stdout]    --> src/eval/imbalance.rs:192:4
[INFO] [stdout]     |
[INFO] [stdout] 192 | fn count_developed_pieces(pos: &Position, color: Color) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_initiative_compensation` is never used
[INFO] [stdout]    --> src/eval/imbalance.rs:218:4
[INFO] [stdout]     |
[INFO] [stdout] 218 | fn evaluate_initiative_compensation(pos: &Position, color: Color, deficit: i32) -> Score {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_total_attacks` is never used
[INFO] [stdout]    --> src/eval/imbalance.rs:236:4
[INFO] [stdout]     |
[INFO] [stdout] 236 | fn count_total_attacks(pos: &Position, color: Color) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_positional_compensation` is never used
[INFO] [stdout]    --> src/eval/imbalance.rs:247:4
[INFO] [stdout]     |
[INFO] [stdout] 247 | fn evaluate_positional_compensation(pos: &Position, color: Color, deficit: i32) -> Score {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_pawn_islands` is never used
[INFO] [stdout]    --> src/eval/imbalance.rs:264:4
[INFO] [stdout]     |
[INFO] [stdout] 264 | fn count_pawn_islands(pawns: Bitboard) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_drawing_tendency` is never used
[INFO] [stdout]    --> src/eval/imbalance.rs:284:8
[INFO] [stdout]     |
[INFO] [stdout] 284 | pub fn has_drawing_tendency(pos: &Position) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_trade_value` is never used
[INFO] [stdout]    --> src/eval/imbalance.rs:308:8
[INFO] [stdout]     |
[INFO] [stdout] 308 | pub fn calculate_trade_value(us: &[u32; 6], them: &[u32; 6], piece_type: PieceType) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PIN_BONUS` is never used
[INFO] [stdout]   --> src/eval/threats.rs:50:7
[INFO] [stdout]    |
[INFO] [stdout] 50 | const PIN_BONUS: Score = Score::new(20, 25);
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DISCOVERED_ATTACK_BONUS` is never used
[INFO] [stdout]   --> src/eval/threats.rs:55:7
[INFO] [stdout]    |
[INFO] [stdout] 55 | const DISCOVERED_ATTACK_BONUS: Score = Score::new(35, 40);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_tactical_threats` is never used
[INFO] [stdout]    --> src/eval/threats.rs:857:8
[INFO] [stdout]     |
[INFO] [stdout] 857 | pub fn has_tactical_threats(pos: &Position, color: Color) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EvalCache` is never constructed
[INFO] [stdout]  --> src/eval/eval_util.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct EvalCache {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EvalCacheEntry` is never constructed
[INFO] [stdout]   --> src/eval/eval_util.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct EvalCacheEntry {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `probe`, `store`, and `clear` are never used
[INFO] [stdout]   --> src/eval/eval_util.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl EvalCache {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 20 |     pub fn new(size: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn probe(&self, hash: u64) -> Option<i32> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn store(&mut self, hash: u64, score: i32, depth: u8) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn clear(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `GLOBAL_EVAL_CACHE` is never used
[INFO] [stdout]   --> src/eval/eval_util.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | static GLOBAL_EVAL_CACHE: Lazy<RwLock<EvalCache>> = Lazy::new(|| {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `probe_eval_cache` is never used
[INFO] [stdout]   --> src/eval/eval_util.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn probe_eval_cache(hash: u64) -> Option<i32> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `store_eval_cache` is never used
[INFO] [stdout]   --> src/eval/eval_util.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn store_eval_cache(hash: u64, score: i32, depth: u8) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clear_eval_cache` is never used
[INFO] [stdout]   --> src/eval/eval_util.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub fn clear_eval_cache() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `phase_value` is never used
[INFO] [stdout]   --> src/eval/eval_util.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub fn phase_value(phase: u32) -> f32 {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_middlegame` is never used
[INFO] [stdout]   --> src/eval/eval_util.rs:85:8
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub fn is_middlegame(phase: u32) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_opening` is never used
[INFO] [stdout]   --> src/eval/eval_util.rs:90:8
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub fn is_opening(phase: u32) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_complexity` is never used
[INFO] [stdout]    --> src/eval/eval_util.rs:302:8
[INFO] [stdout]     |
[INFO] [stdout] 302 | pub fn calculate_complexity(pos: &Position) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_material_value` is never used
[INFO] [stdout]    --> src/eval/eval_util.rs:338:4
[INFO] [stdout]     |
[INFO] [stdout] 338 | fn calculate_material_value(pos: &Position, color: Color) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_pawn_islands` is never used
[INFO] [stdout]    --> src/eval/eval_util.rs:346:4
[INFO] [stdout]     |
[INFO] [stdout] 346 | fn count_pawn_islands(pawns: u64) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_passed_pawns` is never used
[INFO] [stdout]    --> src/eval/eval_util.rs:365:4
[INFO] [stdout]     |
[INFO] [stdout] 365 | fn count_passed_pawns(pos: &Position, color: Color) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_passed_pawn` is never used
[INFO] [stdout]    --> src/eval/eval_util.rs:384:4
[INFO] [stdout]     |
[INFO] [stdout] 384 | fn is_passed_pawn(square: u8, color: Color, enemy_pawns: u64) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_active_pieces` is never used
[INFO] [stdout]    --> src/eval/eval_util.rs:405:4
[INFO] [stdout]     |
[INFO] [stdout] 405 | fn count_active_pieces(pos: &Position, color: Color) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_king_exposed` is never used
[INFO] [stdout]    --> src/eval/eval_util.rs:423:4
[INFO] [stdout]     |
[INFO] [stdout] 423 | fn is_king_exposed(pos: &Position, color: Color) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_king_shield_mask` is never used
[INFO] [stdout]    --> src/eval/eval_util.rs:439:4
[INFO] [stdout]     |
[INFO] [stdout] 439 | fn get_king_shield_mask(king_sq: u8, color: Color) -> u64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `score_to_win_probability` is never used
[INFO] [stdout]    --> src/eval/eval_util.rs:466:8
[INFO] [stdout]     |
[INFO] [stdout] 466 | pub fn score_to_win_probability(score: i32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PIECE_VALUES` is never used
[INFO] [stdout]    --> src/eval/evaluate.rs:101:7
[INFO] [stdout]     |
[INFO] [stdout] 101 | const PIECE_VALUES: [i32; 7] = [0, 100, 320, 330, 500, 900, 10000];
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `mate_in`, `mated_in`, and `draw` are never used
[INFO] [stdout]    --> src/eval/evaluate.rs:201:12
[INFO] [stdout]     |
[INFO] [stdout] 185 | impl EvalResult {
[INFO] [stdout]     | --------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn mate_in(moves: i32) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn mated_in(moves: i32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn draw() -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `total` is never read
[INFO] [stdout]    --> src/eval/evaluate.rs:231:9
[INFO] [stdout]     |
[INFO] [stdout] 227 | pub struct DetailedEvaluation {
[INFO] [stdout]     |            ------------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub total: Score,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DetailedEvaluation` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_nnue_psqt_only` is never used
[INFO] [stdout]    --> src/eval/evaluate.rs:312:8
[INFO] [stdout]     |
[INFO] [stdout] 312 | pub fn evaluate_nnue_psqt_only(pos: &Position) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_material_fast` is never used
[INFO] [stdout]    --> src/eval/evaluate.rs:335:8
[INFO] [stdout]     |
[INFO] [stdout] 335 | pub fn evaluate_material_fast(pos: &Position) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_for_debug` is never used
[INFO] [stdout]    --> src/eval/evaluate.rs:936:8
[INFO] [stdout]     |
[INFO] [stdout] 936 | pub fn evaluate_for_debug(pos: &Position) -> EvalResult {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_lazy` is never used
[INFO] [stdout]    --> src/eval/evaluate.rs:977:8
[INFO] [stdout]     |
[INFO] [stdout] 977 | pub fn evaluate_lazy(pos: &Position, alpha: i32, beta: i32) -> Option<i32> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_for_color` is never used
[INFO] [stdout]    --> src/eval/evaluate.rs:993:8
[INFO] [stdout]     |
[INFO] [stdout] 993 | pub fn evaluate_for_color(pos: &Position, color: Color) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_winning` is never used
[INFO] [stdout]     --> src/eval/evaluate.rs:1008:8
[INFO] [stdout]      |
[INFO] [stdout] 1008 | pub fn is_winning(score: i32) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_drawn` is never used
[INFO] [stdout]     --> src/eval/evaluate.rs:1012:8
[INFO] [stdout]      |
[INFO] [stdout] 1012 | pub fn is_drawn(score: i32) -> bool {
[INFO] [stdout]      |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `score_to_win_probability` is never used
[INFO] [stdout]     --> src/eval/evaluate.rs:1016:8
[INFO] [stdout]      |
[INFO] [stdout] 1016 | pub fn score_to_win_probability(score: i32) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `endgame_scale_factor` is never used
[INFO] [stdout]     --> src/eval/evaluate.rs:1022:8
[INFO] [stdout]      |
[INFO] [stdout] 1022 | pub fn endgame_scale_factor(pos: &Position) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_eval_components` is never used
[INFO] [stdout]     --> src/eval/evaluate.rs:1046:8
[INFO] [stdout]      |
[INFO] [stdout] 1046 | pub fn get_eval_components(pos: &Position) -> [i32; 8] {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_complexity` is never used
[INFO] [stdout]     --> src/eval/evaluate.rs:1062:8
[INFO] [stdout]      |
[INFO] [stdout] 1062 | pub fn evaluate_complexity(pos: &Position) -> i32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `needs_careful_evaluation` is never used
[INFO] [stdout]     --> src/eval/evaluate.rs:1066:8
[INFO] [stdout]      |
[INFO] [stdout] 1066 | pub fn needs_careful_evaluation(pos: &Position) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `static_exchange_estimate` is never used
[INFO] [stdout]     --> src/eval/evaluate.rs:1101:8
[INFO] [stdout]      |
[INFO] [stdout] 1101 | pub fn static_exchange_estimate(pos: &Position, square: u8) -> i32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tactical_complexity` is never used
[INFO] [stdout]     --> src/eval/evaluate.rs:1115:8
[INFO] [stdout]      |
[INFO] [stdout] 1115 | pub fn tactical_complexity(pos: &Position) -> i32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_nnue_enabled` is never used
[INFO] [stdout]     --> src/eval/evaluate.rs:1157:8
[INFO] [stdout]      |
[INFO] [stdout] 1157 | pub fn is_nnue_enabled() -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_eval_type` is never used
[INFO] [stdout]     --> src/eval/evaluate.rs:1162:8
[INFO] [stdout]      |
[INFO] [stdout] 1162 | pub fn get_eval_type() -> &'static str {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `aggressive_weights` is never used
[INFO] [stdout]   --> src/eval/weights.rs:92:8
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub fn aggressive_weights() -> WeightSet {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `positional_weights` is never used
[INFO] [stdout]    --> src/eval/weights.rs:124:8
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub fn positional_weights() -> WeightSet {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `endgame_weights` is never used
[INFO] [stdout]    --> src/eval/weights.rs:156:8
[INFO] [stdout]     |
[INFO] [stdout] 156 | pub fn endgame_weights() -> WeightSet {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `use_aggressive_style` is never used
[INFO] [stdout]    --> src/eval/weights.rs:204:8
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub fn use_aggressive_style() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `use_positional_style` is never used
[INFO] [stdout]    --> src/eval/weights.rs:208:8
[INFO] [stdout]     |
[INFO] [stdout] 208 | pub fn use_positional_style() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `use_endgame_style` is never used
[INFO] [stdout]    --> src/eval/weights.rs:212:8
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub fn use_endgame_style() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `material_weight` is never used
[INFO] [stdout]    --> src/eval/weights.rs:217:8
[INFO] [stdout]     |
[INFO] [stdout] 217 | pub fn material_weight() -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bishop_pair_weight` is never used
[INFO] [stdout]    --> src/eval/weights.rs:222:8
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub fn bishop_pair_weight() -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pst_weight` is never used
[INFO] [stdout]    --> src/eval/weights.rs:227:8
[INFO] [stdout]     |
[INFO] [stdout] 227 | pub fn pst_weight() -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pawn_structure_weight` is never used
[INFO] [stdout]    --> src/eval/weights.rs:232:8
[INFO] [stdout]     |
[INFO] [stdout] 232 | pub fn pawn_structure_weight() -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mobility_weight` is never used
[INFO] [stdout]    --> src/eval/weights.rs:237:8
[INFO] [stdout]     |
[INFO] [stdout] 237 | pub fn mobility_weight() -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `space_weight` is never used
[INFO] [stdout]    --> src/eval/weights.rs:242:8
[INFO] [stdout]     |
[INFO] [stdout] 242 | pub fn space_weight() -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `king_safety_weight` is never used
[INFO] [stdout]    --> src/eval/weights.rs:247:8
[INFO] [stdout]     |
[INFO] [stdout] 247 | pub fn king_safety_weight() -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `imbalance_weight` is never used
[INFO] [stdout]    --> src/eval/weights.rs:252:8
[INFO] [stdout]     |
[INFO] [stdout] 252 | pub fn imbalance_weight() -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `threats_weight` is never used
[INFO] [stdout]    --> src/eval/weights.rs:257:8
[INFO] [stdout]     |
[INFO] [stdout] 257 | pub fn threats_weight() -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tempo_bonus_weight` is never used
[INFO] [stdout]    --> src/eval/weights.rs:262:8
[INFO] [stdout]     |
[INFO] [stdout] 262 | pub fn tempo_bonus_weight() -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scale_all_weights` is never used
[INFO] [stdout]    --> src/eval/weights.rs:270:8
[INFO] [stdout]     |
[INFO] [stdout] 270 | pub fn scale_all_weights(factor: f32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_weights_from_string` is never used
[INFO] [stdout]    --> src/eval/weights.rs:317:8
[INFO] [stdout]     |
[INFO] [stdout] 317 | pub fn parse_weights_from_string(input: &str) -> Result<WeightSet, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `adjust_weights_for_phase` is never used
[INFO] [stdout]    --> src/eval/weights.rs:424:8
[INFO] [stdout]     |
[INFO] [stdout] 424 | pub fn adjust_weights_for_phase(phase: u32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `position_favors_initiative` is never used
[INFO] [stdout]    --> src/eval/initiative.rs:287:8
[INFO] [stdout]     |
[INFO] [stdout] 287 | pub fn position_favors_initiative(pos: &Position) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_tempo` is never used
[INFO] [stdout]    --> src/eval/initiative.rs:345:8
[INFO] [stdout]     |
[INFO] [stdout] 345 | pub fn evaluate_tempo(pos: &Position) -> Score {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `king_attacks` is never used
[INFO] [stdout]    --> src/movegen/magic.rs:415:8
[INFO] [stdout]     |
[INFO] [stdout] 415 | pub fn king_attacks(occ:Bitboard) -> Bitboard {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_moves` is never used
[INFO] [stdout]   --> src/movegen/moves.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn generate_moves(pos: &Position) -> Vec<Move> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_king_moves` is never used
[INFO] [stdout]    --> src/movegen/moves.rs:166:4
[INFO] [stdout]     |
[INFO] [stdout] 166 | fn generate_king_moves(pos: &Position, moves: &mut Vec<Move>) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_path_attacked` is never used
[INFO] [stdout]    --> src/movegen/moves.rs:238:4
[INFO] [stdout]     |
[INFO] [stdout] 238 | fn is_path_attacked(pos: &Position, path: Bitboard, king_sq: u8, by_color: Color) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_MOVES` is never used
[INFO] [stdout]   --> src/search/alphabeta.rs:31:7
[INFO] [stdout]    |
[INFO] [stdout] 31 | const MAX_MOVES: usize = 256;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MIN_SEARCH_DEPTH` is never used
[INFO] [stdout]   --> src/search/alphabeta.rs:33:7
[INFO] [stdout]    |
[INFO] [stdout] 33 | const MIN_SEARCH_DEPTH: i32 = 0;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LMR_BASE` is never used
[INFO] [stdout]   --> src/search/alphabeta.rs:42:7
[INFO] [stdout]    |
[INFO] [stdout] 42 | const LMR_BASE: f64 = 0.75;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LMR_FACTOR` is never used
[INFO] [stdout]   --> src/search/alphabeta.rs:43:7
[INFO] [stdout]    |
[INFO] [stdout] 43 | const LMR_FACTOR: f64 = 2.5;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NULL_MOVE_REDUCTION` is never used
[INFO] [stdout]   --> src/search/alphabeta.rs:49:7
[INFO] [stdout]    |
[INFO] [stdout] 49 | const NULL_MOVE_REDUCTION: i32 = 2;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NULL_MOVE_DEPTH_REDUCTION` is never used
[INFO] [stdout]   --> src/search/alphabeta.rs:50:7
[INFO] [stdout]    |
[INFO] [stdout] 50 | const NULL_MOVE_DEPTH_REDUCTION: i32 = 3;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EQUAL_CAPTURE_SCORE` is never used
[INFO] [stdout]   --> src/search/alphabeta.rs:54:7
[INFO] [stdout]    |
[INFO] [stdout] 54 | const EQUAL_CAPTURE_SCORE: i32 = 800000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `hashfull` is never read
[INFO] [stdout]   --> src/search/alphabeta.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub struct SearchResult {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 96 |     pub hashfull: u32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SearchResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `hash_move` is never read
[INFO] [stdout]    --> src/search/alphabeta.rs:308:5
[INFO] [stdout]     |
[INFO] [stdout] 304 | struct MoveOrder {
[INFO] [stdout]     |        --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 308 |     hash_move: Move,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `root_position` and `thread_id` are never read
[INFO] [stdout]    --> src/search/alphabeta.rs:445:5
[INFO] [stdout]     |
[INFO] [stdout] 440 | pub struct SearchContext {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 445 |     root_position: Position,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 448 |     thread_id: usize,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/search/alphabeta.rs:457:8
[INFO] [stdout]     |
[INFO] [stdout] 456 | impl SearchContext {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] 457 |     fn new(
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `see_ge_threshold` is never used
[INFO] [stdout]     --> src/search/alphabeta.rs:1575:8
[INFO] [stdout]      |
[INFO] [stdout] 1575 | pub fn see_ge_threshold(pos: &Position, mv: Move, threshold: i32) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `alpha_beta_search` is never used
[INFO] [stdout]     --> src/search/alphabeta.rs:1579:8
[INFO] [stdout]      |
[INFO] [stdout] 1579 | pub fn alpha_beta_search(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/search/time_management.rs:5:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub struct TimeManager {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout]  5 |     start_time: Instant,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]  6 |     allocated_time: Duration,
[INFO] [stdout]  7 |     move_time: Option<Duration>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 10 |     white_time: Option<u32>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 11 |     black_time: Option<u32>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 12 |     white_increment: Option<u32>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     black_increment: Option<u32>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |     moves_to_go: Option<u32>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 15 |     is_white_to_move: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TimeManager` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `is_infinite`, `new`, `can_extend`, `remaining_time_ms`, `elapsed_ms`, and `set_side_to_move` are never used
[INFO] [stdout]    --> src/search/time_management.rs:35:12
[INFO] [stdout]     |
[INFO] [stdout]  18 | impl TimeManager {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  35 |     pub fn is_infinite(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  39 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 196 |     pub fn can_extend(&self, start: Instant, extension_factor: f64) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn remaining_time_ms(&self) -> Option<u32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn elapsed_ms(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn set_side_to_move(&mut self, is_white: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCORE_NONE` is never used
[INFO] [stdout]  --> src/search/transposition.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const SCORE_NONE: i32 = -32768;
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BOUND_NONE` is never used
[INFO] [stdout]   --> src/search/transposition.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const BOUND_NONE: u8 = 0;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `store_eval` and `prefetch` are never used
[INFO] [stdout]    --> src/search/transposition.rs:216:12
[INFO] [stdout]     |
[INFO] [stdout]  98 | impl TranspositionTable {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn store_eval(
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     pub fn prefetch(&self, hash: u64) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `score_from_tt` and `score_to_tt` are never used
[INFO] [stdout]    --> src/search/transposition.rs:290:12
[INFO] [stdout]     |
[INFO] [stdout] 288 | impl TranspositionTable {
[INFO] [stdout]     | ----------------------- associated functions in this implementation
[INFO] [stdout] 289 |     #[inline(always)]
[INFO] [stdout] 290 |     pub fn score_from_tt(score: i32, ply: u8) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 301 |     pub fn score_to_tt(score: i32, ply: u8) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tt_score_from_tt` is never used
[INFO] [stdout]    --> src/search/transposition.rs:313:8
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub fn tt_score_from_tt(score: i32, ply: u8) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tt_score_to_tt` is never used
[INFO] [stdout]    --> src/search/transposition.rs:324:8
[INFO] [stdout]     |
[INFO] [stdout] 324 | pub fn tt_score_to_tt(score: i32, ply: u8) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_capture_on`, `is_quiet_on`, and `captured_piece_on` are never used
[INFO] [stdout]    --> src/search/transposition.rs:370:12
[INFO] [stdout]     |
[INFO] [stdout] 368 | impl Move {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] 369 |     #[inline(always)]
[INFO] [stdout] 370 |     pub fn is_capture_on(self, pos: &Position) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 376 |     pub fn is_quiet_on(self, pos: &Position) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 381 |     pub fn captured_piece_on(self, pos: &Position) -> PieceType {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TT_BOUND_NONE` is never used
[INFO] [stdout]    --> src/search/transposition.rs:390:11
[INFO] [stdout]     |
[INFO] [stdout] 390 | pub const TT_BOUND_NONE: u8 = BOUND_NONE;
[INFO] [stdout]     |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SearchResult` is never constructed
[INFO] [stdout]   --> src/search/search_node.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct SearchResult {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `history_pruning` is never used
[INFO] [stdout]    --> src/search/pruning.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub fn history_pruning(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `delta_pruning` is never used
[INFO] [stdout]    --> src/search/pruning.rs:172:8
[INFO] [stdout]     |
[INFO] [stdout] 172 | pub fn delta_pruning(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `History` and `Delta` are never constructed
[INFO] [stdout]    --> src/search/pruning.rs:218:5
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub enum PruningReason {
[INFO] [stdout]     |          ------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 218 |     History,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 219 |     MultiCut,
[INFO] [stdout] 220 |     Delta,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PruningReason` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `description` is never used
[INFO] [stdout]    --> src/search/pruning.rs:225:12
[INFO] [stdout]     |
[INFO] [stdout] 223 | impl PruningReason {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] 224 |     #[inline(always)]
[INFO] [stdout] 225 |     pub fn description(&self) -> &'static str {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]    --> src/search/pruning.rs:281:12
[INFO] [stdout]     |
[INFO] [stdout] 259 | impl PruningStats {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 281 |     pub fn clear(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `singular_extension_check` is never used
[INFO] [stdout]    --> src/search/pruning.rs:306:8
[INFO] [stdout]     |
[INFO] [stdout] 306 | pub fn singular_extension_check(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `singular_extension_result` is never used
[INFO] [stdout]    --> src/search/pruning.rs:338:8
[INFO] [stdout]     |
[INFO] [stdout] 338 | pub fn singular_extension_result(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_file`, `get_psqt_only`, and `debug_psqt` are never used
[INFO] [stdout]    --> src/nnue/nnue.rs:45:12
[INFO] [stdout]     |
[INFO] [stdout]  36 | impl NNUE {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  45 |     pub fn from_file(path: &str) -> Result<Self, Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub fn get_psqt_only(&self, side_to_move: Color) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 302 |     pub fn debug_psqt(&self, pos: &Position) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_ft_weight`, `get_ft_bias`, and `get_ft_weights_slice` are never used
[INFO] [stdout]    --> src/nnue/nnue_weights.rs:158:12
[INFO] [stdout]     |
[INFO] [stdout]  28 | impl NNUEWeights {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 158 |     pub fn get_ft_weight(&self, feature_idx: usize, neuron_idx: usize) -> i16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn get_ft_bias(&self, neuron_idx: usize) -> i16 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub fn get_ft_weights_slice(&self, neuron_idx: usize) -> &[i16] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [optimized] target(s) in 26.89s
[INFO] running `Command { std: "docker" "inspect" "b60fc578ba3bc481eb145643bb53cc940acc95032ff4c387e330ac11c61a00ae", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b60fc578ba3bc481eb145643bb53cc940acc95032ff4c387e330ac11c61a00ae", kill_on_drop: false }`
[INFO] [stdout] b60fc578ba3bc481eb145643bb53cc940acc95032ff4c387e330ac11c61a00ae
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 11a030c90c811949b6a9c2176e81ebb270d717d4b2ccdd64f2bb5bb73aa102a7
[INFO] running `Command { std: "docker" "start" "-a" "11a030c90c811949b6a9c2176e81ebb270d717d4b2ccdd64f2bb5bb73aa102a7", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.95
[INFO] [stderr]    Compiling unicode-ident v1.0.18
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]    Compiling itoa v1.0.15
[INFO] [stderr]    Compiling half v2.6.0
[INFO] [stderr]    Compiling hashbrown v0.12.3
[INFO] [stderr]    Compiling os_str_bytes v6.6.1
[INFO] [stderr]    Compiling regex-syntax v0.8.5
[INFO] [stderr]    Compiling ryu v1.0.20
[INFO] [stderr]    Compiling memchr v2.7.5
[INFO] [stderr]    Compiling plotters-backend v0.3.7
[INFO] [stderr]    Compiling ciborium-io v0.2.2
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]    Compiling textwrap v0.16.2
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling clap_lex v0.2.4
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling anes v0.1.6
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling rayon v1.10.0
[INFO] [stderr]    Compiling plotters-svg v0.3.7
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling clap v3.2.25
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling chrono v0.4.41
[INFO] [stderr]    Compiling criterion-plot v0.5.0
[INFO] [stderr]    Compiling RuthChessOVI v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::eval::evaluate::Score`
[INFO] [stdout]  --> src/board/position.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::eval::evaluate::Score;
[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: `get_queen_attacks`
[INFO] [stdout]  --> src/board/position.rs:6:120
[INFO] [stdout]   |
[INFO] [stdout] 6 | ...acks,get_king_attacks,get_pawn_attacks,get_rook_attacks,get_queen_attacks,get_knight_attacks};
[INFO] [stdout]   |                                                            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/board/position.rs:1730:20
[INFO] [stdout]      |
[INFO] [stdout] 1730 |                 if (self.has_diagonal_attack(square, bishops)) {
[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] 1730 -                 if (self.has_diagonal_attack(square, bishops)) {
[INFO] [stdout] 1730 +                 if self.has_diagonal_attack(square, bishops) {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/board/position.rs:1740:20
[INFO] [stdout]      |
[INFO] [stdout] 1740 |                 if (self.has_straight_attack(square, rooks)) {
[INFO] [stdout]      |                    ^                                       ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1740 -                 if (self.has_straight_attack(square, rooks)) {
[INFO] [stdout] 1740 +                 if self.has_straight_attack(square, rooks) {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::bitboard::Bitboard`
[INFO] [stdout]  --> src/board/zobrist.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use super::bitboard::Bitboard;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::board::bitboard::Bitboard`
[INFO] [stdout]  --> src/eval/material.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::board::bitboard::Bitboard;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EMPTY`, `FILE_A`, `FILE_B`, `FILE_C`, `FILE_D`, `FILE_E`, `FILE_F`, `FILE_G`, and `FILE_H`
[INFO] [stdout]  --> src/eval/pawns.rs:2:40
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::board::bitboard::{Bitboard, EMPTY, FILE_A, FILE_B, FILE_C, FILE_D, FILE_E, FILE_F, FILE_G, FILE_H};
[INFO] [stdout]   |                                        ^^^^^  ^^^^^^  ^^^^^^  ^^^^^^  ^^^^^^  ^^^^^^  ^^^^^^  ^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::nnue::nnue_accumulator::AccumulatorCache`
[INFO] [stdout]  --> src/eval/evaluate.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::nnue::nnue_accumulator::AccumulatorCache;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `get_bishop_attacks`, `get_knight_attacks`, `get_queen_attacks`, and `get_rook_attacks`
[INFO] [stdout]    --> src/eval/evaluate.rs:543:33
[INFO] [stdout]     |
[INFO] [stdout] 543 |     use crate::movegen::magic::{get_knight_attacks, get_bishop_attacks, get_rook_attacks, get_queen_attacks};
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EMPTY`
[INFO] [stdout]  --> src/eval/mobility.rs:2:40
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::board::bitboard::{Bitboard, EMPTY};
[INFO] [stdout]   |                                        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `get_king_attacks` and `get_pawn_attacks`
[INFO] [stdout]  --> src/eval/mobility.rs:6:24
[INFO] [stdout]   |
[INFO] [stdout] 6 |     get_queen_attacks, get_king_attacks, get_pawn_attacks
[INFO] [stdout]   |                        ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/eval/mobility.rs:281:11
[INFO] [stdout]     |
[INFO] [stdout] 281 |         if((our_pawns.count_ones()+opposite_pawns.count_ones())<=12){
[INFO] [stdout]     |           ^                                                        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 281 -         if((our_pawns.count_ones()+opposite_pawns.count_ones())<=12){
[INFO] [stdout] 281 +         if (our_pawns.count_ones()+opposite_pawns.count_ones())<=12 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EMPTY`
[INFO] [stdout]  --> src/eval/space.rs:3:40
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::board::bitboard::{Bitboard, EMPTY, CENTER, EXTENDED_CENTER};
[INFO] [stdout]   |                                        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `get_pawn_attacks`
[INFO] [stdout]  --> src/eval/space.rs:5:42
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::movegen::magic::{all_attacks, get_pawn_attacks};
[INFO] [stdout]   |                                          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EMPTY`, `FILE_A`, and `FILE_H`
[INFO] [stdout]  --> src/eval/king_safety.rs:2:40
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::board::bitboard::{Bitboard, EMPTY, FILE_A, FILE_H};
[INFO] [stdout]   |                                        ^^^^^  ^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `file_of` and `relative_rank`
[INFO] [stdout]  --> src/eval/king_safety.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::eval::pst::{file_of, rank_of, relative_rank};
[INFO] [stdout]   |                        ^^^^^^^           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EMPTY`
[INFO] [stdout]  --> src/eval/threats.rs:2:40
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::board::bitboard::{Bitboard, EMPTY};
[INFO] [stdout]   |                                        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `file_of` and `rank_of`
[INFO] [stdout]  --> src/eval/threats.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::eval::pst::{file_of, rank_of};
[INFO] [stdout]   |                        ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::eval::evaluate::Score`
[INFO] [stdout]  --> src/eval/eval_util.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::eval::evaluate::Score;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `popcount` and `square_mask`
[INFO] [stdout]  --> src/movegen/magic.rs:1:40
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::board::bitboard::{Bitboard, popcount, square_mask, EMPTY};
[INFO] [stdout]   |                                        ^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/movegen/magic.rs:131:7
[INFO] [stdout]     |
[INFO] [stdout] 131 |     if(square == 64){
[INFO] [stdout]     |       ^            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 131 -     if(square == 64){
[INFO] [stdout] 131 +     if square == 64 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `has_bit` and `square_mask`
[INFO] [stdout]  --> src/movegen/moves.rs:1:40
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::board::bitboard::{Bitboard, square_mask, has_bit};
[INFO] [stdout]   |                                        ^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `all_attacks`
[INFO] [stdout]  --> src/movegen/moves.rs:7:44
[INFO] [stdout]   |
[INFO] [stdout] 7 |                    add_moves_from_bitboard,all_attacks};
[INFO] [stdout]   |                                            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::arch::x86_64::*`
[INFO] [stdout]   --> src/movegen/moves.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use std::arch::x86_64::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::movegen::magic::all_attacks_for_king`
[INFO] [stdout]  --> src/movegen/legal_moves.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::movegen::magic::all_attacks_for_king;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MoveType`, `move_to_uci`, `nnue::nnue`, and `transposition::TranspositionTable`
[INFO] [stdout]   --> src/uci/protocol.rs:4:47
[INFO] [stdout]    |
[INFO] [stdout]  4 |         position::{Position, Move, PieceType, MoveType, Color},
[INFO] [stdout]    |                                               ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  9 |         legal_moves::{generate_legal_moves,move_to_uci},
[INFO] [stdout]    |                                            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |         transposition::TranspositionTable,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     nnue::nnue
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DRAW_VALUE`, `Score`, `TTData`, `ZOBRIST`, `all_attacks_for_king`, `all_attacks`, `eval_util`, `evaluate_int`, `get_queen_attacks`, and `nnue::NNUE`
[INFO] [stdout]   --> src/search/alphabeta.rs:4:19
[INFO] [stdout]    |
[INFO] [stdout]  4 |         zobrist::{ZOBRIST},
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  7 |         evaluate::{evaluate, evaluate_fast, Score, MATE_VALUE, DRAW_VALUE, evaluate_int,nnue_push_move, nnue_pop_move,nnue_refresh},
[INFO] [stdout]    |                                             ^^^^^              ^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout]  8 |         material::calculate_phase,
[INFO] [stdout]  9 |         eval_util,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |         magic::{all_attacks, get_bishop_attacks, get_rook_attacks, get_queen_attacks,
[INFO] [stdout]    |                 ^^^^^^^^^^^                                        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |                 get_knight_attacks, get_king_attacks, get_pawn_attacks, all_attacks_for_king},
[INFO] [stdout]    |                                                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |         transposition::{TranspositionTable, TT_BOUND_EXACT, TT_BOUND_LOWER, TT_BOUND_UPPER, TTData},
[INFO] [stdout]    |                                                                                             ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     nnue::{nnue::NNUE}
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `max` and `min`
[INFO] [stdout]   --> src/search/alphabeta.rs:27:16
[INFO] [stdout]    |
[INFO] [stdout] 27 | use std::cmp::{max, min};
[INFO] [stdout]    |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]     --> src/search/alphabeta.rs:1413:61
[INFO] [stdout]      |
[INFO] [stdout] 1413 |                 depth_offset: if thread_id < 4 { 0 } else { (thread_id as i32 / 4) },
[INFO] [stdout]      |                                                             ^                    ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1413 -                 depth_offset: if thread_id < 4 { 0 } else { (thread_id as i32 / 4) },
[INFO] [stdout] 1413 +                 depth_offset: if thread_id < 4 { 0 } else { thread_id as i32 / 4  },
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/search/search_node.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::atomic::AtomicBool`
[INFO] [stdout]  --> src/search/search_node.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::sync::atomic::AtomicBool;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Position`, `search::alphabeta::alpha_beta_search`, and `search::time_management::TimeManager`
[INFO] [stdout]  --> src/search/search_node.rs:4:23
[INFO] [stdout]   |
[INFO] [stdout] 4 |     board::position::{Position, Move},
[INFO] [stdout]   |                       ^^^^^^^^
[INFO] [stdout] 5 |     eval::evaluate::Score,
[INFO] [stdout] 6 |     search::alphabeta::alpha_beta_search,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 7 |     search::time_management::TimeManager,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Move`
[INFO] [stdout]  --> src/search/pruning.rs:1:40
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::board::position::{Position, Move, Color, PieceType};
[INFO] [stdout]   |                                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::eval::material::calculate_phase`
[INFO] [stdout]  --> src/search/pruning.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::eval::material::calculate_phase;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PieceType`
[INFO] [stdout]  --> src/nnue/nnue.rs:3:47
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::board::position::{Position, Color, PieceType};
[INFO] [stdout]   |                                               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stdout] warning: unused variable: `captured_pawn_square`
[INFO] [stdout]    --> src/board/position.rs:805:13
[INFO] [stdout]     |
[INFO] [stdout] 805 |         let captured_pawn_square = to ^ 8;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_captured_pawn_square`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `king_square`
[INFO] [stdout]    --> src/board/position.rs:807:13
[INFO] [stdout]     |
[INFO] [stdout] 807 |         let king_square = self.king_square(self.side_to_move);
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_king_square`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `undo`
[INFO] [stdout]     --> src/board/position.rs:1247:28
[INFO] [stdout]      |
[INFO] [stdout] 1247 |     pub fn push_undo(self, undo: UndoInfo) {
[INFO] [stdout]      |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_undo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/board/position.rs:1752:9
[INFO] [stdout]      |
[INFO] [stdout] 1752 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/board/position.rs:1766:9
[INFO] [stdout]      |
[INFO] [stdout] 1766 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `by_color`
[INFO] [stdout]     --> src/board/position.rs:1765:58
[INFO] [stdout]      |
[INFO] [stdout] 1765 |     pub fn is_square_attacked_ovi_upg(&self, square: u8, by_color: Color,atts:Bitboard) -> bool {
[INFO] [stdout]      |                                                          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_by_color`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/board/position.rs:1779:9
[INFO] [stdout]      |
[INFO] [stdout] 1779 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]    --> src/eval/material.rs:483:33
[INFO] [stdout]     |
[INFO] [stdout] 483 | pub fn get_endgame_scale_factor(pos: &Position, endgame_type: EndgameType) -> f32 {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:185:9
[INFO] [stdout]     |
[INFO] [stdout] 185 |         (*table_ptr)[PieceType::Pawn as usize].mg[sq] = PAWN_MG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/eval/pst.rs:182:1
[INFO] [stdout]     |
[INFO] [stdout] 182 | unsafe fn init_pawn_table() {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:186:9
[INFO] [stdout]     |
[INFO] [stdout] 186 |         (*table_ptr)[PieceType::Pawn as usize].eg[sq] = PAWN_EG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:193:9
[INFO] [stdout]     |
[INFO] [stdout] 193 |         (*table_ptr)[PieceType::Knight as usize].mg[sq] = KNIGHT_MG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/eval/pst.rs:190:1
[INFO] [stdout]     |
[INFO] [stdout] 190 | unsafe fn init_knight_table() {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:194:9
[INFO] [stdout]     |
[INFO] [stdout] 194 |         (*table_ptr)[PieceType::Knight as usize].eg[sq] = KNIGHT_EG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:201:9
[INFO] [stdout]     |
[INFO] [stdout] 201 |         (*table_ptr)[PieceType::Bishop as usize].mg[sq] = BISHOP_MG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/eval/pst.rs:198:1
[INFO] [stdout]     |
[INFO] [stdout] 198 | unsafe fn init_bishop_table() {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:202:9
[INFO] [stdout]     |
[INFO] [stdout] 202 |         (*table_ptr)[PieceType::Bishop as usize].eg[sq] = BISHOP_EG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 209 |         (*table_ptr)[PieceType::Rook as usize].mg[sq] = ROOK_MG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/eval/pst.rs:206:1
[INFO] [stdout]     |
[INFO] [stdout] 206 | unsafe fn init_rook_table() {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:210:9
[INFO] [stdout]     |
[INFO] [stdout] 210 |         (*table_ptr)[PieceType::Rook as usize].eg[sq] = ROOK_EG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:217:9
[INFO] [stdout]     |
[INFO] [stdout] 217 |         (*table_ptr)[PieceType::Queen as usize].mg[sq] = QUEEN_MG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/eval/pst.rs:214:1
[INFO] [stdout]     |
[INFO] [stdout] 214 | unsafe fn init_queen_table() {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:218:9
[INFO] [stdout]     |
[INFO] [stdout] 218 |         (*table_ptr)[PieceType::Queen as usize].eg[sq] = QUEEN_EG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:225:9
[INFO] [stdout]     |
[INFO] [stdout] 225 |         (*table_ptr)[PieceType::King as usize].mg[sq] = KING_MG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/eval/pst.rs:222:1
[INFO] [stdout]     |
[INFO] [stdout] 222 | unsafe fn init_king_table() {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:226:9
[INFO] [stdout]     |
[INFO] [stdout] 226 |         (*table_ptr)[PieceType::King as usize].eg[sq] = KING_EG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `doubled_count` is assigned to, but never used
[INFO] [stdout]    --> src/eval/pawns.rs:279:9
[INFO] [stdout]     |
[INFO] [stdout] 279 |     let mut doubled_count = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_doubled_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `square_bb`
[INFO] [stdout]    --> src/eval/pawns.rs:310:13
[INFO] [stdout]     |
[INFO] [stdout] 310 |         let square_bb = 1u64 << square;
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_square_bb`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rank`
[INFO] [stdout]    --> src/eval/pawns.rs:313:13
[INFO] [stdout]     |
[INFO] [stdout] 313 |         let rank = rank_of(square);
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_rank`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `doubled_count` is never read
[INFO] [stdout]    --> src/eval/pawns.rs:290:17
[INFO] [stdout]     |
[INFO] [stdout] 290 |                 doubled_count += pawn_count - 1;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `same_rank_mask`
[INFO] [stdout]    --> src/eval/pawns.rs:440:9
[INFO] [stdout]     |
[INFO] [stdout] 440 |     let same_rank_mask = 0xFFu64 << (rank * 8);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_same_rank_mask`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `weights_arc`
[INFO] [stdout]    --> src/eval/evaluate.rs:337:17
[INFO] [stdout]     |
[INFO] [stdout] 337 |     if let Some(weights_arc) = GLOBAL_NNUE_WEIGHTS.get().and_then(|opt| opt.as_ref()) {
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_weights_arc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `weights_arc`
[INFO] [stdout]    --> src/eval/evaluate.rs:392:17
[INFO] [stdout]     |
[INFO] [stdout] 392 |     if let Some(weights_arc) = GLOBAL_NNUE_WEIGHTS.get().and_then(|opt| opt.as_ref()) {
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_weights_arc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `all_pieces`
[INFO] [stdout]    --> src/eval/evaluate.rs:546:9
[INFO] [stdout]     |
[INFO] [stdout] 546 |     let all_pieces = pos.all_pieces();
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_all_pieces`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `our_pieces`
[INFO] [stdout]    --> src/eval/evaluate.rs:550:13
[INFO] [stdout]     |
[INFO] [stdout] 550 |         let our_pieces = pos.pieces(color);
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_our_pieces`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enemy_pieces`
[INFO] [stdout]    --> src/eval/mobility.rs:222:9
[INFO] [stdout]     |
[INFO] [stdout] 222 |     let enemy_pieces = pos.pieces(color.opposite());
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enemy_pieces`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `square_bb`
[INFO] [stdout]   --> src/eval/space.rs:96:13
[INFO] [stdout]    |
[INFO] [stdout] 96 |         let square_bb = 1u64 << square;
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_square_bb`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `king_rank`
[INFO] [stdout]    --> src/eval/king_safety.rs:162:9
[INFO] [stdout]     |
[INFO] [stdout] 162 |     let king_rank = king_sq / 8;
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_king_rank`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `our_pawns`
[INFO] [stdout]    --> src/eval/king_safety.rs:476:9
[INFO] [stdout]     |
[INFO] [stdout] 476 |     let our_pawns = pos.pieces_colored(PieceType::Pawn, color);
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_our_pawns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `piece_type`
[INFO] [stdout]    --> src/eval/threats.rs:153:46
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn is_piece_weak(pos: &Position, square: u8, piece_type: PieceType, color: Color) -> bool {
[INFO] [stdout]     |                                              ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_piece_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enemy_king`
[INFO] [stdout]    --> src/eval/threats.rs:404:9
[INFO] [stdout]     |
[INFO] [stdout] 404 |     let enemy_king = pos.king_square(color.opposite());
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enemy_king`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `our_pieces`
[INFO] [stdout]    --> src/eval/threats.rs:434:9
[INFO] [stdout]     |
[INFO] [stdout] 434 |     let our_pieces = pos.pieces(color);
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_our_pieces`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enemy_valuable`
[INFO] [stdout]    --> src/eval/threats.rs:435:9
[INFO] [stdout]     |
[INFO] [stdout] 435 |     let enemy_valuable = pos.pieces_colored(PieceType::Queen, color.opposite()) |
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enemy_valuable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ray`
[INFO] [stdout]    --> src/eval/threats.rs:758:22
[INFO] [stdout]     |
[INFO] [stdout] 758 | fn extend_ray_beyond(ray: Bitboard, from: u8, through: u8) -> Bitboard {
[INFO] [stdout]     |                      ^^^ help: if this is intentional, prefix it with an underscore: `_ray`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/eval/threats.rs:803:9
[INFO] [stdout]     |
[INFO] [stdout] 803 |     let mut temp_all_pieces = pos.all_pieces() & !(1u64 << blocker);
[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: `color`
[INFO] [stdout]   --> src/eval/initiative.rs:45:55
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn evaluate_pawn_asymmetry_initiative(pos: &Position, color: Color) -> Score {
[INFO] [stdout]    |                                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_color`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/movegen/moves.rs:174:9
[INFO] [stdout]     |
[INFO] [stdout] 174 |     let mut attacks = get_king_attacks(from);
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/movegen/moves.rs:274:9
[INFO] [stdout]     |
[INFO] [stdout] 274 |     let mut attacks = get_king_attacks(from);
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opponent_color`
[INFO] [stdout]   --> src/movegen/legal_moves.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let opponent_color = our_color.opposite();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_opponent_color`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `found_moves` is assigned to, but never used
[INFO] [stdout]    --> src/uci/protocol.rs:383:21
[INFO] [stdout]     |
[INFO] [stdout] 383 |                 let mut found_moves = false;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_found_moves` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `old_hash`
[INFO] [stdout]    --> src/uci/protocol.rs:424:29
[INFO] [stdout]     |
[INFO] [stdout] 424 |                         let old_hash = pos.hash;
[INFO] [stdout]     |                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_old_hash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `new_position` is never read
[INFO] [stdout]    --> src/uci/protocol.rs:363:32
[INFO] [stdout]     |
[INFO] [stdout] 363 |         let mut new_position = None;
[INFO] [stdout]     |                                ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `found_moves` is never read
[INFO] [stdout]    --> src/uci/protocol.rs:388:25
[INFO] [stdout]     |
[INFO] [stdout] 388 |                         found_moves = true;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `piece`
[INFO] [stdout]    --> src/search/alphabeta.rs:356:14
[INFO] [stdout]     |
[INFO] [stdout] 356 |         let (piece, color) = pos.piece_at(from);
[INFO] [stdout]     |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_piece`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]    --> src/search/alphabeta.rs:495:34
[INFO] [stdout]     |
[INFO] [stdout] 495 |     fn is_repetition_draw(&self, pos: &Position) -> bool {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `score`
[INFO] [stdout]    --> src/search/alphabeta.rs:632:29
[INFO] [stdout]     |
[INFO] [stdout] 632 |                 if let Some(score) = razoring(pos, depth, alpha, static_eval) {
[INFO] [stdout]     |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_score`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `piece`
[INFO] [stdout]    --> src/search/alphabeta.rs:849:34
[INFO] [stdout]     |
[INFO] [stdout] 849 | ...                   let (piece, color) = pos.piece_at(mv.from());
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_piece`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `move_count` is assigned to, but never used
[INFO] [stdout]     --> src/search/alphabeta.rs:1008:17
[INFO] [stdout]      |
[INFO] [stdout] 1008 |             let mut move_count = 0;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_move_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `move_count` is never read
[INFO] [stdout]     --> src/search/alphabeta.rs:1054:17
[INFO] [stdout]      |
[INFO] [stdout] 1054 |                 move_count += 1;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `best_pv` is never read
[INFO] [stdout]     --> src/search/alphabeta.rs:1249:27
[INFO] [stdout]      |
[INFO] [stdout] 1249 |         let mut best_pv = Vec::new();
[INFO] [stdout]      |                           ^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_age`
[INFO] [stdout]    --> src/search/transposition.rs:136:62
[INFO] [stdout]     |
[INFO] [stdout] 136 |     fn should_replace(&self, entry: &TTEntry, new_depth: u8, new_age: u8, new_bound: u8) -> bool {
[INFO] [stdout]     |                                                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_age`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lmp_idx`
[INFO] [stdout]   --> src/search/pruning.rs:99:9
[INFO] [stdout]    |
[INFO] [stdout] 99 |     let lmp_idx = is_pv as usize;
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lmp_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `depth`
[INFO] [stdout]    --> src/search/pruning.rs:190:12
[INFO] [stdout]     |
[INFO] [stdout] 190 | pub fn new(depth: i32) -> Self {
[INFO] [stdout]     |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_depth`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tt_score`
[INFO] [stdout]    --> src/search/pruning.rs:341:5
[INFO] [stdout]     |
[INFO] [stdout] 341 |     tt_score: i32,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tt_score`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `depth`
[INFO] [stdout]    --> src/search/pruning.rs:342:5
[INFO] [stdout]     |
[INFO] [stdout] 342 |     depth: i32,
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_depth`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_pv`
[INFO] [stdout]    --> src/search/pruning.rs:343:5
[INFO] [stdout]     |
[INFO] [stdout] 343 |     is_pv: bool,
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_is_pv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]    --> src/nnue/nnue.rs:302:30
[INFO] [stdout]     |
[INFO] [stdout] 302 |     pub fn debug_psqt(&self, pos: &Position) {
[INFO] [stdout]     |                              ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `version`
[INFO] [stdout]   --> src/nnue/nnue_weights.rs:52:13
[INFO] [stdout]    |
[INFO] [stdout] 52 |         let version = reader.read_u32::<LittleEndian>()?;
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_version`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `description`
[INFO] [stdout]   --> src/nnue/nnue_weights.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |         let description = String::from_utf8_lossy(&desc_bytes);
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_description`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `CASTLE_MOVES` is never used
[INFO] [stdout]    --> src/board/position.rs:174:8
[INFO] [stdout]     |
[INFO] [stdout] 174 | static CASTLE_MOVES: [[(u8, u8, u8); 2]; 2] = [
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `CASTLE_TYPE` is never used
[INFO] [stdout]    --> src/board/position.rs:179:8
[INFO] [stdout]     |
[INFO] [stdout] 179 | static CASTLE_TYPE: [Option<(Color, usize)>; 64] = {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MoveHashData` is never constructed
[INFO] [stdout]    --> src/board/position.rs:306:8
[INFO] [stdout]     |
[INFO] [stdout] 306 | struct MoveHashData {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `find_checking_piece` and `count_checks` are never used
[INFO] [stdout]     --> src/board/position.rs:951:8
[INFO] [stdout]      |
[INFO] [stdout]  313 | impl Position {
[INFO] [stdout]      | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  951 |     fn find_checking_piece(&self, king_square: u8, color: Color) -> Option<(u8, PieceType)> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1029 |     fn count_checks(&self, color: Color) -> u32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PHASE_VALUES` is never used
[INFO] [stdout]   --> src/eval/material.rs:97:7
[INFO] [stdout]    |
[INFO] [stdout] 97 | const PHASE_VALUES: [u32; 6] = [0, 1, 1, 2, 4, 0];
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PIECE_VALUES` is never used
[INFO] [stdout]    --> src/eval/evaluate.rs:101:7
[INFO] [stdout]     |
[INFO] [stdout] 101 | const PIECE_VALUES: [i32; 7] = [0, 100, 320, 330, 500, 900, 10000];
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROOK_ON_FILE` is never used
[INFO] [stdout]   --> src/eval/mobility.rs:89:7
[INFO] [stdout]    |
[INFO] [stdout] 89 | const ROOK_ON_FILE: [Score; 4] = [
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KNIGHT_ON_HOLE` is never used
[INFO] [stdout]    --> src/eval/mobility.rs:106:7
[INFO] [stdout]     |
[INFO] [stdout] 106 | const KNIGHT_ON_HOLE: Score = Score::new(17, 10);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WING_FILES` is never used
[INFO] [stdout]   --> src/eval/space.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const WING_FILES: Bitboard = 0xC3C3C3C3C3C3C3C3;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PIN_BONUS` is never used
[INFO] [stdout]   --> src/eval/threats.rs:50:7
[INFO] [stdout]    |
[INFO] [stdout] 50 | const PIN_BONUS: Score = Score::new(20, 25);
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DISCOVERED_ATTACK_BONUS` is never used
[INFO] [stdout]   --> src/eval/threats.rs:55:7
[INFO] [stdout]    |
[INFO] [stdout] 55 | const DISCOVERED_ATTACK_BONUS: Score = Score::new(35, 40);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_path_attacked` is never used
[INFO] [stdout]    --> src/movegen/moves.rs:238:4
[INFO] [stdout]     |
[INFO] [stdout] 238 | fn is_path_attacked(pos: &Position, path: Bitboard, king_sq: u8, by_color: Color) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_MOVES` is never used
[INFO] [stdout]   --> src/search/alphabeta.rs:31:7
[INFO] [stdout]    |
[INFO] [stdout] 31 | const MAX_MOVES: usize = 256;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MIN_SEARCH_DEPTH` is never used
[INFO] [stdout]   --> src/search/alphabeta.rs:33:7
[INFO] [stdout]    |
[INFO] [stdout] 33 | const MIN_SEARCH_DEPTH: i32 = 0;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LMR_BASE` is never used
[INFO] [stdout]   --> src/search/alphabeta.rs:42:7
[INFO] [stdout]    |
[INFO] [stdout] 42 | const LMR_BASE: f64 = 0.75;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LMR_FACTOR` is never used
[INFO] [stdout]   --> src/search/alphabeta.rs:43:7
[INFO] [stdout]    |
[INFO] [stdout] 43 | const LMR_FACTOR: f64 = 2.5;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NULL_MOVE_REDUCTION` is never used
[INFO] [stdout]   --> src/search/alphabeta.rs:49:7
[INFO] [stdout]    |
[INFO] [stdout] 49 | const NULL_MOVE_REDUCTION: i32 = 2;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NULL_MOVE_DEPTH_REDUCTION` is never used
[INFO] [stdout]   --> src/search/alphabeta.rs:50:7
[INFO] [stdout]    |
[INFO] [stdout] 50 | const NULL_MOVE_DEPTH_REDUCTION: i32 = 3;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EQUAL_CAPTURE_SCORE` is never used
[INFO] [stdout]   --> src/search/alphabeta.rs:54:7
[INFO] [stdout]    |
[INFO] [stdout] 54 | const EQUAL_CAPTURE_SCORE: i32 = 800000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `hash_move` is never read
[INFO] [stdout]    --> src/search/alphabeta.rs:308:5
[INFO] [stdout]     |
[INFO] [stdout] 304 | struct MoveOrder {
[INFO] [stdout]     |        --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 308 |     hash_move: Move,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `root_position` and `thread_id` are never read
[INFO] [stdout]    --> src/search/alphabeta.rs:445:5
[INFO] [stdout]     |
[INFO] [stdout] 440 | pub struct SearchContext {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 445 |     root_position: Position,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 448 |     thread_id: usize,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/search/alphabeta.rs:457:8
[INFO] [stdout]     |
[INFO] [stdout] 456 | impl SearchContext {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] 457 |     fn new(
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCORE_NONE` is never used
[INFO] [stdout]  --> src/search/transposition.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const SCORE_NONE: i32 = -32768;
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: crate `RuthChessOVI` should have a snake case name
[INFO] [stdout]   |
[INFO] [stdout]   = help: convert the identifier to snake case: `ruth_chess_ovi`
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling criterion v0.4.0
[INFO] [stdout] warning: unused import: `crate::eval::evaluate::Score`
[INFO] [stdout]  --> src/board/position.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::eval::evaluate::Score;
[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: `get_queen_attacks`
[INFO] [stdout]  --> src/board/position.rs:6:120
[INFO] [stdout]   |
[INFO] [stdout] 6 | ...acks,get_king_attacks,get_pawn_attacks,get_rook_attacks,get_queen_attacks,get_knight_attacks};
[INFO] [stdout]   |                                                            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/board/position.rs:1730:20
[INFO] [stdout]      |
[INFO] [stdout] 1730 |                 if (self.has_diagonal_attack(square, bishops)) {
[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] 1730 -                 if (self.has_diagonal_attack(square, bishops)) {
[INFO] [stdout] 1730 +                 if self.has_diagonal_attack(square, bishops) {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/board/position.rs:1740:20
[INFO] [stdout]      |
[INFO] [stdout] 1740 |                 if (self.has_straight_attack(square, rooks)) {
[INFO] [stdout]      |                    ^                                       ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1740 -                 if (self.has_straight_attack(square, rooks)) {
[INFO] [stdout] 1740 +                 if self.has_straight_attack(square, rooks) {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::bitboard::Bitboard`
[INFO] [stdout]  --> src/board/zobrist.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use super::bitboard::Bitboard;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::board::bitboard::Bitboard`
[INFO] [stdout]  --> src/eval/material.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::board::bitboard::Bitboard;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EMPTY`, `FILE_D`, and `FILE_F`
[INFO] [stdout]  --> src/eval/pawns.rs:2:40
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::board::bitboard::{Bitboard, EMPTY, FILE_A, FILE_B, FILE_C, FILE_D, FILE_E, FILE_F, FILE_G, FILE_H};
[INFO] [stdout]   |                                        ^^^^^                          ^^^^^^          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::nnue::nnue_accumulator::AccumulatorCache`
[INFO] [stdout]  --> src/eval/evaluate.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::nnue::nnue_accumulator::AccumulatorCache;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `get_bishop_attacks`, `get_knight_attacks`, `get_queen_attacks`, and `get_rook_attacks`
[INFO] [stdout]    --> src/eval/evaluate.rs:543:33
[INFO] [stdout]     |
[INFO] [stdout] 543 |     use crate::movegen::magic::{get_knight_attacks, get_bishop_attacks, get_rook_attacks, get_queen_attacks};
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EMPTY`
[INFO] [stdout]  --> src/eval/mobility.rs:2:40
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::board::bitboard::{Bitboard, EMPTY};
[INFO] [stdout]   |                                        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `get_king_attacks` and `get_pawn_attacks`
[INFO] [stdout]  --> src/eval/mobility.rs:6:24
[INFO] [stdout]   |
[INFO] [stdout] 6 |     get_queen_attacks, get_king_attacks, get_pawn_attacks
[INFO] [stdout]   |                        ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/eval/mobility.rs:281:11
[INFO] [stdout]     |
[INFO] [stdout] 281 |         if((our_pawns.count_ones()+opposite_pawns.count_ones())<=12){
[INFO] [stdout]     |           ^                                                        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 281 -         if((our_pawns.count_ones()+opposite_pawns.count_ones())<=12){
[INFO] [stdout] 281 +         if (our_pawns.count_ones()+opposite_pawns.count_ones())<=12 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EMPTY`
[INFO] [stdout]  --> src/eval/space.rs:3:40
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::board::bitboard::{Bitboard, EMPTY, CENTER, EXTENDED_CENTER};
[INFO] [stdout]   |                                        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `get_pawn_attacks`
[INFO] [stdout]  --> src/eval/space.rs:5:42
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::movegen::magic::{all_attacks, get_pawn_attacks};
[INFO] [stdout]   |                                          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EMPTY`, `FILE_A`, and `FILE_H`
[INFO] [stdout]  --> src/eval/king_safety.rs:2:40
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::board::bitboard::{Bitboard, EMPTY, FILE_A, FILE_H};
[INFO] [stdout]   |                                        ^^^^^  ^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `file_of` and `relative_rank`
[INFO] [stdout]  --> src/eval/king_safety.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::eval::pst::{file_of, rank_of, relative_rank};
[INFO] [stdout]   |                        ^^^^^^^           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EMPTY`
[INFO] [stdout]  --> src/eval/threats.rs:2:40
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::board::bitboard::{Bitboard, EMPTY};
[INFO] [stdout]   |                                        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `file_of` and `rank_of`
[INFO] [stdout]  --> src/eval/threats.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::eval::pst::{file_of, rank_of};
[INFO] [stdout]   |                        ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::eval::evaluate::Score`
[INFO] [stdout]  --> src/eval/eval_util.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::eval::evaluate::Score;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `popcount` and `square_mask`
[INFO] [stdout]  --> src/movegen/magic.rs:1:40
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::board::bitboard::{Bitboard, popcount, square_mask, EMPTY};
[INFO] [stdout]   |                                        ^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/movegen/magic.rs:131:7
[INFO] [stdout]     |
[INFO] [stdout] 131 |     if(square == 64){
[INFO] [stdout]     |       ^            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 131 -     if(square == 64){
[INFO] [stdout] 131 +     if square == 64 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `has_bit` and `square_mask`
[INFO] [stdout]  --> src/movegen/moves.rs:1:40
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::board::bitboard::{Bitboard, square_mask, has_bit};
[INFO] [stdout]   |                                        ^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `all_attacks`
[INFO] [stdout]  --> src/movegen/moves.rs:7:44
[INFO] [stdout]   |
[INFO] [stdout] 7 |                    add_moves_from_bitboard,all_attacks};
[INFO] [stdout]   |                                            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::arch::x86_64::*`
[INFO] [stdout]   --> src/movegen/moves.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use std::arch::x86_64::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::movegen::magic::all_attacks_for_king`
[INFO] [stdout]  --> src/movegen/legal_moves.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::movegen::magic::all_attacks_for_king;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MoveType`, `move_to_uci`, `nnue::nnue`, and `transposition::TranspositionTable`
[INFO] [stdout]   --> src/uci/protocol.rs:4:47
[INFO] [stdout]    |
[INFO] [stdout]  4 |         position::{Position, Move, PieceType, MoveType, Color},
[INFO] [stdout]    |                                               ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  9 |         legal_moves::{generate_legal_moves,move_to_uci},
[INFO] [stdout]    |                                            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |         transposition::TranspositionTable,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     nnue::nnue
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DRAW_VALUE`, `Score`, `TTData`, `ZOBRIST`, `all_attacks_for_king`, `all_attacks`, `eval_util`, `evaluate_int`, `get_queen_attacks`, and `nnue::NNUE`
[INFO] [stdout]   --> src/search/alphabeta.rs:4:19
[INFO] [stdout]    |
[INFO] [stdout]  4 |         zobrist::{ZOBRIST},
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  7 |         evaluate::{evaluate, evaluate_fast, Score, MATE_VALUE, DRAW_VALUE, evaluate_int,nnue_push_move, nnue_pop_move,nnue_refresh},
[INFO] [stdout]    |                                             ^^^^^              ^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout]  8 |         material::calculate_phase,
[INFO] [stdout]  9 |         eval_util,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |         magic::{all_attacks, get_bishop_attacks, get_rook_attacks, get_queen_attacks,
[INFO] [stdout]    |                 ^^^^^^^^^^^                                        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |                 get_knight_attacks, get_king_attacks, get_pawn_attacks, all_attacks_for_king},
[INFO] [stdout]    |                                                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |         transposition::{TranspositionTable, TT_BOUND_EXACT, TT_BOUND_LOWER, TT_BOUND_UPPER, TTData},
[INFO] [stdout]    |                                                                                             ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     nnue::{nnue::NNUE}
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `max` and `min`
[INFO] [stdout]   --> src/search/alphabeta.rs:27:16
[INFO] [stdout]    |
[INFO] [stdout] 27 | use std::cmp::{max, min};
[INFO] [stdout]    |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]     --> src/search/alphabeta.rs:1413:61
[INFO] [stdout]      |
[INFO] [stdout] 1413 |                 depth_offset: if thread_id < 4 { 0 } else { (thread_id as i32 / 4) },
[INFO] [stdout]      |                                                             ^                    ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1413 -                 depth_offset: if thread_id < 4 { 0 } else { (thread_id as i32 / 4) },
[INFO] [stdout] 1413 +                 depth_offset: if thread_id < 4 { 0 } else { thread_id as i32 / 4  },
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/search/search_node.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::atomic::AtomicBool`
[INFO] [stdout]  --> src/search/search_node.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::sync::atomic::AtomicBool;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Position`, `search::alphabeta::alpha_beta_search`, and `search::time_management::TimeManager`
[INFO] [stdout]  --> src/search/search_node.rs:4:23
[INFO] [stdout]   |
[INFO] [stdout] 4 |     board::position::{Position, Move},
[INFO] [stdout]   |                       ^^^^^^^^
[INFO] [stdout] 5 |     eval::evaluate::Score,
[INFO] [stdout] 6 |     search::alphabeta::alpha_beta_search,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 7 |     search::time_management::TimeManager,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Move`
[INFO] [stdout]  --> src/search/pruning.rs:1:40
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::board::position::{Position, Move, Color, PieceType};
[INFO] [stdout]   |                                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::eval::material::calculate_phase`
[INFO] [stdout]  --> src/search/pruning.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::eval::material::calculate_phase;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PieceType`
[INFO] [stdout]  --> src/nnue/nnue.rs:3:47
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::board::position::{Position, Color, PieceType};
[INFO] [stdout]   |                                               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::eval::evaluate::Score`
[INFO] [stdout]  --> src/board/position.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::eval::evaluate::Score;
[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: `get_queen_attacks`
[INFO] [stdout]  --> src/board/position.rs:6:120
[INFO] [stdout]   |
[INFO] [stdout] 6 | ...acks,get_king_attacks,get_pawn_attacks,get_rook_attacks,get_queen_attacks,get_knight_attacks};
[INFO] [stdout]   |                                                            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/board/position.rs:1730:20
[INFO] [stdout]      |
[INFO] [stdout] 1730 |                 if (self.has_diagonal_attack(square, bishops)) {
[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] 1730 -                 if (self.has_diagonal_attack(square, bishops)) {
[INFO] [stdout] 1730 +                 if self.has_diagonal_attack(square, bishops) {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/board/position.rs:1740:20
[INFO] [stdout]      |
[INFO] [stdout] 1740 |                 if (self.has_straight_attack(square, rooks)) {
[INFO] [stdout]      |                    ^                                       ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1740 -                 if (self.has_straight_attack(square, rooks)) {
[INFO] [stdout] 1740 +                 if self.has_straight_attack(square, rooks) {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::bitboard::Bitboard`
[INFO] [stdout]  --> src/board/zobrist.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use super::bitboard::Bitboard;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::board::bitboard::Bitboard`
[INFO] [stdout]  --> src/eval/material.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::board::bitboard::Bitboard;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EMPTY`, `FILE_D`, and `FILE_F`
[INFO] [stdout]  --> src/eval/pawns.rs:2:40
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::board::bitboard::{Bitboard, EMPTY, FILE_A, FILE_B, FILE_C, FILE_D, FILE_E, FILE_F, FILE_G, FILE_H};
[INFO] [stdout]   |                                        ^^^^^                          ^^^^^^          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EMPTY`
[INFO] [stdout]  --> src/eval/mobility.rs:2:40
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::board::bitboard::{Bitboard, EMPTY};
[INFO] [stdout]   |                                        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `get_king_attacks` and `get_pawn_attacks`
[INFO] [stdout]  --> src/eval/mobility.rs:6:24
[INFO] [stdout]   |
[INFO] [stdout] 6 |     get_queen_attacks, get_king_attacks, get_pawn_attacks
[INFO] [stdout]   |                        ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/eval/mobility.rs:281:11
[INFO] [stdout]     |
[INFO] [stdout] 281 |         if((our_pawns.count_ones()+opposite_pawns.count_ones())<=12){
[INFO] [stdout]     |           ^                                                        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 281 -         if((our_pawns.count_ones()+opposite_pawns.count_ones())<=12){
[INFO] [stdout] 281 +         if (our_pawns.count_ones()+opposite_pawns.count_ones())<=12 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EMPTY`
[INFO] [stdout]  --> src/eval/space.rs:3:40
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::board::bitboard::{Bitboard, EMPTY, CENTER, EXTENDED_CENTER};
[INFO] [stdout]   |                                        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `get_pawn_attacks`
[INFO] [stdout]  --> src/eval/space.rs:5:42
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::movegen::magic::{all_attacks, get_pawn_attacks};
[INFO] [stdout]   |                                          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EMPTY`, `FILE_A`, and `FILE_H`
[INFO] [stdout]  --> src/eval/king_safety.rs:2:40
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::board::bitboard::{Bitboard, EMPTY, FILE_A, FILE_H};
[INFO] [stdout]   |                                        ^^^^^  ^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `file_of` and `relative_rank`
[INFO] [stdout]  --> src/eval/king_safety.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::eval::pst::{file_of, rank_of, relative_rank};
[INFO] [stdout]   |                        ^^^^^^^           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EMPTY`
[INFO] [stdout]  --> src/eval/threats.rs:2:40
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::board::bitboard::{Bitboard, EMPTY};
[INFO] [stdout]   |                                        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `file_of` and `rank_of`
[INFO] [stdout]  --> src/eval/threats.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::eval::pst::{file_of, rank_of};
[INFO] [stdout]   |                        ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::eval::evaluate::Score`
[INFO] [stdout]  --> src/eval/eval_util.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::eval::evaluate::Score;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::nnue::nnue_accumulator::AccumulatorCache`
[INFO] [stdout]  --> src/eval/evaluate.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::nnue::nnue_accumulator::AccumulatorCache;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `get_bishop_attacks`, `get_knight_attacks`, `get_queen_attacks`, and `get_rook_attacks`
[INFO] [stdout]    --> src/eval/evaluate.rs:543:33
[INFO] [stdout]     |
[INFO] [stdout] 543 |     use crate::movegen::magic::{get_knight_attacks, get_bishop_attacks, get_rook_attacks, get_queen_attacks};
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DRAW_VALUE`, `EvalResult`, `MATE_VALUE`, `Score`, `evaluate_detailed`, `evaluate_fast`, and `evaluate`
[INFO] [stdout]   --> src/eval/mod.rs:15:20
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use evaluate::{Score, EvalResult, evaluate, evaluate_fast, evaluate_detailed, MATE_VALUE, DRAW_VALUE};
[INFO] [stdout]    |                    ^^^^^  ^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EvalCache`, `is_endgame`, `is_middlegame`, and `phase_value`
[INFO] [stdout]   --> src/eval/mod.rs:16:21
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub use eval_util::{EvalCache, phase_value, is_endgame, is_middlegame};
[INFO] [stdout]    |                     ^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MAX_PHASE` and `calculate_phase`
[INFO] [stdout]   --> src/eval/mod.rs:17:20
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub use material::{calculate_phase, MAX_PHASE};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `popcount` and `square_mask`
[INFO] [stdout]  --> src/movegen/magic.rs:1:40
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::board::bitboard::{Bitboard, popcount, square_mask, EMPTY};
[INFO] [stdout]   |                                        ^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/movegen/magic.rs:131:7
[INFO] [stdout]     |
[INFO] [stdout] 131 |     if(square == 64){
[INFO] [stdout]     |       ^            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 131 -     if(square == 64){
[INFO] [stdout] 131 +     if square == 64 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `has_bit` and `square_mask`
[INFO] [stdout]  --> src/movegen/moves.rs:1:40
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::board::bitboard::{Bitboard, square_mask, has_bit};
[INFO] [stdout]   |                                        ^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `all_attacks`
[INFO] [stdout]  --> src/movegen/moves.rs:7:44
[INFO] [stdout]   |
[INFO] [stdout] 7 |                    add_moves_from_bitboard,all_attacks};
[INFO] [stdout]   |                                            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::arch::x86_64::*`
[INFO] [stdout]   --> src/movegen/moves.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use std::arch::x86_64::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::movegen::magic::all_attacks_for_king`
[INFO] [stdout]  --> src/movegen/legal_moves.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::movegen::magic::all_attacks_for_king;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DRAW_VALUE`, `Score`, `TTData`, `ZOBRIST`, `all_attacks_for_king`, `all_attacks`, `eval_util`, `evaluate_int`, `get_queen_attacks`, and `nnue::NNUE`
[INFO] [stdout]   --> src/search/alphabeta.rs:4:19
[INFO] [stdout]    |
[INFO] [stdout]  4 |         zobrist::{ZOBRIST},
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  7 |         evaluate::{evaluate, evaluate_fast, Score, MATE_VALUE, DRAW_VALUE, evaluate_int,nnue_push_move, nnue_pop_move,nnue_refresh},
[INFO] [stdout]    |                                             ^^^^^              ^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout]  8 |         material::calculate_phase,
[INFO] [stdout]  9 |         eval_util,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |         magic::{all_attacks, get_bishop_attacks, get_rook_attacks, get_queen_attacks,
[INFO] [stdout]    |                 ^^^^^^^^^^^                                        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |                 get_knight_attacks, get_king_attacks, get_pawn_attacks, all_attacks_for_king},
[INFO] [stdout]    |                                                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |         transposition::{TranspositionTable, TT_BOUND_EXACT, TT_BOUND_LOWER, TT_BOUND_UPPER, TTData},
[INFO] [stdout]    |                                                                                             ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     nnue::{nnue::NNUE}
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `max` and `min`
[INFO] [stdout]   --> src/search/alphabeta.rs:27:16
[INFO] [stdout]    |
[INFO] [stdout] 27 | use std::cmp::{max, min};
[INFO] [stdout]    |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]     --> src/search/alphabeta.rs:1413:61
[INFO] [stdout]      |
[INFO] [stdout] 1413 |                 depth_offset: if thread_id < 4 { 0 } else { (thread_id as i32 / 4) },
[INFO] [stdout]      |                                                             ^                    ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1413 -                 depth_offset: if thread_id < 4 { 0 } else { (thread_id as i32 / 4) },
[INFO] [stdout] 1413 +                 depth_offset: if thread_id < 4 { 0 } else { thread_id as i32 / 4  },
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/search/search_node.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::atomic::AtomicBool`
[INFO] [stdout]  --> src/search/search_node.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::sync::atomic::AtomicBool;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Position`, `search::alphabeta::alpha_beta_search`, and `search::time_management::TimeManager`
[INFO] [stdout]  --> src/search/search_node.rs:4:23
[INFO] [stdout]   |
[INFO] [stdout] 4 |     board::position::{Position, Move},
[INFO] [stdout]   |                       ^^^^^^^^
[INFO] [stdout] 5 |     eval::evaluate::Score,
[INFO] [stdout] 6 |     search::alphabeta::alpha_beta_search,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 7 |     search::time_management::TimeManager,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Move`
[INFO] [stdout]  --> src/search/pruning.rs:1:40
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::board::position::{Position, Move, Color, PieceType};
[INFO] [stdout]   |                                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::eval::material::calculate_phase`
[INFO] [stdout]  --> src/search/pruning.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::eval::material::calculate_phase;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MoveType`, `move_to_uci`, `nnue::nnue`, and `transposition::TranspositionTable`
[INFO] [stdout]   --> src/uci/protocol.rs:4:47
[INFO] [stdout]    |
[INFO] [stdout]  4 |         position::{Position, Move, PieceType, MoveType, Color},
[INFO] [stdout]    |                                               ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  9 |         legal_moves::{generate_legal_moves,move_to_uci},
[INFO] [stdout]    |                                            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |         transposition::TranspositionTable,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     nnue::nnue
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PieceType`
[INFO] [stdout]  --> src/nnue/nnue.rs:3:47
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::board::position::{Position, Color, PieceType};
[INFO] [stdout]   |                                               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nnue as nnue_fast`
[INFO] [stdout]  --> src/nnue/mod.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use nnue as nnue_fast;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nnue_accumulator as accumulator_fast`
[INFO] [stdout]  --> src/nnue/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use nnue_accumulator as accumulator_fast;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nnue_weights as weights_fast`
[INFO] [stdout]  --> src/nnue/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use nnue_weights as weights_fast;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::eval::evaluate::evaluate`
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::eval::evaluate::evaluate;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Move`, `PieceType`, and `Position`
[INFO] [stdout]   --> src/main.rs:12:37
[INFO] [stdout]    |
[INFO] [stdout] 12 | use RuthChessOVI::board::position::{Position,Move,PieceType,init_attack_tables};
[INFO] [stdout]    |                                     ^^^^^^^^ ^^^^ ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RuthChessOVI::nnue::nnue::NNUE`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use RuthChessOVI::nnue::nnue::NNUE;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufRead`, `BufReader`, and `self`
[INFO] [stdout]   --> src/main.rs:16:15
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::io::{self, BufRead, BufReader};
[INFO] [stdout]    |               ^^^^  ^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/main.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uci::protocol`
[INFO] [stdout]   --> src/main.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use uci::protocol;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `captured_pawn_square`
[INFO] [stdout]    --> src/board/position.rs:805:13
[INFO] [stdout]     |
[INFO] [stdout] 805 |         let captured_pawn_square = to ^ 8;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_captured_pawn_square`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `king_square`
[INFO] [stdout]    --> src/board/position.rs:807:13
[INFO] [stdout]     |
[INFO] [stdout] 807 |         let king_square = self.king_square(self.side_to_move);
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_king_square`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `undo`
[INFO] [stdout]     --> src/board/position.rs:1247:28
[INFO] [stdout]      |
[INFO] [stdout] 1247 |     pub fn push_undo(self, undo: UndoInfo) {
[INFO] [stdout]      |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_undo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/board/position.rs:1752:9
[INFO] [stdout]      |
[INFO] [stdout] 1752 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/board/position.rs:1766:9
[INFO] [stdout]      |
[INFO] [stdout] 1766 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `by_color`
[INFO] [stdout]     --> src/board/position.rs:1765:58
[INFO] [stdout]      |
[INFO] [stdout] 1765 |     pub fn is_square_attacked_ovi_upg(&self, square: u8, by_color: Color,atts:Bitboard) -> bool {
[INFO] [stdout]      |                                                          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_by_color`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/board/position.rs:1779:9
[INFO] [stdout]      |
[INFO] [stdout] 1779 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]    --> src/eval/material.rs:483:33
[INFO] [stdout]     |
[INFO] [stdout] 483 | pub fn get_endgame_scale_factor(pos: &Position, endgame_type: EndgameType) -> f32 {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:185:9
[INFO] [stdout]     |
[INFO] [stdout] 185 |         (*table_ptr)[PieceType::Pawn as usize].mg[sq] = PAWN_MG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/eval/pst.rs:182:1
[INFO] [stdout]     |
[INFO] [stdout] 182 | unsafe fn init_pawn_table() {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:186:9
[INFO] [stdout]     |
[INFO] [stdout] 186 |         (*table_ptr)[PieceType::Pawn as usize].eg[sq] = PAWN_EG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:193:9
[INFO] [stdout]     |
[INFO] [stdout] 193 |         (*table_ptr)[PieceType::Knight as usize].mg[sq] = KNIGHT_MG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/eval/pst.rs:190:1
[INFO] [stdout]     |
[INFO] [stdout] 190 | unsafe fn init_knight_table() {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:194:9
[INFO] [stdout]     |
[INFO] [stdout] 194 |         (*table_ptr)[PieceType::Knight as usize].eg[sq] = KNIGHT_EG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:201:9
[INFO] [stdout]     |
[INFO] [stdout] 201 |         (*table_ptr)[PieceType::Bishop as usize].mg[sq] = BISHOP_MG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/eval/pst.rs:198:1
[INFO] [stdout]     |
[INFO] [stdout] 198 | unsafe fn init_bishop_table() {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:202:9
[INFO] [stdout]     |
[INFO] [stdout] 202 |         (*table_ptr)[PieceType::Bishop as usize].eg[sq] = BISHOP_EG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 209 |         (*table_ptr)[PieceType::Rook as usize].mg[sq] = ROOK_MG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/eval/pst.rs:206:1
[INFO] [stdout]     |
[INFO] [stdout] 206 | unsafe fn init_rook_table() {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:210:9
[INFO] [stdout]     |
[INFO] [stdout] 210 |         (*table_ptr)[PieceType::Rook as usize].eg[sq] = ROOK_EG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:217:9
[INFO] [stdout]     |
[INFO] [stdout] 217 |         (*table_ptr)[PieceType::Queen as usize].mg[sq] = QUEEN_MG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/eval/pst.rs:214:1
[INFO] [stdout]     |
[INFO] [stdout] 214 | unsafe fn init_queen_table() {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:218:9
[INFO] [stdout]     |
[INFO] [stdout] 218 |         (*table_ptr)[PieceType::Queen as usize].eg[sq] = QUEEN_EG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:225:9
[INFO] [stdout]     |
[INFO] [stdout] 225 |         (*table_ptr)[PieceType::King as usize].mg[sq] = KING_MG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/eval/pst.rs:222:1
[INFO] [stdout]     |
[INFO] [stdout] 222 | unsafe fn init_king_table() {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:226:9
[INFO] [stdout]     |
[INFO] [stdout] 226 |         (*table_ptr)[PieceType::King as usize].eg[sq] = KING_EG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `captured_pawn_square`
[INFO] [stdout]    --> src/board/position.rs:805:13
[INFO] [stdout]     |
[INFO] [stdout] 805 |         let captured_pawn_square = to ^ 8;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_captured_pawn_square`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `king_square`
[INFO] [stdout]    --> src/board/position.rs:807:13
[INFO] [stdout]     |
[INFO] [stdout] 807 |         let king_square = self.king_square(self.side_to_move);
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_king_square`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `doubled_count` is assigned to, but never used
[INFO] [stdout]    --> src/eval/pawns.rs:279:9
[INFO] [stdout]     |
[INFO] [stdout] 279 |     let mut doubled_count = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_doubled_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `square_bb`
[INFO] [stdout]    --> src/eval/pawns.rs:310:13
[INFO] [stdout]     |
[INFO] [stdout] 310 |         let square_bb = 1u64 << square;
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_square_bb`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rank`
[INFO] [stdout]    --> src/eval/pawns.rs:313:13
[INFO] [stdout]     |
[INFO] [stdout] 313 |         let rank = rank_of(square);
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_rank`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `doubled_count` is never read
[INFO] [stdout]    --> src/eval/pawns.rs:290:17
[INFO] [stdout]     |
[INFO] [stdout] 290 |                 doubled_count += pawn_count - 1;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `undo`
[INFO] [stdout]     --> src/board/position.rs:1247:28
[INFO] [stdout]      |
[INFO] [stdout] 1247 |     pub fn push_undo(self, undo: UndoInfo) {
[INFO] [stdout]      |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_undo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `same_rank_mask`
[INFO] [stdout]    --> src/eval/pawns.rs:440:9
[INFO] [stdout]     |
[INFO] [stdout] 440 |     let same_rank_mask = 0xFFu64 << (rank * 8);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_same_rank_mask`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/board/position.rs:1752:9
[INFO] [stdout]      |
[INFO] [stdout] 1752 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/board/position.rs:1766:9
[INFO] [stdout]      |
[INFO] [stdout] 1766 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `by_color`
[INFO] [stdout]     --> src/board/position.rs:1765:58
[INFO] [stdout]      |
[INFO] [stdout] 1765 |     pub fn is_square_attacked_ovi_upg(&self, square: u8, by_color: Color,atts:Bitboard) -> bool {
[INFO] [stdout]      |                                                          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_by_color`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]     --> src/board/position.rs:1779:9
[INFO] [stdout]      |
[INFO] [stdout] 1779 |         unsafe {
[INFO] [stdout]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `weights_arc`
[INFO] [stdout]    --> src/eval/evaluate.rs:337:17
[INFO] [stdout]     |
[INFO] [stdout] 337 |     if let Some(weights_arc) = GLOBAL_NNUE_WEIGHTS.get().and_then(|opt| opt.as_ref()) {
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_weights_arc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `weights_arc`
[INFO] [stdout]    --> src/eval/evaluate.rs:392:17
[INFO] [stdout]     |
[INFO] [stdout] 392 |     if let Some(weights_arc) = GLOBAL_NNUE_WEIGHTS.get().and_then(|opt| opt.as_ref()) {
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_weights_arc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `all_pieces`
[INFO] [stdout]    --> src/eval/evaluate.rs:546:9
[INFO] [stdout]     |
[INFO] [stdout] 546 |     let all_pieces = pos.all_pieces();
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_all_pieces`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `our_pieces`
[INFO] [stdout]    --> src/eval/evaluate.rs:550:13
[INFO] [stdout]     |
[INFO] [stdout] 550 |         let our_pieces = pos.pieces(color);
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_our_pieces`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]    --> src/eval/material.rs:483:33
[INFO] [stdout]     |
[INFO] [stdout] 483 | pub fn get_endgame_scale_factor(pos: &Position, endgame_type: EndgameType) -> f32 {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:185:9
[INFO] [stdout]     |
[INFO] [stdout] 185 |         (*table_ptr)[PieceType::Pawn as usize].mg[sq] = PAWN_MG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/eval/pst.rs:182:1
[INFO] [stdout]     |
[INFO] [stdout] 182 | unsafe fn init_pawn_table() {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:186:9
[INFO] [stdout]     |
[INFO] [stdout] 186 |         (*table_ptr)[PieceType::Pawn as usize].eg[sq] = PAWN_EG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:193:9
[INFO] [stdout]     |
[INFO] [stdout] 193 |         (*table_ptr)[PieceType::Knight as usize].mg[sq] = KNIGHT_MG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/eval/pst.rs:190:1
[INFO] [stdout]     |
[INFO] [stdout] 190 | unsafe fn init_knight_table() {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:194:9
[INFO] [stdout]     |
[INFO] [stdout] 194 |         (*table_ptr)[PieceType::Knight as usize].eg[sq] = KNIGHT_EG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:201:9
[INFO] [stdout]     |
[INFO] [stdout] 201 |         (*table_ptr)[PieceType::Bishop as usize].mg[sq] = BISHOP_MG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/eval/pst.rs:198:1
[INFO] [stdout]     |
[INFO] [stdout] 198 | unsafe fn init_bishop_table() {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:202:9
[INFO] [stdout]     |
[INFO] [stdout] 202 |         (*table_ptr)[PieceType::Bishop as usize].eg[sq] = BISHOP_EG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enemy_pieces`
[INFO] [stdout]    --> src/eval/mobility.rs:222:9
[INFO] [stdout]     |
[INFO] [stdout] 222 |     let enemy_pieces = pos.pieces(color.opposite());
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enemy_pieces`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 209 |         (*table_ptr)[PieceType::Rook as usize].mg[sq] = ROOK_MG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/eval/pst.rs:206:1
[INFO] [stdout]     |
[INFO] [stdout] 206 | unsafe fn init_rook_table() {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:210:9
[INFO] [stdout]     |
[INFO] [stdout] 210 |         (*table_ptr)[PieceType::Rook as usize].eg[sq] = ROOK_EG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:217:9
[INFO] [stdout]     |
[INFO] [stdout] 217 |         (*table_ptr)[PieceType::Queen as usize].mg[sq] = QUEEN_MG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/eval/pst.rs:214:1
[INFO] [stdout]     |
[INFO] [stdout] 214 | unsafe fn init_queen_table() {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:218:9
[INFO] [stdout]     |
[INFO] [stdout] 218 |         (*table_ptr)[PieceType::Queen as usize].eg[sq] = QUEEN_EG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:225:9
[INFO] [stdout]     |
[INFO] [stdout] 225 |         (*table_ptr)[PieceType::King as usize].mg[sq] = KING_MG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/eval/pst.rs:222:1
[INFO] [stdout]     |
[INFO] [stdout] 222 | unsafe fn init_king_table() {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/eval/pst.rs:226:9
[INFO] [stdout]     |
[INFO] [stdout] 226 |         (*table_ptr)[PieceType::King as usize].eg[sq] = KING_EG[sq];
[INFO] [stdout]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `doubled_count` is assigned to, but never used
[INFO] [stdout]    --> src/eval/pawns.rs:279:9
[INFO] [stdout]     |
[INFO] [stdout] 279 |     let mut doubled_count = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_doubled_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `square_bb`
[INFO] [stdout]    --> src/eval/pawns.rs:310:13
[INFO] [stdout]     |
[INFO] [stdout] 310 |         let square_bb = 1u64 << square;
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_square_bb`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rank`
[INFO] [stdout]    --> src/eval/pawns.rs:313:13
[INFO] [stdout]     |
[INFO] [stdout] 313 |         let rank = rank_of(square);
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_rank`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `doubled_count` is never read
[INFO] [stdout]    --> src/eval/pawns.rs:290:17
[INFO] [stdout]     |
[INFO] [stdout] 290 |                 doubled_count += pawn_count - 1;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `same_rank_mask`
[INFO] [stdout]    --> src/eval/pawns.rs:440:9
[INFO] [stdout]     |
[INFO] [stdout] 440 |     let same_rank_mask = 0xFFu64 << (rank * 8);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_same_rank_mask`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `square_bb`
[INFO] [stdout]   --> src/eval/space.rs:96:13
[INFO] [stdout]    |
[INFO] [stdout] 96 |         let square_bb = 1u64 << square;
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_square_bb`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `king_rank`
[INFO] [stdout]    --> src/eval/king_safety.rs:162:9
[INFO] [stdout]     |
[INFO] [stdout] 162 |     let king_rank = king_sq / 8;
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_king_rank`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enemy_pieces`
[INFO] [stdout]    --> src/eval/mobility.rs:222:9
[INFO] [stdout]     |
[INFO] [stdout] 222 |     let enemy_pieces = pos.pieces(color.opposite());
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enemy_pieces`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `our_pawns`
[INFO] [stdout]    --> src/eval/king_safety.rs:476:9
[INFO] [stdout]     |
[INFO] [stdout] 476 |     let our_pawns = pos.pieces_colored(PieceType::Pawn, color);
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_our_pawns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `square_bb`
[INFO] [stdout]   --> src/eval/space.rs:96:13
[INFO] [stdout]    |
[INFO] [stdout] 96 |         let square_bb = 1u64 << square;
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_square_bb`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `piece_type`
[INFO] [stdout]    --> src/eval/threats.rs:153:46
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn is_piece_weak(pos: &Position, square: u8, piece_type: PieceType, color: Color) -> bool {
[INFO] [stdout]     |                                              ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_piece_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `king_rank`
[INFO] [stdout]    --> src/eval/king_safety.rs:162:9
[INFO] [stdout]     |
[INFO] [stdout] 162 |     let king_rank = king_sq / 8;
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_king_rank`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enemy_king`
[INFO] [stdout]    --> src/eval/threats.rs:404:9
[INFO] [stdout]     |
[INFO] [stdout] 404 |     let enemy_king = pos.king_square(color.opposite());
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enemy_king`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `our_pieces`
[INFO] [stdout]    --> src/eval/threats.rs:434:9
[INFO] [stdout]     |
[INFO] [stdout] 434 |     let our_pieces = pos.pieces(color);
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_our_pieces`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enemy_valuable`
[INFO] [stdout]    --> src/eval/threats.rs:435:9
[INFO] [stdout]     |
[INFO] [stdout] 435 |     let enemy_valuable = pos.pieces_colored(PieceType::Queen, color.opposite()) |
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enemy_valuable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `our_pawns`
[INFO] [stdout]    --> src/eval/king_safety.rs:476:9
[INFO] [stdout]     |
[INFO] [stdout] 476 |     let our_pawns = pos.pieces_colored(PieceType::Pawn, color);
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_our_pawns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ray`
[INFO] [stdout]    --> src/eval/threats.rs:758:22
[INFO] [stdout]     |
[INFO] [stdout] 758 | fn extend_ray_beyond(ray: Bitboard, from: u8, through: u8) -> Bitboard {
[INFO] [stdout]     |                      ^^^ help: if this is intentional, prefix it with an underscore: `_ray`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/eval/threats.rs:803:9
[INFO] [stdout]     |
[INFO] [stdout] 803 |     let mut temp_all_pieces = pos.all_pieces() & !(1u64 << blocker);
[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/eval/threats.rs:153:46
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn is_piece_weak(pos: &Position, square: u8, piece_type: PieceType, color: Color) -> bool {
[INFO] [stdout]     |                                              ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_piece_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enemy_king`
[INFO] [stdout]    --> src/eval/threats.rs:404:9
[INFO] [stdout]     |
[INFO] [stdout] 404 |     let enemy_king = pos.king_square(color.opposite());
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enemy_king`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `our_pieces`
[INFO] [stdout]    --> src/eval/threats.rs:434:9
[INFO] [stdout]     |
[INFO] [stdout] 434 |     let our_pieces = pos.pieces(color);
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_our_pieces`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enemy_valuable`
[INFO] [stdout]    --> src/eval/threats.rs:435:9
[INFO] [stdout]     |
[INFO] [stdout] 435 |     let enemy_valuable = pos.pieces_colored(PieceType::Queen, color.opposite()) |
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enemy_valuable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ray`
[INFO] [stdout]    --> src/eval/threats.rs:758:22
[INFO] [stdout]     |
[INFO] [stdout] 758 | fn extend_ray_beyond(ray: Bitboard, from: u8, through: u8) -> Bitboard {
[INFO] [stdout]     |                      ^^^ help: if this is intentional, prefix it with an underscore: `_ray`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/eval/threats.rs:803:9
[INFO] [stdout]     |
[INFO] [stdout] 803 |     let mut temp_all_pieces = pos.all_pieces() & !(1u64 << blocker);
[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: `color`
[INFO] [stdout]   --> src/eval/initiative.rs:45:55
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn evaluate_pawn_asymmetry_initiative(pos: &Position, color: Color) -> Score {
[INFO] [stdout]    |                                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_color`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `white_pawns`
[INFO] [stdout]    --> src/eval/initiative.rs:393:13
[INFO] [stdout]     |
[INFO] [stdout] 393 |         let white_pawns = 1u64 << 36;
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_white_pawns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `weights_arc`
[INFO] [stdout]    --> src/eval/evaluate.rs:337:17
[INFO] [stdout]     |
[INFO] [stdout] 337 |     if let Some(weights_arc) = GLOBAL_NNUE_WEIGHTS.get().and_then(|opt| opt.as_ref()) {
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_weights_arc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `weights_arc`
[INFO] [stdout]    --> src/eval/evaluate.rs:392:17
[INFO] [stdout]     |
[INFO] [stdout] 392 |     if let Some(weights_arc) = GLOBAL_NNUE_WEIGHTS.get().and_then(|opt| opt.as_ref()) {
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_weights_arc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/movegen/moves.rs:174:9
[INFO] [stdout]     |
[INFO] [stdout] 174 |     let mut attacks = get_king_attacks(from);
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `all_pieces`
[INFO] [stdout]    --> src/eval/evaluate.rs:546:9
[INFO] [stdout]     |
[INFO] [stdout] 546 |     let all_pieces = pos.all_pieces();
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_all_pieces`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `our_pieces`
[INFO] [stdout]    --> src/eval/evaluate.rs:550:13
[INFO] [stdout]     |
[INFO] [stdout] 550 |         let our_pieces = pos.pieces(color);
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_our_pieces`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/movegen/moves.rs:274:9
[INFO] [stdout]     |
[INFO] [stdout] 274 |     let mut attacks = get_king_attacks(from);
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opponent_color`
[INFO] [stdout]   --> src/movegen/legal_moves.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let opponent_color = our_color.opposite();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_opponent_color`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `color`
[INFO] [stdout]   --> src/eval/initiative.rs:45:55
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn evaluate_pawn_asymmetry_initiative(pos: &Position, color: Color) -> Score {
[INFO] [stdout]    |                                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_color`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `found_moves` is assigned to, but never used
[INFO] [stdout]    --> src/uci/protocol.rs:383:21
[INFO] [stdout]     |
[INFO] [stdout] 383 |                 let mut found_moves = false;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_found_moves` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `old_hash`
[INFO] [stdout]    --> src/uci/protocol.rs:424:29
[INFO] [stdout]     |
[INFO] [stdout] 424 |                         let old_hash = pos.hash;
[INFO] [stdout]     |                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_old_hash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `new_position` is never read
[INFO] [stdout]    --> src/uci/protocol.rs:363:32
[INFO] [stdout]     |
[INFO] [stdout] 363 |         let mut new_position = None;
[INFO] [stdout]     |                                ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `found_moves` is never read
[INFO] [stdout]    --> src/uci/protocol.rs:388:25
[INFO] [stdout]     |
[INFO] [stdout] 388 |                         found_moves = true;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `white_pawns`
[INFO] [stdout]    --> src/eval/initiative.rs:393:13
[INFO] [stdout]     |
[INFO] [stdout] 393 |         let white_pawns = 1u64 << 36;
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_white_pawns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/movegen/moves.rs:174:9
[INFO] [stdout]     |
[INFO] [stdout] 174 |     let mut attacks = get_king_attacks(from);
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/movegen/moves.rs:274:9
[INFO] [stdout]     |
[INFO] [stdout] 274 |     let mut attacks = get_king_attacks(from);
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opponent_color`
[INFO] [stdout]   --> src/movegen/legal_moves.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let opponent_color = our_color.opposite();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_opponent_color`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `piece`
[INFO] [stdout]    --> src/search/alphabeta.rs:356:14
[INFO] [stdout]     |
[INFO] [stdout] 356 |         let (piece, color) = pos.piece_at(from);
[INFO] [stdout]     |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_piece`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]    --> src/search/alphabeta.rs:495:34
[INFO] [stdout]     |
[INFO] [stdout] 495 |     fn is_repetition_draw(&self, pos: &Position) -> bool {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `piece`
[INFO] [stdout]    --> src/search/alphabeta.rs:356:14
[INFO] [stdout]     |
[INFO] [stdout] 356 |         let (piece, color) = pos.piece_at(from);
[INFO] [stdout]     |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_piece`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]    --> src/search/alphabeta.rs:495:34
[INFO] [stdout]     |
[INFO] [stdout] 495 |     fn is_repetition_draw(&self, pos: &Position) -> bool {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `score`
[INFO] [stdout]    --> src/search/alphabeta.rs:632:29
[INFO] [stdout]     |
[INFO] [stdout] 632 |                 if let Some(score) = razoring(pos, depth, alpha, static_eval) {
[INFO] [stdout]     |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_score`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `piece`
[INFO] [stdout]    --> src/search/alphabeta.rs:849:34
[INFO] [stdout]     |
[INFO] [stdout] 849 | ...                   let (piece, color) = pos.piece_at(mv.from());
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_piece`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `move_count` is assigned to, but never used
[INFO] [stdout]     --> src/search/alphabeta.rs:1008:17
[INFO] [stdout]      |
[INFO] [stdout] 1008 |             let mut move_count = 0;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_move_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `move_count` is never read
[INFO] [stdout]     --> src/search/alphabeta.rs:1054:17
[INFO] [stdout]      |
[INFO] [stdout] 1054 |                 move_count += 1;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `score`
[INFO] [stdout]    --> src/search/alphabeta.rs:632:29
[INFO] [stdout]     |
[INFO] [stdout] 632 |                 if let Some(score) = razoring(pos, depth, alpha, static_eval) {
[INFO] [stdout]     |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_score`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `piece`
[INFO] [stdout]    --> src/search/alphabeta.rs:849:34
[INFO] [stdout]     |
[INFO] [stdout] 849 | ...                   let (piece, color) = pos.piece_at(mv.from());
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_piece`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `best_pv` is never read
[INFO] [stdout]     --> src/search/alphabeta.rs:1249:27
[INFO] [stdout]      |
[INFO] [stdout] 1249 |         let mut best_pv = Vec::new();
[INFO] [stdout]      |                           ^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `move_count` is assigned to, but never used
[INFO] [stdout]     --> src/search/alphabeta.rs:1008:17
[INFO] [stdout]      |
[INFO] [stdout] 1008 |             let mut move_count = 0;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_move_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `move_count` is never read
[INFO] [stdout]     --> src/search/alphabeta.rs:1054:17
[INFO] [stdout]      |
[INFO] [stdout] 1054 |                 move_count += 1;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `best_pv` is never read
[INFO] [stdout]     --> src/search/alphabeta.rs:1249:27
[INFO] [stdout]      |
[INFO] [stdout] 1249 |         let mut best_pv = Vec::new();
[INFO] [stdout]      |                           ^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_age`
[INFO] [stdout]    --> src/search/transposition.rs:136:62
[INFO] [stdout]     |
[INFO] [stdout] 136 |     fn should_replace(&self, entry: &TTEntry, new_depth: u8, new_age: u8, new_bound: u8) -> bool {
[INFO] [stdout]     |                                                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_age`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lmp_idx`
[INFO] [stdout]   --> src/search/pruning.rs:99:9
[INFO] [stdout]    |
[INFO] [stdout] 99 |     let lmp_idx = is_pv as usize;
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lmp_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_age`
[INFO] [stdout]    --> src/search/transposition.rs:136:62
[INFO] [stdout]     |
[INFO] [stdout] 136 |     fn should_replace(&self, entry: &TTEntry, new_depth: u8, new_age: u8, new_bound: u8) -> bool {
[INFO] [stdout]     |                                                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_age`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `depth`
[INFO] [stdout]    --> src/search/pruning.rs:190:12
[INFO] [stdout]     |
[INFO] [stdout] 190 | pub fn new(depth: i32) -> Self {
[INFO] [stdout]     |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_depth`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tt_score`
[INFO] [stdout]    --> src/search/pruning.rs:341:5
[INFO] [stdout]     |
[INFO] [stdout] 341 |     tt_score: i32,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tt_score`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `depth`
[INFO] [stdout]    --> src/search/pruning.rs:342:5
[INFO] [stdout]     |
[INFO] [stdout] 342 |     depth: i32,
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_depth`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_pv`
[INFO] [stdout]    --> src/search/pruning.rs:343:5
[INFO] [stdout]     |
[INFO] [stdout] 343 |     is_pv: bool,
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_is_pv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lmp_idx`
[INFO] [stdout]   --> src/search/pruning.rs:99:9
[INFO] [stdout]    |
[INFO] [stdout] 99 |     let lmp_idx = is_pv as usize;
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lmp_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `depth`
[INFO] [stdout]    --> src/search/pruning.rs:190:12
[INFO] [stdout]     |
[INFO] [stdout] 190 | pub fn new(depth: i32) -> Self {
[INFO] [stdout]     |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_depth`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tt_score`
[INFO] [stdout]    --> src/search/pruning.rs:341:5
[INFO] [stdout]     |
[INFO] [stdout] 341 |     tt_score: i32,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tt_score`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `depth`
[INFO] [stdout]    --> src/search/pruning.rs:342:5
[INFO] [stdout]     |
[INFO] [stdout] 342 |     depth: i32,
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_depth`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_pv`
[INFO] [stdout]    --> src/search/pruning.rs:343:5
[INFO] [stdout]     |
[INFO] [stdout] 343 |     is_pv: bool,
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_is_pv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]    --> src/nnue/nnue.rs:302:30
[INFO] [stdout]     |
[INFO] [stdout] 302 |     pub fn debug_psqt(&self, pos: &Position) {
[INFO] [stdout]     |                              ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `version`
[INFO] [stdout]   --> src/nnue/nnue_weights.rs:52:13
[INFO] [stdout]    |
[INFO] [stdout] 52 |         let version = reader.read_u32::<LittleEndian>()?;
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_version`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `description`
[INFO] [stdout]   --> src/nnue/nnue_weights.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |         let description = String::from_utf8_lossy(&desc_bytes);
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_description`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `found_moves` is assigned to, but never used
[INFO] [stdout]    --> src/uci/protocol.rs:383:21
[INFO] [stdout]     |
[INFO] [stdout] 383 |                 let mut found_moves = false;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_found_moves` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `old_hash`
[INFO] [stdout]    --> src/uci/protocol.rs:424:29
[INFO] [stdout]     |
[INFO] [stdout] 424 |                         let old_hash = pos.hash;
[INFO] [stdout]     |                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_old_hash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `new_position` is never read
[INFO] [stdout]    --> src/uci/protocol.rs:363:32
[INFO] [stdout]     |
[INFO] [stdout] 363 |         let mut new_position = None;
[INFO] [stdout]     |                                ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `found_moves` is never read
[INFO] [stdout]    --> src/uci/protocol.rs:388:25
[INFO] [stdout]     |
[INFO] [stdout] 388 |                         found_moves = true;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `CASTLE_MOVES` is never used
[INFO] [stdout]    --> src/board/position.rs:174:8
[INFO] [stdout]     |
[INFO] [stdout] 174 | static CASTLE_MOVES: [[(u8, u8, u8); 2]; 2] = [
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `CASTLE_TYPE` is never used
[INFO] [stdout]    --> src/board/position.rs:179:8
[INFO] [stdout]     |
[INFO] [stdout] 179 | static CASTLE_TYPE: [Option<(Color, usize)>; 64] = {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MoveHashData` is never constructed
[INFO] [stdout]    --> src/board/position.rs:306:8
[INFO] [stdout]     |
[INFO] [stdout] 306 | struct MoveHashData {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `find_checking_piece` and `count_checks` are never used
[INFO] [stdout]     --> src/board/position.rs:951:8
[INFO] [stdout]      |
[INFO] [stdout]  313 | impl Position {
[INFO] [stdout]      | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  951 |     fn find_checking_piece(&self, king_square: u8, color: Color) -> Option<(u8, PieceType)> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1029 |     fn count_checks(&self, color: Color) -> u32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PHASE_VALUES` is never used
[INFO] [stdout]   --> src/eval/material.rs:97:7
[INFO] [stdout]    |
[INFO] [stdout] 97 | const PHASE_VALUES: [u32; 6] = [0, 1, 1, 2, 4, 0];
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PIECE_VALUES` is never used
[INFO] [stdout]    --> src/eval/evaluate.rs:101:7
[INFO] [stdout]     |
[INFO] [stdout] 101 | const PIECE_VALUES: [i32; 7] = [0, 100, 320, 330, 500, 900, 10000];
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROOK_ON_FILE` is never used
[INFO] [stdout]   --> src/eval/mobility.rs:89:7
[INFO] [stdout]    |
[INFO] [stdout] 89 | const ROOK_ON_FILE: [Score; 4] = [
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KNIGHT_ON_HOLE` is never used
[INFO] [stdout]    --> src/eval/mobility.rs:106:7
[INFO] [stdout]     |
[INFO] [stdout] 106 | const KNIGHT_ON_HOLE: Score = Score::new(17, 10);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WING_FILES` is never used
[INFO] [stdout]   --> src/eval/space.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const WING_FILES: Bitboard = 0xC3C3C3C3C3C3C3C3;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PIN_BONUS` is never used
[INFO] [stdout]   --> src/eval/threats.rs:50:7
[INFO] [stdout]    |
[INFO] [stdout] 50 | const PIN_BONUS: Score = Score::new(20, 25);
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DISCOVERED_ATTACK_BONUS` is never used
[INFO] [stdout]   --> src/eval/threats.rs:55:7
[INFO] [stdout]    |
[INFO] [stdout] 55 | const DISCOVERED_ATTACK_BONUS: Score = Score::new(35, 40);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_path_attacked` is never used
[INFO] [stdout]    --> src/movegen/moves.rs:238:4
[INFO] [stdout]     |
[INFO] [stdout] 238 | fn is_path_attacked(pos: &Position, path: Bitboard, king_sq: u8, by_color: Color) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_MOVES` is never used
[INFO] [stdout]   --> src/search/alphabeta.rs:31:7
[INFO] [stdout]    |
[INFO] [stdout] 31 | const MAX_MOVES: usize = 256;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MIN_SEARCH_DEPTH` is never used
[INFO] [stdout]   --> src/search/alphabeta.rs:33:7
[INFO] [stdout]    |
[INFO] [stdout] 33 | const MIN_SEARCH_DEPTH: i32 = 0;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LMR_BASE` is never used
[INFO] [stdout]   --> src/search/alphabeta.rs:42:7
[INFO] [stdout]    |
[INFO] [stdout] 42 | const LMR_BASE: f64 = 0.75;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LMR_FACTOR` is never used
[INFO] [stdout]   --> src/search/alphabeta.rs:43:7
[INFO] [stdout]    |
[INFO] [stdout] 43 | const LMR_FACTOR: f64 = 2.5;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NULL_MOVE_REDUCTION` is never used
[INFO] [stdout]   --> src/search/alphabeta.rs:49:7
[INFO] [stdout]    |
[INFO] [stdout] 49 | const NULL_MOVE_REDUCTION: i32 = 2;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NULL_MOVE_DEPTH_REDUCTION` is never used
[INFO] [stdout]   --> src/search/alphabeta.rs:50:7
[INFO] [stdout]    |
[INFO] [stdout] 50 | const NULL_MOVE_DEPTH_REDUCTION: i32 = 3;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EQUAL_CAPTURE_SCORE` is never used
[INFO] [stdout]   --> src/search/alphabeta.rs:54:7
[INFO] [stdout]    |
[INFO] [stdout] 54 | const EQUAL_CAPTURE_SCORE: i32 = 800000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `hash_move` is never read
[INFO] [stdout]    --> src/search/alphabeta.rs:308:5
[INFO] [stdout]     |
[INFO] [stdout] 304 | struct MoveOrder {
[INFO] [stdout]     |        --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 308 |     hash_move: Move,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `root_position` and `thread_id` are never read
[INFO] [stdout]    --> src/search/alphabeta.rs:445:5
[INFO] [stdout]     |
[INFO] [stdout] 440 | pub struct SearchContext {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 445 |     root_position: Position,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 448 |     thread_id: usize,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/search/alphabeta.rs:457:8
[INFO] [stdout]     |
[INFO] [stdout] 456 | impl SearchContext {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] 457 |     fn new(
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCORE_NONE` is never used
[INFO] [stdout]  --> src/search/transposition.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const SCORE_NONE: i32 = -32768;
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]    --> src/nnue/nnue.rs:302:30
[INFO] [stdout]     |
[INFO] [stdout] 302 |     pub fn debug_psqt(&self, pos: &Position) {
[INFO] [stdout]     |                              ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `version`
[INFO] [stdout]   --> src/nnue/nnue_weights.rs:52:13
[INFO] [stdout]    |
[INFO] [stdout] 52 |         let version = reader.read_u32::<LittleEndian>()?;
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_version`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `description`
[INFO] [stdout]   --> src/nnue/nnue_weights.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |         let description = String::from_utf8_lossy(&desc_bytes);
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_description`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FULL` is never used
[INFO] [stdout]  --> src/board/bitboard.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub const FULL: Bitboard = 0xFFFF_FFFF_FFFF_FFFF;
[INFO] [stdout]   |           ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RANK_2` is never used
[INFO] [stdout]  --> src/board/bitboard.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const RANK_2: Bitboard = 0x0000_0000_0000_FF00;
[INFO] [stdout]   |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RANK_3` is never used
[INFO] [stdout]  --> src/board/bitboard.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const RANK_3: Bitboard = 0x0000_0000_00FF_0000;
[INFO] [stdout]   |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RANK_4` is never used
[INFO] [stdout]   --> src/board/bitboard.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const RANK_4: Bitboard = 0x0000_0000_FF00_0000;
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RANK_5` is never used
[INFO] [stdout]   --> src/board/bitboard.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const RANK_5: Bitboard = 0x0000_00FF_0000_0000;
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RANK_6` is never used
[INFO] [stdout]   --> src/board/bitboard.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const RANK_6: Bitboard = 0x0000_FF00_0000_0000;
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RANK_7` is never used
[INFO] [stdout]   --> src/board/bitboard.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub const RANK_7: Bitboard = 0x00FF_0000_0000_0000;
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FILE_D` is never used
[INFO] [stdout]   --> src/board/bitboard.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub const FILE_D: Bitboard = 0x0808_0808_0808_0808;
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FILE_F` is never used
[INFO] [stdout]   --> src/board/bitboard.rs:21:11
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub const FILE_F: Bitboard = 0x2020_2020_2020_2020;
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `toggle_bit` is never used
[INFO] [stdout]   --> src/board/bitboard.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub fn toggle_bit(bb: &mut Bitboard, square: u8) {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_rank` is never used
[INFO] [stdout]    --> src/board/bitboard.rs:139:14
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub const fn get_rank(square: u8) -> u8 {
[INFO] [stdout]     |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_file` is never used
[INFO] [stdout]    --> src/board/bitboard.rs:144:14
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub const fn get_file(square: u8) -> u8 {
[INFO] [stdout]     |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rank_mask` is never used
[INFO] [stdout]    --> src/board/bitboard.rs:149:14
[INFO] [stdout]     |
[INFO] [stdout] 149 | pub const fn rank_mask(rank: u8) -> Bitboard {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `file_mask` is never used
[INFO] [stdout]    --> src/board/bitboard.rs:154:14
[INFO] [stdout]     |
[INFO] [stdout] 154 | pub const fn file_mask(file: u8) -> Bitboard {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `square_distance` is never used
[INFO] [stdout]    --> src/board/bitboard.rs:159:8
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub fn square_distance(sq1: u8, sq2: u8) -> u8 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BitboardIterator` is never constructed
[INFO] [stdout]    --> src/board/bitboard.rs:195:12
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub struct BitboardIterator {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/board/bitboard.rs:201:18
[INFO] [stdout]     |
[INFO] [stdout] 199 | impl BitboardIterator {
[INFO] [stdout]     | --------------------- associated function in this implementation
[INFO] [stdout] 200 |     #[inline(always)]
[INFO] [stdout] 201 |     pub const fn new(bb: Bitboard) -> Self {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `iter_bits` is never used
[INFO] [stdout]    --> src/board/bitboard.rs:221:14
[INFO] [stdout]     |
[INFO] [stdout] 221 | pub const fn iter_bits(bb: Bitboard) -> BitboardIterator {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print` is never used
[INFO] [stdout]    --> src/board/bitboard.rs:225:8
[INFO] [stdout]     |
[INFO] [stdout] 225 | pub fn print(bb: Bitboard) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `king_to` and `castling_rights_mask` are never read
[INFO] [stdout]    --> src/board/position.rs:140:9
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub struct CastleData {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 140 |     pub king_to: u8,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub castling_rights_mask: u8,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `CASTLE_MOVES` is never used
[INFO] [stdout]    --> src/board/position.rs:174:8
[INFO] [stdout]     |
[INFO] [stdout] 174 | static CASTLE_MOVES: [[(u8, u8, u8); 2]; 2] = [
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `CASTLE_TYPE` is never used
[INFO] [stdout]    --> src/board/position.rs:179:8
[INFO] [stdout]     |
[INFO] [stdout] 179 | static CASTLE_TYPE: [Option<(Color, usize)>; 64] = {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_u32`, `to_u32`, and `is_pawn_move` are never used
[INFO] [stdout]    --> src/board/position.rs:211:18
[INFO] [stdout]     |
[INFO] [stdout] 192 | impl Move {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub const fn from_u32(val:u32) -> Self { Self(val) }
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub const fn to_u32(self) -> u32 { self.0}
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub const fn is_pawn_move(&self) -> bool {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MoveHashData` is never constructed
[INFO] [stdout]    --> src/board/position.rs:306:8
[INFO] [stdout]     |
[INFO] [stdout] 306 | struct MoveHashData {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]     --> src/board/position.rs:358:12
[INFO] [stdout]      |
[INFO] [stdout]  313 | impl Position {
[INFO] [stdout]      | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  358 |     pub fn see_ge(&self, mv: Move, threshold: i32) -> bool {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  480 |     pub fn is_capture(&self, mv: Move) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  485 |     pub fn piece_value(&self, piece: PieceType) -> i32 {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  578 |     pub fn captured_piece(&self, mv: Move) -> PieceType {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  583 |     pub fn is_pinned(&self, square: u8, color: Color) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  831 |     pub fn get_pinned_piece_legal_squares(&self, square: u8, color: Color) -> Bitboard {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  951 |     fn find_checking_piece(&self, king_square: u8, color: Color) -> Option<(u8, PieceType)> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1029 |     fn count_checks(&self, color: Color) -> u32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1154 |     pub fn remove_piece(&mut self, square: u8) {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1213 |     pub fn king_check(&self, color: Color) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1247 |     pub fn push_undo(self, undo: UndoInfo) {
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1607 |     pub fn is_square_attacked_after_move(&self, square: u8, by_color: Color, occupied: u64) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1649 |     pub fn is_in_check_with_all_attackers(&self, color: Color) -> (bool, Vec<PieceType>) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1705 |     pub fn square_attacked_by(&self, square: u8, by_color: Color) -> Option<PieceType> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1905 |     pub fn get_knight_attacks(&self, square: u8) -> Bitboard {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1910 |     pub fn get_king_attacks(&self, square: u8) -> Bitboard {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1914 |     pub fn copy_from(&mut self, other: &Position) {
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1932 |     pub fn create_temp_copy(&self) -> Position {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2069 |     pub fn material_count(&self, color: Color) -> i32 {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WHITE_PAWN` is never used
[INFO] [stdout]   --> src/board/zobrist.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub const WHITE_PAWN: usize = 0;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WHITE_KNIGHT` is never used
[INFO] [stdout]   --> src/board/zobrist.rs:25:11
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub const WHITE_KNIGHT: usize = 1;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WHITE_BISHOP` is never used
[INFO] [stdout]   --> src/board/zobrist.rs:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub const WHITE_BISHOP: usize = 2;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WHITE_ROOK` is never used
[INFO] [stdout]   --> src/board/zobrist.rs:27:11
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub const WHITE_ROOK: usize = 3;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WHITE_QUEEN` is never used
[INFO] [stdout]   --> src/board/zobrist.rs:28:11
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub const WHITE_QUEEN: usize = 4;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WHITE_KING` is never used
[INFO] [stdout]   --> src/board/zobrist.rs:29:11
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub const WHITE_KING: usize = 5;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLACK_PAWN` is never used
[INFO] [stdout]   --> src/board/zobrist.rs:30:11
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub const BLACK_PAWN: usize = 6;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLACK_KNIGHT` is never used
[INFO] [stdout]   --> src/board/zobrist.rs:31:11
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub const BLACK_KNIGHT: usize = 7;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLACK_BISHOP` is never used
[INFO] [stdout]   --> src/board/zobrist.rs:32:11
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub const BLACK_BISHOP: usize = 8;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLACK_ROOK` is never used
[INFO] [stdout]   --> src/board/zobrist.rs:33:11
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub const BLACK_ROOK: usize = 9;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLACK_QUEEN` is never used
[INFO] [stdout]   --> src/board/zobrist.rs:34:11
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub const BLACK_QUEEN: usize = 10;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLACK_KING` is never used
[INFO] [stdout]   --> src/board/zobrist.rs:35:11
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub const BLACK_KING: usize = 11;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_piece_hash` is never used
[INFO] [stdout]    --> src/board/zobrist.rs:128:8
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub fn get_piece_hash(piece_index: usize, square: u8) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_en_passant_hash` is never used
[INFO] [stdout]    --> src/board/zobrist.rs:133:8
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub fn get_en_passant_hash(file: u8) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_castling_hash` is never used
[INFO] [stdout]    --> src/board/zobrist.rs:138:8
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub fn get_castling_hash(rights: u8) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_side_to_move_hash` is never used
[INFO] [stdout]    --> src/board/zobrist.rs:143:8
[INFO] [stdout]     |
[INFO] [stdout] 143 | pub fn get_side_to_move_hash() -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TEMPO_BONUS` is never used
[INFO] [stdout]   --> src/eval/mod.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub const TEMPO_BONUS: i32 = 28;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LAZY_EVAL_MARGIN` is never used
[INFO] [stdout]   --> src/eval/mod.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const LAZY_EVAL_MARGIN: i32 = 400;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EVAL_CACHE_SIZE` is never used
[INFO] [stdout]   --> src/eval/mod.rs:22:11
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub const EVAL_CACHE_SIZE: usize = 1024 * 1024;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `quick_eval` is never used
[INFO] [stdout]   --> src/eval/mod.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn quick_eval(pos: &crate::board::position::Position) -> i32 {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `needs_deep_eval` is never used
[INFO] [stdout]   --> src/eval/mod.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn needs_deep_eval(pos: &crate::board::position::Position) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `complexity_score` is never used
[INFO] [stdout]   --> src/eval/mod.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn complexity_score(pos: &crate::board::position::Position) -> i32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PAWN_VALUE_MG` is never used
[INFO] [stdout]   --> src/eval/material.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub const PAWN_VALUE_MG: i32 = 124;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PAWN_VALUE_EG` is never used
[INFO] [stdout]   --> src/eval/material.rs:16:11
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub const PAWN_VALUE_EG: i32 = 206;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KNIGHT_VALUE_EG` is never used
[INFO] [stdout]   --> src/eval/material.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const KNIGHT_VALUE_EG: i32 = 854;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROOK_VALUE_EG` is never used
[INFO] [stdout]   --> src/eval/material.rs:22:11
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub const ROOK_VALUE_EG: i32 = 1380;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `QUEEN_VALUE_EG` is never used
[INFO] [stdout]   --> src/eval/material.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub const QUEEN_VALUE_EG: i32 = 2682;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_PHASE` is never used
[INFO] [stdout]   --> src/eval/material.rs:96:11
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub const MAX_PHASE: u32 = 256;
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PHASE_VALUES` is never used
[INFO] [stdout]   --> src/eval/material.rs:97:7
[INFO] [stdout]    |
[INFO] [stdout] 97 | const PHASE_VALUES: [u32; 6] = [0, 1, 1, 2, 4, 0];
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_material_signature` is never used
[INFO] [stdout]    --> src/eval/material.rs:409:8
[INFO] [stdout]     |
[INFO] [stdout] 409 | pub fn get_material_signature(pos: &Position) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_endgame_scale_factor` is never used
[INFO] [stdout]    --> src/eval/material.rs:483:8
[INFO] [stdout]     |
[INFO] [stdout] 483 | pub fn get_endgame_scale_factor(pos: &Position, endgame_type: EndgameType) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_pst_move_delta` is never used
[INFO] [stdout]    --> src/eval/pst.rs:269:8
[INFO] [stdout]     |
[INFO] [stdout] 269 | pub fn get_pst_move_delta(piece_type: PieceType, from: u8, to: u8, color: Color) -> Score {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rank_to_square` is never used
[INFO] [stdout]    --> src/eval/pst.rs:281:14
[INFO] [stdout]     |
[INFO] [stdout] 281 | pub const fn rank_to_square(rank: u8, file: u8) -> u8 {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SHELTER_STRENGTH` is never used
[INFO] [stdout]   --> src/eval/pawns.rs:57:7
[INFO] [stdout]    |
[INFO] [stdout] 57 | const SHELTER_STRENGTH: [[i32; 8]; 4] = [
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STORM_DANGER` is never used
[INFO] [stdout]   --> src/eval/pawns.rs:64:7
[INFO] [stdout]    |
[INFO] [stdout] 64 | const STORM_DANGER: [[i32; 8]; 4] = [
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_king_pawn_shelter` is never used
[INFO] [stdout]    --> src/eval/pawns.rs:549:8
[INFO] [stdout]     |
[INFO] [stdout] 549 | pub fn evaluate_king_pawn_shelter(pos: &Position, color: Color) -> Score {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_outpost_square` is never used
[INFO] [stdout]    --> src/eval/pawns.rs:612:8
[INFO] [stdout]     |
[INFO] [stdout] 612 | pub fn is_outpost_square(pos: &Position, square: u8, color: Color) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROOK_ON_FILE` is never used
[INFO] [stdout]   --> src/eval/mobility.rs:89:7
[INFO] [stdout]    |
[INFO] [stdout] 89 | const ROOK_ON_FILE: [Score; 4] = [
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KNIGHT_ON_HOLE` is never used
[INFO] [stdout]    --> src/eval/mobility.rs:106:7
[INFO] [stdout]     |
[INFO] [stdout] 106 | const KNIGHT_ON_HOLE: Score = Score::new(17, 10);
[INFO] [stdout]     |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WING_FILES` is never used
[INFO] [stdout]   --> src/eval/space.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const WING_FILES: Bitboard = 0xC3C3C3C3C3C3C3C3;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_pawn_space` is never used
[INFO] [stdout]    --> src/eval/space.rs:308:8
[INFO] [stdout]     |
[INFO] [stdout] 308 | pub fn evaluate_pawn_space(pos: &Position) -> Score {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_piece_activity` is never used
[INFO] [stdout]    --> src/eval/space.rs:347:8
[INFO] [stdout]     |
[INFO] [stdout] 347 | pub fn evaluate_piece_activity(pos: &Position) -> Score {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_piece_activity_bonus` is never used
[INFO] [stdout]    --> src/eval/space.rs:373:4
[INFO] [stdout]     |
[INFO] [stdout] 373 | fn calculate_piece_activity_bonus(square: u8, color: Color) -> Score {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_king_in_danger` is never used
[INFO] [stdout]    --> src/eval/king_safety.rs:509:8
[INFO] [stdout]     |
[INFO] [stdout] 509 | pub fn is_king_in_danger(pos: &Position, color: Color) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_back_rank_threats` is never used
[INFO] [stdout]    --> src/eval/king_safety.rs:528:8
[INFO] [stdout]     |
[INFO] [stdout] 528 | pub fn evaluate_back_rank_threats(pos: &Position, color: Color) -> Score {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_castling_safety` is never used
[INFO] [stdout]    --> src/eval/king_safety.rs:585:8
[INFO] [stdout]     |
[INFO] [stdout] 585 | pub fn evaluate_castling_safety(pos: &Position, color: Color) -> Score {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_kingside_safety` is never used
[INFO] [stdout]    --> src/eval/king_safety.rs:611:4
[INFO] [stdout]     |
[INFO] [stdout] 611 | fn evaluate_kingside_safety(pos: &Position, color: Color) -> Score {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_queenside_safety` is never used
[INFO] [stdout]    --> src/eval/king_safety.rs:647:4
[INFO] [stdout]     |
[INFO] [stdout] 647 | fn evaluate_queenside_safety(pos: &Position, color: Color) -> Score {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_trade_value` is never used
[INFO] [stdout]    --> src/eval/imbalance.rs:308:8
[INFO] [stdout]     |
[INFO] [stdout] 308 | pub fn calculate_trade_value(us: &[u32; 6], them: &[u32; 6], piece_type: PieceType) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PIN_BONUS` is never used
[INFO] [stdout]   --> src/eval/threats.rs:50:7
[INFO] [stdout]    |
[INFO] [stdout] 50 | const PIN_BONUS: Score = Score::new(20, 25);
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DISCOVERED_ATTACK_BONUS` is never used
[INFO] [stdout]   --> src/eval/threats.rs:55:7
[INFO] [stdout]    |
[INFO] [stdout] 55 | const DISCOVERED_ATTACK_BONUS: Score = Score::new(35, 40);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_tactical_threats` is never used
[INFO] [stdout]    --> src/eval/threats.rs:857:8
[INFO] [stdout]     |
[INFO] [stdout] 857 | pub fn has_tactical_threats(pos: &Position, color: Color) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]   --> src/eval/eval_util.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl EvalCache {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn clear(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `GLOBAL_EVAL_CACHE` is never used
[INFO] [stdout]   --> src/eval/eval_util.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | static GLOBAL_EVAL_CACHE: Lazy<RwLock<EvalCache>> = Lazy::new(|| {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `probe_eval_cache` is never used
[INFO] [stdout]   --> src/eval/eval_util.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn probe_eval_cache(hash: u64) -> Option<i32> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `store_eval_cache` is never used
[INFO] [stdout]   --> src/eval/eval_util.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn store_eval_cache(hash: u64, score: i32, depth: u8) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clear_eval_cache` is never used
[INFO] [stdout]   --> src/eval/eval_util.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub fn clear_eval_cache() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `phase_value` is never used
[INFO] [stdout]   --> src/eval/eval_util.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub fn phase_value(phase: u32) -> f32 {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PIECE_VALUES` is never used
[INFO] [stdout]    --> src/eval/evaluate.rs:101:7
[INFO] [stdout]     |
[INFO] [stdout] 101 | const PIECE_VALUES: [i32; 7] = [0, 100, 320, 330, 500, 900, 10000];
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `mate_in`, `mated_in`, and `draw` are never used
[INFO] [stdout]    --> src/eval/evaluate.rs:201:12
[INFO] [stdout]     |
[INFO] [stdout] 185 | impl EvalResult {
[INFO] [stdout]     | --------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn mate_in(moves: i32) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn mated_in(moves: i32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn draw() -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `total` is never read
[INFO] [stdout]    --> src/eval/evaluate.rs:231:9
[INFO] [stdout]     |
[INFO] [stdout] 227 | pub struct DetailedEvaluation {
[INFO] [stdout]     |            ------------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub total: Score,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DetailedEvaluation` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_for_debug` is never used
[INFO] [stdout]    --> src/eval/evaluate.rs:936:8
[INFO] [stdout]     |
[INFO] [stdout] 936 | pub fn evaluate_for_debug(pos: &Position) -> EvalResult {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_for_color` is never used
[INFO] [stdout]    --> src/eval/evaluate.rs:993:8
[INFO] [stdout]     |
[INFO] [stdout] 993 | pub fn evaluate_for_color(pos: &Position, color: Color) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_winning` is never used
[INFO] [stdout]     --> src/eval/evaluate.rs:1008:8
[INFO] [stdout]      |
[INFO] [stdout] 1008 | pub fn is_winning(score: i32) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_drawn` is never used
[INFO] [stdout]     --> src/eval/evaluate.rs:1012:8
[INFO] [stdout]      |
[INFO] [stdout] 1012 | pub fn is_drawn(score: i32) -> bool {
[INFO] [stdout]      |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `score_to_win_probability` is never used
[INFO] [stdout]     --> src/eval/evaluate.rs:1016:8
[INFO] [stdout]      |
[INFO] [stdout] 1016 | pub fn score_to_win_probability(score: i32) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `endgame_scale_factor` is never used
[INFO] [stdout]     --> src/eval/evaluate.rs:1022:8
[INFO] [stdout]      |
[INFO] [stdout] 1022 | pub fn endgame_scale_factor(pos: &Position) -> f32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_eval_components` is never used
[INFO] [stdout]     --> src/eval/evaluate.rs:1046:8
[INFO] [stdout]      |
[INFO] [stdout] 1046 | pub fn get_eval_components(pos: &Position) -> [i32; 8] {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_complexity` is never used
[INFO] [stdout]     --> src/eval/evaluate.rs:1062:8
[INFO] [stdout]      |
[INFO] [stdout] 1062 | pub fn evaluate_complexity(pos: &Position) -> i32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `needs_careful_evaluation` is never used
[INFO] [stdout]     --> src/eval/evaluate.rs:1066:8
[INFO] [stdout]      |
[INFO] [stdout] 1066 | pub fn needs_careful_evaluation(pos: &Position) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `static_exchange_estimate` is never used
[INFO] [stdout]     --> src/eval/evaluate.rs:1101:8
[INFO] [stdout]      |
[INFO] [stdout] 1101 | pub fn static_exchange_estimate(pos: &Position, square: u8) -> i32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tactical_complexity` is never used
[INFO] [stdout]     --> src/eval/evaluate.rs:1115:8
[INFO] [stdout]      |
[INFO] [stdout] 1115 | pub fn tactical_complexity(pos: &Position) -> i32 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_nnue_enabled` is never used
[INFO] [stdout]     --> src/eval/evaluate.rs:1157:8
[INFO] [stdout]      |
[INFO] [stdout] 1157 | pub fn is_nnue_enabled() -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_eval_type` is never used
[INFO] [stdout]     --> src/eval/evaluate.rs:1162:8
[INFO] [stdout]      |
[INFO] [stdout] 1162 | pub fn get_eval_type() -> &'static str {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `use_aggressive_style` is never used
[INFO] [stdout]    --> src/eval/weights.rs:204:8
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub fn use_aggressive_style() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `use_positional_style` is never used
[INFO] [stdout]    --> src/eval/weights.rs:208:8
[INFO] [stdout]     |
[INFO] [stdout] 208 | pub fn use_positional_style() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `use_endgame_style` is never used
[INFO] [stdout]    --> src/eval/weights.rs:212:8
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub fn use_endgame_style() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bishop_pair_weight` is never used
[INFO] [stdout]    --> src/eval/weights.rs:222:8
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub fn bishop_pair_weight() -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pst_weight` is never used
[INFO] [stdout]    --> src/eval/weights.rs:227:8
[INFO] [stdout]     |
[INFO] [stdout] 227 | pub fn pst_weight() -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pawn_structure_weight` is never used
[INFO] [stdout]    --> src/eval/weights.rs:232:8
[INFO] [stdout]     |
[INFO] [stdout] 232 | pub fn pawn_structure_weight() -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mobility_weight` is never used
[INFO] [stdout]    --> src/eval/weights.rs:237:8
[INFO] [stdout]     |
[INFO] [stdout] 237 | pub fn mobility_weight() -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `space_weight` is never used
[INFO] [stdout]    --> src/eval/weights.rs:242:8
[INFO] [stdout]     |
[INFO] [stdout] 242 | pub fn space_weight() -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `king_safety_weight` is never used
[INFO] [stdout]    --> src/eval/weights.rs:247:8
[INFO] [stdout]     |
[INFO] [stdout] 247 | pub fn king_safety_weight() -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `imbalance_weight` is never used
[INFO] [stdout]    --> src/eval/weights.rs:252:8
[INFO] [stdout]     |
[INFO] [stdout] 252 | pub fn imbalance_weight() -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `threats_weight` is never used
[INFO] [stdout]    --> src/eval/weights.rs:257:8
[INFO] [stdout]     |
[INFO] [stdout] 257 | pub fn threats_weight() -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tempo_bonus_weight` is never used
[INFO] [stdout]    --> src/eval/weights.rs:262:8
[INFO] [stdout]     |
[INFO] [stdout] 262 | pub fn tempo_bonus_weight() -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scale_all_weights` is never used
[INFO] [stdout]    --> src/eval/weights.rs:270:8
[INFO] [stdout]     |
[INFO] [stdout] 270 | pub fn scale_all_weights(factor: f32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `adjust_weights_for_phase` is never used
[INFO] [stdout]    --> src/eval/weights.rs:424:8
[INFO] [stdout]     |
[INFO] [stdout] 424 | pub fn adjust_weights_for_phase(phase: u32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `position_favors_initiative` is never used
[INFO] [stdout]    --> src/eval/initiative.rs:287:8
[INFO] [stdout]     |
[INFO] [stdout] 287 | pub fn position_favors_initiative(pos: &Position) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `king_attacks` is never used
[INFO] [stdout]    --> src/movegen/magic.rs:415:8
[INFO] [stdout]     |
[INFO] [stdout] 415 | pub fn king_attacks(occ:Bitboard) -> Bitboard {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_moves` is never used
[INFO] [stdout]   --> src/movegen/moves.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn generate_moves(pos: &Position) -> Vec<Move> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_king_moves` is never used
[INFO] [stdout]    --> src/movegen/moves.rs:166:4
[INFO] [stdout]     |
[INFO] [stdout] 166 | fn generate_king_moves(pos: &Position, moves: &mut Vec<Move>) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_path_attacked` is never used
[INFO] [stdout]    --> src/movegen/moves.rs:238:4
[INFO] [stdout]     |
[INFO] [stdout] 238 | fn is_path_attacked(pos: &Position, path: Bitboard, king_sq: u8, by_color: Color) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_MOVES` is never used
[INFO] [stdout]   --> src/search/alphabeta.rs:31:7
[INFO] [stdout]    |
[INFO] [stdout] 31 | const MAX_MOVES: usize = 256;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MIN_SEARCH_DEPTH` is never used
[INFO] [stdout]   --> src/search/alphabeta.rs:33:7
[INFO] [stdout]    |
[INFO] [stdout] 33 | const MIN_SEARCH_DEPTH: i32 = 0;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LMR_BASE` is never used
[INFO] [stdout]   --> src/search/alphabeta.rs:42:7
[INFO] [stdout]    |
[INFO] [stdout] 42 | const LMR_BASE: f64 = 0.75;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LMR_FACTOR` is never used
[INFO] [stdout]   --> src/search/alphabeta.rs:43:7
[INFO] [stdout]    |
[INFO] [stdout] 43 | const LMR_FACTOR: f64 = 2.5;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NULL_MOVE_REDUCTION` is never used
[INFO] [stdout]   --> src/search/alphabeta.rs:49:7
[INFO] [stdout]    |
[INFO] [stdout] 49 | const NULL_MOVE_REDUCTION: i32 = 2;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NULL_MOVE_DEPTH_REDUCTION` is never used
[INFO] [stdout]   --> src/search/alphabeta.rs:50:7
[INFO] [stdout]    |
[INFO] [stdout] 50 | const NULL_MOVE_DEPTH_REDUCTION: i32 = 3;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EQUAL_CAPTURE_SCORE` is never used
[INFO] [stdout]   --> src/search/alphabeta.rs:54:7
[INFO] [stdout]    |
[INFO] [stdout] 54 | const EQUAL_CAPTURE_SCORE: i32 = 800000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `hashfull` is never read
[INFO] [stdout]   --> src/search/alphabeta.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub struct SearchResult {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 96 |     pub hashfull: u32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SearchResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `hash_move` is never read
[INFO] [stdout]    --> src/search/alphabeta.rs:308:5
[INFO] [stdout]     |
[INFO] [stdout] 304 | struct MoveOrder {
[INFO] [stdout]     |        --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 308 |     hash_move: Move,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `root_position` and `thread_id` are never read
[INFO] [stdout]    --> src/search/alphabeta.rs:445:5
[INFO] [stdout]     |
[INFO] [stdout] 440 | pub struct SearchContext {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 445 |     root_position: Position,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 448 |     thread_id: usize,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/search/alphabeta.rs:457:8
[INFO] [stdout]     |
[INFO] [stdout] 456 | impl SearchContext {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] 457 |     fn new(
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `see_ge_threshold` is never used
[INFO] [stdout]     --> src/search/alphabeta.rs:1575:8
[INFO] [stdout]      |
[INFO] [stdout] 1575 | pub fn see_ge_threshold(pos: &Position, mv: Move, threshold: i32) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `alpha_beta_search` is never used
[INFO] [stdout]     --> src/search/alphabeta.rs:1579:8
[INFO] [stdout]      |
[INFO] [stdout] 1579 | pub fn alpha_beta_search(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/search/time_management.rs:5:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub struct TimeManager {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout]  5 |     start_time: Instant,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]  6 |     allocated_time: Duration,
[INFO] [stdout]  7 |     move_time: Option<Duration>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 10 |     white_time: Option<u32>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 11 |     black_time: Option<u32>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 12 |     white_increment: Option<u32>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     black_increment: Option<u32>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |     moves_to_go: Option<u32>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 15 |     is_white_to_move: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TimeManager` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `is_infinite`, `new`, `can_extend`, `remaining_time_ms`, `elapsed_ms`, and `set_side_to_move` are never used
[INFO] [stdout]    --> src/search/time_management.rs:35:12
[INFO] [stdout]     |
[INFO] [stdout]  18 | impl TimeManager {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  35 |     pub fn is_infinite(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  39 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 196 |     pub fn can_extend(&self, start: Instant, extension_factor: f64) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn remaining_time_ms(&self) -> Option<u32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn elapsed_ms(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn set_side_to_move(&mut self, is_white: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCORE_NONE` is never used
[INFO] [stdout]  --> src/search/transposition.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const SCORE_NONE: i32 = -32768;
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BOUND_NONE` is never used
[INFO] [stdout]   --> src/search/transposition.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const BOUND_NONE: u8 = 0;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `store_eval` and `prefetch` are never used
[INFO] [stdout]    --> src/search/transposition.rs:216:12
[INFO] [stdout]     |
[INFO] [stdout]  98 | impl TranspositionTable {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn store_eval(
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     pub fn prefetch(&self, hash: u64) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `score_from_tt` and `score_to_tt` are never used
[INFO] [stdout]    --> src/search/transposition.rs:290:12
[INFO] [stdout]     |
[INFO] [stdout] 288 | impl TranspositionTable {
[INFO] [stdout]     | ----------------------- associated functions in this implementation
[INFO] [stdout] 289 |     #[inline(always)]
[INFO] [stdout] 290 |     pub fn score_from_tt(score: i32, ply: u8) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 301 |     pub fn score_to_tt(score: i32, ply: u8) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tt_score_from_tt` is never used
[INFO] [stdout]    --> src/search/transposition.rs:313:8
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub fn tt_score_from_tt(score: i32, ply: u8) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tt_score_to_tt` is never used
[INFO] [stdout]    --> src/search/transposition.rs:324:8
[INFO] [stdout]     |
[INFO] [stdout] 324 | pub fn tt_score_to_tt(score: i32, ply: u8) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_capture_on`, `is_quiet_on`, and `captured_piece_on` are never used
[INFO] [stdout]    --> src/search/transposition.rs:370:12
[INFO] [stdout]     |
[INFO] [stdout] 368 | impl Move {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] 369 |     #[inline(always)]
[INFO] [stdout] 370 |     pub fn is_capture_on(self, pos: &Position) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 376 |     pub fn is_quiet_on(self, pos: &Position) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 381 |     pub fn captured_piece_on(self, pos: &Position) -> PieceType {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TT_BOUND_NONE` is never used
[INFO] [stdout]    --> src/search/transposition.rs:390:11
[INFO] [stdout]     |
[INFO] [stdout] 390 | pub const TT_BOUND_NONE: u8 = BOUND_NONE;
[INFO] [stdout]     |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SearchResult` is never constructed
[INFO] [stdout]   --> src/search/search_node.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct SearchResult {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `history_pruning` is never used
[INFO] [stdout]    --> src/search/pruning.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub fn history_pruning(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `delta_pruning` is never used
[INFO] [stdout]    --> src/search/pruning.rs:172:8
[INFO] [stdout]     |
[INFO] [stdout] 172 | pub fn delta_pruning(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `History` and `Delta` are never constructed
[INFO] [stdout]    --> src/search/pruning.rs:218:5
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub enum PruningReason {
[INFO] [stdout]     |          ------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 218 |     History,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 219 |     MultiCut,
[INFO] [stdout] 220 |     Delta,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PruningReason` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `description` is never used
[INFO] [stdout]    --> src/search/pruning.rs:225:12
[INFO] [stdout]     |
[INFO] [stdout] 223 | impl PruningReason {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] 224 |     #[inline(always)]
[INFO] [stdout] 225 |     pub fn description(&self) -> &'static str {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]    --> src/search/pruning.rs:281:12
[INFO] [stdout]     |
[INFO] [stdout] 259 | impl PruningStats {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 281 |     pub fn clear(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `singular_extension_check` is never used
[INFO] [stdout]    --> src/search/pruning.rs:306:8
[INFO] [stdout]     |
[INFO] [stdout] 306 | pub fn singular_extension_check(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `singular_extension_result` is never used
[INFO] [stdout]    --> src/search/pruning.rs:338:8
[INFO] [stdout]     |
[INFO] [stdout] 338 | pub fn singular_extension_result(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_file` and `debug_psqt` are never used
[INFO] [stdout]    --> src/nnue/nnue.rs:45:12
[INFO] [stdout]     |
[INFO] [stdout]  36 | impl NNUE {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  45 |     pub fn from_file(path: &str) -> Result<Self, Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 302 |     pub fn debug_psqt(&self, pos: &Position) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_ft_weight`, `get_ft_bias`, and `get_ft_weights_slice` are never used
[INFO] [stdout]    --> src/nnue/nnue_weights.rs:158:12
[INFO] [stdout]     |
[INFO] [stdout]  28 | impl NNUEWeights {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 158 |     pub fn get_ft_weight(&self, feature_idx: usize, neuron_idx: usize) -> i16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn get_ft_bias(&self, neuron_idx: usize) -> i16 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub fn get_ft_weights_slice(&self, neuron_idx: usize) -> &[i16] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [optimized] target(s) in 1m 15s
[INFO] running `Command { std: "docker" "inspect" "11a030c90c811949b6a9c2176e81ebb270d717d4b2ccdd64f2bb5bb73aa102a7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "11a030c90c811949b6a9c2176e81ebb270d717d4b2ccdd64f2bb5bb73aa102a7", kill_on_drop: false }`
[INFO] [stdout] 11a030c90c811949b6a9c2176e81ebb270d717d4b2ccdd64f2bb5bb73aa102a7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 93061b063777cfc9048d4f697783e6e16e9b45f5b651d6e0b31de64f18bfdcaa
[INFO] running `Command { std: "docker" "start" "-a" "93061b063777cfc9048d4f697783e6e16e9b45f5b651d6e0b31de64f18bfdcaa", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `crate::eval::evaluate::Score`
[INFO] [stderr]  --> src/board/position.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::eval::evaluate::Score;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `get_queen_attacks`
[INFO] [stderr]  --> src/board/position.rs:6:120
[INFO] [stderr]   |
[INFO] [stderr] 6 | ...acks,get_king_attacks,get_pawn_attacks,get_rook_attacks,get_queen_attacks,get_knight_attacks};
[INFO] [stderr]   |                                                            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]     --> src/board/position.rs:1730:20
[INFO] [stderr]      |
[INFO] [stderr] 1730 |                 if (self.has_diagonal_attack(square, bishops)) {
[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] 1730 -                 if (self.has_diagonal_attack(square, bishops)) {
[INFO] [stderr] 1730 +                 if self.has_diagonal_attack(square, bishops) {
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]     --> src/board/position.rs:1740:20
[INFO] [stderr]      |
[INFO] [stderr] 1740 |                 if (self.has_straight_attack(square, rooks)) {
[INFO] [stderr]      |                    ^                                       ^
[INFO] [stderr]      |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]      |
[INFO] [stderr] 1740 -                 if (self.has_straight_attack(square, rooks)) {
[INFO] [stderr] 1740 +                 if self.has_straight_attack(square, rooks) {
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `super::bitboard::Bitboard`
[INFO] [stderr]  --> src/board/zobrist.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use super::bitboard::Bitboard;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::board::bitboard::Bitboard`
[INFO] [stderr]  --> src/eval/material.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::board::bitboard::Bitboard;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `EMPTY`, `FILE_A`, `FILE_B`, `FILE_C`, `FILE_D`, `FILE_E`, `FILE_F`, `FILE_G`, and `FILE_H`
[INFO] [stderr]  --> src/eval/pawns.rs:2:40
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::board::bitboard::{Bitboard, EMPTY, FILE_A, FILE_B, FILE_C, FILE_D, FILE_E, FILE_F, FILE_G, FILE_H};
[INFO] [stderr]   |                                        ^^^^^  ^^^^^^  ^^^^^^  ^^^^^^  ^^^^^^  ^^^^^^  ^^^^^^  ^^^^^^  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::nnue::nnue_accumulator::AccumulatorCache`
[INFO] [stderr]  --> src/eval/evaluate.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use crate::nnue::nnue_accumulator::AccumulatorCache;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `get_bishop_attacks`, `get_knight_attacks`, `get_queen_attacks`, and `get_rook_attacks`
[INFO] [stderr]    --> src/eval/evaluate.rs:543:33
[INFO] [stderr]     |
[INFO] [stderr] 543 |     use crate::movegen::magic::{get_knight_attacks, get_bishop_attacks, get_rook_attacks, get_queen_attacks};
[INFO] [stderr]     |                                 ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `EMPTY`
[INFO] [stderr]  --> src/eval/mobility.rs:2:40
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::board::bitboard::{Bitboard, EMPTY};
[INFO] [stderr]   |                                        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `get_king_attacks` and `get_pawn_attacks`
[INFO] [stderr]  --> src/eval/mobility.rs:6:24
[INFO] [stderr]   |
[INFO] [stderr] 6 |     get_queen_attacks, get_king_attacks, get_pawn_attacks
[INFO] [stderr]   |                        ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/eval/mobility.rs:281:11
[INFO] [stderr]     |
[INFO] [stderr] 281 |         if((our_pawns.count_ones()+opposite_pawns.count_ones())<=12){
[INFO] [stderr]     |           ^                                                        ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 281 -         if((our_pawns.count_ones()+opposite_pawns.count_ones())<=12){
[INFO] [stderr] 281 +         if (our_pawns.count_ones()+opposite_pawns.count_ones())<=12 {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `EMPTY`
[INFO] [stderr]  --> src/eval/space.rs:3:40
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::board::bitboard::{Bitboard, EMPTY, CENTER, EXTENDED_CENTER};
[INFO] [stderr]   |                                        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `get_pawn_attacks`
[INFO] [stderr]  --> src/eval/space.rs:5:42
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::movegen::magic::{all_attacks, get_pawn_attacks};
[INFO] [stderr]   |                                          ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `EMPTY`, `FILE_A`, and `FILE_H`
[INFO] [stderr]  --> src/eval/king_safety.rs:2:40
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::board::bitboard::{Bitboard, EMPTY, FILE_A, FILE_H};
[INFO] [stderr]   |                                        ^^^^^  ^^^^^^  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `file_of` and `relative_rank`
[INFO] [stderr]  --> src/eval/king_safety.rs:4:24
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::eval::pst::{file_of, rank_of, relative_rank};
[INFO] [stderr]   |                        ^^^^^^^           ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `EMPTY`
[INFO] [stderr]  --> src/eval/threats.rs:2:40
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::board::bitboard::{Bitboard, EMPTY};
[INFO] [stderr]   |                                        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `file_of` and `rank_of`
[INFO] [stderr]  --> src/eval/threats.rs:4:24
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::eval::pst::{file_of, rank_of};
[INFO] [stderr]   |                        ^^^^^^^  ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::eval::evaluate::Score`
[INFO] [stderr]  --> src/eval/eval_util.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::eval::evaluate::Score;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `popcount` and `square_mask`
[INFO] [stderr]  --> src/movegen/magic.rs:1:40
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::board::bitboard::{Bitboard, popcount, square_mask, EMPTY};
[INFO] [stderr]   |                                        ^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/movegen/magic.rs:131:7
[INFO] [stderr]     |
[INFO] [stderr] 131 |     if(square == 64){
[INFO] [stderr]     |       ^            ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 131 -     if(square == 64){
[INFO] [stderr] 131 +     if square == 64 {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `has_bit` and `square_mask`
[INFO] [stderr]  --> src/movegen/moves.rs:1:40
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::board::bitboard::{Bitboard, square_mask, has_bit};
[INFO] [stderr]   |                                        ^^^^^^^^^^^  ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `all_attacks`
[INFO] [stderr]  --> src/movegen/moves.rs:7:44
[INFO] [stderr]   |
[INFO] [stderr] 7 |                    add_moves_from_bitboard,all_attacks};
[INFO] [stderr]   |                                            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::arch::x86_64::*`
[INFO] [stderr]   --> src/movegen/moves.rs:29:5
[INFO] [stderr]    |
[INFO] [stderr] 29 | use std::arch::x86_64::*;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::movegen::magic::all_attacks_for_king`
[INFO] [stderr]  --> src/movegen/legal_moves.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::movegen::magic::all_attacks_for_king;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `MoveType`, `move_to_uci`, `nnue::nnue`, and `transposition::TranspositionTable`
[INFO] [stderr]   --> src/uci/protocol.rs:4:47
[INFO] [stderr]    |
[INFO] [stderr]  4 |         position::{Position, Move, PieceType, MoveType, Color},
[INFO] [stderr]    |                                               ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  9 |         legal_moves::{generate_legal_moves,move_to_uci},
[INFO] [stderr]    |                                            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 15 |         transposition::TranspositionTable,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 18 |     nnue::nnue
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `DRAW_VALUE`, `Score`, `TTData`, `ZOBRIST`, `all_attacks_for_king`, `all_attacks`, `eval_util`, `evaluate_int`, `get_queen_attacks`, and `nnue::NNUE`
[INFO] [stderr]   --> src/search/alphabeta.rs:4:19
[INFO] [stderr]    |
[INFO] [stderr]  4 |         zobrist::{ZOBRIST},
[INFO] [stderr]    |                   ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  7 |         evaluate::{evaluate, evaluate_fast, Score, MATE_VALUE, DRAW_VALUE, evaluate_int,nnue_push_move, nnue_pop_move,nnue_refresh},
[INFO] [stderr]    |                                             ^^^^^              ^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stderr]  8 |         material::calculate_phase,
[INFO] [stderr]  9 |         eval_util,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 13 |         magic::{all_attacks, get_bishop_attacks, get_rook_attacks, get_queen_attacks,
[INFO] [stderr]    |                 ^^^^^^^^^^^                                        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 14 |                 get_knight_attacks, get_king_attacks, get_pawn_attacks, all_attacks_for_king},
[INFO] [stderr]    |                                                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 18 |         transposition::{TranspositionTable, TT_BOUND_EXACT, TT_BOUND_LOWER, TT_BOUND_UPPER, TTData},
[INFO] [stderr]    |                                                                                             ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 21 |     nnue::{nnue::NNUE}
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `max` and `min`
[INFO] [stderr]   --> src/search/alphabeta.rs:27:16
[INFO] [stderr]    |
[INFO] [stderr] 27 | use std::cmp::{max, min};
[INFO] [stderr]    |                ^^^  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around block return value
[INFO] [stderr]     --> src/search/alphabeta.rs:1413:61
[INFO] [stderr]      |
[INFO] [stderr] 1413 |                 depth_offset: if thread_id < 4 { 0 } else { (thread_id as i32 / 4) },
[INFO] [stderr]      |                                                             ^                    ^
[INFO] [stderr]      |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]      |
[INFO] [stderr] 1413 -                 depth_offset: if thread_id < 4 { 0 } else { (thread_id as i32 / 4) },
[INFO] [stderr] 1413 +                 depth_offset: if thread_id < 4 { 0 } else { thread_id as i32 / 4  },
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::sync::Arc`
[INFO] [stderr]  --> src/search/search_node.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::sync::Arc;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::sync::atomic::AtomicBool`
[INFO] [stderr]  --> src/search/search_node.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::sync::atomic::AtomicBool;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Position`, `search::alphabeta::alpha_beta_search`, and `search::time_management::TimeManager`
[INFO] [stderr]  --> src/search/search_node.rs:4:23
[INFO] [stderr]   |
[INFO] [stderr] 4 |     board::position::{Position, Move},
[INFO] [stderr]   |                       ^^^^^^^^
[INFO] [stderr] 5 |     eval::evaluate::Score,
[INFO] [stderr] 6 |     search::alphabeta::alpha_beta_search,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 7 |     search::time_management::TimeManager,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Move`
[INFO] [stderr]  --> src/search/pruning.rs:1:40
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::board::position::{Position, Move, Color, PieceType};
[INFO] [stderr]   |                                        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::eval::material::calculate_phase`
[INFO] [stderr]  --> src/search/pruning.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::eval::material::calculate_phase;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `PieceType`
[INFO] [stderr]  --> src/nnue/nnue.rs:3:47
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::board::position::{Position, Color, PieceType};
[INFO] [stderr]   |                                               ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `captured_pawn_square`
[INFO] [stderr]    --> src/board/position.rs:805:13
[INFO] [stderr]     |
[INFO] [stderr] 805 |         let captured_pawn_square = to ^ 8;
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_captured_pawn_square`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `king_square`
[INFO] [stderr]    --> src/board/position.rs:807:13
[INFO] [stderr]     |
[INFO] [stderr] 807 |         let king_square = self.king_square(self.side_to_move);
[INFO] [stderr]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_king_square`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `undo`
[INFO] [stderr]     --> src/board/position.rs:1247:28
[INFO] [stderr]      |
[INFO] [stderr] 1247 |     pub fn push_undo(self, undo: UndoInfo) {
[INFO] [stderr]      |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_undo`
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/board/position.rs:1752:9
[INFO] [stderr]      |
[INFO] [stderr] 1752 |         unsafe {
[INFO] [stderr]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/board/position.rs:1766:9
[INFO] [stderr]      |
[INFO] [stderr] 1766 |         unsafe {
[INFO] [stderr]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `by_color`
[INFO] [stderr]     --> src/board/position.rs:1765:58
[INFO] [stderr]      |
[INFO] [stderr] 1765 |     pub fn is_square_attacked_ovi_upg(&self, square: u8, by_color: Color,atts:Bitboard) -> bool {
[INFO] [stderr]      |                                                          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_by_color`
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]     --> src/board/position.rs:1779:9
[INFO] [stderr]      |
[INFO] [stderr] 1779 |         unsafe {
[INFO] [stderr]      |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pos`
[INFO] [stderr]    --> src/eval/material.rs:483:33
[INFO] [stderr]     |
[INFO] [stderr] 483 | pub fn get_endgame_scale_factor(pos: &Position, endgame_type: EndgameType) -> f32 {
[INFO] [stderr]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stderr]    --> src/eval/pst.rs:185:9
[INFO] [stderr]     |
[INFO] [stderr] 185 |         (*table_ptr)[PieceType::Pawn as usize].mg[sq] = PAWN_MG[sq];
[INFO] [stderr]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stderr] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stderr]    --> src/eval/pst.rs:182:1
[INFO] [stderr]     |
[INFO] [stderr] 182 | unsafe fn init_pawn_table() {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stderr]    --> src/eval/pst.rs:186:9
[INFO] [stderr]     |
[INFO] [stderr] 186 |         (*table_ptr)[PieceType::Pawn as usize].eg[sq] = PAWN_EG[sq];
[INFO] [stderr]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stderr]    --> src/eval/pst.rs:193:9
[INFO] [stderr]     |
[INFO] [stderr] 193 |         (*table_ptr)[PieceType::Knight as usize].mg[sq] = KNIGHT_MG[sq];
[INFO] [stderr]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stderr] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stderr]    --> src/eval/pst.rs:190:1
[INFO] [stderr]     |
[INFO] [stderr] 190 | unsafe fn init_knight_table() {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stderr]    --> src/eval/pst.rs:194:9
[INFO] [stderr]     |
[INFO] [stderr] 194 |         (*table_ptr)[PieceType::Knight as usize].eg[sq] = KNIGHT_EG[sq];
[INFO] [stderr]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stderr]    --> src/eval/pst.rs:201:9
[INFO] [stderr]     |
[INFO] [stderr] 201 |         (*table_ptr)[PieceType::Bishop as usize].mg[sq] = BISHOP_MG[sq];
[INFO] [stderr]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stderr] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stderr]    --> src/eval/pst.rs:198:1
[INFO] [stderr]     |
[INFO] [stderr] 198 | unsafe fn init_bishop_table() {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stderr]    --> src/eval/pst.rs:202:9
[INFO] [stderr]     |
[INFO] [stderr] 202 |         (*table_ptr)[PieceType::Bishop as usize].eg[sq] = BISHOP_EG[sq];
[INFO] [stderr]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stderr]    --> src/eval/pst.rs:209:9
[INFO] [stderr]     |
[INFO] [stderr] 209 |         (*table_ptr)[PieceType::Rook as usize].mg[sq] = ROOK_MG[sq];
[INFO] [stderr]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stderr] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stderr]    --> src/eval/pst.rs:206:1
[INFO] [stderr]     |
[INFO] [stderr] 206 | unsafe fn init_rook_table() {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stderr]    --> src/eval/pst.rs:210:9
[INFO] [stderr]     |
[INFO] [stderr] 210 |         (*table_ptr)[PieceType::Rook as usize].eg[sq] = ROOK_EG[sq];
[INFO] [stderr]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stderr]    --> src/eval/pst.rs:217:9
[INFO] [stderr]     |
[INFO] [stderr] 217 |         (*table_ptr)[PieceType::Queen as usize].mg[sq] = QUEEN_MG[sq];
[INFO] [stderr]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stderr] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stderr]    --> src/eval/pst.rs:214:1
[INFO] [stderr]     |
[INFO] [stderr] 214 | unsafe fn init_queen_table() {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stderr]    --> src/eval/pst.rs:218:9
[INFO] [stderr]     |
[INFO] [stderr] 218 |         (*table_ptr)[PieceType::Queen as usize].eg[sq] = QUEEN_EG[sq];
[INFO] [stderr]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stderr]    --> src/eval/pst.rs:225:9
[INFO] [stderr]     |
[INFO] [stderr] 225 |         (*table_ptr)[PieceType::King as usize].mg[sq] = KING_MG[sq];
[INFO] [stderr]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stderr] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stderr]    --> src/eval/pst.rs:222:1
[INFO] [stderr]     |
[INFO] [stderr] 222 | unsafe fn init_king_table() {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stderr]    --> src/eval/pst.rs:226:9
[INFO] [stderr]     |
[INFO] [stderr] 226 |         (*table_ptr)[PieceType::King as usize].eg[sq] = KING_EG[sq];
[INFO] [stderr]     |         ^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stderr] 
[INFO] [stderr] warning: variable `doubled_count` is assigned to, but never used
[INFO] [stderr]    --> src/eval/pawns.rs:279:9
[INFO] [stderr]     |
[INFO] [stderr] 279 |     let mut doubled_count = 0;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: consider using `_doubled_count` instead
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `square_bb`
[INFO] [stderr]    --> src/eval/pawns.rs:310:13
[INFO] [stderr]     |
[INFO] [stderr] 310 |         let square_bb = 1u64 << square;
[INFO] [stderr]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_square_bb`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rank`
[INFO] [stderr]    --> src/eval/pawns.rs:313:13
[INFO] [stderr]     |
[INFO] [stderr] 313 |         let rank = rank_of(square);
[INFO] [stderr]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_rank`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `doubled_count` is never read
[INFO] [stderr]    --> src/eval/pawns.rs:290:17
[INFO] [stderr]     |
[INFO] [stderr] 290 |                 doubled_count += pawn_count - 1;
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `same_rank_mask`
[INFO] [stderr]    --> src/eval/pawns.rs:440:9
[INFO] [stderr]     |
[INFO] [stderr] 440 |     let same_rank_mask = 0xFFu64 << (rank * 8);
[INFO] [stderr]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_same_rank_mask`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `weights_arc`
[INFO] [stderr]    --> src/eval/evaluate.rs:337:17
[INFO] [stderr]     |
[INFO] [stderr] 337 |     if let Some(weights_arc) = GLOBAL_NNUE_WEIGHTS.get().and_then(|opt| opt.as_ref()) {
[INFO] [stderr]     |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_weights_arc`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `weights_arc`
[INFO] [stderr]    --> src/eval/evaluate.rs:392:17
[INFO] [stderr]     |
[INFO] [stderr] 392 |     if let Some(weights_arc) = GLOBAL_NNUE_WEIGHTS.get().and_then(|opt| opt.as_ref()) {
[INFO] [stderr]     |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_weights_arc`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `all_pieces`
[INFO] [stderr]    --> src/eval/evaluate.rs:546:9
[INFO] [stderr]     |
[INFO] [stderr] 546 |     let all_pieces = pos.all_pieces();
[INFO] [stderr]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_all_pieces`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `our_pieces`
[INFO] [stderr]    --> src/eval/evaluate.rs:550:13
[INFO] [stderr]     |
[INFO] [stderr] 550 |         let our_pieces = pos.pieces(color);
[INFO] [stderr]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_our_pieces`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `enemy_pieces`
[INFO] [stderr]    --> src/eval/mobility.rs:222:9
[INFO] [stderr]     |
[INFO] [stderr] 222 |     let enemy_pieces = pos.pieces(color.opposite());
[INFO] [stderr]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enemy_pieces`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `square_bb`
[INFO] [stderr]   --> src/eval/space.rs:96:13
[INFO] [stderr]    |
[INFO] [stderr] 96 |         let square_bb = 1u64 << square;
[INFO] [stderr]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_square_bb`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `king_rank`
[INFO] [stderr]    --> src/eval/king_safety.rs:162:9
[INFO] [stderr]     |
[INFO] [stderr] 162 |     let king_rank = king_sq / 8;
[INFO] [stderr]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_king_rank`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `our_pawns`
[INFO] [stderr]    --> src/eval/king_safety.rs:476:9
[INFO] [stderr]     |
[INFO] [stderr] 476 |     let our_pawns = pos.pieces_colored(PieceType::Pawn, color);
[INFO] [stderr]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_our_pawns`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `piece_type`
[INFO] [stderr]    --> src/eval/threats.rs:153:46
[INFO] [stderr]     |
[INFO] [stderr] 153 | fn is_piece_weak(pos: &Position, square: u8, piece_type: PieceType, color: Color) -> bool {
[INFO] [stderr]     |                                              ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_piece_type`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `enemy_king`
[INFO] [stderr]    --> src/eval/threats.rs:404:9
[INFO] [stderr]     |
[INFO] [stderr] 404 |     let enemy_king = pos.king_square(color.opposite());
[INFO] [stderr]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enemy_king`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `our_pieces`
[INFO] [stderr]    --> src/eval/threats.rs:434:9
[INFO] [stderr]     |
[INFO] [stderr] 434 |     let our_pieces = pos.pieces(color);
[INFO] [stderr]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_our_pieces`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `enemy_valuable`
[INFO] [stderr]    --> src/eval/threats.rs:435:9
[INFO] [stderr]     |
[INFO] [stderr] 435 |     let enemy_valuable = pos.pieces_colored(PieceType::Queen, color.opposite()) |
[INFO] [stderr]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enemy_valuable`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ray`
[INFO] [stderr]    --> src/eval/threats.rs:758:22
[INFO] [stderr]     |
[INFO] [stderr] 758 | fn extend_ray_beyond(ray: Bitboard, from: u8, through: u8) -> Bitboard {
[INFO] [stderr]     |                      ^^^ help: if this is intentional, prefix it with an underscore: `_ray`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/eval/threats.rs:803:9
[INFO] [stderr]     |
[INFO] [stderr] 803 |     let mut temp_all_pieces = pos.all_pieces() & !(1u64 << blocker);
[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: `color`
[INFO] [stderr]   --> src/eval/initiative.rs:45:55
[INFO] [stderr]    |
[INFO] [stderr] 45 | fn evaluate_pawn_asymmetry_initiative(pos: &Position, color: Color) -> Score {
[INFO] [stderr]    |                                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_color`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/movegen/moves.rs:174:9
[INFO] [stderr]     |
[INFO] [stderr] 174 |     let mut attacks = get_king_attacks(from);
[INFO] [stderr]     |         ----^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/movegen/moves.rs:274:9
[INFO] [stderr]     |
[INFO] [stderr] 274 |     let mut attacks = get_king_attacks(from);
[INFO] [stderr]     |         ----^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `opponent_color`
[INFO] [stderr]   --> src/movegen/legal_moves.rs:12:9
[INFO] [stderr]    |
[INFO] [stderr] 12 |     let opponent_color = our_color.opposite();
[INFO] [stderr]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_opponent_color`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `found_moves` is assigned to, but never used
[INFO] [stderr]    --> src/uci/protocol.rs:383:21
[INFO] [stderr]     |
[INFO] [stderr] 383 |                 let mut found_moves = false;
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: consider using `_found_moves` instead
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `old_hash`
[INFO] [stderr]    --> src/uci/protocol.rs:424:29
[INFO] [stderr]     |
[INFO] [stderr] 424 |                         let old_hash = pos.hash;
[INFO] [stderr]     |                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_old_hash`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `new_position` is never read
[INFO] [stderr]    --> src/uci/protocol.rs:363:32
[INFO] [stderr]     |
[INFO] [stderr] 363 |         let mut new_position = None;
[INFO] [stderr]     |                                ^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `found_moves` is never read
[INFO] [stderr]    --> src/uci/protocol.rs:388:25
[INFO] [stderr]     |
[INFO] [stderr] 388 |                         found_moves = true;
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `piece`
[INFO] [stderr]    --> src/search/alphabeta.rs:356:14
[INFO] [stderr]     |
[INFO] [stderr] 356 |         let (piece, color) = pos.piece_at(from);
[INFO] [stderr]     |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_piece`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pos`
[INFO] [stderr]    --> src/search/alphabeta.rs:495:34
[INFO] [stderr]     |
[INFO] [stderr] 495 |     fn is_repetition_draw(&self, pos: &Position) -> bool {
[INFO] [stderr]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `score`
[INFO] [stderr]    --> src/search/alphabeta.rs:632:29
[INFO] [stderr]     |
[INFO] [stderr] 632 |                 if let Some(score) = razoring(pos, depth, alpha, static_eval) {
[INFO] [stderr]     |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_score`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `piece`
[INFO] [stderr]    --> src/search/alphabeta.rs:849:34
[INFO] [stderr]     |
[INFO] [stderr] 849 | ...                   let (piece, color) = pos.piece_at(mv.from());
[INFO] [stderr]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_piece`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `move_count` is assigned to, but never used
[INFO] [stderr]     --> src/search/alphabeta.rs:1008:17
[INFO] [stderr]      |
[INFO] [stderr] 1008 |             let mut move_count = 0;
[INFO] [stderr]      |                 ^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: consider using `_move_count` instead
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `move_count` is never read
[INFO] [stderr]     --> src/search/alphabeta.rs:1054:17
[INFO] [stderr]      |
[INFO] [stderr] 1054 |                 move_count += 1;
[INFO] [stderr]      |                 ^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `best_pv` is never read
[INFO] [stderr]     --> src/search/alphabeta.rs:1249:27
[INFO] [stderr]      |
[INFO] [stderr] 1249 |         let mut best_pv = Vec::new();
[INFO] [stderr]      |                           ^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `new_age`
[INFO] [stderr]    --> src/search/transposition.rs:136:62
[INFO] [stderr]     |
[INFO] [stderr] 136 |     fn should_replace(&self, entry: &TTEntry, new_depth: u8, new_age: u8, new_bound: u8) -> bool {
[INFO] [stderr]     |                                                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_age`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `lmp_idx`
[INFO] [stderr]   --> src/search/pruning.rs:99:9
[INFO] [stderr]    |
[INFO] [stderr] 99 |     let lmp_idx = is_pv as usize;
[INFO] [stderr]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lmp_idx`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `depth`
[INFO] [stderr]    --> src/search/pruning.rs:190:12
[INFO] [stderr]     |
[INFO] [stderr] 190 | pub fn new(depth: i32) -> Self {
[INFO] [stderr]     |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_depth`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `tt_score`
[INFO] [stderr]    --> src/search/pruning.rs:341:5
[INFO] [stderr]     |
[INFO] [stderr] 341 |     tt_score: i32,
[INFO] [stderr]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tt_score`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `depth`
[INFO] [stderr]    --> src/search/pruning.rs:342:5
[INFO] [stderr]     |
[INFO] [stderr] 342 |     depth: i32,
[INFO] [stderr]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_depth`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `is_pv`
[INFO] [stderr]    --> src/search/pruning.rs:343:5
[INFO] [stderr]     |
[INFO] [stderr] 343 |     is_pv: bool,
[INFO] [stderr]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_is_pv`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pos`
[INFO] [stderr]    --> src/nnue/nnue.rs:302:30
[INFO] [stderr]     |
[INFO] [stderr] 302 |     pub fn debug_psqt(&self, pos: &Position) {
[INFO] [stderr]     |                              ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `version`
[INFO] [stderr]   --> src/nnue/nnue_weights.rs:52:13
[INFO] [stderr]    |
[INFO] [stderr] 52 |         let version = reader.read_u32::<LittleEndian>()?;
[INFO] [stderr]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_version`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `description`
[INFO] [stderr]   --> src/nnue/nnue_weights.rs:61:13
[INFO] [stderr]    |
[INFO] [stderr] 61 |         let description = String::from_utf8_lossy(&desc_bytes);
[INFO] [stderr]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_description`
[INFO] [stderr] 
[INFO] [stderr] warning: static `CASTLE_MOVES` is never used
[INFO] [stderr]    --> src/board/position.rs:174:8
[INFO] [stderr]     |
[INFO] [stderr] 174 | static CASTLE_MOVES: [[(u8, u8, u8); 2]; 2] = [
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: static `CASTLE_TYPE` is never used
[INFO] [stderr]    --> src/board/position.rs:179:8
[INFO] [stderr]     |
[INFO] [stderr] 179 | static CASTLE_TYPE: [Option<(Color, usize)>; 64] = {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MoveHashData` is never constructed
[INFO] [stderr]    --> src/board/position.rs:306:8
[INFO] [stderr]     |
[INFO] [stderr] 306 | struct MoveHashData {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `find_checking_piece` and `count_checks` are never used
[INFO] [stderr]     --> src/board/position.rs:951:8
[INFO] [stderr]      |
[INFO] [stderr]  313 | impl Position {
[INFO] [stderr]      | ------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  951 |     fn find_checking_piece(&self, king_square: u8, color: Color) -> Option<(u8, PieceType)> {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1029 |     fn count_checks(&self, color: Color) -> u32 {
[INFO] [stderr]      |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `PHASE_VALUES` is never used
[INFO] [stderr]   --> src/eval/material.rs:97:7
[INFO] [stderr]    |
[INFO] [stderr] 97 | const PHASE_VALUES: [u32; 6] = [0, 1, 1, 2, 4, 0];
[INFO] [stderr]    |       ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `PIECE_VALUES` is never used
[INFO] [stderr]    --> src/eval/evaluate.rs:101:7
[INFO] [stderr]     |
[INFO] [stderr] 101 | const PIECE_VALUES: [i32; 7] = [0, 100, 320, 330, 500, 900, 10000];
[INFO] [stderr]     |       ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ROOK_ON_FILE` is never used
[INFO] [stderr]   --> src/eval/mobility.rs:89:7
[INFO] [stderr]    |
[INFO] [stderr] 89 | const ROOK_ON_FILE: [Score; 4] = [
[INFO] [stderr]    |       ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `KNIGHT_ON_HOLE` is never used
[INFO] [stderr]    --> src/eval/mobility.rs:106:7
[INFO] [stderr]     |
[INFO] [stderr] 106 | const KNIGHT_ON_HOLE: Score = Score::new(17, 10);
[INFO] [stderr]     |       ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WING_FILES` is never used
[INFO] [stderr]   --> src/eval/space.rs:18:7
[INFO] [stderr]    |
[INFO] [stderr] 18 | const WING_FILES: Bitboard = 0xC3C3C3C3C3C3C3C3;
[INFO] [stderr]    |       ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `PIN_BONUS` is never used
[INFO] [stderr]   --> src/eval/threats.rs:50:7
[INFO] [stderr]    |
[INFO] [stderr] 50 | const PIN_BONUS: Score = Score::new(20, 25);
[INFO] [stderr]    |       ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DISCOVERED_ATTACK_BONUS` is never used
[INFO] [stderr]   --> src/eval/threats.rs:55:7
[INFO] [stderr]    |
[INFO] [stderr] 55 | const DISCOVERED_ATTACK_BONUS: Score = Score::new(35, 40);
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_path_attacked` is never used
[INFO] [stderr]    --> src/movegen/moves.rs:238:4
[INFO] [stderr]     |
[INFO] [stderr] 238 | fn is_path_attacked(pos: &Position, path: Bitboard, king_sq: u8, by_color: Color) -> bool {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAX_MOVES` is never used
[INFO] [stderr]   --> src/search/alphabeta.rs:31:7
[INFO] [stderr]    |
[INFO] [stderr] 31 | const MAX_MOVES: usize = 256;
[INFO] [stderr]    |       ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MIN_SEARCH_DEPTH` is never used
[INFO] [stderr]   --> src/search/alphabeta.rs:33:7
[INFO] [stderr]    |
[INFO] [stderr] 33 | const MIN_SEARCH_DEPTH: i32 = 0;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `LMR_BASE` is never used
[INFO] [stderr]   --> src/search/alphabeta.rs:42:7
[INFO] [stderr]    |
[INFO] [stderr] 42 | const LMR_BASE: f64 = 0.75;
[INFO] [stderr]    |       ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `LMR_FACTOR` is never used
[INFO] [stderr]   --> src/search/alphabeta.rs:43:7
[INFO] [stderr]    |
[INFO] [stderr] 43 | const LMR_FACTOR: f64 = 2.5;
[INFO] [stderr]    |       ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NULL_MOVE_REDUCTION` is never used
[INFO] [stderr]   --> src/search/alphabeta.rs:49:7
[INFO] [stderr]    |
[INFO] [stderr] 49 | const NULL_MOVE_REDUCTION: i32 = 2;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NULL_MOVE_DEPTH_REDUCTION` is never used
[INFO] [stderr]   --> src/search/alphabeta.rs:50:7
[INFO] [stderr]    |
[INFO] [stderr] 50 | const NULL_MOVE_DEPTH_REDUCTION: i32 = 3;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `EQUAL_CAPTURE_SCORE` is never used
[INFO] [stderr]   --> src/search/alphabeta.rs:54:7
[INFO] [stderr]    |
[INFO] [stderr] 54 | const EQUAL_CAPTURE_SCORE: i32 = 800000;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `hash_move` is never read
[INFO] [stderr]    --> src/search/alphabeta.rs:308:5
[INFO] [stderr]     |
[INFO] [stderr] 304 | struct MoveOrder {
[INFO] [stderr]     |        --------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 308 |     hash_move: Move,
[INFO] [stderr]     |     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `root_position` and `thread_id` are never read
[INFO] [stderr]    --> src/search/alphabeta.rs:445:5
[INFO] [stderr]     |
[INFO] [stderr] 440 | pub struct SearchContext {
[INFO] [stderr]     |            ------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 445 |     root_position: Position,
[INFO] [stderr]     |     ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 448 |     thread_id: usize,
[INFO] [stderr]     |     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]    --> src/search/alphabeta.rs:457:8
[INFO] [stderr]     |
[INFO] [stderr] 456 | impl SearchContext {
[INFO] [stderr]     | ------------------ associated function in this implementation
[INFO] [stderr] 457 |     fn new(
[INFO] [stderr]     |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SCORE_NONE` is never used
[INFO] [stderr]  --> src/search/transposition.rs:6:7
[INFO] [stderr]   |
[INFO] [stderr] 6 | const SCORE_NONE: i32 = -32768;
[INFO] [stderr]   |       ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: crate `RuthChessOVI` should have a snake case name
[INFO] [stderr]   |
[INFO] [stderr]   = help: convert the identifier to snake case: `ruth_chess_ovi`
[INFO] [stderr]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] For more information about this error, try `rustc --explain E0133`.
[INFO] [stderr] warning: `RuthChessOVI` (lib) generated 122 warnings (run `cargo fix --lib -p RuthChessOVI` to apply 81 suggestions)
[INFO] [stderr] warning: unused imports: `EMPTY`, `FILE_D`, and `FILE_F`
[INFO] [stderr]  --> src/eval/pawns.rs:2:40
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::board::bitboard::{Bitboard, EMPTY, FILE_A, FILE_B, FILE_C, FILE_D, FILE_E, FILE_F, FILE_G, FILE_H};
[INFO] [stderr]   |                                        ^^^^^                          ^^^^^^          ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `white_pawns`
[INFO] [stderr]    --> src/eval/initiative.rs:393:13
[INFO] [stderr]     |
[INFO] [stderr] 393 |         let white_pawns = 1u64 << 36;
[INFO] [stderr]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_white_pawns`
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `DRAW_VALUE`, `EvalResult`, `MATE_VALUE`, `Score`, `evaluate_detailed`, `evaluate_fast`, and `evaluate`
[INFO] [stderr]   --> src/eval/mod.rs:15:20
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub use evaluate::{Score, EvalResult, evaluate, evaluate_fast, evaluate_detailed, MATE_VALUE, DRAW_VALUE};
[INFO] [stderr]    |                    ^^^^^  ^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `EvalCache`, `is_endgame`, `is_middlegame`, and `phase_value`
[INFO] [stderr]   --> src/eval/mod.rs:16:21
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub use eval_util::{EvalCache, phase_value, is_endgame, is_middlegame};
[INFO] [stderr]    |                     ^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `MAX_PHASE` and `calculate_phase`
[INFO] [stderr]   --> src/eval/mod.rs:17:20
[INFO] [stderr]    |
[INFO] [stderr] 17 | pub use material::{calculate_phase, MAX_PHASE};
[INFO] [stderr]    |                    ^^^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `nnue as nnue_fast`
[INFO] [stderr]  --> src/nnue/mod.rs:6:9
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub use nnue as nnue_fast;
[INFO] [stderr]   |         ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `nnue_accumulator as accumulator_fast`
[INFO] [stderr]  --> src/nnue/mod.rs:7:9
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub use nnue_accumulator as accumulator_fast;
[INFO] [stderr]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `nnue_weights as weights_fast`
[INFO] [stderr]  --> src/nnue/mod.rs:8:9
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub use nnue_weights as weights_fast;
[INFO] [stderr]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::eval::evaluate::evaluate`
[INFO] [stderr]   --> src/main.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | use crate::eval::evaluate::evaluate;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Move`, `PieceType`, and `Position`
[INFO] [stderr]   --> src/main.rs:12:37
[INFO] [stderr]    |
[INFO] [stderr] 12 | use RuthChessOVI::board::position::{Position,Move,PieceType,init_attack_tables};
[INFO] [stderr]    |                                     ^^^^^^^^ ^^^^ ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `RuthChessOVI::nnue::nnue::NNUE`
[INFO] [stderr]   --> src/main.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 14 | use RuthChessOVI::nnue::nnue::NNUE;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `BufRead`, `BufReader`, and `self`
[INFO] [stderr]   --> src/main.rs:16:15
[INFO] [stderr]    |
[INFO] [stderr] 16 | use std::io::{self, BufRead, BufReader};
[INFO] [stderr]    |               ^^^^  ^^^^^^^  ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::sync::Arc`
[INFO] [stderr]   --> src/main.rs:17:5
[INFO] [stderr]    |
[INFO] [stderr] 17 | use std::sync::Arc;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::thread`
[INFO] [stderr]   --> src/main.rs:18:5
[INFO] [stderr]    |
[INFO] [stderr] 18 | use std::thread;
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `uci::protocol`
[INFO] [stderr]   --> src/main.rs:21:5
[INFO] [stderr]    |
[INFO] [stderr] 21 | use uci::protocol;
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `FULL` is never used
[INFO] [stderr]  --> src/board/bitboard.rs:5:11
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub const FULL: Bitboard = 0xFFFF_FFFF_FFFF_FFFF;
[INFO] [stderr]   |           ^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `RANK_2` is never used
[INFO] [stderr]  --> src/board/bitboard.rs:8:11
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub const RANK_2: Bitboard = 0x0000_0000_0000_FF00;
[INFO] [stderr]   |           ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `RANK_3` is never used
[INFO] [stderr]  --> src/board/bitboard.rs:9:11
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub const RANK_3: Bitboard = 0x0000_0000_00FF_0000;
[INFO] [stderr]   |           ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `RANK_4` is never used
[INFO] [stderr]   --> src/board/bitboard.rs:10:11
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub const RANK_4: Bitboard = 0x0000_0000_FF00_0000;
[INFO] [stderr]    |           ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `RANK_5` is never used
[INFO] [stderr]   --> src/board/bitboard.rs:11:11
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub const RANK_5: Bitboard = 0x0000_00FF_0000_0000;
[INFO] [stderr]    |           ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `RANK_6` is never used
[INFO] [stderr]   --> src/board/bitboard.rs:12:11
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub const RANK_6: Bitboard = 0x0000_FF00_0000_0000;
[INFO] [stderr]    |           ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `RANK_7` is never used
[INFO] [stderr]   --> src/board/bitboard.rs:13:11
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub const RANK_7: Bitboard = 0x00FF_0000_0000_0000;
[INFO] [stderr]    |           ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `FILE_D` is never used
[INFO] [stderr]   --> src/board/bitboard.rs:19:11
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub const FILE_D: Bitboard = 0x0808_0808_0808_0808;
[INFO] [stderr]    |           ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `FILE_F` is never used
[INFO] [stderr]   --> src/board/bitboard.rs:21:11
[INFO] [stderr]    |
[INFO] [stderr] 21 | pub const FILE_F: Bitboard = 0x2020_2020_2020_2020;
[INFO] [stderr]    |           ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `toggle_bit` is never used
[INFO] [stderr]   --> src/board/bitboard.rs:75:8
[INFO] [stderr]    |
[INFO] [stderr] 75 | pub fn toggle_bit(bb: &mut Bitboard, square: u8) {
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_rank` is never used
[INFO] [stderr]    --> src/board/bitboard.rs:139:14
[INFO] [stderr]     |
[INFO] [stderr] 139 | pub const fn get_rank(square: u8) -> u8 {
[INFO] [stderr]     |              ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_file` is never used
[INFO] [stderr]    --> src/board/bitboard.rs:144:14
[INFO] [stderr]     |
[INFO] [stderr] 144 | pub const fn get_file(square: u8) -> u8 {
[INFO] [stderr]     |              ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `rank_mask` is never used
[INFO] [stderr]    --> src/board/bitboard.rs:149:14
[INFO] [stderr]     |
[INFO] [stderr] 149 | pub const fn rank_mask(rank: u8) -> Bitboard {
[INFO] [stderr]     |              ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `file_mask` is never used
[INFO] [stderr]    --> src/board/bitboard.rs:154:14
[INFO] [stderr]     |
[INFO] [stderr] 154 | pub const fn file_mask(file: u8) -> Bitboard {
[INFO] [stderr]     |              ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `square_distance` is never used
[INFO] [stderr]    --> src/board/bitboard.rs:159:8
[INFO] [stderr]     |
[INFO] [stderr] 159 | pub fn square_distance(sq1: u8, sq2: u8) -> u8 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `BitboardIterator` is never constructed
[INFO] [stderr]    --> src/board/bitboard.rs:195:12
[INFO] [stderr]     |
[INFO] [stderr] 195 | pub struct BitboardIterator {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]    --> src/board/bitboard.rs:201:18
[INFO] [stderr]     |
[INFO] [stderr] 199 | impl BitboardIterator {
[INFO] [stderr]     | --------------------- associated function in this implementation
[INFO] [stderr] 200 |     #[inline(always)]
[INFO] [stderr] 201 |     pub const fn new(bb: Bitboard) -> Self {
[INFO] [stderr]     |                  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `iter_bits` is never used
[INFO] [stderr]    --> src/board/bitboard.rs:221:14
[INFO] [stderr]     |
[INFO] [stderr] 221 | pub const fn iter_bits(bb: Bitboard) -> BitboardIterator {
[INFO] [stderr]     |              ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `print` is never used
[INFO] [stderr]    --> src/board/bitboard.rs:225:8
[INFO] [stderr]     |
[INFO] [stderr] 225 | pub fn print(bb: Bitboard) {
[INFO] [stderr]     |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `king_to` and `castling_rights_mask` are never read
[INFO] [stderr]    --> src/board/position.rs:140:9
[INFO] [stderr]     |
[INFO] [stderr] 139 | pub struct CastleData {
[INFO] [stderr]     |            ---------- fields in this struct
[INFO] [stderr] 140 |     pub king_to: u8,
[INFO] [stderr]     |         ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 143 |     pub castling_rights_mask: u8,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: static `CASTLE_MOVES` is never used
[INFO] [stderr]    --> src/board/position.rs:174:8
[INFO] [stderr]     |
[INFO] [stderr] 174 | static CASTLE_MOVES: [[(u8, u8, u8); 2]; 2] = [
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `from_u32`, `to_u32`, and `is_pawn_move` are never used
[INFO] [stderr]    --> src/board/position.rs:211:18
[INFO] [stderr]     |
[INFO] [stderr] 192 | impl Move {
[INFO] [stderr]     | --------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 211 |     pub const fn from_u32(val:u32) -> Self { Self(val) }
[INFO] [stderr]     |                  ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 216 |     pub const fn to_u32(self) -> u32 { self.0}
[INFO] [stderr]     |                  ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 230 |     pub const fn is_pawn_move(&self) -> bool {
[INFO] [stderr]     |                  ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]     --> src/board/position.rs:358:12
[INFO] [stderr]      |
[INFO] [stderr]  313 | impl Position {
[INFO] [stderr]      | ------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  358 |     pub fn see_ge(&self, mv: Move, threshold: i32) -> bool {
[INFO] [stderr]      |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  480 |     pub fn is_capture(&self, mv: Move) -> bool {
[INFO] [stderr]      |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  485 |     pub fn piece_value(&self, piece: PieceType) -> i32 {
[INFO] [stderr]      |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  578 |     pub fn captured_piece(&self, mv: Move) -> PieceType {
[INFO] [stderr]      |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  583 |     pub fn is_pinned(&self, square: u8, color: Color) -> bool {
[INFO] [stderr]      |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  831 |     pub fn get_pinned_piece_legal_squares(&self, square: u8, color: Color) -> Bitboard {
[INFO] [stderr]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  951 |     fn find_checking_piece(&self, king_square: u8, color: Color) -> Option<(u8, PieceType)> {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1029 |     fn count_checks(&self, color: Color) -> u32 {
[INFO] [stderr]      |        ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1154 |     pub fn remove_piece(&mut self, square: u8) {
[INFO] [stderr]      |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1213 |     pub fn king_check(&self, color: Color) -> bool {
[INFO] [stderr]      |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1247 |     pub fn push_undo(self, undo: UndoInfo) {
[INFO] [stderr]      |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1607 |     pub fn is_square_attacked_after_move(&self, square: u8, by_color: Color, occupied: u64) -> bool {
[INFO] [stderr]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1649 |     pub fn is_in_check_with_all_attackers(&self, color: Color) -> (bool, Vec<PieceType>) {
[INFO] [stderr]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1705 |     pub fn square_attacked_by(&self, square: u8, by_color: Color) -> Option<PieceType> {
[INFO] [stderr]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1905 |     pub fn get_knight_attacks(&self, square: u8) -> Bitboard {
[INFO] [stderr]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1910 |     pub fn get_king_attacks(&self, square: u8) -> Bitboard {
[INFO] [stderr]      |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1914 |     pub fn copy_from(&mut self, other: &Position) {
[INFO] [stderr]      |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1932 |     pub fn create_temp_copy(&self) -> Position {
[INFO] [stderr]      |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 2069 |     pub fn material_count(&self, color: Color) -> i32 {
[INFO] [stderr]      |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WHITE_PAWN` is never used
[INFO] [stderr]   --> src/board/zobrist.rs:24:11
[INFO] [stderr]    |
[INFO] [stderr] 24 | pub const WHITE_PAWN: usize = 0;
[INFO] [stderr]    |           ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WHITE_KNIGHT` is never used
[INFO] [stderr]   --> src/board/zobrist.rs:25:11
[INFO] [stderr]    |
[INFO] [stderr] 25 | pub const WHITE_KNIGHT: usize = 1;
[INFO] [stderr]    |           ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WHITE_BISHOP` is never used
[INFO] [stderr]   --> src/board/zobrist.rs:26:11
[INFO] [stderr]    |
[INFO] [stderr] 26 | pub const WHITE_BISHOP: usize = 2;
[INFO] [stderr]    |           ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WHITE_ROOK` is never used
[INFO] [stderr]   --> src/board/zobrist.rs:27:11
[INFO] [stderr]    |
[INFO] [stderr] 27 | pub const WHITE_ROOK: usize = 3;
[INFO] [stderr]    |           ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WHITE_QUEEN` is never used
[INFO] [stderr]   --> src/board/zobrist.rs:28:11
[INFO] [stderr]    |
[INFO] [stderr] 28 | pub const WHITE_QUEEN: usize = 4;
[INFO] [stderr]    |           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WHITE_KING` is never used
[INFO] [stderr]   --> src/board/zobrist.rs:29:11
[INFO] [stderr]    |
[INFO] [stderr] 29 | pub const WHITE_KING: usize = 5;
[INFO] [stderr]    |           ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `BLACK_PAWN` is never used
[INFO] [stderr]   --> src/board/zobrist.rs:30:11
[INFO] [stderr]    |
[INFO] [stderr] 30 | pub const BLACK_PAWN: usize = 6;
[INFO] [stderr]    |           ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `BLACK_KNIGHT` is never used
[INFO] [stderr]   --> src/board/zobrist.rs:31:11
[INFO] [stderr]    |
[INFO] [stderr] 31 | pub const BLACK_KNIGHT: usize = 7;
[INFO] [stderr]    |           ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `BLACK_BISHOP` is never used
[INFO] [stderr]   --> src/board/zobrist.rs:32:11
[INFO] [stderr]    |
[INFO] [stderr] 32 | pub const BLACK_BISHOP: usize = 8;
[INFO] [stderr]    |           ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `BLACK_ROOK` is never used
[INFO] [stderr]   --> src/board/zobrist.rs:33:11
[INFO] [stderr]    |
[INFO] [stderr] 33 | pub const BLACK_ROOK: usize = 9;
[INFO] [stderr]    |           ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `BLACK_QUEEN` is never used
[INFO] [stderr]   --> src/board/zobrist.rs:34:11
[INFO] [stderr]    |
[INFO] [stderr] 34 | pub const BLACK_QUEEN: usize = 10;
[INFO] [stderr]    |           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `BLACK_KING` is never used
[INFO] [stderr]   --> src/board/zobrist.rs:35:11
[INFO] [stderr]    |
[INFO] [stderr] 35 | pub const BLACK_KING: usize = 11;
[INFO] [stderr]    |           ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_piece_hash` is never used
[INFO] [stderr]    --> src/board/zobrist.rs:128:8
[INFO] [stderr]     |
[INFO] [stderr] 128 | pub fn get_piece_hash(piece_index: usize, square: u8) -> u64 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_en_passant_hash` is never used
[INFO] [stderr]    --> src/board/zobrist.rs:133:8
[INFO] [stderr]     |
[INFO] [stderr] 133 | pub fn get_en_passant_hash(file: u8) -> u64 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_castling_hash` is never used
[INFO] [stderr]    --> src/board/zobrist.rs:138:8
[INFO] [stderr]     |
[INFO] [stderr] 138 | pub fn get_castling_hash(rights: u8) -> u64 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_side_to_move_hash` is never used
[INFO] [stderr]    --> src/board/zobrist.rs:143:8
[INFO] [stderr]     |
[INFO] [stderr] 143 | pub fn get_side_to_move_hash() -> u64 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TEMPO_BONUS` is never used
[INFO] [stderr]   --> src/eval/mod.rs:19:11
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub const TEMPO_BONUS: i32 = 28;
[INFO] [stderr]    |           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `LAZY_EVAL_MARGIN` is never used
[INFO] [stderr]   --> src/eval/mod.rs:20:11
[INFO] [stderr]    |
[INFO] [stderr] 20 | pub const LAZY_EVAL_MARGIN: i32 = 400;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `EVAL_CACHE_SIZE` is never used
[INFO] [stderr]   --> src/eval/mod.rs:22:11
[INFO] [stderr]    |
[INFO] [stderr] 22 | pub const EVAL_CACHE_SIZE: usize = 1024 * 1024;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `quick_eval` is never used
[INFO] [stderr]   --> src/eval/mod.rs:26:8
[INFO] [stderr]    |
[INFO] [stderr] 26 | pub fn quick_eval(pos: &crate::board::position::Position) -> i32 {
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `needs_deep_eval` is never used
[INFO] [stderr]   --> src/eval/mod.rs:30:8
[INFO] [stderr]    |
[INFO] [stderr] 30 | pub fn needs_deep_eval(pos: &crate::board::position::Position) -> bool {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `complexity_score` is never used
[INFO] [stderr]   --> src/eval/mod.rs:34:8
[INFO] [stderr]    |
[INFO] [stderr] 34 | pub fn complexity_score(pos: &crate::board::position::Position) -> i32 {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `PAWN_VALUE_MG` is never used
[INFO] [stderr]   --> src/eval/material.rs:15:11
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub const PAWN_VALUE_MG: i32 = 124;
[INFO] [stderr]    |           ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `PAWN_VALUE_EG` is never used
[INFO] [stderr]   --> src/eval/material.rs:16:11
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub const PAWN_VALUE_EG: i32 = 206;
[INFO] [stderr]    |           ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `KNIGHT_VALUE_EG` is never used
[INFO] [stderr]   --> src/eval/material.rs:18:11
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub const KNIGHT_VALUE_EG: i32 = 854;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ROOK_VALUE_EG` is never used
[INFO] [stderr]   --> src/eval/material.rs:22:11
[INFO] [stderr]    |
[INFO] [stderr] 22 | pub const ROOK_VALUE_EG: i32 = 1380;
[INFO] [stderr]    |           ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `QUEEN_VALUE_EG` is never used
[INFO] [stderr]   --> src/eval/material.rs:24:11
[INFO] [stderr]    |
[INFO] [stderr] 24 | pub const QUEEN_VALUE_EG: i32 = 2682;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAX_PHASE` is never used
[INFO] [stderr]   --> src/eval/material.rs:96:11
[INFO] [stderr]    |
[INFO] [stderr] 96 | pub const MAX_PHASE: u32 = 256;
[INFO] [stderr]    |           ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_material_signature` is never used
[INFO] [stderr]    --> src/eval/material.rs:409:8
[INFO] [stderr]     |
[INFO] [stderr] 409 | pub fn get_material_signature(pos: &Position) -> u64 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_endgame_scale_factor` is never used
[INFO] [stderr]    --> src/eval/material.rs:483:8
[INFO] [stderr]     |
[INFO] [stderr] 483 | pub fn get_endgame_scale_factor(pos: &Position, endgame_type: EndgameType) -> f32 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_pst_move_delta` is never used
[INFO] [stderr]    --> src/eval/pst.rs:269:8
[INFO] [stderr]     |
[INFO] [stderr] 269 | pub fn get_pst_move_delta(piece_type: PieceType, from: u8, to: u8, color: Color) -> Score {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `rank_to_square` is never used
[INFO] [stderr]    --> src/eval/pst.rs:281:14
[INFO] [stderr]     |
[INFO] [stderr] 281 | pub const fn rank_to_square(rank: u8, file: u8) -> u8 {
[INFO] [stderr]     |              ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SHELTER_STRENGTH` is never used
[INFO] [stderr]   --> src/eval/pawns.rs:57:7
[INFO] [stderr]    |
[INFO] [stderr] 57 | const SHELTER_STRENGTH: [[i32; 8]; 4] = [
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `STORM_DANGER` is never used
[INFO] [stderr]   --> src/eval/pawns.rs:64:7
[INFO] [stderr]    |
[INFO] [stderr] 64 | const STORM_DANGER: [[i32; 8]; 4] = [
[INFO] [stderr]    |       ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `evaluate_king_pawn_shelter` is never used
[INFO] [stderr]    --> src/eval/pawns.rs:549:8
[INFO] [stderr]     |
[INFO] [stderr] 549 | pub fn evaluate_king_pawn_shelter(pos: &Position, color: Color) -> Score {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_outpost_square` is never used
[INFO] [stderr]    --> src/eval/pawns.rs:612:8
[INFO] [stderr]     |
[INFO] [stderr] 612 | pub fn is_outpost_square(pos: &Position, square: u8, color: Color) -> bool {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `evaluate_pawn_space` is never used
[INFO] [stderr]    --> src/eval/space.rs:308:8
[INFO] [stderr]     |
[INFO] [stderr] 308 | pub fn evaluate_pawn_space(pos: &Position) -> Score {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `evaluate_piece_activity` is never used
[INFO] [stderr]    --> src/eval/space.rs:347:8
[INFO] [stderr]     |
[INFO] [stderr] 347 | pub fn evaluate_piece_activity(pos: &Position) -> Score {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `calculate_piece_activity_bonus` is never used
[INFO] [stderr]    --> src/eval/space.rs:373:4
[INFO] [stderr]     |
[INFO] [stderr] 373 | fn calculate_piece_activity_bonus(square: u8, color: Color) -> Score {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_king_in_danger` is never used
[INFO] [stderr]    --> src/eval/king_safety.rs:509:8
[INFO] [stderr]     |
[INFO] [stderr] 509 | pub fn is_king_in_danger(pos: &Position, color: Color) -> bool {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `evaluate_back_rank_threats` is never used
[INFO] [stderr]    --> src/eval/king_safety.rs:528:8
[INFO] [stderr]     |
[INFO] [stderr] 528 | pub fn evaluate_back_rank_threats(pos: &Position, color: Color) -> Score {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `evaluate_castling_safety` is never used
[INFO] [stderr]    --> src/eval/king_safety.rs:585:8
[INFO] [stderr]     |
[INFO] [stderr] 585 | pub fn evaluate_castling_safety(pos: &Position, color: Color) -> Score {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `evaluate_kingside_safety` is never used
[INFO] [stderr]    --> src/eval/king_safety.rs:611:4
[INFO] [stderr]     |
[INFO] [stderr] 611 | fn evaluate_kingside_safety(pos: &Position, color: Color) -> Score {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `evaluate_queenside_safety` is never used
[INFO] [stderr]    --> src/eval/king_safety.rs:647:4
[INFO] [stderr]     |
[INFO] [stderr] 647 | fn evaluate_queenside_safety(pos: &Position, color: Color) -> Score {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `calculate_trade_value` is never used
[INFO] [stderr]    --> src/eval/imbalance.rs:308:8
[INFO] [stderr]     |
[INFO] [stderr] 308 | pub fn calculate_trade_value(us: &[u32; 6], them: &[u32; 6], piece_type: PieceType) -> i32 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `has_tactical_threats` is never used
[INFO] [stderr]    --> src/eval/threats.rs:857:8
[INFO] [stderr]     |
[INFO] [stderr] 857 | pub fn has_tactical_threats(pos: &Position, color: Color) -> bool {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `clear` is never used
[INFO] [stderr]   --> src/eval/eval_util.rs:48:12
[INFO] [stderr]    |
[INFO] [stderr] 19 | impl EvalCache {
[INFO] [stderr]    | -------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 48 |     pub fn clear(&mut self) {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: static `GLOBAL_EVAL_CACHE` is never used
[INFO] [stderr]   --> src/eval/eval_util.rs:55:8
[INFO] [stderr]    |
[INFO] [stderr] 55 | static GLOBAL_EVAL_CACHE: Lazy<RwLock<EvalCache>> = Lazy::new(|| {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `probe_eval_cache` is never used
[INFO] [stderr]   --> src/eval/eval_util.rs:62:8
[INFO] [stderr]    |
[INFO] [stderr] 62 | pub fn probe_eval_cache(hash: u64) -> Option<i32> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `store_eval_cache` is never used
[INFO] [stderr]   --> src/eval/eval_util.rs:66:8
[INFO] [stderr]    |
[INFO] [stderr] 66 | pub fn store_eval_cache(hash: u64, score: i32, depth: u8) {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `clear_eval_cache` is never used
[INFO] [stderr]   --> src/eval/eval_util.rs:70:8
[INFO] [stderr]    |
[INFO] [stderr] 70 | pub fn clear_eval_cache() {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `phase_value` is never used
[INFO] [stderr]   --> src/eval/eval_util.rs:75:8
[INFO] [stderr]    |
[INFO] [stderr] 75 | pub fn phase_value(phase: u32) -> f32 {
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `mate_in`, `mated_in`, and `draw` are never used
[INFO] [stderr]    --> src/eval/evaluate.rs:201:12
[INFO] [stderr]     |
[INFO] [stderr] 185 | impl EvalResult {
[INFO] [stderr]     | --------------- associated functions in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 201 |     pub fn mate_in(moves: i32) -> Self {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 209 |     pub fn mated_in(moves: i32) -> Self {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 217 |     pub fn draw() -> Self {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `total` is never read
[INFO] [stderr]    --> src/eval/evaluate.rs:231:9
[INFO] [stderr]     |
[INFO] [stderr] 227 | pub struct DetailedEvaluation {
[INFO] [stderr]     |            ------------------ field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 231 |     pub total: Score,
[INFO] [stderr]     |         ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `DetailedEvaluation` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: function `evaluate_for_debug` is never used
[INFO] [stderr]    --> src/eval/evaluate.rs:936:8
[INFO] [stderr]     |
[INFO] [stderr] 936 | pub fn evaluate_for_debug(pos: &Position) -> EvalResult {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `evaluate_for_color` is never used
[INFO] [stderr]    --> src/eval/evaluate.rs:993:8
[INFO] [stderr]     |
[INFO] [stderr] 993 | pub fn evaluate_for_color(pos: &Position, color: Color) -> i32 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_winning` is never used
[INFO] [stderr]     --> src/eval/evaluate.rs:1008:8
[INFO] [stderr]      |
[INFO] [stderr] 1008 | pub fn is_winning(score: i32) -> bool {
[INFO] [stderr]      |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_drawn` is never used
[INFO] [stderr]     --> src/eval/evaluate.rs:1012:8
[INFO] [stderr]      |
[INFO] [stderr] 1012 | pub fn is_drawn(score: i32) -> bool {
[INFO] [stderr]      |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `score_to_win_probability` is never used
[INFO] [stderr]     --> src/eval/evaluate.rs:1016:8
[INFO] [stderr]      |
[INFO] [stderr] 1016 | pub fn score_to_win_probability(score: i32) -> f32 {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `endgame_scale_factor` is never used
[INFO] [stderr]     --> src/eval/evaluate.rs:1022:8
[INFO] [stderr]      |
[INFO] [stderr] 1022 | pub fn endgame_scale_factor(pos: &Position) -> f32 {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_eval_components` is never used
[INFO] [stderr]     --> src/eval/evaluate.rs:1046:8
[INFO] [stderr]      |
[INFO] [stderr] 1046 | pub fn get_eval_components(pos: &Position) -> [i32; 8] {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `evaluate_complexity` is never used
[INFO] [stderr]     --> src/eval/evaluate.rs:1062:8
[INFO] [stderr]      |
[INFO] [stderr] 1062 | pub fn evaluate_complexity(pos: &Position) -> i32 {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `needs_careful_evaluation` is never used
[INFO] [stderr]     --> src/eval/evaluate.rs:1066:8
[INFO] [stderr]      |
[INFO] [stderr] 1066 | pub fn needs_careful_evaluation(pos: &Position) -> bool {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `static_exchange_estimate` is never used
[INFO] [stderr]     --> src/eval/evaluate.rs:1101:8
[INFO] [stderr]      |
[INFO] [stderr] 1101 | pub fn static_exchange_estimate(pos: &Position, square: u8) -> i32 {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `tactical_complexity` is never used
[INFO] [stderr]     --> src/eval/evaluate.rs:1115:8
[INFO] [stderr]      |
[INFO] [stderr] 1115 | pub fn tactical_complexity(pos: &Position) -> i32 {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_nnue_enabled` is never used
[INFO] [stderr]     --> src/eval/evaluate.rs:1157:8
[INFO] [stderr]      |
[INFO] [stderr] 1157 | pub fn is_nnue_enabled() -> bool {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_eval_type` is never used
[INFO] [stderr]     --> src/eval/evaluate.rs:1162:8
[INFO] [stderr]      |
[INFO] [stderr] 1162 | pub fn get_eval_type() -> &'static str {
[INFO] [stderr]      |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `use_aggressive_style` is never used
[INFO] [stderr]    --> src/eval/weights.rs:204:8
[INFO] [stderr]     |
[INFO] [stderr] 204 | pub fn use_aggressive_style() {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `use_positional_style` is never used
[INFO] [stderr]    --> src/eval/weights.rs:208:8
[INFO] [stderr]     |
[INFO] [stderr] 208 | pub fn use_positional_style() {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `use_endgame_style` is never used
[INFO] [stderr]    --> src/eval/weights.rs:212:8
[INFO] [stderr]     |
[INFO] [stderr] 212 | pub fn use_endgame_style() {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `bishop_pair_weight` is never used
[INFO] [stderr]    --> src/eval/weights.rs:222:8
[INFO] [stderr]     |
[INFO] [stderr] 222 | pub fn bishop_pair_weight() -> f32 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `pst_weight` is never used
[INFO] [stderr]    --> src/eval/weights.rs:227:8
[INFO] [stderr]     |
[INFO] [stderr] 227 | pub fn pst_weight() -> f32 {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `pawn_structure_weight` is never used
[INFO] [stderr]    --> src/eval/weights.rs:232:8
[INFO] [stderr]     |
[INFO] [stderr] 232 | pub fn pawn_structure_weight() -> f32 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `mobility_weight` is never used
[INFO] [stderr]    --> src/eval/weights.rs:237:8
[INFO] [stderr]     |
[INFO] [stderr] 237 | pub fn mobility_weight() -> f32 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `space_weight` is never used
[INFO] [stderr]    --> src/eval/weights.rs:242:8
[INFO] [stderr]     |
[INFO] [stderr] 242 | pub fn space_weight() -> f32 {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `king_safety_weight` is never used
[INFO] [stderr]    --> src/eval/weights.rs:247:8
[INFO] [stderr]     |
[INFO] [stderr] 247 | pub fn king_safety_weight() -> f32 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `imbalance_weight` is never used
[INFO] [stderr]    --> src/eval/weights.rs:252:8
[INFO] [stderr]     |
[INFO] [stderr] 252 | pub fn imbalance_weight() -> f32 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `threats_weight` is never used
[INFO] [stderr]    --> src/eval/weights.rs:257:8
[INFO] [stderr]     |
[INFO] [stderr] 257 | pub fn threats_weight() -> f32 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `tempo_bonus_weight` is never used
[INFO] [stderr]    --> src/eval/weights.rs:262:8
[INFO] [stderr]     |
[INFO] [stderr] 262 | pub fn tempo_bonus_weight() -> f32 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `scale_all_weights` is never used
[INFO] [stderr]    --> src/eval/weights.rs:270:8
[INFO] [stderr]     |
[INFO] [stderr] 270 | pub fn scale_all_weights(factor: f32) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `adjust_weights_for_phase` is never used
[INFO] [stderr]    --> src/eval/weights.rs:424:8
[INFO] [stderr]     |
[INFO] [stderr] 424 | pub fn adjust_weights_for_phase(phase: u32) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `position_favors_initiative` is never used
[INFO] [stderr]    --> src/eval/initiative.rs:287:8
[INFO] [stderr]     |
[INFO] [stderr] 287 | pub fn position_favors_initiative(pos: &Position) -> bool {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `king_attacks` is never used
[INFO] [stderr]    --> src/movegen/magic.rs:415:8
[INFO] [stderr]     |
[INFO] [stderr] 415 | pub fn king_attacks(occ:Bitboard) -> Bitboard {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `generate_moves` is never used
[INFO] [stderr]   --> src/movegen/moves.rs:17:8
[INFO] [stderr]    |
[INFO] [stderr] 17 | pub fn generate_moves(pos: &Position) -> Vec<Move> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `generate_king_moves` is never used
[INFO] [stderr]    --> src/movegen/moves.rs:166:4
[INFO] [stderr]     |
[INFO] [stderr] 166 | fn generate_king_moves(pos: &Position, moves: &mut Vec<Move>) {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `hashfull` is never read
[INFO] [stderr]   --> src/search/alphabeta.rs:96:9
[INFO] [stderr]    |
[INFO] [stderr] 89 | pub struct SearchResult {
[INFO] [stderr]    |            ------------ field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 96 |     pub hashfull: u32,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `SearchResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: function `see_ge_threshold` is never used
[INFO] [stderr]     --> src/search/alphabeta.rs:1575:8
[INFO] [stderr]      |
[INFO] [stderr] 1575 | pub fn see_ge_threshold(pos: &Position, mv: Move, threshold: i32) -> bool {
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `alpha_beta_search` is never used
[INFO] [stderr]     --> src/search/alphabeta.rs:1579:8
[INFO] [stderr]      |
[INFO] [stderr] 1579 | pub fn alpha_beta_search(
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple fields are never read
[INFO] [stderr]   --> src/search/time_management.rs:5:5
[INFO] [stderr]    |
[INFO] [stderr]  4 | pub struct TimeManager {
[INFO] [stderr]    |            ----------- fields in this struct
[INFO] [stderr]  5 |     start_time: Instant,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr]  6 |     allocated_time: Duration,
[INFO] [stderr]  7 |     move_time: Option<Duration>,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 10 |     white_time: Option<u32>,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 11 |     black_time: Option<u32>,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 12 |     white_increment: Option<u32>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 13 |     black_increment: Option<u32>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 14 |     moves_to_go: Option<u32>,
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 15 |     is_white_to_move: bool,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `TimeManager` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `is_infinite`, `new`, `can_extend`, `remaining_time_ms`, `elapsed_ms`, and `set_side_to_move` are never used
[INFO] [stderr]    --> src/search/time_management.rs:35:12
[INFO] [stderr]     |
[INFO] [stderr]  18 | impl TimeManager {
[INFO] [stderr]     | ---------------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  35 |     pub fn is_infinite(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  39 |     pub fn new(
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 196 |     pub fn can_extend(&self, start: Instant, extension_factor: f64) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 213 |     pub fn remaining_time_ms(&self) -> Option<u32> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 221 |     pub fn elapsed_ms(&self) -> u64 {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 225 |     pub fn set_side_to_move(&mut self, is_white: bool) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `BOUND_NONE` is never used
[INFO] [stderr]   --> src/search/transposition.rs:10:7
[INFO] [stderr]    |
[INFO] [stderr] 10 | const BOUND_NONE: u8 = 0;
[INFO] [stderr]    |       ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `store_eval` and `prefetch` are never used
[INFO] [stderr]    --> src/search/transposition.rs:216:12
[INFO] [stderr]     |
[INFO] [stderr]  98 | impl TranspositionTable {
[INFO] [stderr]     | ----------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 216 |     pub fn store_eval(
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 274 |     pub fn prefetch(&self, hash: u64) {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `score_from_tt` and `score_to_tt` are never used
[INFO] [stderr]    --> src/search/transposition.rs:290:12
[INFO] [stderr]     |
[INFO] [stderr] 288 | impl TranspositionTable {
[INFO] [stderr]     | ----------------------- associated functions in this implementation
[INFO] [stderr] 289 |     #[inline(always)]
[INFO] [stderr] 290 |     pub fn score_from_tt(score: i32, ply: u8) -> i32 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 301 |     pub fn score_to_tt(score: i32, ply: u8) -> i32 {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `tt_score_from_tt` is never used
[INFO] [stderr]    --> src/search/transposition.rs:313:8
[INFO] [stderr]     |
[INFO] [stderr] 313 | pub fn tt_score_from_tt(score: i32, ply: u8) -> i32 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `tt_score_to_tt` is never used
[INFO] [stderr]    --> src/search/transposition.rs:324:8
[INFO] [stderr]     |
[INFO] [stderr] 324 | pub fn tt_score_to_tt(score: i32, ply: u8) -> i32 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `is_capture_on`, `is_quiet_on`, and `captured_piece_on` are never used
[INFO] [stderr]    --> src/search/transposition.rs:370:12
[INFO] [stderr]     |
[INFO] [stderr] 368 | impl Move {
[INFO] [stderr]     | --------- methods in this implementation
[INFO] [stderr] 369 |     #[inline(always)]
[INFO] [stderr] 370 |     pub fn is_capture_on(self, pos: &Position) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 376 |     pub fn is_quiet_on(self, pos: &Position) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 381 |     pub fn captured_piece_on(self, pos: &Position) -> PieceType {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TT_BOUND_NONE` is never used
[INFO] [stderr]    --> src/search/transposition.rs:390:11
[INFO] [stderr]     |
[INFO] [stderr] 390 | pub const TT_BOUND_NONE: u8 = BOUND_NONE;
[INFO] [stderr]     |           ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SearchResult` is never constructed
[INFO] [stderr]   --> src/search/search_node.rs:11:12
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub struct SearchResult {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `history_pruning` is never used
[INFO] [stderr]    --> src/search/pruning.rs:116:8
[INFO] [stderr]     |
[INFO] [stderr] 116 | pub fn history_pruning(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `delta_pruning` is never used
[INFO] [stderr]    --> src/search/pruning.rs:172:8
[INFO] [stderr]     |
[INFO] [stderr] 172 | pub fn delta_pruning(
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `History` and `Delta` are never constructed
[INFO] [stderr]    --> src/search/pruning.rs:218:5
[INFO] [stderr]     |
[INFO] [stderr] 212 | pub enum PruningReason {
[INFO] [stderr]     |          ------------- variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 218 |     History,
[INFO] [stderr]     |     ^^^^^^^
[INFO] [stderr] 219 |     MultiCut,
[INFO] [stderr] 220 |     Delta,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `PruningReason` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `description` is never used
[INFO] [stderr]    --> src/search/pruning.rs:225:12
[INFO] [stderr]     |
[INFO] [stderr] 223 | impl PruningReason {
[INFO] [stderr]     | ------------------ method in this implementation
[INFO] [stderr] 224 |     #[inline(always)]
[INFO] [stderr] 225 |     pub fn description(&self) -> &'static str {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `clear` is never used
[INFO] [stderr]    --> src/search/pruning.rs:281:12
[INFO] [stderr]     |
[INFO] [stderr] 259 | impl PruningStats {
[INFO] [stderr]     | ----------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 281 |     pub fn clear(&self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `singular_extension_check` is never used
[INFO] [stderr]    --> src/search/pruning.rs:306:8
[INFO] [stderr]     |
[INFO] [stderr] 306 | pub fn singular_extension_check(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `singular_extension_result` is never used
[INFO] [stderr]    --> src/search/pruning.rs:338:8
[INFO] [stderr]     |
[INFO] [stderr] 338 | pub fn singular_extension_result(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `from_file` and `debug_psqt` are never used
[INFO] [stderr]    --> src/nnue/nnue.rs:45:12
[INFO] [stderr]     |
[INFO] [stderr]  36 | impl NNUE {
[INFO] [stderr]     | --------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  45 |     pub fn from_file(path: &str) -> Result<Self, Box<dyn std::error::Error>> {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 302 |     pub fn debug_psqt(&self, pos: &Position) {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_ft_weight`, `get_ft_bias`, and `get_ft_weights_slice` are never used
[INFO] [stderr]    --> src/nnue/nnue_weights.rs:158:12
[INFO] [stderr]     |
[INFO] [stderr]  28 | impl NNUEWeights {
[INFO] [stderr]     | ---------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 158 |     pub fn get_ft_weight(&self, feature_idx: usize, neuron_idx: usize) -> i16 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 165 |     pub fn get_ft_bias(&self, neuron_idx: usize) -> i16 {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 183 |     pub fn get_ft_weights_slice(&self, neuron_idx: usize) -> &[i16] {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `RuthChessOVI` (lib test) generated 122 warnings (120 duplicates) (run `cargo fix --lib -p RuthChessOVI --tests` to apply 2 suggestions)
[INFO] [stderr] warning: `RuthChessOVI` (bin "RuthChessOVI" test) generated 263 warnings (120 duplicates) (run `cargo fix --bin "RuthChessOVI" -p RuthChessOVI --tests` to apply 13 suggestions)
[INFO] [stderr]     Finished `test` profile [optimized] target(s) in 0.28s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/RuthChessOVI-5a5be5f2f1e9d66b)
[INFO] [stdout] 
[INFO] [stdout] running 66 tests
[INFO] [stdout] test board::bitboard::tests::test_pop_lsb ... ok
[INFO] [stdout] test board::bitboard::tests::test_square_mask ... ok
[INFO] [stdout] test board::position::tests::test_algebraic_conversion ... ok
[INFO] [stdout] test board::position::tests::test_piece_placement ... ok
[INFO] [stdout] test eval::eval_util::tests::test_complexity ... ok
[INFO] [stdout] test eval::eval_util::tests::test_eval_cache ... ok
[INFO] [stdout] test eval::eval_util::tests::test_is_likely_draw ... ok
[INFO] [stdout] test board::position::tests::test_make_unmake_move ... FAILED
[INFO] [stdout] test board::position::tests::test_startpos ... FAILED
[INFO] [stdout] test eval::eval_util::tests::test_phase_helpers ... ok
[INFO] [stdout] test board::bitboard::tests::test_algebraic_conversion ... ok
[INFO] [stdout] test eval::imbalance::tests::test_compensation_calculation ... ok
[INFO] [stdout] test eval::imbalance::tests::test_drawing_tendency ... ok
[INFO] [stdout] test eval::imbalance::tests::test_imbalance_evaluation ... ok
[INFO] [stdout] test eval::imbalance::tests::test_pawn_islands ... FAILED
[INFO] [stdout] test eval::imbalance::tests::test_piece_counts ... ok
[INFO] [stdout] test eval::initiative::tests::test_complexity_factor ... ok
[INFO] [stdout] test board::bitboard::tests::test_bit_operations ... ok
[INFO] [stdout] test eval::eval_util::tests::test_win_probability ... ok
[INFO] [stdout] test eval::initiative::tests::test_passed_pawn_detection ... FAILED
[INFO] [stdout] test eval::material::tests::test_bishop_pair ... ok
[INFO] [stdout] test eval::initiative::tests::test_tempo_evaluation ... FAILED
[INFO] [stdout] test eval::material::tests::test_material_draw ... ok
[INFO] [stdout] test eval::material::tests::test_phase_calculation ... ok
[INFO] [stdout] test eval::material::tests::test_score_operations ... ok
[INFO] [stdout] test eval::material::tests::test_endgame_recognition ... ok
[INFO] [stdout] test eval::mobility::tests::test_bishop_pair ... FAILED
[INFO] [stdout] test eval::mobility::tests::test_knight_outpost ... ok
[INFO] [stdout] test eval::evaluate::tests::test_startpos_evaluation ... FAILED
[INFO] [stdout] test eval::evaluate::tests::test_psqt_only_eval ... FAILED
[INFO] [stdout] test eval::evaluate::tests::test_eval_cache ... FAILED
[INFO] [stdout] test eval::mobility::tests::test_mobility_initialization ... ok
[INFO] [stdout] test eval::pawns::tests::test_passed_pawn_detection ... ok
[INFO] [stdout] test eval::pst::tests::test_pst_evaluation ... ok
[INFO] [stdout] test eval::mobility::tests::test_average_mobility ... FAILED
[INFO] [stdout] test eval::space::tests::test_central_control ... ok
[INFO] [stdout] test eval::space::tests::test_file_control ... ok
[WARN] too many lines in the log, truncating it
