[INFO] cloning repository https://github.com/vilhelmlindell/chess-engine
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/vilhelmlindell/chess-engine" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvilhelmlindell%2Fchess-engine", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvilhelmlindell%2Fchess-engine'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e77e1d664a1d61a6f4a6312a1ea5c782896c48ad
[INFO] checking vilhelmlindell/chess-engine against try#012cd62c9add58ab3910e44c137d87db3ab70f61 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvilhelmlindell%2Fchess-engine" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] [stderr] Updating files:  26% (93/354)
Updating files:  27% (96/354)
Updating files:  28% (100/354)
Updating files:  29% (103/354)
Updating files:  30% (107/354)
Updating files:  30% (109/354)
Updating files:  31% (110/354)
Updating files:  32% (114/354)
Updating files:  33% (117/354)
Updating files:  34% (121/354)
Updating files:  35% (124/354)
Updating files:  36% (128/354)
Updating files:  37% (131/354)
Updating files:  38% (135/354)
Updating files:  39% (139/354)
Updating files:  40% (142/354)
Updating files:  41% (146/354)
Updating files:  41% (147/354)
Updating files:  42% (149/354)
Updating files:  43% (153/354)
Updating files:  44% (156/354)
Updating files:  45% (160/354)
Updating files:  46% (163/354)
Updating files:  47% (167/354)
Updating files:  48% (170/354)
Updating files:  49% (174/354)
Updating files:  50% (177/354)
Updating files:  51% (181/354)
Updating files:  52% (185/354)
Updating files:  53% (188/354)
Updating files:  54% (192/354)
Updating files:  55% (195/354)
Updating files:  56% (199/354)
Updating files:  56% (201/354)
Updating files:  57% (202/354)
Updating files:  58% (206/354)
Updating files:  59% (209/354)
Updating files:  60% (213/354)
Updating files:  61% (216/354)
Updating files:  61% (217/354)
Updating files:  62% (220/354)
Updating files:  63% (224/354)
Updating files:  64% (227/354)
Updating files:  65% (231/354)
Updating files:  66% (234/354)
Updating files:  67% (238/354)
Updating files:  68% (241/354)
Updating files:  69% (245/354)
Updating files:  70% (248/354)
Updating files:  71% (252/354)
Updating files:  72% (255/354)
Updating files:  73% (259/354)
Updating files:  74% (262/354)
Updating files:  75% (266/354)
Updating files:  76% (270/354)
Updating files:  77% (273/354)
Updating files:  78% (277/354)
Updating files:  79% (280/354)
Updating files:  80% (284/354)
Updating files:  80% (286/354)
Updating files:  81% (287/354)
Updating files:  82% (291/354)
Updating files:  83% (294/354)
Updating files:  84% (298/354)
Updating files:  85% (301/354)
Updating files:  86% (305/354)
Updating files:  87% (308/354)
Updating files:  88% (312/354)
Updating files:  88% (314/354)
Updating files:  89% (316/354)
Updating files:  90% (319/354)
Updating files:  91% (323/354)
Updating files:  92% (326/354)
Updating files:  93% (330/354)
Updating files:  94% (333/354)
Updating files:  95% (337/354)
Updating files:  96% (340/354)
Updating files:  96% (342/354)
Updating files:  97% (344/354)
Updating files:  98% (347/354)
Updating files:  99% (351/354)
Updating files: 100% (354/354)
Updating files: 100% (354/354), done.
[INFO] started tweaking git repo https://github.com/vilhelmlindell/chess-engine
[INFO] finished tweaking git repo https://github.com/vilhelmlindell/chess-engine
[INFO] tweaked toml for git repo https://github.com/vilhelmlindell/chess-engine written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/vilhelmlindell/chess-engine on toolchain 012cd62c9add58ab3910e44c137d87db3ab70f61
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+012cd62c9add58ab3910e44c137d87db3ab70f61" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/vilhelmlindell/chess-engine already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+012cd62c9add58ab3910e44c137d87db3ab70f61" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+012cd62c9add58ab3910e44c137d87db3ab70f61" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 98b8f3f4c13699b55fd4088808fe5e15a25ec58ba782639cf16e5fca25df96a9
[INFO] running `Command { std: "docker" "start" "-a" "98b8f3f4c13699b55fd4088808fe5e15a25ec58ba782639cf16e5fca25df96a9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "98b8f3f4c13699b55fd4088808fe5e15a25ec58ba782639cf16e5fca25df96a9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "98b8f3f4c13699b55fd4088808fe5e15a25ec58ba782639cf16e5fca25df96a9", kill_on_drop: false }`
[INFO] [stdout] 98b8f3f4c13699b55fd4088808fe5e15a25ec58ba782639cf16e5fca25df96a9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+012cd62c9add58ab3910e44c137d87db3ab70f61" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7723ac70c43fe56b802b6e69e2ee8e95ce61734313ab4487007bfdd5d8229811
[INFO] running `Command { std: "docker" "start" "-a" "7723ac70c43fe56b802b6e69e2ee8e95ce61734313ab4487007bfdd5d8229811", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.11
[INFO] [stderr]    Compiling winnow v0.6.24
[INFO] [stderr]    Compiling toml_datetime v0.6.8
[INFO] [stderr]    Compiling indexmap v2.7.1
[INFO] [stderr]     Checking getrandom v0.2.10
[INFO] [stderr]     Checking memmap2 v0.9.5
[INFO] [stderr]    Compiling ctor-proc-macro v0.0.4
[INFO] [stderr]    Compiling proc-macro2 v1.0.93
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking pyrrhic-rs v0.2.0
[INFO] [stderr]     Checking ctor v0.3.6
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]    Compiling quote v1.0.38
[INFO] [stderr]    Compiling syn v2.0.96
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling toml_edit v0.22.22
[INFO] [stderr]    Compiling proc-macro-crate v3.2.0
[INFO] [stderr]    Compiling derive_more-impl v1.0.0
[INFO] [stderr]    Compiling num_enum_derive v0.7.3
[INFO] [stderr]     Checking num_enum v0.7.3
[INFO] [stderr]     Checking derive_more v1.0.0
[INFO] [stderr]     Checking chess_engine v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::search::transposition_table::*`
[INFO] [stdout]  --> src/board/board.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::search::transposition_table::*;
[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: `board`
[INFO] [stdout]    --> src/board/board.rs:781:17
[INFO] [stdout]     |
[INFO] [stdout] 781 |     use crate::{board, move_generation::generate_moves};
[INFO] [stdout]     |                 ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::LazyLock`
[INFO] [stdout]  --> src/board/zobrist_hash.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::sync::LazyLock;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Side`
[INFO] [stdout]  --> src/evaluation/evaluation.rs:2:27
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::board::{Board, Side, TOTAL_MATERIAL_STARTPOS};
[INFO] [stdout]   |                           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/move_generation/attack_tables.rs:2:31
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::board::direction::{self, Direction};
[INFO] [stdout]   |                               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::LazyLock`
[INFO] [stdout]  --> src/move_generation/attack_tables.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::sync::LazyLock;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `get_orthogonal_rays`
[INFO] [stdout]  --> src/perft.rs:5:62
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::move_generation::attack_tables::{get_between_ray, get_orthogonal_rays};
[INFO] [stdout]   |                                                              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Bound` and `TranspositionEntry`
[INFO] [stdout]  --> src/perft.rs:7:42
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::search::transposition_table::{Bound, TranspositionEntry};
[INFO] [stdout]   |                                          ^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `search`
[INFO] [stdout]  --> src/bench.rs:3:36
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{board::Board, search::{search, Search, SearchMode, SearchParams}};
[INFO] [stdout]   |                                    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::board::bitboard::Bitboard`
[INFO] [stdout]  --> src/search/search.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::board::bitboard::Bitboard;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `hash` and `simd`
[INFO] [stdout]   --> src/search/search.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | use core::{hash, simd};
[INFO] [stdout]    |            ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::char::MAX`
[INFO] [stdout]   --> src/search/search.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::char::MAX;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::Ordering`
[INFO] [stdout]   --> src/search/search.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::cmp::Ordering;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]   --> src/search/search.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::ops::Deref;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::search::transposition_table::*`
[INFO] [stdout]  --> src/board/board.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::search::transposition_table::*;
[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: `std::sync::LazyLock`
[INFO] [stdout]  --> src/board/zobrist_hash.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::sync::LazyLock;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Side`
[INFO] [stdout]  --> src/evaluation/evaluation.rs:2:27
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::board::{Board, Side, TOTAL_MATERIAL_STARTPOS};
[INFO] [stdout]   |                           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/move_generation/attack_tables.rs:2:31
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::board::direction::{self, Direction};
[INFO] [stdout]   |                               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::LazyLock`
[INFO] [stdout]  --> src/move_generation/attack_tables.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::sync::LazyLock;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `get_orthogonal_rays`
[INFO] [stdout]  --> src/perft.rs:5:62
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::move_generation::attack_tables::{get_between_ray, get_orthogonal_rays};
[INFO] [stdout]   |                                                              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Bound` and `TranspositionEntry`
[INFO] [stdout]  --> src/perft.rs:7:42
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::search::transposition_table::{Bound, TranspositionEntry};
[INFO] [stdout]   |                                          ^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `search`
[INFO] [stdout]  --> src/bench.rs:3:36
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{board::Board, search::{search, Search, SearchMode, SearchParams}};
[INFO] [stdout]   |                                    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::board::bitboard::Bitboard`
[INFO] [stdout]  --> src/search/search.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::board::bitboard::Bitboard;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `hash` and `simd`
[INFO] [stdout]   --> src/search/search.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | use core::{hash, simd};
[INFO] [stdout]    |            ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::char::MAX`
[INFO] [stdout]   --> src/search/search.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::char::MAX;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::Ordering`
[INFO] [stdout]   --> src/search/search.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::cmp::Ordering;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]   --> src/search/search.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::ops::Deref;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/search/search.rs:232:13
[INFO] [stdout]     |
[INFO] [stdout] 230 |             unimplemented!("iterative deepening needs to be enabled");
[INFO] [stdout]     |             --------------------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 231 |             // Non-iterative deepening: search to the maximum depth directly
[INFO] [stdout] 232 |             let eval = self.pvs::<{ NodeType::Root as u8 }, false>(board, MAX_DEPTH as u32, -MAX_EVAL, MAX_EVAL, 0);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/board/board.rs:151:13
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let mut board = Self::from_fen(STARTING_FEN);
[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: unreachable statement
[INFO] [stdout]    --> src/search/search.rs:232:13
[INFO] [stdout]     |
[INFO] [stdout] 230 |             unimplemented!("iterative deepening needs to be enabled");
[INFO] [stdout]     |             --------------------------------------------------------- any code following this expression is unreachable
[INFO] [stdout] 231 |             // Non-iterative deepening: search to the maximum depth directly
[INFO] [stdout] 232 |             let eval = self.pvs::<{ NodeType::Root as u8 }, false>(board, MAX_DEPTH as u32, -MAX_EVAL, MAX_EVAL, 0);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `board`
[INFO] [stdout]    --> src/move_generation/move_generation.rs:355:113
[INFO] [stdout]     |
[INFO] [stdout] 355 | fn add_moves_new<F: Fn(usize) -> Move>(mov: F, moves: &mut ArrayVec<Move, MAX_LEGAL_MOVES>, bitboard: Bitboard, board: &Board) {
[INFO] [stdout]     |                                                                                                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_board`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prev_mov`
[INFO] [stdout]   --> src/perft.rs:83:49
[INFO] [stdout]    |
[INFO] [stdout] 83 | fn search(result: &mut PerftResult, depth: u32, prev_mov: Move, board: &mut Board) -> u64 {
[INFO] [stdout]    |                                                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prev_mov`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/board/board.rs:151:13
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let mut board = Self::from_fen(STARTING_FEN);
[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: variable does not need to be mutable
[INFO] [stdout]    --> src/search/search.rs:512:13
[INFO] [stdout]     |
[INFO] [stdout] 512 |         let mut hash_move = None;
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add_moves_new` is never used
[INFO] [stdout]    --> src/move_generation/move_generation.rs:355:4
[INFO] [stdout]     |
[INFO] [stdout] 355 | fn add_moves_new<F: Fn(usize) -> Move>(mov: F, moves: &mut ArrayVec<Move, MAX_LEGAL_MOVES>, bitboard: Bitboard, board: &Board) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_move_info` is never used
[INFO] [stdout]    --> src/perft.rs:147:4
[INFO] [stdout]     |
[INFO] [stdout] 147 | fn get_move_info(mov: Move, board: &Board, extra_info: bool) -> PerftResult {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `move_score` is never used
[INFO] [stdout]   --> src/search/move_ordering.rs:69:4
[INFO] [stdout]    |
[INFO] [stdout] 69 | fn move_score(search: &mut Search, mov: Move, board: &Board, ply: u32, hash_move: Option<Move>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/search/transposition_table.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 |         (*TRANSPOSITION_TABLE.as_mut_ptr()).store(entry);
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/search/transposition_table.rs:22:16
[INFO] [stdout]    |
[INFO] [stdout] 22 |     unsafe { (*TRANSPOSITION_TABLE.as_mut_ptr()).probe(hash) }
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/search/transposition_table.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |         TRANSPOSITION_TABLE.write(TranspositionTable::new());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `board`
[INFO] [stdout]    --> src/move_generation/move_generation.rs:355:113
[INFO] [stdout]     |
[INFO] [stdout] 355 | fn add_moves_new<F: Fn(usize) -> Move>(mov: F, moves: &mut ArrayVec<Move, MAX_LEGAL_MOVES>, bitboard: Bitboard, board: &Board) {
[INFO] [stdout]     |                                                                                                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_board`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prev_mov`
[INFO] [stdout]   --> src/perft.rs:83:49
[INFO] [stdout]    |
[INFO] [stdout] 83 | fn search(result: &mut PerftResult, depth: u32, prev_mov: Move, board: &mut Board) -> u64 {
[INFO] [stdout]    |                                                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prev_mov`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `spawn`
[INFO] [stdout]  --> src/bin/uci.rs:6:25
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::thread::{self, spawn, JoinHandle};
[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: `chess_engine::board::zobrist_hash::initialize_zobrist_tables`
[INFO] [stdout]   --> src/bin/uci.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use chess_engine::board::zobrist_hash::initialize_zobrist_tables;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `get_between_ray`, `get_checkmask_between`, and `initialize_tables`
[INFO] [stdout]   --> src/bin/uci.rs:12:52
[INFO] [stdout]    |
[INFO] [stdout] 12 | use chess_engine::move_generation::attack_tables::{get_between_ray, get_checkmask_between, initialize_tables};
[INFO] [stdout]    |                                                    ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `spawn`
[INFO] [stdout]  --> src/bin/uci.rs:6:25
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::thread::{self, spawn, JoinHandle};
[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: `chess_engine::board::zobrist_hash::initialize_zobrist_tables`
[INFO] [stdout]   --> src/bin/uci.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use chess_engine::board::zobrist_hash::initialize_zobrist_tables;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `get_between_ray`, `get_checkmask_between`, and `initialize_tables`
[INFO] [stdout]   --> src/bin/uci.rs:12:52
[INFO] [stdout]    |
[INFO] [stdout] 12 | use chess_engine::move_generation::attack_tables::{get_between_ray, get_checkmask_between, initialize_tables};
[INFO] [stdout]    |                                                    ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufRead`
[INFO] [stdout]  --> src/bin/uci.rs:1:21
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::{self, BufRead};
[INFO] [stdout]   |                     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `author` are never read
[INFO] [stdout]   --> src/bin/uci.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct Uci {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] 39 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 40 |     author: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ponder` is never used
[INFO] [stdout]    --> src/bin/uci.rs:280:8
[INFO] [stdout]     |
[INFO] [stdout]  48 | impl Uci {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 280 |     fn ponder(&self) {}
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufRead`
[INFO] [stdout]  --> src/bin/uci.rs:1:21
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::{self, BufRead};
[INFO] [stdout]   |                     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/search/search.rs:512:13
[INFO] [stdout]     |
[INFO] [stdout] 512 |         let mut hash_move = None;
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `author` are never read
[INFO] [stdout]   --> src/bin/uci.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct Uci {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] 39 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 40 |     author: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ponder` is never used
[INFO] [stdout]    --> src/bin/uci.rs:280:8
[INFO] [stdout]     |
[INFO] [stdout]  48 | impl Uci {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 280 |     fn ponder(&self) {}
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add_moves_new` is never used
[INFO] [stdout]    --> src/move_generation/move_generation.rs:355:4
[INFO] [stdout]     |
[INFO] [stdout] 355 | fn add_moves_new<F: Fn(usize) -> Move>(mov: F, moves: &mut ArrayVec<Move, MAX_LEGAL_MOVES>, bitboard: Bitboard, board: &Board) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_move_info` is never used
[INFO] [stdout]    --> src/perft.rs:147:4
[INFO] [stdout]     |
[INFO] [stdout] 147 | fn get_move_info(mov: Move, board: &Board, extra_info: bool) -> PerftResult {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `move_score` is never used
[INFO] [stdout]   --> src/search/move_ordering.rs:69:4
[INFO] [stdout]    |
[INFO] [stdout] 69 | fn move_score(search: &mut Search, mov: Move, board: &Board, ply: u32, hash_move: Option<Move>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/search/transposition_table.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 |         (*TRANSPOSITION_TABLE.as_mut_ptr()).store(entry);
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/search/transposition_table.rs:22:16
[INFO] [stdout]    |
[INFO] [stdout] 22 |     unsafe { (*TRANSPOSITION_TABLE.as_mut_ptr()).probe(hash) }
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/search/transposition_table.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |         TRANSPOSITION_TABLE.write(TranspositionTable::new());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 20.42s
[INFO] running `Command { std: "docker" "inspect" "7723ac70c43fe56b802b6e69e2ee8e95ce61734313ab4487007bfdd5d8229811", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7723ac70c43fe56b802b6e69e2ee8e95ce61734313ab4487007bfdd5d8229811", kill_on_drop: false }`
[INFO] [stdout] 7723ac70c43fe56b802b6e69e2ee8e95ce61734313ab4487007bfdd5d8229811
