[INFO] cloning repository https://github.com/JFielding7/SoftwareTestingCriterionProject
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/JFielding7/SoftwareTestingCriterionProject" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJFielding7%2FSoftwareTestingCriterionProject", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJFielding7%2FSoftwareTestingCriterionProject'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 15a9c007efe61afa3fb50de01f2fa61c03ab22c8
[INFO] checking JFielding7/SoftwareTestingCriterionProject/15a9c007efe61afa3fb50de01f2fa61c03ab22c8 against a7c37f9f0ee5e93396106e9de20f4a86b4154e63 for pr-129249-4
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJFielding7%2FSoftwareTestingCriterionProject" "/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/JFielding7/SoftwareTestingCriterionProject
[INFO] finished tweaking git repo https://github.com/JFielding7/SoftwareTestingCriterionProject
[INFO] tweaked toml for git repo https://github.com/JFielding7/SoftwareTestingCriterionProject written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/JFielding7/SoftwareTestingCriterionProject on toolchain a7c37f9f0ee5e93396106e9de20f4a86b4154e63
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a7c37f9f0ee5e93396106e9de20f4a86b4154e63" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/JFielding7/SoftwareTestingCriterionProject 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" "+a7c37f9f0ee5e93396106e9de20f4a86b4154e63" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded num v0.1.43
[INFO] [stderr]   Downloaded rand_pcg v0.9.0
[INFO] [stderr]   Downloaded gungraun-macros v0.7.0
[INFO] [stderr]   Downloaded criterion-plot v0.8.0
[INFO] [stderr]   Downloaded gungraun v0.17.0
[INFO] [stderr]   Downloaded criterion v0.8.0
[INFO] [stderr]   Downloaded gungraun-runner v0.17.0
[INFO] [stderr]   Downloaded glam v0.30.9
[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] 48ae99f65581a6430ca2672baa1b4c501a01bc927167022c61ef8f9cc4bab98b
[INFO] running `Command { std: "docker" "start" "48ae99f65581a6430ca2672baa1b4c501a01bc927167022c61ef8f9cc4bab98b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "48ae99f65581a6430ca2672baa1b4c501a01bc927167022c61ef8f9cc4bab98b", 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" "48ae99f65581a6430ca2672baa1b4c501a01bc927167022c61ef8f9cc4bab98b" "/opt/rustwide/cargo-home/bin/cargo" "+a7c37f9f0ee5e93396106e9de20f4a86b4154e63" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "48ae99f65581a6430ca2672baa1b4c501a01bc927167022c61ef8f9cc4bab98b", 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" "48ae99f65581a6430ca2672baa1b4c501a01bc927167022c61ef8f9cc4bab98b" "/opt/rustwide/cargo-home/bin/cargo" "+a7c37f9f0ee5e93396106e9de20f4a86b4154e63" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.111
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]     Checking bytemuck v1.24.0
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling semver v1.0.27
[INFO] [stderr]    Compiling matrixmultiply v0.1.15
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]     Checking rawpointer v0.1.0
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]    Compiling alloca v0.4.0
[INFO] [stderr]    Compiling proc-macro-error-attr2 v2.0.0
[INFO] [stderr]     Checking regex-syntax v0.8.8
[INFO] [stderr]    Compiling gungraun-runner v0.17.0
[INFO] [stderr]     Checking memchr v2.7.6
[INFO] [stderr]     Checking itertools v0.13.0
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]     Checking dashmap v6.1.0
[INFO] [stderr]    Compiling gungraun v0.17.0
[INFO] [stderr]     Checking safe_arch v0.7.4
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]     Checking clap v4.5.53
[INFO] [stderr]     Checking plotters v0.3.7
[INFO] [stderr]     Checking num-iter v0.1.45
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking rand_pcg v0.9.0
[INFO] [stderr]     Checking num v0.1.43
[INFO] [stderr]     Checking page_size v0.6.0
[INFO] [stderr]     Checking rulinalg v0.4.2
[INFO] [stderr]    Compiling gungraun-macros v0.7.0
[INFO] [stderr]     Checking wide v0.7.33
[INFO] [stderr]     Checking serde_json v1.0.145
[INFO] [stderr]     Checking ndarray v0.17.1
[INFO] [stderr]     Checking regex-automata v0.4.13
[INFO] [stderr]     Checking simba v0.9.1
[INFO] [stderr]     Checking criterion-plot v0.8.0
[INFO] [stderr]     Checking regex v1.12.2
[INFO] [stderr]    Compiling proc-macro-error2 v2.0.1
[INFO] [stderr]    Compiling zerocopy-derive v0.8.31
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling derive_more-impl v2.1.0
[INFO] [stderr]    Compiling nalgebra-macros v0.3.0
[INFO] [stderr]    Compiling derive_more v2.1.0
[INFO] [stderr]     Checking zerocopy v0.8.31
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking nalgebra v0.34.1
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking ciborium-ll v0.2.2
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking ciborium v0.2.2
[INFO] [stderr]     Checking criterion v0.8.0
[INFO] [stderr]     Checking software_testing_project v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::connect_four::solver_util`
[INFO] [stdout]  --> src/connect_four/state_array.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::connect_four::solver_util;
[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::connect_four::piece::Piece::EMPTY`
[INFO] [stdout]  --> src/connect_four/state_bitboard.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::connect_four::piece::Piece::EMPTY;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::connect_four::solver_util`
[INFO] [stdout]  --> src/connect_four/state_array.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::connect_four::solver_util;
[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::connect_four::piece::Piece::EMPTY`
[INFO] [stdout]  --> src/connect_four/state_bitboard.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::connect_four::piece::Piece::EMPTY;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CURR_PIECE` is never used
[INFO] [stdout]  --> src/connect_four/state.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | const CURR_PIECE: u8 = b'X';
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OPP_PIECE` is never used
[INFO] [stdout]  --> src/connect_four/state.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const OPP_PIECE: u8 = b'O';
[INFO] [stdout]   |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CURR_PIECE` is never used
[INFO] [stdout]  --> src/connect_four/state.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | const CURR_PIECE: u8 = b'X';
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OPP_PIECE` is never used
[INFO] [stdout]  --> src/connect_four/state.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const OPP_PIECE: u8 = b'O';
[INFO] [stdout]   |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `heapsort`, `mergesort`, `quicksort`, and `timsort`
[INFO] [stdout]  --> src/main.rs:2:46
[INFO] [stdout]   |
[INFO] [stdout] 2 | use software_testing_project::sorts::sorts::{heapsort, mergesort, quicksort, timsort};
[INFO] [stdout]   |                                              ^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^  ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Rng` and `rng`
[INFO] [stdout]  --> src/main.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rand::{rng, Rng};
[INFO] [stdout]   |            ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand_pcg::Pcg64`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rand_pcg::Pcg64;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::connect_four::solver_util`
[INFO] [stdout]  --> src/connect_four/state_array.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::connect_four::solver_util;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::connect_four::piece::Piece::EMPTY`
[INFO] [stdout]  --> src/connect_four/state_bitboard.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::connect_four::piece::Piece::EMPTY;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StateArray` is never constructed
[INFO] [stdout]   --> src/connect_four/state_array.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct StateArray {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `board_index` and `piece_at` are never used
[INFO] [stdout]    --> src/connect_four/state_array.rs:198:8
[INFO] [stdout]     |
[INFO] [stdout] 196 | impl StateArray {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 197 |
[INFO] [stdout] 198 |     fn board_index(row: usize, col: usize) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     fn piece_at(&self, row: i32, col: i32) -> Piece {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Piece` is never used
[INFO] [stdout]  --> src/connect_four/piece.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum Piece {
[INFO] [stdout]   |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HASH_MOD` is never used
[INFO] [stdout]   --> src/connect_four/piece.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const HASH_MOD: u64 = 1000000007;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `next_player`, `is_occupied`, and `hash` are never used
[INFO] [stdout]   --> src/connect_four/piece.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Piece {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] 13 |     pub fn next_player(&self) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn is_occupied(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn hash(&self, curr_hash: u64, mut cell: usize) -> u64 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_position` is never used
[INFO] [stdout]   --> src/connect_four/naive.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn evaluate_position<S: State>(state: S) -> EvaluatePositionReturn {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_position` is never used
[INFO] [stdout]    --> src/connect_four/cache_strategy.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn evaluate_position<S: State>(state: S) -> EvaluatePositionReturn {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_CACHED_DEPTH` is never used
[INFO] [stdout]   --> src/connect_four/threads.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const MAX_CACHED_DEPTH: usize = 35;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ThreadContext` is never constructed
[INFO] [stdout]   --> src/connect_four/threads.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct ThreadContext<S: State> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HelperThreadHandler` is never constructed
[INFO] [stdout]   --> src/connect_four/threads.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | struct HelperThreadHandler {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SharedStateCache` is never constructed
[INFO] [stdout]   --> src/connect_four/threads.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct SharedStateCache<S: State> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `insert_alpha_bound`, `insert_beta_bound`, `fetch_alpha_bound`, and `fetch_beta_bound` are never used
[INFO] [stdout]   --> src/connect_four/threads.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl<S: State> SharedStateCache<S> {
[INFO] [stdout]    | ---------------------------------- associated items in this implementation
[INFO] [stdout] 31 |     fn new() -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     fn insert_alpha_bound(&self, state: S, bound: i32) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     fn insert_beta_bound(&self, state: S, bound: i32) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     fn fetch_alpha_bound(&self, state: &S) -> i32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     fn fetch_beta_bound(&self, state: &S) -> i32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_position_rec` is never used
[INFO] [stdout]   --> src/connect_four/threads.rs:55:4
[INFO] [stdout]    |
[INFO] [stdout] 55 | fn evaluate_position_rec<S: State>(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_position` is never used
[INFO] [stdout]    --> src/connect_four/threads.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub fn evaluate_position<S: State>(state: S) -> EvaluatePositionReturn {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_MOVE_ORDER` is never used
[INFO] [stdout]  --> src/connect_four/solver_util.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const DEFAULT_MOVE_ORDER: [usize; COLS] = [3, 2, 4, 1, 5, 0, 6];
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EvaluatePositionReturn` is never constructed
[INFO] [stdout]   --> src/connect_four/solver_util.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct EvaluatePositionReturn {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/connect_four/solver_util.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl EvaluatePositionReturn {
[INFO] [stdout]    | --------------------------- associated function in this implementation
[INFO] [stdout] 19 |     pub fn new(eval: i32, states_evaluated: usize) -> EvaluatePositionReturn {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BOARD_BITS` is never used
[INFO] [stdout]  --> src/connect_four/state_bitboard.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const BOARD_BITS: usize = 49;
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BOARD_MASK` is never used
[INFO] [stdout]  --> src/connect_four/state_bitboard.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const BOARD_MASK: u64 = (1 << BOARD_BITS) - 1;
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CURR_PIECE` is never used
[INFO] [stdout]  --> src/connect_four/state.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | const CURR_PIECE: u8 = b'X';
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OPP_PIECE` is never used
[INFO] [stdout]  --> src/connect_four/state.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const OPP_PIECE: u8 = b'O';
[INFO] [stdout]   |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `start_state` is never used
[INFO] [stdout]  --> src/connect_four/state.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub trait State: Eq + Hash + Sized + Send + Sync + Clone + 'static {
[INFO] [stdout]   |           ----- associated function in this trait
[INFO] [stdout] 7 |
[INFO] [stdout] 8 |     fn start_state() -> Self;
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `heapsort`, `mergesort`, `quicksort`, and `timsort`
[INFO] [stdout]  --> src/main.rs:2:46
[INFO] [stdout]   |
[INFO] [stdout] 2 | use software_testing_project::sorts::sorts::{heapsort, mergesort, quicksort, timsort};
[INFO] [stdout]   |                                              ^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^  ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Rng` and `rng`
[INFO] [stdout]  --> src/main.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rand::{rng, Rng};
[INFO] [stdout]   |            ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand_pcg::Pcg64`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rand_pcg::Pcg64;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::connect_four::solver_util`
[INFO] [stdout]  --> src/connect_four/state_array.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::connect_four::solver_util;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::connect_four::piece::Piece::EMPTY`
[INFO] [stdout]  --> src/connect_four/state_bitboard.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::connect_four::piece::Piece::EMPTY;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `software_testing_project::connect_four::state_bitboard::StateBitboard`
[INFO] [stdout]  --> benches/connect4_gungraun.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use software_testing_project::connect_four::state_bitboard::StateBitboard;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StateArray` is never constructed
[INFO] [stdout]   --> src/connect_four/state_array.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct StateArray {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `board_index` and `piece_at` are never used
[INFO] [stdout]    --> src/connect_four/state_array.rs:198:8
[INFO] [stdout]     |
[INFO] [stdout] 196 | impl StateArray {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 197 |
[INFO] [stdout] 198 |     fn board_index(row: usize, col: usize) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     fn piece_at(&self, row: i32, col: i32) -> Piece {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Piece` is never used
[INFO] [stdout]  --> src/connect_four/piece.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum Piece {
[INFO] [stdout]   |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HASH_MOD` is never used
[INFO] [stdout]   --> src/connect_four/piece.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const HASH_MOD: u64 = 1000000007;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `next_player`, `is_occupied`, and `hash` are never used
[INFO] [stdout]   --> src/connect_four/piece.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Piece {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] 13 |     pub fn next_player(&self) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn is_occupied(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn hash(&self, curr_hash: u64, mut cell: usize) -> u64 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_position` is never used
[INFO] [stdout]   --> src/connect_four/naive.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn evaluate_position<S: State>(state: S) -> EvaluatePositionReturn {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_position` is never used
[INFO] [stdout]    --> src/connect_four/cache_strategy.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn evaluate_position<S: State>(state: S) -> EvaluatePositionReturn {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_CACHED_DEPTH` is never used
[INFO] [stdout]   --> src/connect_four/threads.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const MAX_CACHED_DEPTH: usize = 35;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ThreadContext` is never constructed
[INFO] [stdout]   --> src/connect_four/threads.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct ThreadContext<S: State> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HelperThreadHandler` is never constructed
[INFO] [stdout]   --> src/connect_four/threads.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | struct HelperThreadHandler {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SharedStateCache` is never constructed
[INFO] [stdout]   --> src/connect_four/threads.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct SharedStateCache<S: State> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `insert_alpha_bound`, `insert_beta_bound`, `fetch_alpha_bound`, and `fetch_beta_bound` are never used
[INFO] [stdout]   --> src/connect_four/threads.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl<S: State> SharedStateCache<S> {
[INFO] [stdout]    | ---------------------------------- associated items in this implementation
[INFO] [stdout] 31 |     fn new() -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     fn insert_alpha_bound(&self, state: S, bound: i32) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     fn insert_beta_bound(&self, state: S, bound: i32) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     fn fetch_alpha_bound(&self, state: &S) -> i32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     fn fetch_beta_bound(&self, state: &S) -> i32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_position_rec` is never used
[INFO] [stdout]   --> src/connect_four/threads.rs:55:4
[INFO] [stdout]    |
[INFO] [stdout] 55 | fn evaluate_position_rec<S: State>(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_position` is never used
[INFO] [stdout]    --> src/connect_four/threads.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub fn evaluate_position<S: State>(state: S) -> EvaluatePositionReturn {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_MOVE_ORDER` is never used
[INFO] [stdout]  --> src/connect_four/solver_util.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const DEFAULT_MOVE_ORDER: [usize; COLS] = [3, 2, 4, 1, 5, 0, 6];
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EvaluatePositionReturn` is never constructed
[INFO] [stdout]   --> src/connect_four/solver_util.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct EvaluatePositionReturn {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/connect_four/solver_util.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl EvaluatePositionReturn {
[INFO] [stdout]    | --------------------------- associated function in this implementation
[INFO] [stdout] 19 |     pub fn new(eval: i32, states_evaluated: usize) -> EvaluatePositionReturn {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BOARD_BITS` is never used
[INFO] [stdout]  --> src/connect_four/state_bitboard.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const BOARD_BITS: usize = 49;
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BOARD_MASK` is never used
[INFO] [stdout]  --> src/connect_four/state_bitboard.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const BOARD_MASK: u64 = (1 << BOARD_BITS) - 1;
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CURR_PIECE` is never used
[INFO] [stdout]  --> src/connect_four/state.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | const CURR_PIECE: u8 = b'X';
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OPP_PIECE` is never used
[INFO] [stdout]  --> src/connect_four/state.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const OPP_PIECE: u8 = b'O';
[INFO] [stdout]   |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `start_state` is never used
[INFO] [stdout]  --> src/connect_four/state.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub trait State: Eq + Hash + Sized + Send + Sync + Clone + 'static {
[INFO] [stdout]   |           ----- associated function in this trait
[INFO] [stdout] 7 |
[INFO] [stdout] 8 |     fn start_state() -> Self;
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `nalgebra`
[INFO] [stderr]   --> Cargo.toml:28:1
[INFO] [stderr]    |
[INFO] [stderr] 28 | nalgebra = "0.34.1"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `nalgebra`
[INFO] [stderr] help: to still use for development builds, move to `dev-dependencies`
[INFO] [stderr] warning: unused dependency `ndarray`
[INFO] [stderr]   --> Cargo.toml:29:1
[INFO] [stderr]    |
[INFO] [stderr] 29 | ndarray = "0.17.1"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `ndarray`
[INFO] [stderr] help: to still use for development builds, move to `dev-dependencies`
[INFO] [stderr] warning: unused dependency `rulinalg`
[INFO] [stderr]   --> Cargo.toml:32:1
[INFO] [stderr]    |
[INFO] [stderr] 32 | rulinalg = "0.4.2"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `rulinalg`
[INFO] [stderr] help: to still use for development builds, move to `dev-dependencies`
[INFO] [stderr] warning: `software_testing_project` (manifest) generated 3 warnings
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 36.87s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: proc-macro-error2 v2.0.1
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 6`
[INFO] running `Command { std: "docker" "inspect" "48ae99f65581a6430ca2672baa1b4c501a01bc927167022c61ef8f9cc4bab98b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "48ae99f65581a6430ca2672baa1b4c501a01bc927167022c61ef8f9cc4bab98b", kill_on_drop: false }`
[INFO] [stdout] 48ae99f65581a6430ca2672baa1b4c501a01bc927167022c61ef8f9cc4bab98b
