[INFO] cloning repository https://github.com/mostafa-j13/Arzhang
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mostafa-j13/Arzhang" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmostafa-j13%2FArzhang", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmostafa-j13%2FArzhang'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 5e4a45dc4c2472dc7afe6e6b0e2572ab36d31e1c
[INFO] checking mostafa-j13/Arzhang against 5c543b0b8c73c7b72bc8284ced4fb22ead15734d for pr-160186
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmostafa-j13%2FArzhang" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/mostafa-j13/Arzhang
[INFO] finished tweaking git repo https://github.com/mostafa-j13/Arzhang
[INFO] tweaked toml for git repo https://github.com/mostafa-j13/Arzhang written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/mostafa-j13/Arzhang on toolchain 5c543b0b8c73c7b72bc8284ced4fb22ead15734d
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/mostafa-j13/Arzhang 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" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded twox-hash v2.1.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 7b5d5d0632588877da9d6c741c5f8db456b631c36522a4d3a8064be27ad7df21
[INFO] running `Command { std: "docker" "start" "7b5d5d0632588877da9d6c741c5f8db456b631c36522a4d3a8064be27ad7df21", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7b5d5d0632588877da9d6c741c5f8db456b631c36522a4d3a8064be27ad7df21", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7b5d5d0632588877da9d6c741c5f8db456b631c36522a4d3a8064be27ad7df21" "/opt/rustwide/cargo-home/bin/cargo" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7b5d5d0632588877da9d6c741c5f8db456b631c36522a4d3a8064be27ad7df21", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7b5d5d0632588877da9d6c741c5f8db456b631c36522a4d3a8064be27ad7df21" "/opt/rustwide/cargo-home/bin/cargo" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.94
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling twox-hash v2.1.1
[INFO] [stderr]     Checking rand_core v0.10.0
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]    Compiling memchr v2.7.4
[INFO] [stderr]     Checking futures-core v0.3.32
[INFO] [stderr]     Checking cpufeatures v0.3.0
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking socket2 v0.5.8
[INFO] [stderr]     Checking sdd v3.0.10
[INFO] [stderr]     Checking dashmap v6.1.0
[INFO] [stderr]     Checking num-format v0.4.4
[INFO] [stderr]    Compiling ruzstd v0.8.2
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking chacha20 v0.10.0
[INFO] [stderr]     Checking scc v2.4.0
[INFO] [stderr]     Checking rand v0.10.0
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking futures-executor v0.3.32
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling serial_test_derive v3.4.0
[INFO] [stderr]     Checking serial_test v3.4.0
[INFO] [stderr]     Checking tokio v1.44.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling arzhang v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::vec_to_string`
[INFO] [stdout]   --> src/chess/game/game.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::vec_to_string;
[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: `crate::print_bitboard`
[INFO] [stdout]  --> src/chess/game/board/move_generation/magic.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::print_bitboard;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `tscp_evaluation`
[INFO] [stdout]  --> src/chess/game/board/ai/mod.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[cfg(tscp_evaluation)]
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^ help: found config with similar value: `feature = "tscp_evaluation"`
[INFO] [stdout]   |
[INFO] [stdout]   = help: expected names are: `docsrs`, `feature`, and `test` and 34 more
[INFO] [stdout]   = help: consider using a Cargo feature instead
[INFO] [stdout]   = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]            [lints.rust]
[INFO] [stdout]            unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tscp_evaluation)'] }
[INFO] [stdout]   = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tscp_evaluation)");` to the top of the `build.rs`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::vec_to_string`
[INFO] [stdout]   --> src/chess/game/game.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::vec_to_string;
[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: `crate::chess::game::board::Square::*`
[INFO] [stdout]  --> src/chess/game/board/move_generation/pref_test.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::chess::game::board::Square::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MoveFlag` and `Move`
[INFO] [stdout]  --> src/chess/game/board/move_generation/pref_test.rs:2:40
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::chess::game::board::{Board, Move, MoveFlag};
[INFO] [stdout]   |                                        ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicU64` and `Ordering`
[INFO] [stdout]  --> src/chess/game/board/move_generation/pref_test.rs:7:25
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::sync::atomic::{AtomicU64, Ordering};
[INFO] [stdout]   |                         ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/chess/game/board/move_generation/pref_test.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/chess/game/board/move_generation/pref_test.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration` and `Instant`
[INFO] [stdout]   --> src/chess/game/board/move_generation/pref_test.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::time::{Duration, Instant};
[INFO] [stdout]    |                 ^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_format::Locale::se`
[INFO] [stdout]   --> src/chess/game/board/move_generation/pref_test.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use num_format::Locale::se;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/chess/game/board/move_generation/magic.rs:41:15
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let mul = (blockers.wrapping_mul(entry.magic));
[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] 41 -     let mul = (blockers.wrapping_mul(entry.magic));
[INFO] [stdout] 41 +     let mul = blockers.wrapping_mul(entry.magic);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `tscp_evaluation`
[INFO] [stdout]  --> src/chess/game/board/ai/mod.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[cfg(tscp_evaluation)]
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^ help: found config with similar value: `feature = "tscp_evaluation"`
[INFO] [stdout]   |
[INFO] [stdout]   = help: expected names are: `docsrs`, `feature`, and `test` and 34 more
[INFO] [stdout]   = help: consider using a Cargo feature instead
[INFO] [stdout]   = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]            [lints.rust]
[INFO] [stdout]            unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tscp_evaluation)'] }
[INFO] [stdout]   = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tscp_evaluation)");` to the top of the `build.rs`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `stockfish`
[INFO] [stdout]    --> src/chess/game/board/ai/evaluation_tests.rs:165:7
[INFO] [stdout]     |
[INFO] [stdout] 165 | #[cfg(stockfish)]
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider using a Cargo feature instead
[INFO] [stdout]     = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]              [lints.rust]
[INFO] [stdout]              unexpected_cfgs = { level = "warn", check-cfg = ['cfg(stockfish)'] }
[INFO] [stdout]     = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(stockfish)");` to the top of the `build.rs`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `stockfish`
[INFO] [stdout]    --> src/chess/game/board/ai/evaluation_tests.rs:256:7
[INFO] [stdout]     |
[INFO] [stdout] 256 | #[cfg(stockfish)]
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider using a Cargo feature instead
[INFO] [stdout]     = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]              [lints.rust]
[INFO] [stdout]              unexpected_cfgs = { level = "warn", check-cfg = ['cfg(stockfish)'] }
[INFO] [stdout]     = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(stockfish)");` to the top of the `build.rs`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::chess::game::board::ai::evalutaion::WinSate::Lost`
[INFO] [stdout]  --> src/chess/game/board/ai/evaluation_tests.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::chess::game::board::ai::evalutaion::WinSate::Lost;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EvalValue::*`
[INFO] [stdout]    --> src/chess/game/board/ai/evaluation_tests.rs:290:9
[INFO] [stdout]     |
[INFO] [stdout] 290 |     use EvalValue::*;
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BitBoard`, `Board`, and `Square`
[INFO] [stdout]  --> src/chess/game/board/ai/test.rs:2:33
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::chess::game::board::{BitBoard, Board, Move, Square};
[INFO] [stdout]   |                                 ^^^^^^^^  ^^^^^        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::chess::game::board::move_generation::magic::rook_attacks`
[INFO] [stdout]  --> src/chess/game/board/ai/test.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::chess::game::board::move_generation::magic::rook_attacks;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chess::game::board::board::Board::get_piece`: use get_piece_bb instead
[INFO] [stdout]   --> src/chess/game/tests/tests.rs:79:32
[INFO] [stdout]    |
[INFO] [stdout] 79 |     let promoted_piece = board.get_piece(4,7);
[INFO] [stdout]    |                                ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chess::game::board::board::Board::get_piece`: use get_piece_bb instead
[INFO] [stdout]    --> src/chess/game/tests/tests.rs:216:20
[INFO] [stdout]     |
[INFO] [stdout] 216 |         game.board.get_piece(6, 0).unwrap().piece_type,
[INFO] [stdout]     |                    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chess::game::board::board::Board::get_piece`: use get_piece_bb instead
[INFO] [stdout]    --> src/chess/game/tests/tests.rs:221:20
[INFO] [stdout]     |
[INFO] [stdout] 221 |         game.board.get_piece(5, 0).unwrap().piece_type,
[INFO] [stdout]     |                    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chess::game::board::board::Board::get_piece`: use get_piece_bb instead
[INFO] [stdout]    --> src/chess/game/tests/tests.rs:227:24
[INFO] [stdout]     |
[INFO] [stdout] 227 |     assert!(game.board.get_piece(4, 0).is_none(), "King's original position is not empty");
[INFO] [stdout]     |                        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chess::game::board::board::Board::get_piece`: use get_piece_bb instead
[INFO] [stdout]    --> src/chess/game/tests/tests.rs:228:24
[INFO] [stdout]     |
[INFO] [stdout] 228 |     assert!(game.board.get_piece(7, 0).is_none(), "Rook's original position is not empty");
[INFO] [stdout]     |                        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chess::game::board::board::Board::get_piece`: use get_piece_bb instead
[INFO] [stdout]    --> src/chess/game/tests/tests.rs:263:20
[INFO] [stdout]     |
[INFO] [stdout] 263 |         game.board.get_piece(3, 0).unwrap().piece_type,
[INFO] [stdout]     |                    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chess::game::board::board::Board::get_piece`: use get_piece_bb instead
[INFO] [stdout]    --> src/chess/game/tests/tests.rs:270:20
[INFO] [stdout]     |
[INFO] [stdout] 270 |         game.board.get_piece(1, 3).unwrap().piece_type,
[INFO] [stdout]     |                    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chess::game::board::board::Board::get_piece`: use get_piece_bb instead
[INFO] [stdout]    --> src/chess/game/tests/tests.rs:276:20
[INFO] [stdout]     |
[INFO] [stdout] 276 |         game.board.get_piece(5, 3).unwrap().piece_type,
[INFO] [stdout]     |                    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chess::game::board::board::Board::get_piece`: use get_piece_bb instead
[INFO] [stdout]    --> src/chess/game/tests/tests.rs:283:20
[INFO] [stdout]     |
[INFO] [stdout] 283 |         game.board.get_piece(6, 7).unwrap().piece_type,
[INFO] [stdout]     |                    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chess::game::board::board::Board::get_piece`: use get_piece_bb instead
[INFO] [stdout]    --> src/chess/game/tests/tests.rs:289:24
[INFO] [stdout]     |
[INFO] [stdout] 289 |     assert!(game.board.get_piece(0, 0).is_none(), "Unexpected piece at a1");
[INFO] [stdout]     |                        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chess::game::board::board::Board::get_piece`: use get_piece_bb instead
[INFO] [stdout]    --> src/chess/game/board/tests/tests.rs:548:30
[INFO] [stdout]     |
[INFO] [stdout] 548 |             assert_eq!(board.get_piece(4, 7), None); // No piece at (4, 7)
[INFO] [stdout]     |                              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chess::game::board::board::Board::get_piece`: use get_piece_bb instead
[INFO] [stdout]    --> src/chess/game/board/tests/tests.rs:549:30
[INFO] [stdout]     |
[INFO] [stdout] 549 |             assert_eq!(board.get_piece(0, 7), None); // No piece at (0, 7)
[INFO] [stdout]     |                              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chess::game::board::board::Board::get_piece`: use get_piece_bb instead
[INFO] [stdout]    --> src/chess/game/board/tests/tests.rs:550:30
[INFO] [stdout]     |
[INFO] [stdout] 550 |             assert_eq!(board.get_piece(2, 7), Some(Piece::new(PieceType::King, Color::Black))); // Black King at (2, 7)
[INFO] [stdout]     |                              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chess::game::board::board::Board::get_piece`: use get_piece_bb instead
[INFO] [stdout]    --> src/chess/game/board/tests/tests.rs:551:30
[INFO] [stdout]     |
[INFO] [stdout] 551 |             assert_eq!(board.get_piece(3, 7), Some(Piece::new(PieceType::Rook, Color::Black))); // Black Rook at (3, 7)
[INFO] [stdout]     |                              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chess::game::board::board::Board::get_piece`: use get_piece_bb instead
[INFO] [stdout]    --> src/chess/game/board/tests/tests.rs:556:26
[INFO] [stdout]     |
[INFO] [stdout] 556 |         assert_eq!(board.get_piece(4, 7), Some(Piece::new(PieceType::King, Color::Black))); // Black King should be at (4, 7)
[INFO] [stdout]     |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chess::game::board::board::Board::get_piece`: use get_piece_bb instead
[INFO] [stdout]    --> src/chess/game/board/tests/tests.rs:557:26
[INFO] [stdout]     |
[INFO] [stdout] 557 |         assert_eq!(board.get_piece(0, 7), Some(Piece::new(PieceType::Rook, Color::Black))); // Black Rook should be at (0, 7)
[INFO] [stdout]     |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chess::game::board::board::Board::get_piece`: use get_piece_bb instead
[INFO] [stdout]    --> src/chess/game/board/tests/tests.rs:558:26
[INFO] [stdout]     |
[INFO] [stdout] 558 |         assert_eq!(board.get_piece(2, 7), None); // No piece at (2, 7)
[INFO] [stdout]     |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chess::game::board::board::Board::get_piece`: use get_piece_bb instead
[INFO] [stdout]    --> src/chess/game/board/tests/tests.rs:559:26
[INFO] [stdout]     |
[INFO] [stdout] 559 |         assert_eq!(board.get_piece(3, 7), None); // No piece at (3, 7)
[INFO] [stdout]     |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chess::game::board::board::Board::get_piece`: use get_piece_bb instead
[INFO] [stdout]    --> src/chess/game/board/tests/tests.rs:642:23
[INFO] [stdout]     |
[INFO] [stdout] 642 |         assert!(board.get_piece(1,0).is_none(),"old cell must be empty");
[INFO] [stdout]     |                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chess::game::board::board::Board::get_piece`: use get_piece_bb instead
[INFO] [stdout]    --> src/chess/game/board/tests/tests.rs:643:28
[INFO] [stdout]     |
[INFO] [stdout] 643 |         let option = board.get_piece(2, 2);
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rook_to`
[INFO] [stdout]    --> src/chess/game/game.rs:217:27
[INFO] [stdout]     |
[INFO] [stdout] 217 |             let (king_to, rook_to) = match mv.to_cell() {
[INFO] [stdout]     |                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rook_to`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rook_to`
[INFO] [stdout]    --> src/chess/game/game.rs:217:27
[INFO] [stdout]     |
[INFO] [stdout] 217 |             let (king_to, rook_to) = match mv.to_cell() {
[INFO] [stdout]     |                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rook_to`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `best_move` is never read
[INFO] [stdout]    --> src/chess/game/board/ai/ai.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 |         let mut best_move = None;        // Best move found so far
[INFO] [stdout]     |                             ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 107 |                         best_move = Some(best_at_this_depth);
[INFO] [stdout]     |                         --------- `best_move` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `attackers` is never read
[INFO] [stdout]   --> src/chess/game/board/ai/see.rs:29:29
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let mut attackers = self.get_attackers(to, occupied);
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 46 |             attackers = self.get_attackers(to, occupied);
[INFO] [stdout]    |             -------------------------------------------- `attackers` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `best_move` is never read
[INFO] [stdout]    --> src/chess/game/board/ai/ai.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 |         let mut best_move = None;        // Best move found so far
[INFO] [stdout]     |                             ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 107 |                         best_move = Some(best_at_this_depth);
[INFO] [stdout]     |                         --------- `best_move` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/chess/game/board/ai/evaluation_tests.rs:321:9
[INFO] [stdout]     |
[INFO] [stdout] 321 |     let v=mvs.iter().map(|m| (*m,board.static_exchange_eval(m))).
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s1`
[INFO] [stdout]   --> src/chess/game/board/ai/test.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let s1=game.move_score(&m1, &None, &[None,None], &None, 0);
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_s1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s2`
[INFO] [stdout]   --> src/chess/game/board/ai/test.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let s2=game.move_score(&m2, &None, &[None,None], &None, 0);
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_s2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `attackers` is never read
[INFO] [stdout]   --> src/chess/game/board/ai/see.rs:29:29
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let mut attackers = self.get_attackers(to, occupied);
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 46 |             attackers = self.get_attackers(to, occupied);
[INFO] [stdout]    |             -------------------------------------------- `attackers` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]    --> src/chess/game/board/tests/tests.rs:440:17
[INFO] [stdout]     |
[INFO] [stdout] 440 |             let res = board.apply_move_fill_flag(&mov).unwrap();
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]    --> src/chess/game/board/tests/tests.rs:479:17
[INFO] [stdout]     |
[INFO] [stdout] 479 |             let res = board.apply_move_fill_flag(&mov).unwrap();
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]    --> src/chess/game/board/tests/tests.rs:537:17
[INFO] [stdout]     |
[INFO] [stdout] 537 |             let res = board.apply_move_fill_flag(&mov).unwrap();
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]    --> src/chess/game/board/tests/tests.rs:601:17
[INFO] [stdout]     |
[INFO] [stdout] 601 |             let res = board.apply_move_fill_flag(&mov).unwrap();
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `execute_move` and `make_computer_move_with_stop` are never used
[INFO] [stdout]    --> src/chess/game/game.rs:183:12
[INFO] [stdout]     |
[INFO] [stdout]  66 | impl Game {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub fn execute_move(&mut self, mv: &Move) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub(crate) fn make_computer_move_with_stop(&mut self, depth: usize, stop_signal: Option<Arc<AtomicBool>>, f: fn(Result<Vec<Move...
[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 `get_king_position` is never used
[INFO] [stdout]    --> src/chess/game/board/board.rs:536:12
[INFO] [stdout]     |
[INFO] [stdout]  53 | impl Board {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 536 |     pub fn get_king_position(&self, color: Color) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FILE_A` is never used
[INFO] [stdout]   --> src/chess/game/board/move_generation/mod.rs:34:11
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub const FILE_A: BitBoard = BitBoard(0x0101010101010101);
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FILE_H` is never used
[INFO] [stdout]   --> src/chess/game/board/move_generation/mod.rs:35:11
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub const FILE_H: BitBoard = BitBoard(0x8080808080808080);
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROOK_MAP_SIZE` is never used
[INFO] [stdout]   --> src/chess/game/board/move_generation/magic_data.rs:72:11
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub const ROOK_MAP_SIZE: usize = 102400;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BISHOP_MAP_SIZE` is never used
[INFO] [stdout]    --> src/chess/game/board/move_generation/magic_data.rs:142:11
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub const BISHOP_MAP_SIZE: usize = 5248;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MjEval` is never constructed
[INFO] [stdout]  --> src/chess/game/board/ai/mjeval.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) struct MjEval;
[INFO] [stdout]   |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `evaluate_mobility`, `game_mode`, and `evaluate_king_safety` are never used
[INFO] [stdout]    --> src/chess/game/board/ai/mjeval.rs:32:8
[INFO] [stdout]     |
[INFO] [stdout]  31 | impl MjEval {
[INFO] [stdout]     | ----------- associated functions in this implementation
[INFO] [stdout]  32 |     fn evaluate_mobility(board: &Board, game_mode: GameMode) -> CentiPawn {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     fn game_mode(board:&Board) -> GameMode {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     fn evaluate_king_safety(board:&Board) -> CentiPawn {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/chess/game/board/ai/mjeval.rs:185:11
[INFO] [stdout]     |
[INFO] [stdout] 184 | impl MjEval {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] 185 |     const PIECE_VALUE: [CentiPawn; 6] = [100, 300, 300, 500, 900, 0];
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] 186 |     #[rustfmt::skip]
[INFO] [stdout] 187 |     const PAWN_MIDGAME_TABLE: [CentiPawn; 64] = [
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     const PAWN_ENDGAME_TABLE: [CentiPawn; 64] = [
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     const KNIGHT_POSITION_TABLE: [CentiPawn; 64] = [
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     const KING_MIDGAME_POSITION_TABLE: [CentiPawn; 64] = [
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     const KING_ENDGAME_POSITION_TABLE: [CentiPawn; 64] = [
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 252 |     const BISHOP_POSITION_TABLE: [CentiPawn; 64] = [
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 263 |     const ROOK_POSITION_TABLE: [CentiPawn; 64] = [
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     const QUEEN_POSITION_TABLE: [CentiPawn; 64] = [
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 285 |     const FILE_MASKS: [u64; 8] = [
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 296 |     fn is_open_file(file_index: File, white_pawns: BitBoard, black_pawns: BitBoard) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 301 |     fn is_semi_open_file(file_index: File, my_pawns: BitBoard, enemy_pawns: BitBoard) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GameMode` is never used
[INFO] [stdout]    --> src/chess/game/board/ai/mjeval.rs:308:6
[INFO] [stdout]     |
[INFO] [stdout] 308 | enum GameMode{
[INFO] [stdout]     |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `is_parent_null` and `mv` are never read
[INFO] [stdout]   --> src/chess/game/board/ai/lib.rs:11:16
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct SearchData{
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 10 |     pub(crate) null_move:bool,
[INFO] [stdout] 11 |     pub(crate) is_parent_null:bool,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub(crate) mv: Option<Move>,
[INFO] [stdout]    |                ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `fail` and `limit` are never used
[INFO] [stdout]   --> src/chess/game/board/ai/lib.rs:65:19
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl AlphaBeta{
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub(crate) fn fail(&self) -> bool {
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn limit(&self,a:EvalValue,b:EvalValue)->Self{
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `pieces` is never used
[INFO] [stdout]   --> src/chess/game/board/ai/see.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl Board{
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 11 |     fn pieces(&self,p:PieceType)->BitBoard{
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `start` and `record` are never used
[INFO] [stdout]   --> src/chess/timer.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Timing {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn start(&self, label: &str) -> TimerX {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     fn record(&self, label: &str, duration: i64) {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TimerX` is never constructed
[INFO] [stdout]   --> src/chess/timer.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct TimerX {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/chess/timer.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl TimerX {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 70 |     fn new(timer: Arc<Timing>, label: String) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_timeout_cli` is never used
[INFO] [stdout]    --> src/interfaces/uci.rs:347:8
[INFO] [stdout]     |
[INFO] [stdout] 347 | pub fn calculate_timeout_cli(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `execute_move_test` is never used
[INFO] [stdout]   --> src/chess/game/game.rs:54:19
[INFO] [stdout]    |
[INFO] [stdout] 52 | impl Game {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 53 |     #[cfg(test)]
[INFO] [stdout] 54 |     pub(crate) fn execute_move_test(&mut self, p0: &Move) -> bool {
[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 `make_computer_move_with_stop` is never used
[INFO] [stdout]    --> src/chess/game/game.rs:187:19
[INFO] [stdout]     |
[INFO] [stdout]  66 | impl Game {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub(crate) fn make_computer_move_with_stop(&mut self, depth: usize, stop_signal: Option<Arc<AtomicBool>>, f: fn(Result<Vec<Move...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_king_position` is never used
[INFO] [stdout]    --> src/chess/game/board/board.rs:536:12
[INFO] [stdout]     |
[INFO] [stdout]  53 | impl Board {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 536 |     pub fn get_king_position(&self, color: Color) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FILE_A` is never used
[INFO] [stdout]   --> src/chess/game/board/move_generation/mod.rs:34:11
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub const FILE_A: BitBoard = BitBoard(0x0101010101010101);
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FILE_H` is never used
[INFO] [stdout]   --> src/chess/game/board/move_generation/mod.rs:35:11
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub const FILE_H: BitBoard = BitBoard(0x8080808080808080);
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROOK_MAP_SIZE` is never used
[INFO] [stdout]   --> src/chess/game/board/move_generation/magic_data.rs:72:11
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub const ROOK_MAP_SIZE: usize = 102400;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BISHOP_MAP_SIZE` is never used
[INFO] [stdout]    --> src/chess/game/board/move_generation/magic_data.rs:142:11
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub const BISHOP_MAP_SIZE: usize = 5248;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MjEval` is never constructed
[INFO] [stdout]  --> src/chess/game/board/ai/mjeval.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) struct MjEval;
[INFO] [stdout]   |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `evaluate_mobility`, `game_mode`, and `evaluate_king_safety` are never used
[INFO] [stdout]    --> src/chess/game/board/ai/mjeval.rs:32:8
[INFO] [stdout]     |
[INFO] [stdout]  31 | impl MjEval {
[INFO] [stdout]     | ----------- associated functions in this implementation
[INFO] [stdout]  32 |     fn evaluate_mobility(board: &Board, game_mode: GameMode) -> CentiPawn {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     fn game_mode(board:&Board) -> GameMode {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     fn evaluate_king_safety(board:&Board) -> CentiPawn {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/chess/game/board/ai/mjeval.rs:185:11
[INFO] [stdout]     |
[INFO] [stdout] 184 | impl MjEval {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] 185 |     const PIECE_VALUE: [CentiPawn; 6] = [100, 300, 300, 500, 900, 0];
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] 186 |     #[rustfmt::skip]
[INFO] [stdout] 187 |     const PAWN_MIDGAME_TABLE: [CentiPawn; 64] = [
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     const PAWN_ENDGAME_TABLE: [CentiPawn; 64] = [
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     const KNIGHT_POSITION_TABLE: [CentiPawn; 64] = [
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     const KING_MIDGAME_POSITION_TABLE: [CentiPawn; 64] = [
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     const KING_ENDGAME_POSITION_TABLE: [CentiPawn; 64] = [
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 252 |     const BISHOP_POSITION_TABLE: [CentiPawn; 64] = [
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 263 |     const ROOK_POSITION_TABLE: [CentiPawn; 64] = [
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     const QUEEN_POSITION_TABLE: [CentiPawn; 64] = [
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 285 |     const FILE_MASKS: [u64; 8] = [
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 296 |     fn is_open_file(file_index: File, white_pawns: BitBoard, black_pawns: BitBoard) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 301 |     fn is_semi_open_file(file_index: File, my_pawns: BitBoard, enemy_pawns: BitBoard) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GameMode` is never used
[INFO] [stdout]    --> src/chess/game/board/ai/mjeval.rs:308:6
[INFO] [stdout]     |
[INFO] [stdout] 308 | enum GameMode{
[INFO] [stdout]     |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `is_parent_null` and `mv` are never read
[INFO] [stdout]   --> src/chess/game/board/ai/lib.rs:11:16
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct SearchData{
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 10 |     pub(crate) null_move:bool,
[INFO] [stdout] 11 |     pub(crate) is_parent_null:bool,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub(crate) mv: Option<Move>,
[INFO] [stdout]    |                ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `fail` and `limit` are never used
[INFO] [stdout]   --> src/chess/game/board/ai/lib.rs:65:19
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl AlphaBeta{
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub(crate) fn fail(&self) -> bool {
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn limit(&self,a:EvalValue,b:EvalValue)->Self{
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `pieces` is never used
[INFO] [stdout]   --> src/chess/game/board/ai/see.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl Board{
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 11 |     fn pieces(&self,p:PieceType)->BitBoard{
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `start` and `record` are never used
[INFO] [stdout]   --> src/chess/timer.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Timing {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn start(&self, label: &str) -> TimerX {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     fn record(&self, label: &str, duration: i64) {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TimerX` is never constructed
[INFO] [stdout]   --> src/chess/timer.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct TimerX {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/chess/timer.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl TimerX {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 70 |     fn new(timer: Arc<Timing>, label: String) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `regex`
[INFO] [stderr]   --> Cargo.toml:19:1
[INFO] [stderr]    |
[INFO] [stderr] 19 | regex = "1.12.3"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `regex`
[INFO] [stderr] warning: `arzhang` (manifest) generated 1 warning
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 21.20s
[INFO] running `Command { std: "docker" "inspect" "7b5d5d0632588877da9d6c741c5f8db456b631c36522a4d3a8064be27ad7df21", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7b5d5d0632588877da9d6c741c5f8db456b631c36522a4d3a8064be27ad7df21", kill_on_drop: false }`
[INFO] [stdout] 7b5d5d0632588877da9d6c741c5f8db456b631c36522a4d3a8064be27ad7df21
