[INFO] cloning repository https://github.com/mcthouacbb/Calamity [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mcthouacbb/Calamity" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmcthouacbb%2FCalamity", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmcthouacbb%2FCalamity'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] e86b5cb1216a0a3eb67f6b461e0a67cf99b0dd96 [INFO] checking mcthouacbb/Calamity against try#c9557a20e5ef2e0e02c29a5fafd850d1b7cf1e4f for 2025-12-16-next-solver-global [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmcthouacbb%2FCalamity" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/mcthouacbb/Calamity [INFO] finished tweaking git repo https://github.com/mcthouacbb/Calamity [INFO] tweaked toml for git repo https://github.com/mcthouacbb/Calamity written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/mcthouacbb/Calamity on toolchain c9557a20e5ef2e0e02c29a5fafd850d1b7cf1e4f [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c9557a20e5ef2e0e02c29a5fafd850d1b7cf1e4f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/mcthouacbb/Calamity 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" "+c9557a20e5ef2e0e02c29a5fafd850d1b7cf1e4f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "+c9557a20e5ef2e0e02c29a5fafd850d1b7cf1e4f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 4f447e049af02901bf2f96926c4e4d241b9ad8e8a561305e34e5f2e2ca45f2d0 [INFO] running `Command { std: "docker" "start" "-a" "4f447e049af02901bf2f96926c4e4d241b9ad8e8a561305e34e5f2e2ca45f2d0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "4f447e049af02901bf2f96926c4e4d241b9ad8e8a561305e34e5f2e2ca45f2d0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4f447e049af02901bf2f96926c4e4d241b9ad8e8a561305e34e5f2e2ca45f2d0", kill_on_drop: false }` [INFO] [stdout] 4f447e049af02901bf2f96926c4e4d241b9ad8e8a561305e34e5f2e2ca45f2d0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "+c9557a20e5ef2e0e02c29a5fafd850d1b7cf1e4f" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8ee4e0e023a61ac99591ad7358eee1e0540dc470c8900c4d3b5bf388292d333d [INFO] running `Command { std: "docker" "start" "-a" "8ee4e0e023a61ac99591ad7358eee1e0540dc470c8900c4d3b5bf388292d333d", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.172 [INFO] [stderr] Compiling zerocopy v0.8.25 [INFO] [stderr] Compiling getrandom v0.3.2 [INFO] [stderr] Checking rand_core v0.9.3 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking rand v0.9.1 [INFO] [stderr] Checking calamity v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `Color` and `Piece` [INFO] [stdout] --> src/games/three_check/see.rs:1:23 [INFO] [stdout] | [INFO] [stdout] 1 | use super::{Bitboard, Color, Move, MoveKind, Piece, PieceType, ThreeCheckState, attacks}; [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: `CopyMakeWrapper` [INFO] [stdout] --> src/games/three_check.rs:16:42 [INFO] [stdout] | [INFO] [stdout] 16 | use super::board::{Board, CopyMakeBoard, CopyMakeWrapper, GameResult}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Color` and `Piece` [INFO] [stdout] --> src/games/three_check/see.rs:1:23 [INFO] [stdout] | [INFO] [stdout] 1 | use super::{Bitboard, Color, Move, MoveKind, Piece, PieceType, ThreeCheckState, attacks}; [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: `CopyMakeWrapper` [INFO] [stdout] --> src/games/three_check.rs:16:42 [INFO] [stdout] | [INFO] [stdout] 16 | use super::board::{Board, CopyMakeBoard, CopyMakeWrapper, GameResult}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `hash_combine` [INFO] [stdout] --> src/util/mod.rs:8:16 [INFO] [stdout] | [INFO] [stdout] 8 | pub use hash::{hash_combine, murmur_hash3}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ThreeCheckState`, `connect4::Connect4Board`, `hexapawn::HexapawnBoard`, and `tictactoe::TicTacToeBoard` [INFO] [stdout] --> src/main.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | connect4::Connect4Board, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 12 | hexapawn::HexapawnBoard, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 13 | three_check::{self, Color, ThreeCheckBoard, ThreeCheckState}, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 14 | tictactoe::TicTacToeBoard, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `hash_combine` [INFO] [stdout] --> src/util/mod.rs:8:16 [INFO] [stdout] | [INFO] [stdout] 8 | pub use hash::{hash_combine, murmur_hash3}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `C4Benchmark`, `ab_solver::ABSolver`, and `run_benchmark` [INFO] [stdout] --> src/main.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | ab_solver::ABSolver, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 18 | c4_solver::{C4Benchmark, run_benchmark}, [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `util::Square` [INFO] [stdout] --> src/main.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | use util::Square; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ThreeCheckState`, `connect4::Connect4Board`, `hexapawn::HexapawnBoard`, and `tictactoe::TicTacToeBoard` [INFO] [stdout] --> src/main.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | connect4::Connect4Board, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 12 | hexapawn::HexapawnBoard, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 13 | three_check::{self, Color, ThreeCheckBoard, ThreeCheckState}, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 14 | tictactoe::TicTacToeBoard, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `C4Benchmark`, `ab_solver::ABSolver`, and `run_benchmark` [INFO] [stdout] --> src/main.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | ab_solver::ABSolver, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 18 | c4_solver::{C4Benchmark, run_benchmark}, [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `util::Square` [INFO] [stdout] --> src/main.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | use util::Square; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `CopyMakeBoard` [INFO] [stdout] --> src/games/three_check.rs:16:27 [INFO] [stdout] | [INFO] [stdout] 16 | use super::board::{Board, CopyMakeBoard, CopyMakeWrapper, GameResult}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `CopyMakeBoard` [INFO] [stdout] --> src/games/three_check.rs:16:27 [INFO] [stdout] | [INFO] [stdout] 16 | use super::board::{Board, CopyMakeBoard, CopyMakeWrapper, GameResult}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `select_random_move` is never used [INFO] [stdout] --> src/main.rs:72:4 [INFO] [stdout] | [INFO] [stdout] 72 | fn select_random_move(board: &ThreeCheckBoard) -> three_check::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: function `piece_value` is never used [INFO] [stdout] --> src/eval/three_check.rs:72:8 [INFO] [stdout] | [INFO] [stdout] 72 | pub fn piece_value(pt: PieceType) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `AtaxxSquare` is never used [INFO] [stdout] --> src/games/ataxx.rs:11:10 [INFO] [stdout] | [INFO] [stdout] 11 | pub type AtaxxSquare = Square<7, 7>; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AtaxxMove` is never constructed [INFO] [stdout] --> src/games/ataxx.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct AtaxxMove { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/games/ataxx.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 18 | impl AtaxxMove { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 19 | pub fn null() -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn single(sq: AtaxxSquare) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | pub fn double(from: AtaxxSquare, to: AtaxxSquare) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | fn from_sq_raw(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | fn to_sq_raw(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub fn from_sq(&self) -> AtaxxSquare { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub fn to_sq(&self) -> AtaxxSquare { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn is_null(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | pub fn is_single(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `AtaxxColor` is never used [INFO] [stdout] --> src/games/ataxx.rs:60:10 [INFO] [stdout] | [INFO] [stdout] 60 | pub enum AtaxxColor { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `flip` is never used [INFO] [stdout] --> src/games/ataxx.rs:66:12 [INFO] [stdout] | [INFO] [stdout] 65 | impl AtaxxColor { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 66 | pub fn flip(self) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `AtaxxPiece` is never used [INFO] [stdout] --> src/games/ataxx.rs:75:10 [INFO] [stdout] | [INFO] [stdout] 75 | pub enum AtaxxPiece { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `single_moves` is never used [INFO] [stdout] --> src/games/ataxx.rs:81:10 [INFO] [stdout] | [INFO] [stdout] 81 | const fn single_moves(pieces: Bitboard<7, 7>) -> Bitboard<7, 7> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ADJACENT_SQUARES` is never used [INFO] [stdout] --> src/games/ataxx.rs:87:7 [INFO] [stdout] | [INFO] [stdout] 87 | const ADJACENT_SQUARES: [Bitboard<7, 7>; 49] = { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DOUBLE_MOVES` is never used [INFO] [stdout] --> src/games/ataxx.rs:98:7 [INFO] [stdout] | [INFO] [stdout] 98 | const DOUBLE_MOVES: [Bitboard<7, 7>; 49] = { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AtaxxState` is never constructed [INFO] [stdout] --> src/games/ataxx.rs:124:12 [INFO] [stdout] | [INFO] [stdout] 124 | pub struct AtaxxState { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `pieces`, `pieces_mut`, and `occ` are never used [INFO] [stdout] --> src/games/ataxx.rs:132:12 [INFO] [stdout] | [INFO] [stdout] 131 | impl AtaxxState { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] 132 | pub fn pieces(&self, c: AtaxxColor) -> Bitboard<7, 7> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 136 | pub fn pieces_mut(&mut self, c: AtaxxColor) -> &mut Bitboard<7, 7> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn occ(&self) -> Bitboard<7, 7> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `AtaxxBoard` is never used [INFO] [stdout] --> src/games/ataxx.rs:335:10 [INFO] [stdout] | [INFO] [stdout] 335 | pub type AtaxxBoard = CopyMakeWrapper; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `GameResult` is never used [INFO] [stdout] --> src/games/board.rs:5:10 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum GameResult { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `game_result` is never used [INFO] [stdout] --> src/games/board.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 12 | pub trait Board: Sized + Clone { [INFO] [stdout] | ----- method in this trait [INFO] [stdout] ... [INFO] [stdout] 23 | fn game_result(&self) -> GameResult; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `CopyMakeBoard` is never used [INFO] [stdout] --> src/games/board.rs:31:11 [INFO] [stdout] | [INFO] [stdout] 31 | pub trait CopyMakeBoard: Sized + Clone { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CopyMakeWrapper` is never constructed [INFO] [stdout] --> src/games/board.rs:50:12 [INFO] [stdout] | [INFO] [stdout] 50 | pub struct CopyMakeWrapper [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `curr_state` and `curr_state_mut` are never used [INFO] [stdout] --> src/games/board.rs:61:12 [INFO] [stdout] | [INFO] [stdout] 57 | / impl CopyMakeWrapper [INFO] [stdout] 58 | | where [INFO] [stdout] 59 | | T: CopyMakeBoard, [INFO] [stdout] | |_____________________- methods in this implementation [INFO] [stdout] 60 | { [INFO] [stdout] 61 | pub fn curr_state(&self) -> &T { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | fn curr_state_mut(&mut self) -> &mut T { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Connect4Move` is never constructed [INFO] [stdout] --> src/games/connect4.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct Connect4Move(Connect4Square); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `sq` is never used [INFO] [stdout] --> src/games/connect4.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 19 | impl Connect4Move { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] 20 | pub fn sq(&self) -> Connect4Square { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Connect4Color` is never used [INFO] [stdout] --> src/games/connect4.rs:26:10 [INFO] [stdout] | [INFO] [stdout] 26 | pub enum Connect4Color { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `flip` is never used [INFO] [stdout] --> src/games/connect4.rs:32:12 [INFO] [stdout] | [INFO] [stdout] 31 | impl Connect4Color { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] 32 | pub fn flip(self) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Connect4State` is never constructed [INFO] [stdout] --> src/games/connect4.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 41 | pub struct Connect4State { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/games/connect4.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 46 | impl Connect4State { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 47 | pub fn pieces(&self, c: Connect4Color) -> Connect4Bitboard { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | pub fn stm(&self) -> Connect4Color { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn occ(&self) -> Connect4Bitboard { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn above_pieces(&self) -> Connect4Bitboard { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | pub fn move_locations(&self) -> Connect4Bitboard { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn move_locations_after(&self, mv: Connect4Move) -> Connect4Bitboard { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | pub fn key(&self) -> u64 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn our_threats(&self) -> Connect4Bitboard { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn their_threats(&self) -> Connect4Bitboard { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | pub fn our_threats_after(&self, mv: Connect4Move) -> Connect4Bitboard { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 94 | fn compute_threats(pieces: Connect4Bitboard, occ: Connect4Bitboard) -> Connect4Bitboard { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 123 | fn is_loss(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Connect4Board` is never used [INFO] [stdout] --> src/games/connect4.rs:258:10 [INFO] [stdout] | [INFO] [stdout] 258 | pub type Connect4Board = CopyMakeWrapper; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Connect4Bitboard` is never constructed [INFO] [stdout] --> src/games/connect4/bitboard.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct Connect4Bitboard(Bitboard<7, 7>); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/games/connect4/bitboard.rs:12:15 [INFO] [stdout] | [INFO] [stdout] 11 | impl Connect4Bitboard { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 12 | pub const NONE: Self = Self(Bitboard::NONE); [INFO] [stdout] | ^^^^ [INFO] [stdout] 13 | pub const VALID: Self = Self::row(0) [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | pub const fn from_raw(value: u64) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub const fn column(file: u8) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | pub const fn row(rank: u8) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub const fn from_square(sq: Connect4Square) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | pub const fn value(self) -> u64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | pub const fn north(self) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub const fn south(self) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub const fn east(self) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | pub const fn west(self) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | pub const fn lsb(self) -> Connect4Square { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | pub const fn msb(self) -> Connect4Square { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub const fn popcount(self) -> u32 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn poplsb(&mut self) -> Connect4Square { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | pub const fn any(self) -> bool { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 79 | pub const fn empty(self) -> bool { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 83 | pub const fn multiple(self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 87 | pub const fn one(self) -> bool { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 91 | pub fn set(&mut self, sq: Connect4Square) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 95 | pub fn toggle(&mut self, sq: Connect4Square) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | pub fn unset(&mut self, sq: Connect4Square) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | pub const fn has(self, sq: Connect4Square) -> bool { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | pub const fn bit_and(self, rhs: Self) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | pub const fn bit_or(self, rhs: Self) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | pub const fn bit_xor(self, rhs: Self) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | pub const fn bit_not(self) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Connect4Square` is never constructed [INFO] [stdout] --> src/games/connect4/square.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Connect4Square(Square<7, 7>); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/games/connect4/square.rs:7:18 [INFO] [stdout] | [INFO] [stdout] 6 | impl Connect4Square { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 7 | pub const fn from_row_column(row: u8, column: u8) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 12 | pub const fn from_util_sq(sq: Square<7, 7>) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | pub const fn from_raw(sq: u16) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | pub const fn to_util_sq(self) -> Square<7, 7> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub const fn value(self) -> u16 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | pub const fn row(self) -> u8 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub const fn column(self) -> u8 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `HexapawnSquare` is never used [INFO] [stdout] --> src/games/hexapawn.rs:11:10 [INFO] [stdout] | [INFO] [stdout] 11 | pub type HexapawnSquare = Square<3, 3>; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `HexapawnMove` is never constructed [INFO] [stdout] --> src/games/hexapawn.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct HexapawnMove { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `HexapawnColor` is never used [INFO] [stdout] --> src/games/hexapawn.rs:20:10 [INFO] [stdout] | [INFO] [stdout] 20 | pub enum HexapawnColor { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `flip` is never used [INFO] [stdout] --> src/games/hexapawn.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl HexapawnColor { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] 26 | pub fn flip(self) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `HexapawnState` is never constructed [INFO] [stdout] --> src/games/hexapawn.rs:35:12 [INFO] [stdout] | [INFO] [stdout] 35 | pub struct HexapawnState { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `HexapawnBoard` is never used [INFO] [stdout] --> src/games/hexapawn.rs:195:10 [INFO] [stdout] | [INFO] [stdout] 195 | pub type HexapawnBoard = CopyMakeWrapper; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `TicTacToeSquare` is never used [INFO] [stdout] --> src/games/tictactoe.rs:11:10 [INFO] [stdout] | [INFO] [stdout] 11 | pub type TicTacToeSquare = Square<3, 3>; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TicTacToeMove` is never constructed [INFO] [stdout] --> src/games/tictactoe.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct TicTacToeMove(TicTacToeSquare); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `to_sq` are never used [INFO] [stdout] --> src/games/tictactoe.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl TicTacToeMove { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 17 | pub fn new(sq: TicTacToeSquare) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | pub fn to_sq(self) -> TicTacToeSquare { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `TicTacToeColor` is never used [INFO] [stdout] --> src/games/tictactoe.rs:28:10 [INFO] [stdout] | [INFO] [stdout] 28 | pub enum TicTacToeColor { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `flip` is never used [INFO] [stdout] --> src/games/tictactoe.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl TicTacToeColor { [INFO] [stdout] | ------------------- method in this implementation [INFO] [stdout] 34 | pub fn flip(self) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Piece` is never used [INFO] [stdout] --> src/games/tictactoe.rs:42:6 [INFO] [stdout] | [INFO] [stdout] 42 | type Piece = TicTacToeColor; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TicTacToeState` is never constructed [INFO] [stdout] --> src/games/tictactoe.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 45 | pub struct TicTacToeState { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `TicTacToeBoard` is never used [INFO] [stdout] --> src/games/tictactoe.rs:167:10 [INFO] [stdout] | [INFO] [stdout] 167 | pub type TicTacToeBoard = CopyMakeWrapper; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `perft` is never used [INFO] [stdout] --> src/perft.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub fn perft(board: &mut B, depth: u32) -> u64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `perft_impl` is never used [INFO] [stdout] --> src/perft.rs:24:4 [INFO] [stdout] | [INFO] [stdout] 24 | fn perft_impl(board: &mut B, depth: u32) -> u64 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_perft_suite_file` is never used [INFO] [stdout] --> src/perft.rs:38:8 [INFO] [stdout] | [INFO] [stdout] 38 | pub fn run_perft_suite_file(filename: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_perft_suite` is never used [INFO] [stdout] --> src/perft.rs:45:8 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn run_perft_suite(tests: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ABSolver` is never constructed [INFO] [stdout] --> src/search/ab_solver.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct ABSolver { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `SCORE_WIN`, `new`, and `alpha_beta` are never used [INFO] [stdout] --> src/search/ab_solver.rs:13:11 [INFO] [stdout] | [INFO] [stdout] 12 | impl ABSolver { [INFO] [stdout] | -------------------------- associated items in this implementation [INFO] [stdout] 13 | const SCORE_WIN: i32 = 1000; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 14 | [INFO] [stdout] 15 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | fn alpha_beta(&mut self, board: &mut B, ply: i32, mut alpha: i32, beta: i32) -> i32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `C4TTEntry` is never constructed [INFO] [stdout] --> src/search/c4_solver.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct C4TTEntry { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `adjust_from_tt` and `to_tt` are never used [INFO] [stdout] --> src/search/c4_solver.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 23 | impl C4TTEntry { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] 24 | fn adjust_from_tt(&mut self, ply: i32) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | fn to_tt(&self, ply: i32) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Connect4Solver` is never constructed [INFO] [stdout] --> src/search/c4_solver.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Connect4Solver { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `SCORE_WIN`, `new`, `score_move`, `order_moves`, `alpha_beta`, and `clear` are never used [INFO] [stdout] --> src/search/c4_solver.rs:49:11 [INFO] [stdout] | [INFO] [stdout] 48 | impl Connect4Solver { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 49 | const SCORE_WIN: i32 = 1000; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 50 | [INFO] [stdout] 51 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | fn score_move(&mut self, board: &mut Connect4Board, mv: Connect4Move) -> i32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | fn order_moves(&mut self, board: &mut Connect4Board, moves: &mut ArrayVec) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 79 | fn alpha_beta( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 187 | pub fn clear(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `C4Benchmark` is never used [INFO] [stdout] --> src/search/c4_solver.rs:217:10 [INFO] [stdout] | [INFO] [stdout] 217 | pub enum C4Benchmark { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_benchmark` is never used [INFO] [stdout] --> src/search/c4_solver.rs:226:8 [INFO] [stdout] | [INFO] [stdout] 226 | pub fn run_benchmark(benchmark: C4Benchmark) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `nodes`, `time`, `score`, and `pv` are never read [INFO] [stdout] --> src/search/search.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct SearchResult { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 7 | pub nodes: u64, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 8 | pub time: Duration, [INFO] [stdout] | ^^^^ [INFO] [stdout] 9 | pub best_move: B::Move, [INFO] [stdout] 10 | pub score: i32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 11 | pub pv: Vec, [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 `max_nodes` is never read [INFO] [stdout] --> src/search/search.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct SearchLimits { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] 16 | pub max_nodes: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SearchLimits` 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 `clear` is never used [INFO] [stdout] --> src/search/search.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 21 | pub trait Search { [INFO] [stdout] | ------ method in this trait [INFO] [stdout] 22 | fn search(&mut self, board: &B, limits: SearchLimits) -> SearchResult; [INFO] [stdout] 23 | fn clear(&mut self) {} [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `adjust_from_tt` and `to_tt` are never used [INFO] [stdout] --> src/search/three_check.rs:29:8 [INFO] [stdout] | [INFO] [stdout] 28 | impl TTEntry { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 29 | fn adjust_from_tt(&mut self, ply: i32) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | fn to_tt(&self, ply: i32) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decisive_score_from_tt` is never used [INFO] [stdout] --> src/search/tt.rs:62:8 [INFO] [stdout] | [INFO] [stdout] 62 | pub fn decisive_score_from_tt(score: i32, ply: i32) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decisive_score_to_tt` is never used [INFO] [stdout] --> src/search/tt.rs:66:8 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn decisive_score_to_tt(score: i32, ply: i32) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_fen_pieces` is never used [INFO] [stdout] --> src/util/fen_parsing.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn parse_fen_pieces( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `murmur_hash3` is never used [INFO] [stdout] --> src/util/hash.rs:1:14 [INFO] [stdout] | [INFO] [stdout] 1 | pub const fn murmur_hash3(mut key: u64) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `hash_combine` is never used [INFO] [stdout] --> src/util/hash.rs:11:14 [INFO] [stdout] | [INFO] [stdout] 11 | pub const fn hash_combine(lhs: u64, rhs: u64) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `select_random_move` is never used [INFO] [stdout] --> src/main.rs:72:4 [INFO] [stdout] | [INFO] [stdout] 72 | fn select_random_move(board: &ThreeCheckBoard) -> three_check::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: function `piece_value` is never used [INFO] [stdout] --> src/eval/three_check.rs:72:8 [INFO] [stdout] | [INFO] [stdout] 72 | pub fn piece_value(pt: PieceType) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `AtaxxSquare` is never used [INFO] [stdout] --> src/games/ataxx.rs:11:10 [INFO] [stdout] | [INFO] [stdout] 11 | pub type AtaxxSquare = Square<7, 7>; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AtaxxMove` is never constructed [INFO] [stdout] --> src/games/ataxx.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct AtaxxMove { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/games/ataxx.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 18 | impl AtaxxMove { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 19 | pub fn null() -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn single(sq: AtaxxSquare) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | pub fn double(from: AtaxxSquare, to: AtaxxSquare) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | fn from_sq_raw(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | fn to_sq_raw(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub fn from_sq(&self) -> AtaxxSquare { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub fn to_sq(&self) -> AtaxxSquare { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn is_null(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | pub fn is_single(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `AtaxxColor` is never used [INFO] [stdout] --> src/games/ataxx.rs:60:10 [INFO] [stdout] | [INFO] [stdout] 60 | pub enum AtaxxColor { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `flip` is never used [INFO] [stdout] --> src/games/ataxx.rs:66:12 [INFO] [stdout] | [INFO] [stdout] 65 | impl AtaxxColor { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 66 | pub fn flip(self) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `AtaxxPiece` is never used [INFO] [stdout] --> src/games/ataxx.rs:75:10 [INFO] [stdout] | [INFO] [stdout] 75 | pub enum AtaxxPiece { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `single_moves` is never used [INFO] [stdout] --> src/games/ataxx.rs:81:10 [INFO] [stdout] | [INFO] [stdout] 81 | const fn single_moves(pieces: Bitboard<7, 7>) -> Bitboard<7, 7> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ADJACENT_SQUARES` is never used [INFO] [stdout] --> src/games/ataxx.rs:87:7 [INFO] [stdout] | [INFO] [stdout] 87 | const ADJACENT_SQUARES: [Bitboard<7, 7>; 49] = { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DOUBLE_MOVES` is never used [INFO] [stdout] --> src/games/ataxx.rs:98:7 [INFO] [stdout] | [INFO] [stdout] 98 | const DOUBLE_MOVES: [Bitboard<7, 7>; 49] = { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AtaxxState` is never constructed [INFO] [stdout] --> src/games/ataxx.rs:124:12 [INFO] [stdout] | [INFO] [stdout] 124 | pub struct AtaxxState { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `pieces`, `pieces_mut`, and `occ` are never used [INFO] [stdout] --> src/games/ataxx.rs:132:12 [INFO] [stdout] | [INFO] [stdout] 131 | impl AtaxxState { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] 132 | pub fn pieces(&self, c: AtaxxColor) -> Bitboard<7, 7> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 136 | pub fn pieces_mut(&mut self, c: AtaxxColor) -> &mut Bitboard<7, 7> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn occ(&self) -> Bitboard<7, 7> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `AtaxxBoard` is never used [INFO] [stdout] --> src/games/ataxx.rs:335:10 [INFO] [stdout] | [INFO] [stdout] 335 | pub type AtaxxBoard = CopyMakeWrapper; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `GameResult` is never used [INFO] [stdout] --> src/games/board.rs:5:10 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum GameResult { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `game_result` is never used [INFO] [stdout] --> src/games/board.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 12 | pub trait Board: Sized + Clone { [INFO] [stdout] | ----- method in this trait [INFO] [stdout] ... [INFO] [stdout] 23 | fn game_result(&self) -> GameResult; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `CopyMakeBoard` is never used [INFO] [stdout] --> src/games/board.rs:31:11 [INFO] [stdout] | [INFO] [stdout] 31 | pub trait CopyMakeBoard: Sized + Clone { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CopyMakeWrapper` is never constructed [INFO] [stdout] --> src/games/board.rs:50:12 [INFO] [stdout] | [INFO] [stdout] 50 | pub struct CopyMakeWrapper [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `curr_state` and `curr_state_mut` are never used [INFO] [stdout] --> src/games/board.rs:61:12 [INFO] [stdout] | [INFO] [stdout] 57 | / impl CopyMakeWrapper [INFO] [stdout] 58 | | where [INFO] [stdout] 59 | | T: CopyMakeBoard, [INFO] [stdout] | |_____________________- methods in this implementation [INFO] [stdout] 60 | { [INFO] [stdout] 61 | pub fn curr_state(&self) -> &T { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | fn curr_state_mut(&mut self) -> &mut T { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Connect4Move` is never constructed [INFO] [stdout] --> src/games/connect4.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct Connect4Move(Connect4Square); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `sq` is never used [INFO] [stdout] --> src/games/connect4.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 19 | impl Connect4Move { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] 20 | pub fn sq(&self) -> Connect4Square { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Connect4Color` is never used [INFO] [stdout] --> src/games/connect4.rs:26:10 [INFO] [stdout] | [INFO] [stdout] 26 | pub enum Connect4Color { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `flip` is never used [INFO] [stdout] --> src/games/connect4.rs:32:12 [INFO] [stdout] | [INFO] [stdout] 31 | impl Connect4Color { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] 32 | pub fn flip(self) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Connect4State` is never constructed [INFO] [stdout] --> src/games/connect4.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 41 | pub struct Connect4State { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/games/connect4.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 46 | impl Connect4State { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 47 | pub fn pieces(&self, c: Connect4Color) -> Connect4Bitboard { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | pub fn stm(&self) -> Connect4Color { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn occ(&self) -> Connect4Bitboard { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn above_pieces(&self) -> Connect4Bitboard { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | pub fn move_locations(&self) -> Connect4Bitboard { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn move_locations_after(&self, mv: Connect4Move) -> Connect4Bitboard { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | pub fn key(&self) -> u64 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn our_threats(&self) -> Connect4Bitboard { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn their_threats(&self) -> Connect4Bitboard { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | pub fn our_threats_after(&self, mv: Connect4Move) -> Connect4Bitboard { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 94 | fn compute_threats(pieces: Connect4Bitboard, occ: Connect4Bitboard) -> Connect4Bitboard { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 123 | fn is_loss(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Connect4Board` is never used [INFO] [stdout] --> src/games/connect4.rs:258:10 [INFO] [stdout] | [INFO] [stdout] 258 | pub type Connect4Board = CopyMakeWrapper; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Connect4Bitboard` is never constructed [INFO] [stdout] --> src/games/connect4/bitboard.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct Connect4Bitboard(Bitboard<7, 7>); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/games/connect4/bitboard.rs:12:15 [INFO] [stdout] | [INFO] [stdout] 11 | impl Connect4Bitboard { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 12 | pub const NONE: Self = Self(Bitboard::NONE); [INFO] [stdout] | ^^^^ [INFO] [stdout] 13 | pub const VALID: Self = Self::row(0) [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | pub const fn from_raw(value: u64) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub const fn column(file: u8) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | pub const fn row(rank: u8) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub const fn from_square(sq: Connect4Square) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | pub const fn value(self) -> u64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | pub const fn north(self) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub const fn south(self) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub const fn east(self) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | pub const fn west(self) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | pub const fn lsb(self) -> Connect4Square { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | pub const fn msb(self) -> Connect4Square { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub const fn popcount(self) -> u32 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn poplsb(&mut self) -> Connect4Square { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | pub const fn any(self) -> bool { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 79 | pub const fn empty(self) -> bool { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 83 | pub const fn multiple(self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 87 | pub const fn one(self) -> bool { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 91 | pub fn set(&mut self, sq: Connect4Square) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 95 | pub fn toggle(&mut self, sq: Connect4Square) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | pub fn unset(&mut self, sq: Connect4Square) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | pub const fn has(self, sq: Connect4Square) -> bool { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | pub const fn bit_and(self, rhs: Self) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | pub const fn bit_or(self, rhs: Self) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | pub const fn bit_xor(self, rhs: Self) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | pub const fn bit_not(self) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Connect4Square` is never constructed [INFO] [stdout] --> src/games/connect4/square.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Connect4Square(Square<7, 7>); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/games/connect4/square.rs:7:18 [INFO] [stdout] | [INFO] [stdout] 6 | impl Connect4Square { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 7 | pub const fn from_row_column(row: u8, column: u8) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 12 | pub const fn from_util_sq(sq: Square<7, 7>) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | pub const fn from_raw(sq: u16) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | pub const fn to_util_sq(self) -> Square<7, 7> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub const fn value(self) -> u16 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | pub const fn row(self) -> u8 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub const fn column(self) -> u8 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `HexapawnSquare` is never used [INFO] [stdout] --> src/games/hexapawn.rs:11:10 [INFO] [stdout] | [INFO] [stdout] 11 | pub type HexapawnSquare = Square<3, 3>; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `HexapawnMove` is never constructed [INFO] [stdout] --> src/games/hexapawn.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct HexapawnMove { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `HexapawnColor` is never used [INFO] [stdout] --> src/games/hexapawn.rs:20:10 [INFO] [stdout] | [INFO] [stdout] 20 | pub enum HexapawnColor { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `flip` is never used [INFO] [stdout] --> src/games/hexapawn.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl HexapawnColor { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] 26 | pub fn flip(self) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `HexapawnState` is never constructed [INFO] [stdout] --> src/games/hexapawn.rs:35:12 [INFO] [stdout] | [INFO] [stdout] 35 | pub struct HexapawnState { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `HexapawnBoard` is never used [INFO] [stdout] --> src/games/hexapawn.rs:195:10 [INFO] [stdout] | [INFO] [stdout] 195 | pub type HexapawnBoard = CopyMakeWrapper; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `TicTacToeSquare` is never used [INFO] [stdout] --> src/games/tictactoe.rs:11:10 [INFO] [stdout] | [INFO] [stdout] 11 | pub type TicTacToeSquare = Square<3, 3>; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TicTacToeMove` is never constructed [INFO] [stdout] --> src/games/tictactoe.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct TicTacToeMove(TicTacToeSquare); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `to_sq` are never used [INFO] [stdout] --> src/games/tictactoe.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl TicTacToeMove { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 17 | pub fn new(sq: TicTacToeSquare) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | pub fn to_sq(self) -> TicTacToeSquare { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `TicTacToeColor` is never used [INFO] [stdout] --> src/games/tictactoe.rs:28:10 [INFO] [stdout] | [INFO] [stdout] 28 | pub enum TicTacToeColor { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `flip` is never used [INFO] [stdout] --> src/games/tictactoe.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl TicTacToeColor { [INFO] [stdout] | ------------------- method in this implementation [INFO] [stdout] 34 | pub fn flip(self) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Piece` is never used [INFO] [stdout] --> src/games/tictactoe.rs:42:6 [INFO] [stdout] | [INFO] [stdout] 42 | type Piece = TicTacToeColor; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TicTacToeState` is never constructed [INFO] [stdout] --> src/games/tictactoe.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 45 | pub struct TicTacToeState { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `TicTacToeBoard` is never used [INFO] [stdout] --> src/games/tictactoe.rs:167:10 [INFO] [stdout] | [INFO] [stdout] 167 | pub type TicTacToeBoard = CopyMakeWrapper; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `perft` is never used [INFO] [stdout] --> src/perft.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub fn perft(board: &mut B, depth: u32) -> u64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `perft_impl` is never used [INFO] [stdout] --> src/perft.rs:24:4 [INFO] [stdout] | [INFO] [stdout] 24 | fn perft_impl(board: &mut B, depth: u32) -> u64 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_perft_suite_file` is never used [INFO] [stdout] --> src/perft.rs:38:8 [INFO] [stdout] | [INFO] [stdout] 38 | pub fn run_perft_suite_file(filename: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_perft_suite` is never used [INFO] [stdout] --> src/perft.rs:45:8 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn run_perft_suite(tests: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ABSolver` is never constructed [INFO] [stdout] --> src/search/ab_solver.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct ABSolver { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `SCORE_WIN`, `new`, and `alpha_beta` are never used [INFO] [stdout] --> src/search/ab_solver.rs:13:11 [INFO] [stdout] | [INFO] [stdout] 12 | impl ABSolver { [INFO] [stdout] | -------------------------- associated items in this implementation [INFO] [stdout] 13 | const SCORE_WIN: i32 = 1000; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 14 | [INFO] [stdout] 15 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | fn alpha_beta(&mut self, board: &mut B, ply: i32, mut alpha: i32, beta: i32) -> i32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `C4TTEntry` is never constructed [INFO] [stdout] --> src/search/c4_solver.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct C4TTEntry { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `adjust_from_tt` and `to_tt` are never used [INFO] [stdout] --> src/search/c4_solver.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 23 | impl C4TTEntry { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] 24 | fn adjust_from_tt(&mut self, ply: i32) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | fn to_tt(&self, ply: i32) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Connect4Solver` is never constructed [INFO] [stdout] --> src/search/c4_solver.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Connect4Solver { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `SCORE_WIN`, `new`, `score_move`, `order_moves`, `alpha_beta`, and `clear` are never used [INFO] [stdout] --> src/search/c4_solver.rs:49:11 [INFO] [stdout] | [INFO] [stdout] 48 | impl Connect4Solver { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 49 | const SCORE_WIN: i32 = 1000; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 50 | [INFO] [stdout] 51 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | fn score_move(&mut self, board: &mut Connect4Board, mv: Connect4Move) -> i32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | fn order_moves(&mut self, board: &mut Connect4Board, moves: &mut ArrayVec) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 79 | fn alpha_beta( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 187 | pub fn clear(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `C4Benchmark` is never used [INFO] [stdout] --> src/search/c4_solver.rs:217:10 [INFO] [stdout] | [INFO] [stdout] 217 | pub enum C4Benchmark { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_benchmark` is never used [INFO] [stdout] --> src/search/c4_solver.rs:226:8 [INFO] [stdout] | [INFO] [stdout] 226 | pub fn run_benchmark(benchmark: C4Benchmark) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `nodes`, `time`, `score`, and `pv` are never read [INFO] [stdout] --> src/search/search.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct SearchResult { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 7 | pub nodes: u64, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 8 | pub time: Duration, [INFO] [stdout] | ^^^^ [INFO] [stdout] 9 | pub best_move: B::Move, [INFO] [stdout] 10 | pub score: i32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 11 | pub pv: Vec, [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 `max_nodes` is never read [INFO] [stdout] --> src/search/search.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct SearchLimits { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] 16 | pub max_nodes: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SearchLimits` 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 `clear` is never used [INFO] [stdout] --> src/search/search.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 21 | pub trait Search { [INFO] [stdout] | ------ method in this trait [INFO] [stdout] 22 | fn search(&mut self, board: &B, limits: SearchLimits) -> SearchResult; [INFO] [stdout] 23 | fn clear(&mut self) {} [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `adjust_from_tt` and `to_tt` are never used [INFO] [stdout] --> src/search/three_check.rs:29:8 [INFO] [stdout] | [INFO] [stdout] 28 | impl TTEntry { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 29 | fn adjust_from_tt(&mut self, ply: i32) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | fn to_tt(&self, ply: i32) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decisive_score_from_tt` is never used [INFO] [stdout] --> src/search/tt.rs:62:8 [INFO] [stdout] | [INFO] [stdout] 62 | pub fn decisive_score_from_tt(score: i32, ply: i32) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decisive_score_to_tt` is never used [INFO] [stdout] --> src/search/tt.rs:66:8 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn decisive_score_to_tt(score: i32, ply: i32) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_fen_pieces` is never used [INFO] [stdout] --> src/util/fen_parsing.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn parse_fen_pieces( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `murmur_hash3` is never used [INFO] [stdout] --> src/util/hash.rs:1:14 [INFO] [stdout] | [INFO] [stdout] 1 | pub const fn murmur_hash3(mut key: u64) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `hash_combine` is never used [INFO] [stdout] --> src/util/hash.rs:11:14 [INFO] [stdout] | [INFO] [stdout] 11 | pub const fn hash_combine(lhs: u64, rhs: u64) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.74s [INFO] running `Command { std: "docker" "inspect" "8ee4e0e023a61ac99591ad7358eee1e0540dc470c8900c4d3b5bf388292d333d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8ee4e0e023a61ac99591ad7358eee1e0540dc470c8900c4d3b5bf388292d333d", kill_on_drop: false }` [INFO] [stdout] 8ee4e0e023a61ac99591ad7358eee1e0540dc470c8900c4d3b5bf388292d333d