[INFO] fetching crate ms_toollib 1.5.16...
[INFO] checking ms_toollib-1.5.16 against 656a9da186dacaf3bf8f7f7296a825d256cb4ae3 for pr-158915
[INFO] extracting crate ms_toollib 1.5.16 into /workspace/builds/worker-7-tc1/source
[INFO] started tweaking crates.io crate ms_toollib 1.5.16
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate ms_toollib 1.5.16
[INFO] tweaked toml for crates.io crate ms_toollib 1.5.16 written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate ms_toollib 1.5.16 on toolchain 656a9da186dacaf3bf8f7f7296a825d256cb4ae3
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+656a9da186dacaf3bf8f7f7296a825d256cb4ae3" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate ms_toollib 1.5.16 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" "+656a9da186dacaf3bf8f7f7296a825d256cb4ae3" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: explicit `package.readme` can be inferred
[INFO] [stderr]   --> Cargo.toml:76:1
[INFO] [stderr]    |
[INFO] [stderr] 76 | readme = "README.md"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::manual_readme` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.readme`
[INFO] [stderr] warning: `ms_toollib` (manifest) generated 1 warning
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tract-onnx-opl v0.21.13
[INFO] [stderr]   Downloaded scan_fmt v0.2.6
[INFO] [stderr]   Downloaded anymap3 v1.0.1
[INFO] [stderr]   Downloaded dyn-hash v0.2.2
[INFO] [stderr]   Downloaded liquid v0.26.8
[INFO] [stderr]   Downloaded liquid-derive v0.26.8
[INFO] [stderr]   Downloaded anymap2 v0.13.0
[INFO] [stderr]   Downloaded filetime v0.2.26
[INFO] [stderr]   Downloaded bencher v0.1.5
[INFO] [stderr]   Downloaded kstring v2.0.2
[INFO] [stderr]   Downloaded liquid-lib v0.26.8
[INFO] [stderr]   Downloaded string-interner v0.15.0
[INFO] [stderr]   Downloaded tract-hir v0.21.13
[INFO] [stderr]   Downloaded tract-nnef v0.21.13
[INFO] [stderr]   Downloaded tract-data v0.21.13
[INFO] [stderr]   Downloaded liquid-core v0.26.8
[INFO] [stderr]   Downloaded tract-onnx v0.21.13
[INFO] [stderr]   Downloaded cc v1.2.44
[INFO] [stderr]   Downloaded tract-core v0.21.13
[INFO] [stderr]   Downloaded tract-linalg v0.21.13
[INFO] [stderr]   Downloaded ndarray v0.16.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 5d63dcfc2380fb686ffd5b091360bfc3e71d0cfcbcb203b573ae38223bfdda9b
[INFO] running `Command { std: "docker" "start" "5d63dcfc2380fb686ffd5b091360bfc3e71d0cfcbcb203b573ae38223bfdda9b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5d63dcfc2380fb686ffd5b091360bfc3e71d0cfcbcb203b573ae38223bfdda9b", 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" "5d63dcfc2380fb686ffd5b091360bfc3e71d0cfcbcb203b573ae38223bfdda9b" "/opt/rustwide/cargo-home/bin/cargo" "+656a9da186dacaf3bf8f7f7296a825d256cb4ae3" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5d63dcfc2380fb686ffd5b091360bfc3e71d0cfcbcb203b573ae38223bfdda9b", 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" "5d63dcfc2380fb686ffd5b091360bfc3e71d0cfcbcb203b573ae38223bfdda9b" "/opt/rustwide/cargo-home/bin/cargo" "+656a9da186dacaf3bf8f7f7296a825d256cb4ae3" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: explicit `package.readme` can be inferred
[INFO] [stderr]   --> Cargo.toml:76:1
[INFO] [stderr]    |
[INFO] [stderr] 76 | readme = "README.md"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::manual_readme` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.readme`
[INFO] [stderr] warning: `ms_toollib` (manifest) generated 1 warning
[INFO] [stderr]    Compiling libm v0.2.11
[INFO] [stderr]    Compiling quote v1.0.41
[INFO] [stderr]    Compiling zerocopy v0.8.27
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling pest v2.8.3
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling powerfmt v0.2.0
[INFO] [stderr]    Compiling time-macros v0.2.24
[INFO] [stderr]    Compiling static_assertions v1.1.0
[INFO] [stderr]    Compiling doc-comment v0.3.4
[INFO] [stderr]    Compiling anymap2 v0.13.0
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]     Checking once_cell v1.21.3
[INFO] [stderr]    Compiling deranged v0.5.5
[INFO] [stderr]     Checking rawpointer v0.2.1
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling find-msvc-tools v0.1.4
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]    Compiling syn v2.0.108
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling cc v1.2.44
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking dyn-hash v0.2.2
[INFO] [stderr]     Checking strength_reduce v0.2.4
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]     Checking downcast-rs v1.2.1
[INFO] [stderr]     Checking maplit v1.0.2
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking linux-raw-sys v0.11.0
[INFO] [stderr]     Checking regex-automata v0.4.13
[INFO] [stderr]     Checking bitflags v2.10.0
[INFO] [stderr]     Checking bit-set v0.5.3
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking anymap3 v1.0.1
[INFO] [stderr]    Compiling pest_meta v2.8.3
[INFO] [stderr]     Checking filetime v0.2.26
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]    Compiling half v2.4.1
[INFO] [stderr]    Compiling time v0.3.44
[INFO] [stderr]     Checking transpose v0.2.3
[INFO] [stderr]     Checking primal-check v0.3.4
[INFO] [stderr]     Checking flate2 v1.1.5
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]     Checking memmap2 v0.9.9
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking ndarray v0.16.1
[INFO] [stderr]     Checking rustfft v6.4.1
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]    Compiling pest_generator v2.8.3
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling liquid-derive v0.26.8
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking xattr v1.6.1
[INFO] [stderr]     Checking web-time v1.1.0
[INFO] [stderr]     Checking bencher v0.1.5
[INFO] [stderr]     Checking regex v1.12.2
[INFO] [stderr]     Checking tar v0.4.44
[INFO] [stderr]     Checking string-interner v0.15.0
[INFO] [stderr]    Compiling derive-new v0.5.9
[INFO] [stderr]    Compiling prost-derive v0.11.9
[INFO] [stderr]    Compiling pest_derive v2.8.3
[INFO] [stderr]     Checking scan_fmt v0.2.6
[INFO] [stderr]     Checking rand_distr v0.4.3
[INFO] [stderr]     Checking prost v0.11.9
[INFO] [stderr]    Compiling kstring v2.0.2
[INFO] [stderr]    Compiling liquid-core v0.26.8
[INFO] [stderr]     Checking tract-data v0.21.13
[INFO] [stderr]    Compiling liquid-lib v0.26.8
[INFO] [stderr]    Compiling liquid v0.26.8
[INFO] [stderr]    Compiling tract-linalg v0.21.13
[INFO] [stderr]     Checking tract-core v0.21.13
[INFO] [stderr]     Checking tract-nnef v0.21.13
[INFO] [stderr]     Checking tract-hir v0.21.13
[INFO] [stderr]     Checking tract-onnx-opl v0.21.13
[INFO] [stderr]     Checking tract-onnx v0.21.13
[INFO] [stderr]     Checking ms_toollib v1.5.16 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::mark_board`
[INFO] [stdout]   --> src/videos/base_video.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | use crate::mark_board;
[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 label
[INFO] [stdout]     --> src/probability_engine.rs:1341:9
[INFO] [stdout]      |
[INFO] [stdout] 1341 |         'top: for witness in &pseudo_links {
[INFO] [stdout]      |         ^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_labels)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::mark_board`
[INFO] [stdout]   --> src/videos/base_video.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | use crate::mark_board;
[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 label
[INFO] [stdout]     --> src/probability_engine.rs:1341:9
[INFO] [stdout]      |
[INFO] [stdout] 1341 |         'top: for witness in &pseudo_links {
[INFO] [stdout]      |         ^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_labels)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `retry`
[INFO] [stdout]    --> src/algorithms.rs:985:9
[INFO] [stdout]     |
[INFO] [stdout] 985 |     for retry in 0..max_retries {
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_retry`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `retry`
[INFO] [stdout]    --> src/algorithms.rs:985:9
[INFO] [stdout]     |
[INFO] [stdout] 985 |     for retry in 0..max_retries {
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_retry`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/videos/base_video.rs:794:37
[INFO] [stdout]     |
[INFO] [stdout] 794 | ...                   let mut game_board_clone = vas
[INFO] [stdout]     |                           ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/videos/base_video.rs:794:37
[INFO] [stdout]     |
[INFO] [stdout] 794 | ...                   let mut game_board_clone = vas
[INFO] [stdout]     |                           ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `board`
[INFO] [stdout]    --> src/probability_engine.rs:655:32
[INFO] [stdout]     |
[INFO] [stdout] 655 |     fn check_sample(&mut self, board: &dyn Board, sample: &[usize]) -> bool {
[INFO] [stdout]     |                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_board`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `area5050` is never read
[INFO] [stdout]     --> src/probability_engine.rs:1064:43
[INFO] [stdout]      |
[INFO] [stdout] 1064 |         let mut area5050: Vec<Rc<Tile>> = Vec::new();
[INFO] [stdout]      |                                           ^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 1078 |             area5050 = vec![links[i].tile1.as_ref().unwrap().clone(), links[i].tile2.as_ref().unwrap().clone()];
[INFO] [stdout]      |             -------- `area5050` is overwritten here before the previous value is read
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `board`
[INFO] [stdout]    --> src/probability_engine.rs:655:32
[INFO] [stdout]     |
[INFO] [stdout] 655 |     fn check_sample(&mut self, board: &dyn Board, sample: &[usize]) -> bool {
[INFO] [stdout]     |                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_board`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `chain1_idx` is assigned to, but never used
[INFO] [stdout]     --> src/probability_engine.rs:1346:17
[INFO] [stdout]      |
[INFO] [stdout] 1346 |             let mut chain1_idx = usize::MAX;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_chain1_idx` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `chain2_idx` is assigned to, but never used
[INFO] [stdout]     --> src/probability_engine.rs:1347:17
[INFO] [stdout]      |
[INFO] [stdout] 1347 |             let mut chain2_idx = usize::MAX;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_chain2_idx` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `chain1_idx` is never read
[INFO] [stdout]     --> src/probability_engine.rs:1354:33
[INFO] [stdout]      |
[INFO] [stdout] 1354 | ...                   chain1_idx = ci;
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `chain2_idx` is never read
[INFO] [stdout]     --> src/probability_engine.rs:1361:33
[INFO] [stdout]      |
[INFO] [stdout] 1361 | ...                   chain2_idx = ci;
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `area5050` is never read
[INFO] [stdout]     --> src/probability_engine.rs:1064:43
[INFO] [stdout]      |
[INFO] [stdout] 1064 |         let mut area5050: Vec<Rc<Tile>> = Vec::new();
[INFO] [stdout]      |                                           ^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 1078 |             area5050 = vec![links[i].tile1.as_ref().unwrap().clone(), links[i].tile2.as_ref().unwrap().clone()];
[INFO] [stdout]      |             -------- `area5050` is overwritten here before the previous value is read
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `missing_mines`
[INFO] [stdout]     --> src/probability_engine.rs:1590:17
[INFO] [stdout]      |
[INFO] [stdout] 1590 |             let missing_mines = (nw.box_witness.mines_to_find as usize).wrapping_sub(self.count_placed_mines(pl, nw));
[INFO] [stdout]      |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_missing_mines`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `chain1_idx` is assigned to, but never used
[INFO] [stdout]     --> src/probability_engine.rs:1346:17
[INFO] [stdout]      |
[INFO] [stdout] 1346 |             let mut chain1_idx = usize::MAX;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_chain1_idx` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `chain2_idx` is assigned to, but never used
[INFO] [stdout]     --> src/probability_engine.rs:1347:17
[INFO] [stdout]      |
[INFO] [stdout] 1347 |             let mut chain2_idx = usize::MAX;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_chain2_idx` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `chain1_idx` is never read
[INFO] [stdout]     --> src/probability_engine.rs:1354:33
[INFO] [stdout]      |
[INFO] [stdout] 1354 | ...                   chain1_idx = ci;
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `chain2_idx` is never read
[INFO] [stdout]     --> src/probability_engine.rs:1361:33
[INFO] [stdout]      |
[INFO] [stdout] 1361 | ...                   chain2_idx = ci;
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prev_witness`
[INFO] [stdout]     --> src/probability_engine.rs:1776:37
[INFO] [stdout]      |
[INFO] [stdout] 1776 |     fn find_next_witness(&mut self, prev_witness: &NextWitness) -> Option<NextWitness> {
[INFO] [stdout]      |                                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prev_witness`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `missing_mines`
[INFO] [stdout]     --> src/probability_engine.rs:1590:17
[INFO] [stdout]      |
[INFO] [stdout] 1590 |             let missing_mines = (nw.box_witness.mines_to_find as usize).wrapping_sub(self.count_placed_mines(pl, nw));
[INFO] [stdout]      |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_missing_mines`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tiles`
[INFO] [stdout]     --> src/probability_engine.rs:2065:17
[INFO] [stdout]      |
[INFO] [stdout] 2065 |             let tiles = edge_tiles;
[INFO] [stdout]      |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_tiles`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `witnesses`
[INFO] [stdout]     --> src/probability_engine.rs:2066:17
[INFO] [stdout]      |
[INFO] [stdout] 2066 |             let witnesses = edge_witnesses;
[INFO] [stdout]      |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_witnesses`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mines`
[INFO] [stdout]     --> src/probability_engine.rs:2067:17
[INFO] [stdout]      |
[INFO] [stdout] 2067 |             let mines = self.working_probs[0].mine_count;
[INFO] [stdout]      |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_mines`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_board`
[INFO] [stdout]     --> src/probability_engine.rs:2068:17
[INFO] [stdout]      |
[INFO] [stdout] 2068 |             let new_board: std::boxed::Box<dyn Board>;
[INFO] [stdout]      |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_board`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prev_witness`
[INFO] [stdout]     --> src/probability_engine.rs:1776:37
[INFO] [stdout]      |
[INFO] [stdout] 1776 |     fn find_next_witness(&mut self, prev_witness: &NextWitness) -> Option<NextWitness> {
[INFO] [stdout]      |                                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prev_witness`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tiles`
[INFO] [stdout]     --> src/probability_engine.rs:2065:17
[INFO] [stdout]      |
[INFO] [stdout] 2065 |             let tiles = edge_tiles;
[INFO] [stdout]      |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_tiles`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `witnesses`
[INFO] [stdout]     --> src/probability_engine.rs:2066:17
[INFO] [stdout]      |
[INFO] [stdout] 2066 |             let witnesses = edge_witnesses;
[INFO] [stdout]      |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_witnesses`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mines`
[INFO] [stdout]     --> src/probability_engine.rs:2067:17
[INFO] [stdout]      |
[INFO] [stdout] 2067 |             let mines = self.working_probs[0].mine_count;
[INFO] [stdout]      |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_mines`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_board`
[INFO] [stdout]     --> src/probability_engine.rs:2068:17
[INFO] [stdout]      |
[INFO] [stdout] 2068 |             let new_board: std::boxed::Box<dyn Board>;
[INFO] [stdout]      |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_board`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_probability`, `set_value_only`, `unset_found_bomb`, `set_bomb`, and `as_bomb` are never used
[INFO] [stdout]    --> src/tile.rs:86:12
[INFO] [stdout]     |
[INFO] [stdout]  49 | impl Tile {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn set_probability(&self, prob: f64, progress: Option<f64>, safety2: Option<f64>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn set_value_only(&self, value: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn unset_found_bomb(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn set_bomb(&self, bomb: bool) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub fn as_bomb(&self) -> Option<bool> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `stats` is never used
[INFO] [stdout]    --> src/binomial.rs:157:12
[INFO] [stdout]     |
[INFO] [stdout]  67 | impl BinomialCache {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn stats(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PLAY_STYLE_FLAGS` is never used
[INFO] [stdout]   --> src/probability_engine.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const PLAY_STYLE_FLAGS: usize = 1;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PLAY_STYLE_NOFLAGS` is never used
[INFO] [stdout]   --> src/probability_engine.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub const PLAY_STYLE_NOFLAGS: usize = 2;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ACTION_CLEAR` is never used
[INFO] [stdout]   --> src/probability_engine.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub const ACTION_CLEAR: usize = 1;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ACTION_FLAG` is never used
[INFO] [stdout]   --> src/probability_engine.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const ACTION_FLAG: usize = 2;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BOMB` is never used
[INFO] [stdout]   --> src/probability_engine.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const BOMB: u8 = 9;
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_binomial_cache` is never used
[INFO] [stdout]   --> src/probability_engine.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn init_binomial_cache(cache: BinomialCache) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `adjacent_found_mine_count`, `width`, and `height` are never used
[INFO] [stdout]   --> src/probability_engine.rs:81:8
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub trait Board {
[INFO] [stdout]    |           ----- methods in this trait
[INFO] [stdout] 80 |     fn get_adjacent(&self, tile: &Tile) -> Vec<Rc<Tile>>;
[INFO] [stdout] 81 |     fn adjacent_found_mine_count(&self, tile: &Tile) -> usize;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 82 |     fn width(&self) -> usize;
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 83 |     fn height(&self) -> usize;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `overlap` is never used
[INFO] [stdout]    --> src/probability_engine.rs:126:12
[INFO] [stdout]     |
[INFO] [stdout] 105 | impl BoxWitness {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn overlap(&self, other: &BoxWitness) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `increment_empty_tiles` is never used
[INFO] [stdout]    --> src/probability_engine.rs:220:12
[INFO] [stdout]     |
[INFO] [stdout] 171 | impl Box {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 220 |     pub fn increment_empty_tiles(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Link` is never constructed
[INFO] [stdout]    --> src/probability_engine.rs:343:12
[INFO] [stdout]     |
[INFO] [stdout] 343 | pub struct Link {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/probability_engine.rs:358:12
[INFO] [stdout]     |
[INFO] [stdout] 357 | impl Link {
[INFO] [stdout]     | --------- associated function in this implementation
[INFO] [stdout] 358 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Chain` is never constructed
[INFO] [stdout]    --> src/probability_engine.rs:375:12
[INFO] [stdout]     |
[INFO] [stdout] 375 | pub struct Chain {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/probability_engine.rs:387:12
[INFO] [stdout]     |
[INFO] [stdout] 386 | impl Chain {
[INFO] [stdout]     | ---------- associated function in this implementation
[INFO] [stdout] 387 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Action` is never constructed
[INFO] [stdout]    --> src/probability_engine.rs:401:12
[INFO] [stdout]     |
[INFO] [stdout] 401 | pub struct Action {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `as_text` are never used
[INFO] [stdout]    --> src/probability_engine.rs:417:12
[INFO] [stdout]     |
[INFO] [stdout] 416 | impl Action {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] 417 |     pub fn new(x: usize, y: usize, prob: f64, action: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 426 |     pub fn as_text(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SequentialIterator` is never constructed
[INFO] [stdout]    --> src/probability_engine.rs:431:12
[INFO] [stdout]     |
[INFO] [stdout] 431 | pub struct SequentialIterator {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get_next_sample` are never used
[INFO] [stdout]    --> src/probability_engine.rs:440:12
[INFO] [stdout]     |
[INFO] [stdout] 439 | impl SequentialIterator {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] 440 |     pub fn new(n: usize, m: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 453 |     pub fn get_next_sample(&mut self) -> Option<&[usize]> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WitnessWebIterator` is never constructed
[INFO] [stdout]    --> src/probability_engine.rs:475:12
[INFO] [stdout]     |
[INFO] [stdout] 475 | pub struct WitnessWebIterator {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get_sample` are never used
[INFO] [stdout]    --> src/probability_engine.rs:491:12
[INFO] [stdout]     |
[INFO] [stdout] 490 | impl WitnessWebIterator {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] 491 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 570 |     pub fn get_sample(&mut self) -> Option<&[usize]> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `tiles`, `witnesses`, `all_solutions`, `current_flags_tiles`, `current_flags_witnesses`, and `duration` are never read
[INFO] [stdout]    --> src/probability_engine.rs:609:9
[INFO] [stdout]     |
[INFO] [stdout] 608 | pub struct Cruncher {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] 609 |     pub tiles: Vec<Rc<Tile>>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 610 |     pub witnesses: Vec<Rc<BoxWitness>>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 611 |     pub all_solutions: Vec<Vec<u8>>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 612 |     pub current_flags_tiles: Vec<usize>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 613 |     pub current_flags_witnesses: Vec<usize>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 614 |     pub duration: u64,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `crunch`, and `check_sample` are never used
[INFO] [stdout]    --> src/probability_engine.rs:618:12
[INFO] [stdout]     |
[INFO] [stdout] 617 | impl Cruncher {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 618 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 641 |     pub fn crunch(&mut self, board: &dyn Board, iterator: &mut WitnessWebIterator) -> usize {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 655 |     fn check_sample(&mut self, board: &dyn Board, sample: &[usize]) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/probability_engine.rs:704:9
[INFO] [stdout]     |
[INFO] [stdout] 695 | pub struct ProbabilityEngine {
[INFO] [stdout]     |            ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 704 |     pub tiles_left: usize,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 726 |     pub independent_witnesses: Vec<Rc<BoxWitness>>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 727 |     pub dependent_witnesses: Vec<Rc<BoxWitness>>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 728 |     pub independent_mines: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 729 |     pub independent_iterations: BigUint,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 730 |     pub remaining_squares: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 737 |     pub isolated_edge_brute_force: Option<std::boxed::Box<Cruncher>>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]     --> src/probability_engine.rs:975:12
[INFO] [stdout]      |
[INFO] [stdout]  834 | impl ProbabilityEngine {
[INFO] [stdout]      | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  975 |     pub fn check_for_unavoidable_guess(&self) -> Option<Vec<Rc<Tile>>> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1014 |     pub fn check_for_unavoidable_5050(&self) -> Option<Vec<Rc<Tile>>> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1141 |     pub fn check_for_unavoidable_5050_or_pseudo(&self) -> Option<Vec<Rc<Tile>>> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1399 |     fn find_rooted_links(&self, witness: &Rc<BoxWitness>) -> Vec<Link> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1435 |     fn assess_link(&self, link: &mut Link) {
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1473 |     fn not_dead(&self, area: &[Rc<Tile>]) -> Vec<Rc<Tile>> {
[INFO] [stdout]      |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1487 |     fn is_dead_tile(&self, tile: &Rc<Tile>) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1496 |     fn is_new_mine(&self, tile: &Rc<Tile>) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1505 |     fn no_breaker(&self, breaker: &[Rc<Tile>], area: &[Rc<Tile>]) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2073 |     fn generate_independent_witnesses(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2231 |     pub fn get_best_candidates(&self, threshold: f64) -> Vec<Action> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2261 |     pub fn get_dead_tiles(&self) -> &[Rc<Tile>] {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2265 |     pub fn is_dead(&self, tile: &Tile) -> bool {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2274 |     pub fn get_probability(&self, l: &Tile) -> f64 {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2283 |     pub fn get_fifty_percenters(&self) -> Vec<Rc<Tile>> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2295 |     pub fn set_must_be_empty(&mut self, tile: &Tile) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_probability`, `set_value_only`, `unset_found_bomb`, `set_bomb`, and `as_bomb` are never used
[INFO] [stdout]    --> src/tile.rs:86:12
[INFO] [stdout]     |
[INFO] [stdout]  49 | impl Tile {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn set_probability(&self, prob: f64, progress: Option<f64>, safety2: Option<f64>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn set_value_only(&self, value: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn unset_found_bomb(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn set_bomb(&self, bomb: bool) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub fn as_bomb(&self) -> Option<bool> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `stats` is never used
[INFO] [stdout]    --> src/binomial.rs:157:12
[INFO] [stdout]     |
[INFO] [stdout]  67 | impl BinomialCache {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn stats(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PLAY_STYLE_FLAGS` is never used
[INFO] [stdout]   --> src/probability_engine.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const PLAY_STYLE_FLAGS: usize = 1;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PLAY_STYLE_NOFLAGS` is never used
[INFO] [stdout]   --> src/probability_engine.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub const PLAY_STYLE_NOFLAGS: usize = 2;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ACTION_CLEAR` is never used
[INFO] [stdout]   --> src/probability_engine.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub const ACTION_CLEAR: usize = 1;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ACTION_FLAG` is never used
[INFO] [stdout]   --> src/probability_engine.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const ACTION_FLAG: usize = 2;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BOMB` is never used
[INFO] [stdout]   --> src/probability_engine.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const BOMB: u8 = 9;
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_binomial_cache` is never used
[INFO] [stdout]   --> src/probability_engine.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn init_binomial_cache(cache: BinomialCache) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `adjacent_found_mine_count`, `width`, and `height` are never used
[INFO] [stdout]   --> src/probability_engine.rs:81:8
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub trait Board {
[INFO] [stdout]    |           ----- methods in this trait
[INFO] [stdout] 80 |     fn get_adjacent(&self, tile: &Tile) -> Vec<Rc<Tile>>;
[INFO] [stdout] 81 |     fn adjacent_found_mine_count(&self, tile: &Tile) -> usize;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 82 |     fn width(&self) -> usize;
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 83 |     fn height(&self) -> usize;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `overlap` is never used
[INFO] [stdout]    --> src/probability_engine.rs:126:12
[INFO] [stdout]     |
[INFO] [stdout] 105 | impl BoxWitness {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn overlap(&self, other: &BoxWitness) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `increment_empty_tiles` is never used
[INFO] [stdout]    --> src/probability_engine.rs:220:12
[INFO] [stdout]     |
[INFO] [stdout] 171 | impl Box {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 220 |     pub fn increment_empty_tiles(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Link` is never constructed
[INFO] [stdout]    --> src/probability_engine.rs:343:12
[INFO] [stdout]     |
[INFO] [stdout] 343 | pub struct Link {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/probability_engine.rs:358:12
[INFO] [stdout]     |
[INFO] [stdout] 357 | impl Link {
[INFO] [stdout]     | --------- associated function in this implementation
[INFO] [stdout] 358 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Chain` is never constructed
[INFO] [stdout]    --> src/probability_engine.rs:375:12
[INFO] [stdout]     |
[INFO] [stdout] 375 | pub struct Chain {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/probability_engine.rs:387:12
[INFO] [stdout]     |
[INFO] [stdout] 386 | impl Chain {
[INFO] [stdout]     | ---------- associated function in this implementation
[INFO] [stdout] 387 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Action` is never constructed
[INFO] [stdout]    --> src/probability_engine.rs:401:12
[INFO] [stdout]     |
[INFO] [stdout] 401 | pub struct Action {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `as_text` are never used
[INFO] [stdout]    --> src/probability_engine.rs:417:12
[INFO] [stdout]     |
[INFO] [stdout] 416 | impl Action {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] 417 |     pub fn new(x: usize, y: usize, prob: f64, action: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 426 |     pub fn as_text(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SequentialIterator` is never constructed
[INFO] [stdout]    --> src/probability_engine.rs:431:12
[INFO] [stdout]     |
[INFO] [stdout] 431 | pub struct SequentialIterator {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get_next_sample` are never used
[INFO] [stdout]    --> src/probability_engine.rs:440:12
[INFO] [stdout]     |
[INFO] [stdout] 439 | impl SequentialIterator {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] 440 |     pub fn new(n: usize, m: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 453 |     pub fn get_next_sample(&mut self) -> Option<&[usize]> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WitnessWebIterator` is never constructed
[INFO] [stdout]    --> src/probability_engine.rs:475:12
[INFO] [stdout]     |
[INFO] [stdout] 475 | pub struct WitnessWebIterator {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get_sample` are never used
[INFO] [stdout]    --> src/probability_engine.rs:491:12
[INFO] [stdout]     |
[INFO] [stdout] 490 | impl WitnessWebIterator {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] 491 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 570 |     pub fn get_sample(&mut self) -> Option<&[usize]> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `tiles`, `witnesses`, `all_solutions`, `current_flags_tiles`, `current_flags_witnesses`, and `duration` are never read
[INFO] [stdout]    --> src/probability_engine.rs:609:9
[INFO] [stdout]     |
[INFO] [stdout] 608 | pub struct Cruncher {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] 609 |     pub tiles: Vec<Rc<Tile>>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 610 |     pub witnesses: Vec<Rc<BoxWitness>>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 611 |     pub all_solutions: Vec<Vec<u8>>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 612 |     pub current_flags_tiles: Vec<usize>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 613 |     pub current_flags_witnesses: Vec<usize>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 614 |     pub duration: u64,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `crunch`, and `check_sample` are never used
[INFO] [stdout]    --> src/probability_engine.rs:618:12
[INFO] [stdout]     |
[INFO] [stdout] 617 | impl Cruncher {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 618 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 641 |     pub fn crunch(&mut self, board: &dyn Board, iterator: &mut WitnessWebIterator) -> usize {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 655 |     fn check_sample(&mut self, board: &dyn Board, sample: &[usize]) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/probability_engine.rs:704:9
[INFO] [stdout]     |
[INFO] [stdout] 695 | pub struct ProbabilityEngine {
[INFO] [stdout]     |            ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 704 |     pub tiles_left: usize,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 726 |     pub independent_witnesses: Vec<Rc<BoxWitness>>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 727 |     pub dependent_witnesses: Vec<Rc<BoxWitness>>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 728 |     pub independent_mines: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 729 |     pub independent_iterations: BigUint,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 730 |     pub remaining_squares: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 737 |     pub isolated_edge_brute_force: Option<std::boxed::Box<Cruncher>>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]     --> src/probability_engine.rs:975:12
[INFO] [stdout]      |
[INFO] [stdout]  834 | impl ProbabilityEngine {
[INFO] [stdout]      | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  975 |     pub fn check_for_unavoidable_guess(&self) -> Option<Vec<Rc<Tile>>> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1014 |     pub fn check_for_unavoidable_5050(&self) -> Option<Vec<Rc<Tile>>> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1141 |     pub fn check_for_unavoidable_5050_or_pseudo(&self) -> Option<Vec<Rc<Tile>>> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1399 |     fn find_rooted_links(&self, witness: &Rc<BoxWitness>) -> Vec<Link> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1435 |     fn assess_link(&self, link: &mut Link) {
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1473 |     fn not_dead(&self, area: &[Rc<Tile>]) -> Vec<Rc<Tile>> {
[INFO] [stdout]      |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1487 |     fn is_dead_tile(&self, tile: &Rc<Tile>) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1496 |     fn is_new_mine(&self, tile: &Rc<Tile>) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1505 |     fn no_breaker(&self, breaker: &[Rc<Tile>], area: &[Rc<Tile>]) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2073 |     fn generate_independent_witnesses(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2231 |     pub fn get_best_candidates(&self, threshold: f64) -> Vec<Action> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2261 |     pub fn get_dead_tiles(&self) -> &[Rc<Tile>] {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2265 |     pub fn is_dead(&self, tile: &Tile) -> bool {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2274 |     pub fn get_probability(&self, l: &Tile) -> f64 {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2283 |     pub fn get_fifty_percenters(&self) -> Vec<Rc<Tile>> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2295 |     pub fn set_must_be_empty(&mut self, tile: &Tile) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `refresh_matrix` and `refresh_matrixs`
[INFO] [stdout]  --> benches/utils_bench.rs:1:59
[INFO] [stdout]   |
[INFO] [stdout] 1 | use ms_toollib::{cal_cell_nums, cal_isl, cal_op, laymine, refresh_matrix, refresh_matrixs};
[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: `cal_all_solution`, `cal_probability_cells_is_op`, `cal_probability_cells_not_mine`, `cal_probability_enum`, `cal_probability_onboard`, and `mark_board`
[INFO] [stdout]  --> tests/test_probability_speed.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     cal_all_solution, cal_probability_cells_is_op, cal_probability_cells_not_mine,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 3 |     cal_probability_csp, cal_probability_enum, cal_probability_onboard, mark_board,
[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: `cal_all_solution` and `cal_probability_cells_is_op`
[INFO] [stdout]  --> tests/test_probability.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     cal_all_solution, cal_probability_cells_is_op, cal_probability_cells_not_mine,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> tests/test_probability.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |     let mut board = vec![
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> tests/test_probability.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |     let mut board = vec![
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> tests/test_probability.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 74 |     let mut board = vec![
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]    --> tests/test_probability.rs:272:15
[INFO] [stdout]     |
[INFO] [stdout] 272 |     for (pos, p) in &ans.0 {
[INFO] [stdout]     |               ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/test_probability.rs:316:9
[INFO] [stdout]     |
[INFO] [stdout] 316 |     let mut board = vec![
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> tests/test_analyse.rs:601:9
[INFO] [stdout]     |
[INFO] [stdout] 601 |     let v = video.parse();
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 02s
[INFO] running `Command { std: "docker" "inspect" "5d63dcfc2380fb686ffd5b091360bfc3e71d0cfcbcb203b573ae38223bfdda9b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5d63dcfc2380fb686ffd5b091360bfc3e71d0cfcbcb203b573ae38223bfdda9b", kill_on_drop: false }`
[INFO] [stdout] 5d63dcfc2380fb686ffd5b091360bfc3e71d0cfcbcb203b573ae38223bfdda9b
