[INFO] fetching crate qubic_engine 0.1.7...
[INFO] testing qubic_engine-0.1.7 against beta-2026-04-21 for beta-1.96-2
[INFO] extracting crate qubic_engine 0.1.7 into /workspace/builds/worker-4-tc2/source
[INFO] started tweaking crates.io crate qubic_engine 0.1.7
[INFO] finished tweaking crates.io crate qubic_engine 0.1.7
[INFO] tweaked toml for crates.io crate qubic_engine 0.1.7 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate qubic_engine 0.1.7 on toolchain beta-2026-04-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate qubic_engine 0.1.7 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" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a4ef06e0205f01244f6fd8f5c83c1ccdcf0b86de13057f0257b93133698f8490
[INFO] running `Command { std: "docker" "start" "-a" "a4ef06e0205f01244f6fd8f5c83c1ccdcf0b86de13057f0257b93133698f8490", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a4ef06e0205f01244f6fd8f5c83c1ccdcf0b86de13057f0257b93133698f8490", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a4ef06e0205f01244f6fd8f5c83c1ccdcf0b86de13057f0257b93133698f8490", kill_on_drop: false }`
[INFO] [stdout] a4ef06e0205f01244f6fd8f5c83c1ccdcf0b86de13057f0257b93133698f8490
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5a3ffef0cd2ee81126bfe25da92c121df38fb52418ba3399311666e2fb40d46f
[INFO] running `Command { std: "docker" "start" "-a" "5a3ffef0cd2ee81126bfe25da92c121df38fb52418ba3399311666e2fb40d46f", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.87
[INFO] [stderr]    Compiling libc v0.2.159
[INFO] [stderr]    Compiling libm v0.2.8
[INFO] [stderr]    Compiling pkg-config v0.3.31
[INFO] [stderr]    Compiling serde v1.0.193
[INFO] [stderr]    Compiling portable-atomic v1.9.0
[INFO] [stderr]    Compiling serde_json v1.0.109
[INFO] [stderr]    Compiling rawpointer v0.2.1
[INFO] [stderr]    Compiling anyhow v1.0.89
[INFO] [stderr]    Compiling number_prefix v0.4.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling cc v1.1.31
[INFO] [stderr]    Compiling matrixmultiply v0.3.9
[INFO] [stderr]    Compiling proconio v0.5.0
[INFO] [stderr]    Compiling getrandom v0.2.15
[INFO] [stderr]    Compiling console v0.15.8
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]    Compiling indicatif v0.17.8
[INFO] [stderr]    Compiling syn v2.0.79
[INFO] [stderr]    Compiling sqlite3-src v0.6.1
[INFO] [stderr]    Compiling sqlite3-sys v0.17.0
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling sqlite v0.36.1
[INFO] [stderr]    Compiling ndarray v0.16.1
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling serde_derive v1.0.193
[INFO] [stderr]    Compiling zerocopy v0.7.35
[INFO] [stderr]    Compiling ppv-lite86 v0.2.20
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling rand_distr v0.4.3
[INFO] [stderr]    Compiling qubic_engine v0.1.7 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `super::pprint_u64`
[INFO] [stdout]    --> src/board/magic_number.rs:536:9
[INFO] [stdout]     |
[INFO] [stdout] 536 |     use super::pprint_u64;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/board.rs:411:13
[INFO] [stdout]     |
[INFO] [stdout] 411 |     let x = ((count_2row_(s, s >> 1, s >> 2, s >> 3, b, b >> 1, b >> 2, b >> 3)
[INFO] [stdout]     |             ^
[INFO] [stdout] 412 |         & 0x1111_1111_1111_1111)
[INFO] [stdout] 413 |         * 0xf);
[INFO] [stdout]     |              ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 411 ~     let x = (count_2row_(s, s >> 1, s >> 2, s >> 3, b, b >> 1, b >> 2, b >> 3)
[INFO] [stdout] 412 |         & 0x1111_1111_1111_1111)
[INFO] [stdout] 413 ~         * 0xf;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/board.rs:414:13
[INFO] [stdout]     |
[INFO] [stdout] 414 |     let y = ((count_2row_(s, s >> 4, s >> 8, s >> 12, b, b >> 4, b >> 8, b >> 12)
[INFO] [stdout]     |             ^
[INFO] [stdout] 415 |         & 0x000f_000f_000f_000f)
[INFO] [stdout] 416 |         * 0x1111);
[INFO] [stdout]     |                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 414 ~     let y = (count_2row_(s, s >> 4, s >> 8, s >> 12, b, b >> 4, b >> 8, b >> 12)
[INFO] [stdout] 415 |         & 0x000f_000f_000f_000f)
[INFO] [stdout] 416 ~         * 0x1111;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/board.rs:443:15
[INFO] [stdout]     |
[INFO] [stdout] 443 |     let xyz = (xyz1 | xyz2 | xyz3 | xyz4);
[INFO] [stdout]     |               ^                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 443 -     let xyz = (xyz1 | xyz2 | xyz3 | xyz4);
[INFO] [stdout] 443 +     let xyz = xyz1 | xyz2 | xyz3 | xyz4;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `return` value
[INFO] [stdout]    --> src/board.rs:464:12
[INFO] [stdout]     |
[INFO] [stdout] 464 |     return (b & c & (a | e) | e & f & (c | g));
[INFO] [stdout]     |            ^                                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 464 -     return (b & c & (a | e) | e & f & (c | g));
[INFO] [stdout] 464 +     return b & c & (a | e) | e & f & (c | g);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pprint_u64`
[INFO] [stdout]  --> src/dfpn.rs:2:76
[INFO] [stdout]   |
[INFO] [stdout] 2 |     self, get_2row_mask, get_put_reach_mask, get_reach_mask, pprint_board, pprint_u64, Board,
[INFO] [stdout]   |                                                                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::Ordering`
[INFO] [stdout]  --> src/dfpn.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::cmp::Ordering;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::binary_heap::Iter`
[INFO] [stdout]  --> src/exp.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::{collections::binary_heap::Iter, thread, time};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `threat_space_search`
[INFO] [stdout]  --> src/train.rs:7:33
[INFO] [stdout]   |
[INFO] [stdout] 7 |     dfpn::{proof_number_search, threat_space_search, MateType},
[INFO] [stdout]   |                                 ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::EPSILON`
[INFO] [stdout]   --> src/train.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::f32::EPSILON;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d`
[INFO] [stdout]    --> src/board.rs:463:56
[INFO] [stdout]     |
[INFO] [stdout] 463 | const fn _get_reach_mask_alpha(a: u64, b: u64, c: u64, d: u64, e: u64, f: u64, g: u64) -> u64 {
[INFO] [stdout]     |                                                        ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/board.rs:539:28
[INFO] [stdout]     |
[INFO] [stdout] 539 | pub const fn get_1row_mask(s: u64, b: u64) -> u64 {
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b1`
[INFO] [stdout]    --> src/board.rs:540:10
[INFO] [stdout]     |
[INFO] [stdout] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stdout]     |          ^^ help: if this is intentional, prefix it with an underscore: `_b1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b2`
[INFO] [stdout]    --> src/board.rs:540:14
[INFO] [stdout]     |
[INFO] [stdout] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stdout]     |              ^^ help: if this is intentional, prefix it with an underscore: `_b2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b3`
[INFO] [stdout]    --> src/board.rs:540:18
[INFO] [stdout]     |
[INFO] [stdout] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stdout]     |                  ^^ help: if this is intentional, prefix it with an underscore: `_b3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b4`
[INFO] [stdout]    --> src/board.rs:540:22
[INFO] [stdout]     |
[INFO] [stdout] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stdout]     |                      ^^ help: if this is intentional, prefix it with an underscore: `_b4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b6`
[INFO] [stdout]    --> src/board.rs:540:26
[INFO] [stdout]     |
[INFO] [stdout] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stdout]     |                          ^^ help: if this is intentional, prefix it with an underscore: `_b6`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b8`
[INFO] [stdout]    --> src/board.rs:540:30
[INFO] [stdout]     |
[INFO] [stdout] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stdout]     |                              ^^ help: if this is intentional, prefix it with an underscore: `_b8`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b9`
[INFO] [stdout]    --> src/board.rs:540:34
[INFO] [stdout]     |
[INFO] [stdout] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stdout]     |                                  ^^ help: if this is intentional, prefix it with an underscore: `_b9`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b11`
[INFO] [stdout]    --> src/board.rs:540:38
[INFO] [stdout]     |
[INFO] [stdout] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_b11`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b12`
[INFO] [stdout]    --> src/board.rs:540:43
[INFO] [stdout]     |
[INFO] [stdout] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stdout]     |                                           ^^^ help: if this is intentional, prefix it with an underscore: `_b12`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b13`
[INFO] [stdout]    --> src/board.rs:540:48
[INFO] [stdout]     |
[INFO] [stdout] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stdout]     |                                                ^^^ help: if this is intentional, prefix it with an underscore: `_b13`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b15`
[INFO] [stdout]    --> src/board.rs:540:53
[INFO] [stdout]     |
[INFO] [stdout] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stdout]     |                                                     ^^^ help: if this is intentional, prefix it with an underscore: `_b15`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b16`
[INFO] [stdout]    --> src/board.rs:553:10
[INFO] [stdout]     |
[INFO] [stdout] 553 |     let (b16, b17, b19, b20, b21, b22, b24, b26, b30) = (
[INFO] [stdout]     |          ^^^ help: if this is intentional, prefix it with an underscore: `_b16`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b17`
[INFO] [stdout]    --> src/board.rs:553:15
[INFO] [stdout]     |
[INFO] [stdout] 553 |     let (b16, b17, b19, b20, b21, b22, b24, b26, b30) = (
[INFO] [stdout]     |               ^^^ help: if this is intentional, prefix it with an underscore: `_b17`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b19`
[INFO] [stdout]    --> src/board.rs:553:20
[INFO] [stdout]     |
[INFO] [stdout] 553 |     let (b16, b17, b19, b20, b21, b22, b24, b26, b30) = (
[INFO] [stdout]     |                    ^^^ help: if this is intentional, prefix it with an underscore: `_b19`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b20`
[INFO] [stdout]    --> src/board.rs:553:25
[INFO] [stdout]     |
[INFO] [stdout] 553 |     let (b16, b17, b19, b20, b21, b22, b24, b26, b30) = (
[INFO] [stdout]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_b20`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b21`
[INFO] [stdout]    --> src/board.rs:553:30
[INFO] [stdout]     |
[INFO] [stdout] 553 |     let (b16, b17, b19, b20, b21, b22, b24, b26, b30) = (
[INFO] [stdout]     |                              ^^^ help: if this is intentional, prefix it with an underscore: `_b21`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b22`
[INFO] [stdout]    --> src/board.rs:553:35
[INFO] [stdout]     |
[INFO] [stdout] 553 |     let (b16, b17, b19, b20, b21, b22, b24, b26, b30) = (
[INFO] [stdout]     |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_b22`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b24`
[INFO] [stdout]    --> src/board.rs:553:40
[INFO] [stdout]     |
[INFO] [stdout] 553 |     let (b16, b17, b19, b20, b21, b22, b24, b26, b30) = (
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_b24`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b26`
[INFO] [stdout]    --> src/board.rs:553:45
[INFO] [stdout]     |
[INFO] [stdout] 553 |     let (b16, b17, b19, b20, b21, b22, b24, b26, b30) = (
[INFO] [stdout]     |                                             ^^^ help: if this is intentional, prefix it with an underscore: `_b26`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b30`
[INFO] [stdout]    --> src/board.rs:553:50
[INFO] [stdout]     |
[INFO] [stdout] 553 |     let (b16, b17, b19, b20, b21, b22, b24, b26, b30) = (
[INFO] [stdout]     |                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_b30`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b32`
[INFO] [stdout]    --> src/board.rs:564:10
[INFO] [stdout]     |
[INFO] [stdout] 564 |     let (b32, b33, b34, b36, b38, b39, b40, b42, b45) = (
[INFO] [stdout]     |          ^^^ help: if this is intentional, prefix it with an underscore: `_b32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b33`
[INFO] [stdout]    --> src/board.rs:564:15
[INFO] [stdout]     |
[INFO] [stdout] 564 |     let (b32, b33, b34, b36, b38, b39, b40, b42, b45) = (
[INFO] [stdout]     |               ^^^ help: if this is intentional, prefix it with an underscore: `_b33`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b34`
[INFO] [stdout]    --> src/board.rs:564:20
[INFO] [stdout]     |
[INFO] [stdout] 564 |     let (b32, b33, b34, b36, b38, b39, b40, b42, b45) = (
[INFO] [stdout]     |                    ^^^ help: if this is intentional, prefix it with an underscore: `_b34`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b36`
[INFO] [stdout]    --> src/board.rs:564:25
[INFO] [stdout]     |
[INFO] [stdout] 564 |     let (b32, b33, b34, b36, b38, b39, b40, b42, b45) = (
[INFO] [stdout]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_b36`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b38`
[INFO] [stdout]    --> src/board.rs:564:30
[INFO] [stdout]     |
[INFO] [stdout] 564 |     let (b32, b33, b34, b36, b38, b39, b40, b42, b45) = (
[INFO] [stdout]     |                              ^^^ help: if this is intentional, prefix it with an underscore: `_b38`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b39`
[INFO] [stdout]    --> src/board.rs:564:35
[INFO] [stdout]     |
[INFO] [stdout] 564 |     let (b32, b33, b34, b36, b38, b39, b40, b42, b45) = (
[INFO] [stdout]     |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_b39`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b40`
[INFO] [stdout]    --> src/board.rs:564:40
[INFO] [stdout]     |
[INFO] [stdout] 564 |     let (b32, b33, b34, b36, b38, b39, b40, b42, b45) = (
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_b40`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b42`
[INFO] [stdout]    --> src/board.rs:564:45
[INFO] [stdout]     |
[INFO] [stdout] 564 |     let (b32, b33, b34, b36, b38, b39, b40, b42, b45) = (
[INFO] [stdout]     |                                             ^^^ help: if this is intentional, prefix it with an underscore: `_b42`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b45`
[INFO] [stdout]    --> src/board.rs:564:50
[INFO] [stdout]     |
[INFO] [stdout] 564 |     let (b32, b33, b34, b36, b38, b39, b40, b42, b45) = (
[INFO] [stdout]     |                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_b45`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b48`
[INFO] [stdout]    --> src/board.rs:575:10
[INFO] [stdout]     |
[INFO] [stdout] 575 |     let (b48, b49, b57, b60, b63) = (b >> 48, b >> 49, b >> 57, b >> 60, b >> 63);
[INFO] [stdout]     |          ^^^ help: if this is intentional, prefix it with an underscore: `_b48`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b49`
[INFO] [stdout]    --> src/board.rs:575:15
[INFO] [stdout]     |
[INFO] [stdout] 575 |     let (b48, b49, b57, b60, b63) = (b >> 48, b >> 49, b >> 57, b >> 60, b >> 63);
[INFO] [stdout]     |               ^^^ help: if this is intentional, prefix it with an underscore: `_b49`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b57`
[INFO] [stdout]    --> src/board.rs:575:20
[INFO] [stdout]     |
[INFO] [stdout] 575 |     let (b48, b49, b57, b60, b63) = (b >> 48, b >> 49, b >> 57, b >> 60, b >> 63);
[INFO] [stdout]     |                    ^^^ help: if this is intentional, prefix it with an underscore: `_b57`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b60`
[INFO] [stdout]    --> src/board.rs:575:25
[INFO] [stdout]     |
[INFO] [stdout] 575 |     let (b48, b49, b57, b60, b63) = (b >> 48, b >> 49, b >> 57, b >> 60, b >> 63);
[INFO] [stdout]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_b60`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b63`
[INFO] [stdout]    --> src/board.rs:575:30
[INFO] [stdout]     |
[INFO] [stdout] 575 |     let (b48, b49, b57, b60, b63) = (b >> 48, b >> 49, b >> 57, b >> 60, b >> 63);
[INFO] [stdout]     |                              ^^^ help: if this is intentional, prefix it with an underscore: `_b63`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `count` is assigned to, but never used
[INFO] [stdout]     --> src/board.rs:1039:9
[INFO] [stdout]      |
[INFO] [stdout] 1039 |     let mut count = 1;
[INFO] [stdout]      |         ^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `count` is never read
[INFO] [stdout]     --> src/board.rs:1051:9
[INFO] [stdout]      |
[INFO] [stdout] 1051 |         count += 1;
[INFO] [stdout]      |         ^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `count` is assigned to, but never used
[INFO] [stdout]     --> src/board.rs:1092:9
[INFO] [stdout]      |
[INFO] [stdout] 1092 |     let mut count = 1;
[INFO] [stdout]      |         ^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `count` is never read
[INFO] [stdout]     --> src/board.rs:1104:9
[INFO] [stdout]      |
[INFO] [stdout] 1104 |         count += 1;
[INFO] [stdout]      |         ^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action`
[INFO] [stdout]     --> src/board.rs:1375:18
[INFO] [stdout]      |
[INFO] [stdout] 1375 |             for (action, node) in self.children.iter() {
[INFO] [stdout]      |                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_action`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node`
[INFO] [stdout]     --> src/board.rs:1375:26
[INFO] [stdout]      |
[INFO] [stdout] 1375 |             for (action, node) in self.children.iter() {
[INFO] [stdout]      |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `func`
[INFO] [stdout]     --> src/board.rs:1515:33
[INFO] [stdout]      |
[INFO] [stdout] 1515 |             Agent::Custom(name, func) => format!("{}", name),
[INFO] [stdout]      |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_func`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ga`
[INFO] [stdout]     --> src/board.rs:1516:33
[INFO] [stdout]      |
[INFO] [stdout] 1516 |             Agent::Struct(name, ga) => format!("{}", name),
[INFO] [stdout]      |                                 ^^ help: if this is intentional, prefix it with an underscore: `_ga`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a_milis`
[INFO] [stdout]     --> src/board.rs:1531:21
[INFO] [stdout]      |
[INFO] [stdout] 1531 |                 let a_milis = end.as_nanos();
[INFO] [stdout]      |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_a_milis`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b_milis`
[INFO] [stdout]     --> src/board.rs:1535:21
[INFO] [stdout]      |
[INFO] [stdout] 1535 |                 let b_milis = end.as_nanos();
[INFO] [stdout]      |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_b_milis`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]     --> src/board.rs:1548:27
[INFO] [stdout]      |
[INFO] [stdout] 1548 |             Agent::Custom(name, func) => func(board),
[INFO] [stdout]      |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]     --> src/board.rs:1549:27
[INFO] [stdout]      |
[INFO] [stdout] 1549 |             Agent::Struct(name, ga) => ga.get_action(board),
[INFO] [stdout]      |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]     --> src/board.rs:1720:9
[INFO] [stdout]      |
[INFO] [stdout] 1720 |     for i in 0..n {
[INFO] [stdout]      |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]     --> src/board.rs:1794:9
[INFO] [stdout]      |
[INFO] [stdout] 1794 |     for i in 0..n {
[INFO] [stdout]      |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/db.rs:145:23
[INFO] [stdout]     |
[INFO] [stdout] 145 |                 for &(name, value) in pairs.iter() {
[INFO] [stdout]     |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/db.rs:218:9
[INFO] [stdout]     |
[INFO] [stdout] 218 |     for i in 0..(id % 4) {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mask`
[INFO] [stdout]    --> src/dfpn.rs:299:13
[INFO] [stdout]     |
[INFO] [stdout] 299 |         let mask = get_reach_mask(def, att);
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_mask`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/dfpn.rs:352:18
[INFO] [stdout]     |
[INFO] [stdout] 352 |             let (a, (n_att, n_def)) = new_nodes[0];
[INFO] [stdout]     |                  ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mask`
[INFO] [stdout]    --> src/dfpn.rs:380:13
[INFO] [stdout]     |
[INFO] [stdout] 380 |         let mask = get_reach_mask(def, att);
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_mask`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_att`
[INFO] [stdout]    --> src/dfpn.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 |         let (n_att, n_def) = root_expands[0].1;
[INFO] [stdout]     |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_n_att`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_def`
[INFO] [stdout]    --> src/dfpn.rs:394:21
[INFO] [stdout]     |
[INFO] [stdout] 394 |         let (n_att, n_def) = root_expands[0].1;
[INFO] [stdout]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_n_def`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `count_reach_board` is assigned to, but never used
[INFO] [stdout]    --> src/dfpn.rs:400:9
[INFO] [stdout]     |
[INFO] [stdout] 400 |     let mut count_reach_board = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_count_reach_board` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `count_valid_board` is assigned to, but never used
[INFO] [stdout]    --> src/dfpn.rs:401:9
[INFO] [stdout]     |
[INFO] [stdout] 401 |     let mut count_valid_board = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_count_valid_board` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/dfpn.rs:425:18
[INFO] [stdout]     |
[INFO] [stdout] 425 |             let (a, (n_att, n_def)) = new_nodes[0];
[INFO] [stdout]     |                  ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_att`
[INFO] [stdout]    --> src/dfpn.rs:425:22
[INFO] [stdout]     |
[INFO] [stdout] 425 |             let (a, (n_att, n_def)) = new_nodes[0];
[INFO] [stdout]     |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_n_att`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_def`
[INFO] [stdout]    --> src/dfpn.rs:425:29
[INFO] [stdout]     |
[INFO] [stdout] 425 |             let (a, (n_att, n_def)) = new_nodes[0];
[INFO] [stdout]     |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_n_def`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `count_reach_board` is never read
[INFO] [stdout]    --> src/dfpn.rs:422:9
[INFO] [stdout]     |
[INFO] [stdout] 422 |         count_reach_board += get_valid_boards(tar_board.0, tar_board.1).len();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `count_valid_board` is never read
[INFO] [stdout]    --> src/dfpn.rs:423:9
[INFO] [stdout]     |
[INFO] [stdout] 423 |         count_valid_board += get_valid_boards(tar_board.0, tar_board.1).len();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stone`
[INFO] [stdout]    --> src/dfpn.rs:440:9
[INFO] [stdout]     |
[INFO] [stdout] 440 |     let stone = att | def;
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_stone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `matetype`
[INFO] [stdout]    --> src/dfpn.rs:494:5
[INFO] [stdout]     |
[INFO] [stdout] 494 |     matetype: MateType,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_matetype`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action`
[INFO] [stdout]    --> src/dfpn.rs:513:14
[INFO] [stdout]     |
[INFO] [stdout] 513 |         for (action, n_att) in MaskActionIterator::new(att, action_mask) {
[INFO] [stdout]     |              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_action`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `matetype`
[INFO] [stdout]    --> src/dfpn.rs:594:5
[INFO] [stdout]     |
[INFO] [stdout] 594 |     matetype: MateType,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_matetype`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action`
[INFO] [stdout]    --> src/dfpn.rs:613:14
[INFO] [stdout]     |
[INFO] [stdout] 613 |         for (action, n_def) in MaskActionIterator::new(def, action_mask) {
[INFO] [stdout]     |              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_action`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `wait_time`
[INFO] [stdout]   --> src/exp.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |         let wait_time = time::Duration::from_millis(1000);
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_wait_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s2`
[INFO] [stdout]   --> src/exp.rs:96:18
[INFO] [stdout]    |
[INFO] [stdout] 96 |         let (s1, s2) = board::eval(&a1, &a2, 1);
[INFO] [stdout]    |                  ^^ help: if this is intentional, prefix it with an underscore: `_s2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/ml/funcs.rs:236:17
[INFO] [stdout]     |
[INFO] [stdout] 236 |             let x = inputs[0].data[i];
[INFO] [stdout]     |                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `T`
[INFO] [stdout]     |
[INFO] [stdout] 236 -             let x = inputs[0].data[i];
[INFO] [stdout] 236 +             let ai::mpc::T = inputs[0].data[i];
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 236 |             let _x = inputs[0].data[i];
[INFO] [stdout]     |                 +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/ml/ops.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |         for i in 0..inputs.len() {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `grad`
[INFO] [stdout]    --> src/ml.rs:190:28
[INFO] [stdout]     |
[INFO] [stdout] 190 |     fn backward(&mut self, grad: &Tensor, inputs: Vec<&Tensor>, _: &Tensor) -> Vec<Tensor> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_grad`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inputs`
[INFO] [stdout]    --> src/ml.rs:190:43
[INFO] [stdout]     |
[INFO] [stdout] 190 |     fn backward(&mut self, grad: &Tensor, inputs: Vec<&Tensor>, _: &Tensor) -> Vec<Tensor> {
[INFO] [stdout]     |                                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_inputs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]    --> src/ml.rs:193:20
[INFO] [stdout]     |
[INFO] [stdout] 193 |     fn call(&self, input: Vec<Tensor>) -> Tensor {
[INFO] [stdout]     |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `play_agent`
[INFO] [stdout]    --> src/train.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 107 |     let play_agent = super::board::Agent::Mcts(50, 500);
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_play_agent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `count` is assigned to, but never used
[INFO] [stdout]    --> src/train.rs:141:13
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let count: i32;
[INFO] [stdout]     |             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `reward` is never read
[INFO] [stdout]    --> src/train.rs:101:22
[INFO] [stdout]     |
[INFO] [stdout] 101 |     let mut reward = 0;
[INFO] [stdout]     |                      ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 181 |             reward = 1;
[INFO] [stdout]     |             ---------- `reward` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `count` is never read
[INFO] [stdout]    --> src/train.rs:161:35
[INFO] [stdout]     |
[INFO] [stdout] 161 |                     (action, val, count) = neg.eval_with_negalpha(&b);
[INFO] [stdout]     |                                   ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `agent`
[INFO] [stdout]    --> src/train.rs:226:20
[INFO] [stdout]     |
[INFO] [stdout] 226 | fn play_and_record(agent: &NNUE) -> Vec<Transition> {
[INFO] [stdout]     |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_agent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `reward` is never read
[INFO] [stdout]    --> src/train.rs:229:22
[INFO] [stdout]     |
[INFO] [stdout] 229 |     let mut reward = 0;
[INFO] [stdout]     |                      ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 264 |             reward = 0;
[INFO] [stdout]     |             ---------- `reward` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/train.rs:313:9
[INFO] [stdout]     |
[INFO] [stdout] 313 |     for i in 0..(id % 4) {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count`
[INFO] [stdout]    --> src/train.rs:371:22
[INFO] [stdout]     |
[INFO] [stdout] 371 |         let (_, val, count) = agent.eval_with_negalpha(&b);
[INFO] [stdout]     |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `reward` is never read
[INFO] [stdout]    --> src/train.rs:368:22
[INFO] [stdout]     |
[INFO] [stdout] 368 |     let mut reward = 0;
[INFO] [stdout]     |                      ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 387 |             reward = 0;
[INFO] [stdout]     |             ---------- `reward` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rng`
[INFO] [stdout]    --> src/train.rs:404:9
[INFO] [stdout]     |
[INFO] [stdout] 404 |     let rng = rand::thread_rng();
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `batch_num`
[INFO] [stdout]    --> src/train.rs:583:13
[INFO] [stdout]     |
[INFO] [stdout] 583 |         let batch_num = ts.len() / BATCH_SIZE;
[INFO] [stdout]     |             ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `BATCH_NUM`
[INFO] [stdout]     |
[INFO] [stdout] 583 -         let batch_num = ts.len() / BATCH_SIZE;
[INFO] [stdout] 583 +         let train::BATCH_NUM = ts.len() / BATCH_SIZE;
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 583 |         let _batch_num = ts.len() / BATCH_SIZE;
[INFO] [stdout]     |             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `data` is never read
[INFO] [stdout]    --> src/train.rs:560:20
[INFO] [stdout]     |
[INFO] [stdout] 560 |     let mut data = Vec::new();
[INFO] [stdout]     |                    ^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 593 |         data = ts.choose_multiple(&mut rng, n).cloned().collect();
[INFO] [stdout]     |         ---- `data` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `batch_num`
[INFO] [stdout]    --> src/train.rs:703:13
[INFO] [stdout]     |
[INFO] [stdout] 703 |         let batch_num = ts.len() / BATCH_SIZE;
[INFO] [stdout]     |             ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `BATCH_NUM`
[INFO] [stdout]     |
[INFO] [stdout] 703 -         let batch_num = ts.len() / BATCH_SIZE;
[INFO] [stdout] 703 +         let train::BATCH_NUM = ts.len() / BATCH_SIZE;
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 703 |         let _batch_num = ts.len() / BATCH_SIZE;
[INFO] [stdout]     |             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `eval_it`
[INFO] [stdout]    --> src/train.rs:747:21
[INFO] [stdout]     |
[INFO] [stdout] 747 |                 let eval_it =
[INFO] [stdout]     |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_eval_it`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `pn` and `dn` are never read
[INFO] [stdout]   --> src/dfpn.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct NodeNumber {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 16 |     pn: f32,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 17 |     dn: f32,
[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 functions `new` and `from` are never used
[INFO] [stdout]   --> src/dfpn.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl NodeNumber {
[INFO] [stdout]    | --------------- associated functions in this implementation
[INFO] [stdout] 21 |     fn new() -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     fn from(pn: f32, dn: f32) -> Self {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `next` is never used
[INFO] [stdout]   --> src/dfpn.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl Player {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] 43 |     fn next(&self) -> Self {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `SingleShootLoss` is never used
[INFO] [stdout]   --> src/ml/funcs.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | trait SingleShootLoss {
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEPTH` is never used
[INFO] [stdout]   --> src/train.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const DEPTH: u8 = 3;
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RANDOM_MOVE` is never used
[INFO] [stdout]   --> src/train.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const RANDOM_MOVE: usize = 7;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `play_with_analyze` is never used
[INFO] [stdout]    --> src/train.rs:365:4
[INFO] [stdout]     |
[INFO] [stdout] 365 | fn play_with_analyze(agent: &NNUE) -> Vec<Transition> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/board.rs:1349:9
[INFO] [stdout]      |
[INFO] [stdout] 1349 | /         write!(
[INFO] [stdout] 1350 | |             f,
[INFO] [stdout] 1351 | |             "action: {:>2}, score: {:>5.2}%({:>7.0}/{:>7.0}), Q: {:>5.3}",
[INFO] [stdout] 1352 | |             self.action,
[INFO] [stdout] ...    |
[INFO] [stdout] 1356 | |             self.q
[INFO] [stdout] 1357 | |         );
[INFO] [stdout]      | |_________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]      = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1349 |         let _ = write!(
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]     --> src/board.rs:1462:23
[INFO] [stdout]      |
[INFO] [stdout] 1462 |     fn get_uct(&self, N: f32) -> f32 {
[INFO] [stdout]      |                       ^ help: convert the identifier to snake case: `n`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/ml.rs:415:9
[INFO] [stdout]     |
[INFO] [stdout] 415 |         fs::create_dir_all(path.clone());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 415 |         let _ = fs::create_dir_all(path.clone());
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/ml.rs:420:13
[INFO] [stdout]     |
[INFO] [stdout] 420 |             self.layers[i].save_param(path.clone());
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 420 |             let _ = self.layers[i].save_param(path.clone());
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/ml.rs:432:13
[INFO] [stdout]     |
[INFO] [stdout] 432 |             self.layers[i].load_param(path.clone());
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 432 |             let _ = self.layers[i].load_param(path.clone());
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/train.rs:669:5
[INFO] [stdout]     |
[INFO] [stdout] 669 |     l.load("simple.json".to_string());
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 669 |     let _ = l.load("simple.json".to_string());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/train.rs:686:9
[INFO] [stdout]     |
[INFO] [stdout] 686 |         model.load(load_name.clone());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 686 |         let _ = model.load(load_name.clone());
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/train.rs:814:21
[INFO] [stdout]     |
[INFO] [stdout] 814 |                     model.save(name.clone());
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 814 |                     let _ = model.save(name.clone());
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/train.rs:819:17
[INFO] [stdout]     |
[INFO] [stdout] 819 |                 model.save(format!("latest-{}", name));
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 819 |                 let _ = model.save(format!("latest-{}", name));
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ProofNumberSearchStatus` and `threat_space_search`
[INFO] [stdout]  --> src/main_utils.rs:4:39
[INFO] [stdout]   |
[INFO] [stdout] 4 |     dfpn::{self, proof_number_search, threat_space_search, MateType, ProofNumberSearchStatus},
[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: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/main_utils.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SimplePatternEvaluator`, `TrainableBLE`, and `TrainableSPE`
[INFO] [stdout]  --> src/main.rs:4:46
[INFO] [stdout]   |
[INFO] [stdout] 4 |     BucketLineEvaluator, SimplLineEvaluator, SimplePatternEvaluator, TrainableBLE, TrainableSLE,
[INFO] [stdout]   |                                              ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 5 |     TrainableSPE,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `NNLineEvaluator` and `TrainableNLE`
[INFO] [stdout]  --> src/main.rs:7:33
[INFO] [stdout]   |
[INFO] [stdout] 7 | use qubic_engine::ai::line_nn::{NNLineEvaluator, NNLineEvaluator_, TrainableNLE, TrainableNLE_};
[INFO] [stdout]   |                                 ^^^^^^^^^^^^^^^                    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TrainableLineEvaluator`
[INFO] [stdout]   --> src/main.rs:12:38
[INFO] [stdout]    |
[INFO] [stdout] 12 |     PlayoutLevel, PositionEvaluator, TrainableLineEvaluator,
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `count_2row_`, `get_2row_mask`, and `get_random`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     count_2row_, get_2row_mask, get_random, mate_check_horizontal, play_actor, pprint_board,
[INFO] [stdout]    |     ^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `qubic_engine::db::BoardDB`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use qubic_engine::db::BoardDB;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `train_with_db`
[INFO] [stdout]   --> src/main.rs:19:38
[INFO] [stdout]    |
[INFO] [stdout] 19 | use qubic_engine::train::{create_db, train_with_db};
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `NNUE`
[INFO] [stdout]   --> src/main.rs:21:33
[INFO] [stdout]    |
[INFO] [stdout] 21 |     ai::{CoEvaluator, NegAlpha, NNUE},
[INFO] [stdout]    |                                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::rngs::ThreadRng`
[INFO] [stdout]   --> src/main.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use rand::rngs::ThreadRng;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand_distr::num_traits::WrappingNeg`
[INFO] [stdout]   --> src/main.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use rand_distr::num_traits::WrappingNeg;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Neg`
[INFO] [stdout]   --> src/main.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use std::ops::Neg;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::os::unix::thread`
[INFO] [stdout]   --> src/main.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use std::os::unix::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]   --> src/main.rs:31:17
[INFO] [stdout]    |
[INFO] [stdout] 31 | use std::time::{Duration, Instant};
[INFO] [stdout]    |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/main.rs:166:21
[INFO] [stdout]     |
[INFO] [stdout] 166 |         return Some((self.board.clone()));
[INFO] [stdout]     |                     ^                  ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 166 -         return Some((self.board.clone()));
[INFO] [stdout] 166 +         return Some(self.board.clone() );
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ProofNumberSearchStatus`
[INFO] [stdout]    --> src/main.rs:429:40
[INFO] [stdout]     |
[INFO] [stdout] 429 |     use qubic_engine::dfpn::{MateType, ProofNumberSearchStatus};
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1098:17
[INFO] [stdout]      |
[INFO] [stdout] 1098 |     let stone = (b.black | b.white);
[INFO] [stdout]      |                 ^                 ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1098 -     let stone = (b.black | b.white);
[INFO] [stdout] 1098 +     let stone = b.black | b.white ;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LineEvaluator`, `acum_mask_bundle`, and `apply_mask_bundle`
[INFO] [stdout]     --> src/main.rs:1109:28
[INFO] [stdout]      |
[INFO] [stdout] 1109 |     use qubic_engine::ai::{acum_mask_bundle, apply_mask_bundle, LineEvaluator};
[INFO] [stdout]      |                            ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/main_utils.rs:139:13
[INFO] [stdout]     |
[INFO] [stdout] 130 |                 break;
[INFO] [stdout]     |                 ----- any code following this expression is unreachable
[INFO] [stdout] ...
[INFO] [stdout] 139 |             let start = Instant::now();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/main.rs:198:9
[INFO] [stdout]     |
[INFO] [stdout] 197 |           continue;
[INFO] [stdout]     |           -------- any code following this expression is unreachable
[INFO] [stdout] 198 | /         for j in 0..step {
[INFO] [stdout] 199 | |             if rng.gen::<f32>() < 0.5 {
[INFO] [stdout] 200 | |                 a += 1;
[INFO] [stdout] 201 | |             } else {
[INFO] [stdout] ...   |
[INFO] [stdout] 211 | |             counts[count] += 1;
[INFO] [stdout] 212 | |         }
[INFO] [stdout]     | |_________^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main_utils.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let mut b = Board::from(att, def, Player::Black);
[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/main_utils.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let mut l1 = ai::NegAlphaF::new(Box::new(l.clone()), 5);
[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]    --> src/main_utils.rs:104:13
[INFO] [stdout]     |
[INFO] [stdout] 104 |         let mut l2 = ai::NegAlphaF::new(Box::new(l.clone()), 5);
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mcts`
[INFO] [stdout]   --> src/main_utils.rs:98:13
[INFO] [stdout]    |
[INFO] [stdout] 98 |         let mcts = ai::mcts::Mcts::new(10000, 3, 10, po);
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_mcts`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mcts2`
[INFO] [stdout]    --> src/main_utils.rs:100:13
[INFO] [stdout]     |
[INFO] [stdout] 100 |         let mcts2 = ai::mcts::Mcts::new(10000, 3, 10, po);
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_mcts2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m1`
[INFO] [stdout]    --> src/main_utils.rs:101:13
[INFO] [stdout]     |
[INFO] [stdout] 101 |         let m1 = ai::NegAlpha::new(Box::new(ai::CoEvaluator::best()), 3);
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_m1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m2`
[INFO] [stdout]    --> src/main_utils.rs:102:13
[INFO] [stdout]     |
[INFO] [stdout] 102 |         let m2 = ai::NegAlpha::new(Box::new(ai::CoEvaluator::best()), 3);
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_m2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `l1`
[INFO] [stdout]    --> src/main_utils.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let mut l1 = ai::NegAlphaF::new(Box::new(l.clone()), 5);
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_l1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `l2`
[INFO] [stdout]    --> src/main_utils.rs:104:13
[INFO] [stdout]     |
[INFO] [stdout] 104 |         let mut l2 = ai::NegAlphaF::new(Box::new(l.clone()), 5);
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_l2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/main_utils.rs:124:26
[INFO] [stdout]     |
[INFO] [stdout] 124 |             if let Some((a, b)) = res {
[INFO] [stdout]     |                          ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 57 |     let mut l3_ = NegAlphaF::new(Box::new(l.clone()), 1);
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m1`
[INFO] [stdout]   --> src/main.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |     let m1 = NegAlpha::new(Box::new(CoEvaluator::best()), 1);
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_m1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m3_f32`
[INFO] [stdout]   --> src/main.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let m3_f32 = NegAlphaF::new(Box::new(CoEvaluator::best()), 3);
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_m3_f32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m4`
[INFO] [stdout]   --> src/main.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let m4 = NegAlpha::new(Box::new(CoEvaluator::best()), 4);
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_m4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m6`
[INFO] [stdout]   --> src/main.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let m6 = NegAlpha::new(Box::new(CoEvaluator::best()), 6);
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_m6`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m7`
[INFO] [stdout]   --> src/main.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |     let m7 = NegAlpha::new(Box::new(CoEvaluator::best()), 7);
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_m7`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m9`
[INFO] [stdout]   --> src/main.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let m9 = NegAlpha::new(Box::new(CoEvaluator::best()), 9);
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_m9`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mm3`
[INFO] [stdout]   --> src/main.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |     let mm3 = Agent::Struct(String::from("mm3"), Box::new(mm3));
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_mm3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m2`
[INFO] [stdout]   --> src/main.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |     let m2 = Agent::Struct(String::from("m2"), Box::new(m2));
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_m2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m3`
[INFO] [stdout]   --> src/main.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let m3 = Agent::Struct(String::from("m3"), Box::new(m3));
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_m3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m5`
[INFO] [stdout]   --> src/main.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |     let m5 = Agent::Struct(String::from("m5"), Box::new(m5));
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_m5`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `l5_`
[INFO] [stdout]   --> src/main.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 |     let l5_ = MateWrapperActor::new(Box::new(l5_));
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_l5_`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b7`
[INFO] [stdout]   --> src/main.rs:81:9
[INFO] [stdout]    |
[INFO] [stdout] 81 |     let b7 = MateWrapperActor::new(Box::new(b7));
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_b7`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mcts`
[INFO] [stdout]   --> src/main.rs:84:9
[INFO] [stdout]    |
[INFO] [stdout] 84 |     let mcts = ai::mcts::Mcts::new(10_000, 3, 10, po);
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_mcts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mcts2`
[INFO] [stdout]   --> src/main.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 85 |     let mcts2 = ai::mcts::Mcts::new(10_000, 3, 500, l3_);
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_mcts2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:181:13
[INFO] [stdout]     |
[INFO] [stdout] 181 |         let mut count = 0;
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:178:9
[INFO] [stdout]     |
[INFO] [stdout] 178 |     for i in 0..n {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count`
[INFO] [stdout]    --> src/main.rs:181:13
[INFO] [stdout]     |
[INFO] [stdout] 181 |         let mut count = 0;
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]    --> src/main.rs:183:13
[INFO] [stdout]     |
[INFO] [stdout] 183 |         for j in 0..step {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:238:13
[INFO] [stdout]     |
[INFO] [stdout] 238 |         let mut max_action = 0;
[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]    --> src/main.rs:239:13
[INFO] [stdout]     |
[INFO] [stdout] 239 |         let mut max = 0.0;
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_action`
[INFO] [stdout]    --> src/main.rs:238:13
[INFO] [stdout]     |
[INFO] [stdout] 238 |         let mut max_action = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_action`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max`
[INFO] [stdout]    --> src/main.rs:239:13
[INFO] [stdout]     |
[INFO] [stdout] 239 |         let mut max = 0.0;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/main.rs:251:22
[INFO] [stdout]     |
[INFO] [stdout] 251 |         let (action, val, count) = l7_.eval_with_negalpha(&b);
[INFO] [stdout]     |                      ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count`
[INFO] [stdout]    --> src/main.rs:251:27
[INFO] [stdout]     |
[INFO] [stdout] 251 |         let (action, val, count) = l7_.eval_with_negalpha(&b);
[INFO] [stdout]     |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:276:9
[INFO] [stdout]     |
[INFO] [stdout] 276 |     for i in 0_u64..(1 << 32) {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `black`
[INFO] [stdout]    --> src/main.rs:323:9
[INFO] [stdout]     |
[INFO] [stdout] 323 |         black: u64,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_black`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `white`
[INFO] [stdout]    --> src/main.rs:324:9
[INFO] [stdout]     |
[INFO] [stdout] 324 |         white: u64,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_white`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:332:9
[INFO] [stdout]     |
[INFO] [stdout] 332 |     let mut it = BoardIter::new(true);
[INFO] [stdout]     |         ----^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:422:9
[INFO] [stdout]     |
[INFO] [stdout] 422 |     for i in 0..size {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `step` is assigned to, but never used
[INFO] [stdout]    --> src/main.rs:440:9
[INFO] [stdout]     |
[INFO] [stdout] 440 |     let mut step = 0;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_step` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `step` is never read
[INFO] [stdout]    --> src/main.rs:481:13
[INFO] [stdout]     |
[INFO] [stdout] 481 |             step += 1;
[INFO] [stdout]     |             ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val_`
[INFO] [stdout]    --> src/main.rs:565:23
[INFO] [stdout]     |
[INFO] [stdout] 565 |         let (action2, val_, _) = long.eval_with_negalpha(&b);
[INFO] [stdout]     |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_val_`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:627:9
[INFO] [stdout]     |
[INFO] [stdout] 627 |     let mut all_count = 0.0;
[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]    --> src/main.rs:628:9
[INFO] [stdout]     |
[INFO] [stdout] 628 |     let mut all_err_sum = 0.0;
[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]    --> src/main.rs:629:9
[INFO] [stdout]     |
[INFO] [stdout] 629 |     let mut all_sq_sum = 0.0;
[INFO] [stdout]     |         ----^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `all_count`
[INFO] [stdout]    --> src/main.rs:627:9
[INFO] [stdout]     |
[INFO] [stdout] 627 |     let mut all_count = 0.0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_all_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `all_err_sum`
[INFO] [stdout]    --> src/main.rs:628:9
[INFO] [stdout]     |
[INFO] [stdout] 628 |     let mut all_err_sum = 0.0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_all_err_sum`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `all_sq_sum`
[INFO] [stdout]    --> src/main.rs:629:9
[INFO] [stdout]     |
[INFO] [stdout] 629 |     let mut all_sq_sum = 0.0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_all_sq_sum`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:766:9
[INFO] [stdout]     |
[INFO] [stdout] 766 |     let mut model = TrainableSLE::from(model, 0.001);
[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]    --> src/main.rs:768:9
[INFO] [stdout]     |
[INFO] [stdout] 768 |     let mut pmodel = PositionMaskEvaluator::new();
[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]    --> src/main.rs:769:9
[INFO] [stdout]     |
[INFO] [stdout] 769 |     let mut pmodel = TrainablePME::from(pmodel, 0.001);
[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]    --> src/main.rs:770:9
[INFO] [stdout]     |
[INFO] [stdout] 770 |     let mut nmodel = NNLineEvaluator_::new();
[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]    --> src/main.rs:771:9
[INFO] [stdout]     |
[INFO] [stdout] 771 |     let mut nmodel = TrainableNLE_::from(nmodel, 0.005);
[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]    --> src/main.rs:772:9
[INFO] [stdout]     |
[INFO] [stdout] 772 |     let mut pmodel = pattern::test_pattern_evaluator();
[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]    --> src/main.rs:773:9
[INFO] [stdout]     |
[INFO] [stdout] 773 |     let mut pmodel = TrainablePatternEvaluator::from_pattern_evaluator(pmodel, 0.0001, 0.9, 0.999);
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `model`
[INFO] [stdout]    --> src/main.rs:766:9
[INFO] [stdout]     |
[INFO] [stdout] 766 |     let mut model = TrainableSLE::from(model, 0.001);
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_model`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pmodel`
[INFO] [stdout]    --> src/main.rs:769:9
[INFO] [stdout]     |
[INFO] [stdout] 769 |     let mut pmodel = TrainablePME::from(pmodel, 0.001);
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pmodel`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pmodel`
[INFO] [stdout]    --> src/main.rs:773:9
[INFO] [stdout]     |
[INFO] [stdout] 773 |     let mut pmodel = TrainablePatternEvaluator::from_pattern_evaluator(pmodel, 0.0001, 0.9, 0.999);
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pmodel`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:813:9
[INFO] [stdout]     |
[INFO] [stdout] 813 |     let mut b_time_not = 0;
[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]    --> src/main.rs:815:9
[INFO] [stdout]     |
[INFO] [stdout] 815 |     let mut a_time_not = 0;
[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]    --> src/main.rs:817:9
[INFO] [stdout]     |
[INFO] [stdout] 817 |     let mut count_n = 0;
[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]    --> src/main.rs:818:9
[INFO] [stdout]     |
[INFO] [stdout] 818 |     let mut max_path_board = (0, 0);
[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]    --> src/main.rs:819:9
[INFO] [stdout]     |
[INFO] [stdout] 819 |     let mut max_path = 0;
[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]    --> src/main.rs:820:9
[INFO] [stdout]     |
[INFO] [stdout] 820 |     let mut max_reach_count_board = (0, 0);
[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]    --> src/main.rs:821:9
[INFO] [stdout]     |
[INFO] [stdout] 821 |     let mut max_reach_count = 0;
[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]    --> src/main.rs:822:9
[INFO] [stdout]     |
[INFO] [stdout] 822 |     let mut max_valid_count_board = (0, 0);
[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]    --> src/main.rs:823:9
[INFO] [stdout]     |
[INFO] [stdout] 823 |     let mut max_valid_count = 0;
[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]    --> src/main.rs:824:9
[INFO] [stdout]     |
[INFO] [stdout] 824 |     let mut reach_count = 0;
[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]    --> src/main.rs:825:9
[INFO] [stdout]     |
[INFO] [stdout] 825 |     let mut valid_count = 0;
[INFO] [stdout]     |         ----^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:826:9
[INFO] [stdout]     |
[INFO] [stdout] 826 |     for i in 0..n {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]    --> src/main.rs:828:13
[INFO] [stdout]     |
[INFO] [stdout] 828 |         for j in 0..20 {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `flag`
[INFO] [stdout]    --> src/main.rs:892:18
[INFO] [stdout]     |
[INFO] [stdout] 892 |             let (flag, action) = result.unwrap();
[INFO] [stdout]     |                  ^^^^ help: if this is intentional, prefix it with an underscore: `_flag`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:921:9
[INFO] [stdout]     |
[INFO] [stdout] 921 |     for i in 0..10000 {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:961:9
[INFO] [stdout]     |
[INFO] [stdout] 961 |     let mut rng = thread_rng();
[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]    --> src/main.rs:975:13
[INFO] [stdout]     |
[INFO] [stdout] 975 |         let mut r1 = 0.0;
[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]    --> src/main.rs:976:13
[INFO] [stdout]     |
[INFO] [stdout] 976 |         let mut r2 = 0.0;
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rng`
[INFO] [stdout]    --> src/main.rs:961:9
[INFO] [stdout]     |
[INFO] [stdout] 961 |     let mut rng = thread_rng();
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `best` is assigned to, but never used
[INFO] [stdout]    --> src/main.rs:969:9
[INFO] [stdout]     |
[INFO] [stdout] 969 |     let mut best = get_position_eval_agent_alpha(3, 6, 1, 1, 6, 1, 5, 5, 1, 5, 5, 8, 8);
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_best` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:972:9
[INFO] [stdout]     |
[INFO] [stdout] 972 |     for i in 0..1000 {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r1`
[INFO] [stdout]    --> src/main.rs:975:13
[INFO] [stdout]     |
[INFO] [stdout] 975 |         let mut r1 = 0.0;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_r1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r2`
[INFO] [stdout]    --> src/main.rs:976:13
[INFO] [stdout]     |
[INFO] [stdout] 976 |         let mut r2 = 0.0;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_r2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:980:18
[INFO] [stdout]     |
[INFO] [stdout] 980 |             let (i, r1_, r2_) = compare(&tar, test);
[INFO] [stdout]     |                  ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `best` is never read
[INFO] [stdout]    --> src/main.rs:989:13
[INFO] [stdout]     |
[INFO] [stdout] 989 |             best = tar;
[INFO] [stdout]     |             ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `float`
[INFO] [stdout]     --> src/main.rs:1099:9
[INFO] [stdout]      |
[INFO] [stdout] 1099 |     let float = !((stone << 16) | 0xffff);
[INFO] [stdout]      |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ground`
[INFO] [stdout]     --> src/main.rs:1101:9
[INFO] [stdout]      |
[INFO] [stdout] 1101 |     let ground = ((stone << 16) | 0xffff) ^ stone;
[INFO] [stdout]      |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_ground`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exp_prob_compare` is never used
[INFO] [stdout]    --> src/main.rs:170:4
[INFO] [stdout]     |
[INFO] [stdout] 170 | fn exp_prob_compare() {
[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 `exp` is never used
[INFO] [stdout]    --> src/main.rs:219:4
[INFO] [stdout]     |
[INFO] [stdout] 219 | fn exp() {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `command` is never used
[INFO] [stdout]    --> src/main.rs:259:4
[INFO] [stdout]     |
[INFO] [stdout] 259 | fn command() {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_magic_number` is never used
[INFO] [stdout]    --> src/main.rs:270:4
[INFO] [stdout]     |
[INFO] [stdout] 270 | fn get_magic_number() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `call_evaluator` is never used
[INFO] [stdout]    --> src/main.rs:309:4
[INFO] [stdout]     |
[INFO] [stdout] 309 | fn call_evaluator() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exp_positoin_eval_get_count` is never used
[INFO] [stdout]    --> src/main.rs:328:4
[INFO] [stdout]     |
[INFO] [stdout] 328 | fn exp_positoin_eval_get_count() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_pmodel` is never used
[INFO] [stdout]    --> src/main.rs:369:4
[INFO] [stdout]     |
[INFO] [stdout] 369 | fn print_pmodel() {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `use_ai` is never used
[INFO] [stdout]    --> src/main.rs:376:4
[INFO] [stdout]     |
[INFO] [stdout] 376 | fn use_ai() {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_random_board` is never used
[INFO] [stdout]    --> src/main.rs:420:4
[INFO] [stdout]     |
[INFO] [stdout] 420 | fn get_random_board(size: usize) -> Board {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exp_mate_profile` is never used
[INFO] [stdout]    --> src/main.rs:428:4
[INFO] [stdout]     |
[INFO] [stdout] 428 | fn exp_mate_profile(a1: &impl GetAction, a2: &impl GetAction) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `profile` is never used
[INFO] [stdout]    --> src/main.rs:523:4
[INFO] [stdout]     |
[INFO] [stdout] 523 | fn profile() {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mpc_for_coe` is never used
[INFO] [stdout]    --> src/main.rs:610:4
[INFO] [stdout]     |
[INFO] [stdout] 610 | fn mpc_for_coe(long_depth: u8, short_depth: u8) {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `wrapping_line_eval` is never used
[INFO] [stdout]    --> src/main.rs:730:4
[INFO] [stdout]     |
[INFO] [stdout] 730 | fn wrapping_line_eval(l: LineEvaluator, depth: u8) -> MateWrapperActor {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `train_line_eval` is never used
[INFO] [stdout]    --> src/main.rs:747:4
[INFO] [stdout]     |
[INFO] [stdout] 747 | fn train_line_eval(train_db: String, valid_db: String) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `expand_untill_n` is never used
[INFO] [stdout]    --> src/main.rs:786:4
[INFO] [stdout]     |
[INFO] [stdout] 786 | fn expand_untill_n(b: Board, n: usize) -> Vec<Board> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mcts_statistics` is never used
[INFO] [stdout]    --> src/main.rs:913:4
[INFO] [stdout]     |
[INFO] [stdout] 913 | fn mcts_statistics() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `random_i` is never used
[INFO] [stdout]    --> src/main.rs:937:4
[INFO] [stdout]     |
[INFO] [stdout] 937 | fn random_i(max: i32) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_random_model` is never used
[INFO] [stdout]    --> src/main.rs:942:4
[INFO] [stdout]     |
[INFO] [stdout] 942 | fn get_random_model(max: i32) -> Agent {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `explore_best_model` is never used
[INFO] [stdout]    --> src/main.rs:960:4
[INFO] [stdout]     |
[INFO] [stdout] 960 | fn explore_best_model() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mc` is never used
[INFO] [stdout]    --> src/main.rs:997:4
[INFO] [stdout]     |
[INFO] [stdout] 997 | fn mc(a: usize, b: usize) -> Agent {
[INFO] [stdout]     |    ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_co_eval_agent` is never used
[INFO] [stdout]     --> src/main.rs:1001:4
[INFO] [stdout]      |
[INFO] [stdout] 1001 | fn get_co_eval_agent(depth: usize, row_w: i32, pos_w: i32) -> Agent {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_row_evaluator` is never used
[INFO] [stdout]     --> src/main.rs:1015:4
[INFO] [stdout]      |
[INFO] [stdout] 1015 | fn get_row_evaluator(depth: usize) -> Agent {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_position_eval_agent` is never used
[INFO] [stdout]     --> src/main.rs:1024:4
[INFO] [stdout]      |
[INFO] [stdout] 1024 | fn get_position_eval_agent(depth: usize, v: i32, e: i32, s: i32, c: i32) -> Agent {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_position_eval_agent_alpha` is never used
[INFO] [stdout]     --> src/main.rs:1037:4
[INFO] [stdout]      |
[INFO] [stdout] 1037 | fn get_position_eval_agent_alpha(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compare` is never used
[INFO] [stdout]     --> src/main.rs:1062:4
[INFO] [stdout]      |
[INFO] [stdout] 1062 | fn compare(a1: &impl GetAction, a2: &impl GetAction) -> (i32, f32, f32) {
[INFO] [stdout]      |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_v` is never used
[INFO] [stdout]     --> src/main.rs:1095:4
[INFO] [stdout]      |
[INFO] [stdout] 1095 | fn get_v(b: &Board) -> u32 {
[INFO] [stdout]      |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `beam_search` is never used
[INFO] [stdout]     --> src/main.rs:1108:4
[INFO] [stdout]      |
[INFO] [stdout] 1108 | fn beam_search() {
[INFO] [stdout]      |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_board_from_json` is never used
[INFO] [stdout]   --> src/main_utils.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn read_board_from_json(file_name: &str) -> Vec<(u64, u64)> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_board_to_json` is never used
[INFO] [stdout]   --> src/main_utils.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn write_board_to_json(v: Vec<(u64, u64)>, file_name: &str) -> std::io::Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GameRecordIterator` is never constructed
[INFO] [stdout]   --> src/main_utils.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct GameRecordIterator<A1: GetAction, A2: GetAction> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `reset` are never used
[INFO] [stdout]   --> src/main_utils.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl<A1: GetAction, A2: GetAction> GameRecordIterator<A1, A2> {
[INFO] [stdout]    | ------------------------------------------------------------- associated items in this implementation
[INFO] [stdout] 31 |     pub fn new(a1: A1, a2: A2) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn reset(&mut self) -> Board {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_pns` is never used
[INFO] [stdout]   --> src/main_utils.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub fn test_pns() {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_problems` is never used
[INFO] [stdout]   --> src/main_utils.rs:83:8
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub fn generate_problems() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 53 |     l.load("sle_tl50.json".to_string());
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let _ = l.load("sle_tl50.json".to_string());
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 64 |     l.load("simple.json".to_string());
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let _ = l.load("simple.json".to_string());
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 74 |     b.load("bsimple.json".to_string());
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 74 |     let _ = b.load("bsimple.json".to_string());
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:221:5
[INFO] [stdout]     |
[INFO] [stdout] 221 |     l.load("simple.json".to_string());
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 221 |     let _ = l.load("simple.json".to_string());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:311:5
[INFO] [stdout]     |
[INFO] [stdout] 311 |     l.load("simple.json".to_string());
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 311 |     let _ = l.load("simple.json".to_string());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:371:5
[INFO] [stdout]     |
[INFO] [stdout] 371 |     pmodel.load("position.json".to_string());
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 371 |     let _ = pmodel.load("position.json".to_string());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:378:5
[INFO] [stdout]     |
[INFO] [stdout] 378 |     l.load("simple.json".to_string());
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 378 |     let _ = l.load("simple.json".to_string());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:532:5
[INFO] [stdout]     |
[INFO] [stdout] 532 |     nmodel.load("sle_tl50_.json".to_string());
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 532 |     let _ = nmodel.load("sle_tl50_.json".to_string());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:613:5
[INFO] [stdout]     |
[INFO] [stdout] 613 |     l.load("bsimple.json".to_string());
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 613 |     let _ = l.load("bsimple.json".to_string());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:738:5
[INFO] [stdout]     |
[INFO] [stdout] 738 |     l.load("simple.json".to_string());
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 738 |     let _ = l.load("simple.json".to_string());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main_utils.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 |     l.load("simple.json".to_string());
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let _ = l.load("simple.json".to_string());
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main_utils.rs:86:5
[INFO] [stdout]    |
[INFO] [stdout] 86 |     l.load("simple.json".to_string());
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 86 |     let _ = l.load("simple.json".to_string());
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main_utils.rs:107:17
[INFO] [stdout]     |
[INFO] [stdout] 107 |                 write_board_to_json(problems, "tss10000.json");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 107 |                 let _ = write_board_to_json(problems, "tss10000.json");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main_utils.rs:108:17
[INFO] [stdout]     |
[INFO] [stdout] 108 |                 write_board_to_json(problems_no_tss, "no_tss10000.json");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 108 |                 let _ = write_board_to_json(problems_no_tss, "no_tss10000.json");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 24.49s
[INFO] running `Command { std: "docker" "inspect" "5a3ffef0cd2ee81126bfe25da92c121df38fb52418ba3399311666e2fb40d46f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5a3ffef0cd2ee81126bfe25da92c121df38fb52418ba3399311666e2fb40d46f", kill_on_drop: false }`
[INFO] [stdout] 5a3ffef0cd2ee81126bfe25da92c121df38fb52418ba3399311666e2fb40d46f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 68331bce256be0211600783ad67f332d0c99960b97cd22fbdcdc1773b5f6745a
[INFO] running `Command { std: "docker" "start" "-a" "68331bce256be0211600783ad67f332d0c99960b97cd22fbdcdc1773b5f6745a", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `super::pprint_u64`
[INFO] [stdout]    --> src/board/magic_number.rs:536:9
[INFO] [stdout]     |
[INFO] [stdout] 536 |     use super::pprint_u64;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/board.rs:411:13
[INFO] [stdout]     |
[INFO] [stdout] 411 |     let x = ((count_2row_(s, s >> 1, s >> 2, s >> 3, b, b >> 1, b >> 2, b >> 3)
[INFO] [stdout]     |             ^
[INFO] [stdout] 412 |         & 0x1111_1111_1111_1111)
[INFO] [stdout] 413 |         * 0xf);
[INFO] [stdout]     |              ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 411 ~     let x = (count_2row_(s, s >> 1, s >> 2, s >> 3, b, b >> 1, b >> 2, b >> 3)
[INFO] [stdout] 412 |         & 0x1111_1111_1111_1111)
[INFO] [stdout] 413 ~         * 0xf;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/board.rs:414:13
[INFO] [stdout]     |
[INFO] [stdout] 414 |     let y = ((count_2row_(s, s >> 4, s >> 8, s >> 12, b, b >> 4, b >> 8, b >> 12)
[INFO] [stdout]     |             ^
[INFO] [stdout] 415 |         & 0x000f_000f_000f_000f)
[INFO] [stdout] 416 |         * 0x1111);
[INFO] [stdout]     |                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 414 ~     let y = (count_2row_(s, s >> 4, s >> 8, s >> 12, b, b >> 4, b >> 8, b >> 12)
[INFO] [stdout] 415 |         & 0x000f_000f_000f_000f)
[INFO] [stdout] 416 ~         * 0x1111;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/board.rs:443:15
[INFO] [stdout]     |
[INFO] [stdout] 443 |     let xyz = (xyz1 | xyz2 | xyz3 | xyz4);
[INFO] [stdout]     |               ^                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 443 -     let xyz = (xyz1 | xyz2 | xyz3 | xyz4);
[INFO] [stdout] 443 +     let xyz = xyz1 | xyz2 | xyz3 | xyz4;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `return` value
[INFO] [stdout]    --> src/board.rs:464:12
[INFO] [stdout]     |
[INFO] [stdout] 464 |     return (b & c & (a | e) | e & f & (c | g));
[INFO] [stdout]     |            ^                                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 464 -     return (b & c & (a | e) | e & f & (c | g));
[INFO] [stdout] 464 +     return b & c & (a | e) | e & f & (c | g);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pprint_u64`
[INFO] [stdout]  --> src/dfpn.rs:2:76
[INFO] [stdout]   |
[INFO] [stdout] 2 |     self, get_2row_mask, get_put_reach_mask, get_reach_mask, pprint_board, pprint_u64, Board,
[INFO] [stdout]   |                                                                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::Ordering`
[INFO] [stdout]  --> src/dfpn.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::cmp::Ordering;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::binary_heap::Iter`
[INFO] [stdout]  --> src/exp.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::{collections::binary_heap::Iter, thread, time};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `threat_space_search`
[INFO] [stdout]  --> src/train.rs:7:33
[INFO] [stdout]   |
[INFO] [stdout] 7 |     dfpn::{proof_number_search, threat_space_search, MateType},
[INFO] [stdout]   |                                 ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::EPSILON`
[INFO] [stdout]   --> src/train.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::f32::EPSILON;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d`
[INFO] [stdout]    --> src/board.rs:463:56
[INFO] [stdout]     |
[INFO] [stdout] 463 | const fn _get_reach_mask_alpha(a: u64, b: u64, c: u64, d: u64, e: u64, f: u64, g: u64) -> u64 {
[INFO] [stdout]     |                                                        ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/board.rs:539:28
[INFO] [stdout]     |
[INFO] [stdout] 539 | pub const fn get_1row_mask(s: u64, b: u64) -> u64 {
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b1`
[INFO] [stdout]    --> src/board.rs:540:10
[INFO] [stdout]     |
[INFO] [stdout] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stdout]     |          ^^ help: if this is intentional, prefix it with an underscore: `_b1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b2`
[INFO] [stdout]    --> src/board.rs:540:14
[INFO] [stdout]     |
[INFO] [stdout] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stdout]     |              ^^ help: if this is intentional, prefix it with an underscore: `_b2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b3`
[INFO] [stdout]    --> src/board.rs:540:18
[INFO] [stdout]     |
[INFO] [stdout] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stdout]     |                  ^^ help: if this is intentional, prefix it with an underscore: `_b3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b4`
[INFO] [stdout]    --> src/board.rs:540:22
[INFO] [stdout]     |
[INFO] [stdout] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stdout]     |                      ^^ help: if this is intentional, prefix it with an underscore: `_b4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b6`
[INFO] [stdout]    --> src/board.rs:540:26
[INFO] [stdout]     |
[INFO] [stdout] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stdout]     |                          ^^ help: if this is intentional, prefix it with an underscore: `_b6`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b8`
[INFO] [stdout]    --> src/board.rs:540:30
[INFO] [stdout]     |
[INFO] [stdout] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stdout]     |                              ^^ help: if this is intentional, prefix it with an underscore: `_b8`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b9`
[INFO] [stdout]    --> src/board.rs:540:34
[INFO] [stdout]     |
[INFO] [stdout] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stdout]     |                                  ^^ help: if this is intentional, prefix it with an underscore: `_b9`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b11`
[INFO] [stdout]    --> src/board.rs:540:38
[INFO] [stdout]     |
[INFO] [stdout] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_b11`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b12`
[INFO] [stdout]    --> src/board.rs:540:43
[INFO] [stdout]     |
[INFO] [stdout] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stdout]     |                                           ^^^ help: if this is intentional, prefix it with an underscore: `_b12`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b13`
[INFO] [stdout]    --> src/board.rs:540:48
[INFO] [stdout]     |
[INFO] [stdout] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stdout]     |                                                ^^^ help: if this is intentional, prefix it with an underscore: `_b13`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b15`
[INFO] [stdout]    --> src/board.rs:540:53
[INFO] [stdout]     |
[INFO] [stdout] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stdout]     |                                                     ^^^ help: if this is intentional, prefix it with an underscore: `_b15`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b16`
[INFO] [stdout]    --> src/board.rs:553:10
[INFO] [stdout]     |
[INFO] [stdout] 553 |     let (b16, b17, b19, b20, b21, b22, b24, b26, b30) = (
[INFO] [stdout]     |          ^^^ help: if this is intentional, prefix it with an underscore: `_b16`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b17`
[INFO] [stdout]    --> src/board.rs:553:15
[INFO] [stdout]     |
[INFO] [stdout] 553 |     let (b16, b17, b19, b20, b21, b22, b24, b26, b30) = (
[INFO] [stdout]     |               ^^^ help: if this is intentional, prefix it with an underscore: `_b17`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b19`
[INFO] [stdout]    --> src/board.rs:553:20
[INFO] [stdout]     |
[INFO] [stdout] 553 |     let (b16, b17, b19, b20, b21, b22, b24, b26, b30) = (
[INFO] [stdout]     |                    ^^^ help: if this is intentional, prefix it with an underscore: `_b19`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b20`
[INFO] [stdout]    --> src/board.rs:553:25
[INFO] [stdout]     |
[INFO] [stdout] 553 |     let (b16, b17, b19, b20, b21, b22, b24, b26, b30) = (
[INFO] [stdout]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_b20`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b21`
[INFO] [stdout]    --> src/board.rs:553:30
[INFO] [stdout]     |
[INFO] [stdout] 553 |     let (b16, b17, b19, b20, b21, b22, b24, b26, b30) = (
[INFO] [stdout]     |                              ^^^ help: if this is intentional, prefix it with an underscore: `_b21`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b22`
[INFO] [stdout]    --> src/board.rs:553:35
[INFO] [stdout]     |
[INFO] [stdout] 553 |     let (b16, b17, b19, b20, b21, b22, b24, b26, b30) = (
[INFO] [stdout]     |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_b22`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b24`
[INFO] [stdout]    --> src/board.rs:553:40
[INFO] [stdout]     |
[INFO] [stdout] 553 |     let (b16, b17, b19, b20, b21, b22, b24, b26, b30) = (
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_b24`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b26`
[INFO] [stdout]    --> src/board.rs:553:45
[INFO] [stdout]     |
[INFO] [stdout] 553 |     let (b16, b17, b19, b20, b21, b22, b24, b26, b30) = (
[INFO] [stdout]     |                                             ^^^ help: if this is intentional, prefix it with an underscore: `_b26`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b30`
[INFO] [stdout]    --> src/board.rs:553:50
[INFO] [stdout]     |
[INFO] [stdout] 553 |     let (b16, b17, b19, b20, b21, b22, b24, b26, b30) = (
[INFO] [stdout]     |                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_b30`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b32`
[INFO] [stdout]    --> src/board.rs:564:10
[INFO] [stdout]     |
[INFO] [stdout] 564 |     let (b32, b33, b34, b36, b38, b39, b40, b42, b45) = (
[INFO] [stdout]     |          ^^^ help: if this is intentional, prefix it with an underscore: `_b32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b33`
[INFO] [stdout]    --> src/board.rs:564:15
[INFO] [stdout]     |
[INFO] [stdout] 564 |     let (b32, b33, b34, b36, b38, b39, b40, b42, b45) = (
[INFO] [stdout]     |               ^^^ help: if this is intentional, prefix it with an underscore: `_b33`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b34`
[INFO] [stdout]    --> src/board.rs:564:20
[INFO] [stdout]     |
[INFO] [stdout] 564 |     let (b32, b33, b34, b36, b38, b39, b40, b42, b45) = (
[INFO] [stdout]     |                    ^^^ help: if this is intentional, prefix it with an underscore: `_b34`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b36`
[INFO] [stdout]    --> src/board.rs:564:25
[INFO] [stdout]     |
[INFO] [stdout] 564 |     let (b32, b33, b34, b36, b38, b39, b40, b42, b45) = (
[INFO] [stdout]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_b36`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b38`
[INFO] [stdout]    --> src/board.rs:564:30
[INFO] [stdout]     |
[INFO] [stdout] 564 |     let (b32, b33, b34, b36, b38, b39, b40, b42, b45) = (
[INFO] [stdout]     |                              ^^^ help: if this is intentional, prefix it with an underscore: `_b38`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b39`
[INFO] [stdout]    --> src/board.rs:564:35
[INFO] [stdout]     |
[INFO] [stdout] 564 |     let (b32, b33, b34, b36, b38, b39, b40, b42, b45) = (
[INFO] [stdout]     |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_b39`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b40`
[INFO] [stdout]    --> src/board.rs:564:40
[INFO] [stdout]     |
[INFO] [stdout] 564 |     let (b32, b33, b34, b36, b38, b39, b40, b42, b45) = (
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_b40`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b42`
[INFO] [stdout]    --> src/board.rs:564:45
[INFO] [stdout]     |
[INFO] [stdout] 564 |     let (b32, b33, b34, b36, b38, b39, b40, b42, b45) = (
[INFO] [stdout]     |                                             ^^^ help: if this is intentional, prefix it with an underscore: `_b42`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b45`
[INFO] [stdout]    --> src/board.rs:564:50
[INFO] [stdout]     |
[INFO] [stdout] 564 |     let (b32, b33, b34, b36, b38, b39, b40, b42, b45) = (
[INFO] [stdout]     |                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_b45`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b48`
[INFO] [stdout]    --> src/board.rs:575:10
[INFO] [stdout]     |
[INFO] [stdout] 575 |     let (b48, b49, b57, b60, b63) = (b >> 48, b >> 49, b >> 57, b >> 60, b >> 63);
[INFO] [stdout]     |          ^^^ help: if this is intentional, prefix it with an underscore: `_b48`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b49`
[INFO] [stdout]    --> src/board.rs:575:15
[INFO] [stdout]     |
[INFO] [stdout] 575 |     let (b48, b49, b57, b60, b63) = (b >> 48, b >> 49, b >> 57, b >> 60, b >> 63);
[INFO] [stdout]     |               ^^^ help: if this is intentional, prefix it with an underscore: `_b49`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b57`
[INFO] [stdout]    --> src/board.rs:575:20
[INFO] [stdout]     |
[INFO] [stdout] 575 |     let (b48, b49, b57, b60, b63) = (b >> 48, b >> 49, b >> 57, b >> 60, b >> 63);
[INFO] [stdout]     |                    ^^^ help: if this is intentional, prefix it with an underscore: `_b57`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b60`
[INFO] [stdout]    --> src/board.rs:575:25
[INFO] [stdout]     |
[INFO] [stdout] 575 |     let (b48, b49, b57, b60, b63) = (b >> 48, b >> 49, b >> 57, b >> 60, b >> 63);
[INFO] [stdout]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_b60`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b63`
[INFO] [stdout]    --> src/board.rs:575:30
[INFO] [stdout]     |
[INFO] [stdout] 575 |     let (b48, b49, b57, b60, b63) = (b >> 48, b >> 49, b >> 57, b >> 60, b >> 63);
[INFO] [stdout]     |                              ^^^ help: if this is intentional, prefix it with an underscore: `_b63`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `count` is assigned to, but never used
[INFO] [stdout]     --> src/board.rs:1039:9
[INFO] [stdout]      |
[INFO] [stdout] 1039 |     let mut count = 1;
[INFO] [stdout]      |         ^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `count` is never read
[INFO] [stdout]     --> src/board.rs:1051:9
[INFO] [stdout]      |
[INFO] [stdout] 1051 |         count += 1;
[INFO] [stdout]      |         ^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `count` is assigned to, but never used
[INFO] [stdout]     --> src/board.rs:1092:9
[INFO] [stdout]      |
[INFO] [stdout] 1092 |     let mut count = 1;
[INFO] [stdout]      |         ^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `count` is never read
[INFO] [stdout]     --> src/board.rs:1104:9
[INFO] [stdout]      |
[INFO] [stdout] 1104 |         count += 1;
[INFO] [stdout]      |         ^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action`
[INFO] [stdout]     --> src/board.rs:1375:18
[INFO] [stdout]      |
[INFO] [stdout] 1375 |             for (action, node) in self.children.iter() {
[INFO] [stdout]      |                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_action`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node`
[INFO] [stdout]     --> src/board.rs:1375:26
[INFO] [stdout]      |
[INFO] [stdout] 1375 |             for (action, node) in self.children.iter() {
[INFO] [stdout]      |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `func`
[INFO] [stdout]     --> src/board.rs:1515:33
[INFO] [stdout]      |
[INFO] [stdout] 1515 |             Agent::Custom(name, func) => format!("{}", name),
[INFO] [stdout]      |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_func`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ga`
[INFO] [stdout]     --> src/board.rs:1516:33
[INFO] [stdout]      |
[INFO] [stdout] 1516 |             Agent::Struct(name, ga) => format!("{}", name),
[INFO] [stdout]      |                                 ^^ help: if this is intentional, prefix it with an underscore: `_ga`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a_milis`
[INFO] [stdout]     --> src/board.rs:1531:21
[INFO] [stdout]      |
[INFO] [stdout] 1531 |                 let a_milis = end.as_nanos();
[INFO] [stdout]      |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_a_milis`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b_milis`
[INFO] [stdout]     --> src/board.rs:1535:21
[INFO] [stdout]      |
[INFO] [stdout] 1535 |                 let b_milis = end.as_nanos();
[INFO] [stdout]      |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_b_milis`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]     --> src/board.rs:1548:27
[INFO] [stdout]      |
[INFO] [stdout] 1548 |             Agent::Custom(name, func) => func(board),
[INFO] [stdout]      |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]     --> src/board.rs:1549:27
[INFO] [stdout]      |
[INFO] [stdout] 1549 |             Agent::Struct(name, ga) => ga.get_action(board),
[INFO] [stdout]      |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]     --> src/board.rs:1720:9
[INFO] [stdout]      |
[INFO] [stdout] 1720 |     for i in 0..n {
[INFO] [stdout]      |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]     --> src/board.rs:1794:9
[INFO] [stdout]      |
[INFO] [stdout] 1794 |     for i in 0..n {
[INFO] [stdout]      |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/db.rs:145:23
[INFO] [stdout]     |
[INFO] [stdout] 145 |                 for &(name, value) in pairs.iter() {
[INFO] [stdout]     |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/db.rs:218:9
[INFO] [stdout]     |
[INFO] [stdout] 218 |     for i in 0..(id % 4) {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mask`
[INFO] [stdout]    --> src/dfpn.rs:299:13
[INFO] [stdout]     |
[INFO] [stdout] 299 |         let mask = get_reach_mask(def, att);
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_mask`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/dfpn.rs:352:18
[INFO] [stdout]     |
[INFO] [stdout] 352 |             let (a, (n_att, n_def)) = new_nodes[0];
[INFO] [stdout]     |                  ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mask`
[INFO] [stdout]    --> src/dfpn.rs:380:13
[INFO] [stdout]     |
[INFO] [stdout] 380 |         let mask = get_reach_mask(def, att);
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_mask`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_att`
[INFO] [stdout]    --> src/dfpn.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 |         let (n_att, n_def) = root_expands[0].1;
[INFO] [stdout]     |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_n_att`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_def`
[INFO] [stdout]    --> src/dfpn.rs:394:21
[INFO] [stdout]     |
[INFO] [stdout] 394 |         let (n_att, n_def) = root_expands[0].1;
[INFO] [stdout]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_n_def`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `count_reach_board` is assigned to, but never used
[INFO] [stdout]    --> src/dfpn.rs:400:9
[INFO] [stdout]     |
[INFO] [stdout] 400 |     let mut count_reach_board = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_count_reach_board` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `count_valid_board` is assigned to, but never used
[INFO] [stdout]    --> src/dfpn.rs:401:9
[INFO] [stdout]     |
[INFO] [stdout] 401 |     let mut count_valid_board = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_count_valid_board` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/dfpn.rs:425:18
[INFO] [stdout]     |
[INFO] [stdout] 425 |             let (a, (n_att, n_def)) = new_nodes[0];
[INFO] [stdout]     |                  ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_att`
[INFO] [stdout]    --> src/dfpn.rs:425:22
[INFO] [stdout]     |
[INFO] [stdout] 425 |             let (a, (n_att, n_def)) = new_nodes[0];
[INFO] [stdout]     |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_n_att`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_def`
[INFO] [stdout]    --> src/dfpn.rs:425:29
[INFO] [stdout]     |
[INFO] [stdout] 425 |             let (a, (n_att, n_def)) = new_nodes[0];
[INFO] [stdout]     |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_n_def`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `count_reach_board` is never read
[INFO] [stdout]    --> src/dfpn.rs:422:9
[INFO] [stdout]     |
[INFO] [stdout] 422 |         count_reach_board += get_valid_boards(tar_board.0, tar_board.1).len();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `count_valid_board` is never read
[INFO] [stdout]    --> src/dfpn.rs:423:9
[INFO] [stdout]     |
[INFO] [stdout] 423 |         count_valid_board += get_valid_boards(tar_board.0, tar_board.1).len();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stone`
[INFO] [stdout]    --> src/dfpn.rs:440:9
[INFO] [stdout]     |
[INFO] [stdout] 440 |     let stone = att | def;
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_stone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `matetype`
[INFO] [stdout]    --> src/dfpn.rs:494:5
[INFO] [stdout]     |
[INFO] [stdout] 494 |     matetype: MateType,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_matetype`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action`
[INFO] [stdout]    --> src/dfpn.rs:513:14
[INFO] [stdout]     |
[INFO] [stdout] 513 |         for (action, n_att) in MaskActionIterator::new(att, action_mask) {
[INFO] [stdout]     |              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_action`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `matetype`
[INFO] [stdout]    --> src/dfpn.rs:594:5
[INFO] [stdout]     |
[INFO] [stdout] 594 |     matetype: MateType,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_matetype`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action`
[INFO] [stdout]    --> src/dfpn.rs:613:14
[INFO] [stdout]     |
[INFO] [stdout] 613 |         for (action, n_def) in MaskActionIterator::new(def, action_mask) {
[INFO] [stdout]     |              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_action`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `wait_time`
[INFO] [stdout]   --> src/exp.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |         let wait_time = time::Duration::from_millis(1000);
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_wait_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling qubic_engine v0.1.7 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `s2`
[INFO] [stdout]   --> src/exp.rs:96:18
[INFO] [stdout]    |
[INFO] [stdout] 96 |         let (s1, s2) = board::eval(&a1, &a2, 1);
[INFO] [stdout]    |                  ^^ help: if this is intentional, prefix it with an underscore: `_s2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/ml/funcs.rs:236:17
[INFO] [stdout]     |
[INFO] [stdout] 236 |             let x = inputs[0].data[i];
[INFO] [stdout]     |                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `T`
[INFO] [stdout]     |
[INFO] [stdout] 236 -             let x = inputs[0].data[i];
[INFO] [stdout] 236 +             let ai::mpc::T = inputs[0].data[i];
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 236 |             let _x = inputs[0].data[i];
[INFO] [stdout]     |                 +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/ml/ops.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |         for i in 0..inputs.len() {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `grad`
[INFO] [stdout]    --> src/ml.rs:190:28
[INFO] [stdout]     |
[INFO] [stdout] 190 |     fn backward(&mut self, grad: &Tensor, inputs: Vec<&Tensor>, _: &Tensor) -> Vec<Tensor> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_grad`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inputs`
[INFO] [stdout]    --> src/ml.rs:190:43
[INFO] [stdout]     |
[INFO] [stdout] 190 |     fn backward(&mut self, grad: &Tensor, inputs: Vec<&Tensor>, _: &Tensor) -> Vec<Tensor> {
[INFO] [stdout]     |                                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_inputs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]    --> src/ml.rs:193:20
[INFO] [stdout]     |
[INFO] [stdout] 193 |     fn call(&self, input: Vec<Tensor>) -> Tensor {
[INFO] [stdout]     |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `play_agent`
[INFO] [stdout]    --> src/train.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 107 |     let play_agent = super::board::Agent::Mcts(50, 500);
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_play_agent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `count` is assigned to, but never used
[INFO] [stdout]    --> src/train.rs:141:13
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let count: i32;
[INFO] [stdout]     |             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `reward` is never read
[INFO] [stdout]    --> src/train.rs:101:22
[INFO] [stdout]     |
[INFO] [stdout] 101 |     let mut reward = 0;
[INFO] [stdout]     |                      ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 181 |             reward = 1;
[INFO] [stdout]     |             ---------- `reward` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `count` is never read
[INFO] [stdout]    --> src/train.rs:161:35
[INFO] [stdout]     |
[INFO] [stdout] 161 |                     (action, val, count) = neg.eval_with_negalpha(&b);
[INFO] [stdout]     |                                   ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `agent`
[INFO] [stdout]    --> src/train.rs:226:20
[INFO] [stdout]     |
[INFO] [stdout] 226 | fn play_and_record(agent: &NNUE) -> Vec<Transition> {
[INFO] [stdout]     |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_agent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `reward` is never read
[INFO] [stdout]    --> src/train.rs:229:22
[INFO] [stdout]     |
[INFO] [stdout] 229 |     let mut reward = 0;
[INFO] [stdout]     |                      ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 264 |             reward = 0;
[INFO] [stdout]     |             ---------- `reward` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/train.rs:313:9
[INFO] [stdout]     |
[INFO] [stdout] 313 |     for i in 0..(id % 4) {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count`
[INFO] [stdout]    --> src/train.rs:371:22
[INFO] [stdout]     |
[INFO] [stdout] 371 |         let (_, val, count) = agent.eval_with_negalpha(&b);
[INFO] [stdout]     |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `reward` is never read
[INFO] [stdout]    --> src/train.rs:368:22
[INFO] [stdout]     |
[INFO] [stdout] 368 |     let mut reward = 0;
[INFO] [stdout]     |                      ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 387 |             reward = 0;
[INFO] [stdout]     |             ---------- `reward` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rng`
[INFO] [stdout]    --> src/train.rs:404:9
[INFO] [stdout]     |
[INFO] [stdout] 404 |     let rng = rand::thread_rng();
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `batch_num`
[INFO] [stdout]    --> src/train.rs:583:13
[INFO] [stdout]     |
[INFO] [stdout] 583 |         let batch_num = ts.len() / BATCH_SIZE;
[INFO] [stdout]     |             ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `BATCH_NUM`
[INFO] [stdout]     |
[INFO] [stdout] 583 -         let batch_num = ts.len() / BATCH_SIZE;
[INFO] [stdout] 583 +         let train::BATCH_NUM = ts.len() / BATCH_SIZE;
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 583 |         let _batch_num = ts.len() / BATCH_SIZE;
[INFO] [stdout]     |             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `data` is never read
[INFO] [stdout]    --> src/train.rs:560:20
[INFO] [stdout]     |
[INFO] [stdout] 560 |     let mut data = Vec::new();
[INFO] [stdout]     |                    ^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 593 |         data = ts.choose_multiple(&mut rng, n).cloned().collect();
[INFO] [stdout]     |         ---- `data` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `batch_num`
[INFO] [stdout]    --> src/train.rs:703:13
[INFO] [stdout]     |
[INFO] [stdout] 703 |         let batch_num = ts.len() / BATCH_SIZE;
[INFO] [stdout]     |             ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `BATCH_NUM`
[INFO] [stdout]     |
[INFO] [stdout] 703 -         let batch_num = ts.len() / BATCH_SIZE;
[INFO] [stdout] 703 +         let train::BATCH_NUM = ts.len() / BATCH_SIZE;
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 703 |         let _batch_num = ts.len() / BATCH_SIZE;
[INFO] [stdout]     |             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `eval_it`
[INFO] [stdout]    --> src/train.rs:747:21
[INFO] [stdout]     |
[INFO] [stdout] 747 |                 let eval_it =
[INFO] [stdout]     |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_eval_it`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `pn` and `dn` are never read
[INFO] [stdout]   --> src/dfpn.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct NodeNumber {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 16 |     pn: f32,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 17 |     dn: f32,
[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 functions `new` and `from` are never used
[INFO] [stdout]   --> src/dfpn.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl NodeNumber {
[INFO] [stdout]    | --------------- associated functions in this implementation
[INFO] [stdout] 21 |     fn new() -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     fn from(pn: f32, dn: f32) -> Self {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `next` is never used
[INFO] [stdout]   --> src/dfpn.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl Player {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] 43 |     fn next(&self) -> Self {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `SingleShootLoss` is never used
[INFO] [stdout]   --> src/ml/funcs.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | trait SingleShootLoss {
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEPTH` is never used
[INFO] [stdout]   --> src/train.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const DEPTH: u8 = 3;
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RANDOM_MOVE` is never used
[INFO] [stdout]   --> src/train.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const RANDOM_MOVE: usize = 7;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `play_with_analyze` is never used
[INFO] [stdout]    --> src/train.rs:365:4
[INFO] [stdout]     |
[INFO] [stdout] 365 | fn play_with_analyze(agent: &NNUE) -> Vec<Transition> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/board.rs:1349:9
[INFO] [stdout]      |
[INFO] [stdout] 1349 | /         write!(
[INFO] [stdout] 1350 | |             f,
[INFO] [stdout] 1351 | |             "action: {:>2}, score: {:>5.2}%({:>7.0}/{:>7.0}), Q: {:>5.3}",
[INFO] [stdout] 1352 | |             self.action,
[INFO] [stdout] ...    |
[INFO] [stdout] 1356 | |             self.q
[INFO] [stdout] 1357 | |         );
[INFO] [stdout]      | |_________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]      = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1349 |         let _ = write!(
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]     --> src/board.rs:1462:23
[INFO] [stdout]      |
[INFO] [stdout] 1462 |     fn get_uct(&self, N: f32) -> f32 {
[INFO] [stdout]      |                       ^ help: convert the identifier to snake case: `n`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/ml.rs:415:9
[INFO] [stdout]     |
[INFO] [stdout] 415 |         fs::create_dir_all(path.clone());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 415 |         let _ = fs::create_dir_all(path.clone());
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/ml.rs:420:13
[INFO] [stdout]     |
[INFO] [stdout] 420 |             self.layers[i].save_param(path.clone());
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 420 |             let _ = self.layers[i].save_param(path.clone());
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/ml.rs:432:13
[INFO] [stdout]     |
[INFO] [stdout] 432 |             self.layers[i].load_param(path.clone());
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 432 |             let _ = self.layers[i].load_param(path.clone());
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/train.rs:669:5
[INFO] [stdout]     |
[INFO] [stdout] 669 |     l.load("simple.json".to_string());
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 669 |     let _ = l.load("simple.json".to_string());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/train.rs:686:9
[INFO] [stdout]     |
[INFO] [stdout] 686 |         model.load(load_name.clone());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 686 |         let _ = model.load(load_name.clone());
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/train.rs:814:21
[INFO] [stdout]     |
[INFO] [stdout] 814 |                     model.save(name.clone());
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 814 |                     let _ = model.save(name.clone());
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/train.rs:819:17
[INFO] [stdout]     |
[INFO] [stdout] 819 |                 model.save(format!("latest-{}", name));
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 819 |                 let _ = model.save(format!("latest-{}", name));
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ProofNumberSearchStatus` and `threat_space_search`
[INFO] [stdout]  --> src/main_utils.rs:4:39
[INFO] [stdout]   |
[INFO] [stdout] 4 |     dfpn::{self, proof_number_search, threat_space_search, MateType, ProofNumberSearchStatus},
[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: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/main_utils.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SimplePatternEvaluator`, `TrainableBLE`, and `TrainableSPE`
[INFO] [stdout]  --> src/main.rs:4:46
[INFO] [stdout]   |
[INFO] [stdout] 4 |     BucketLineEvaluator, SimplLineEvaluator, SimplePatternEvaluator, TrainableBLE, TrainableSLE,
[INFO] [stdout]   |                                              ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 5 |     TrainableSPE,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `NNLineEvaluator` and `TrainableNLE`
[INFO] [stdout]  --> src/main.rs:7:33
[INFO] [stdout]   |
[INFO] [stdout] 7 | use qubic_engine::ai::line_nn::{NNLineEvaluator, NNLineEvaluator_, TrainableNLE, TrainableNLE_};
[INFO] [stdout]   |                                 ^^^^^^^^^^^^^^^                    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TrainableLineEvaluator`
[INFO] [stdout]   --> src/main.rs:12:38
[INFO] [stdout]    |
[INFO] [stdout] 12 |     PlayoutLevel, PositionEvaluator, TrainableLineEvaluator,
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `count_2row_`, `get_2row_mask`, and `get_random`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     count_2row_, get_2row_mask, get_random, mate_check_horizontal, play_actor, pprint_board,
[INFO] [stdout]    |     ^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `qubic_engine::db::BoardDB`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use qubic_engine::db::BoardDB;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `train_with_db`
[INFO] [stdout]   --> src/main.rs:19:38
[INFO] [stdout]    |
[INFO] [stdout] 19 | use qubic_engine::train::{create_db, train_with_db};
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `NNUE`
[INFO] [stdout]   --> src/main.rs:21:33
[INFO] [stdout]    |
[INFO] [stdout] 21 |     ai::{CoEvaluator, NegAlpha, NNUE},
[INFO] [stdout]    |                                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::rngs::ThreadRng`
[INFO] [stdout]   --> src/main.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use rand::rngs::ThreadRng;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand_distr::num_traits::WrappingNeg`
[INFO] [stdout]   --> src/main.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use rand_distr::num_traits::WrappingNeg;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Neg`
[INFO] [stdout]   --> src/main.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use std::ops::Neg;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::os::unix::thread`
[INFO] [stdout]   --> src/main.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use std::os::unix::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]   --> src/main.rs:31:17
[INFO] [stdout]    |
[INFO] [stdout] 31 | use std::time::{Duration, Instant};
[INFO] [stdout]    |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/main.rs:166:21
[INFO] [stdout]     |
[INFO] [stdout] 166 |         return Some((self.board.clone()));
[INFO] [stdout]     |                     ^                  ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 166 -         return Some((self.board.clone()));
[INFO] [stdout] 166 +         return Some(self.board.clone() );
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ProofNumberSearchStatus`
[INFO] [stdout]    --> src/main.rs:429:40
[INFO] [stdout]     |
[INFO] [stdout] 429 |     use qubic_engine::dfpn::{MateType, ProofNumberSearchStatus};
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/main.rs:1098:17
[INFO] [stdout]      |
[INFO] [stdout] 1098 |     let stone = (b.black | b.white);
[INFO] [stdout]      |                 ^                 ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1098 -     let stone = (b.black | b.white);
[INFO] [stdout] 1098 +     let stone = b.black | b.white ;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LineEvaluator`, `acum_mask_bundle`, and `apply_mask_bundle`
[INFO] [stdout]     --> src/main.rs:1109:28
[INFO] [stdout]      |
[INFO] [stdout] 1109 |     use qubic_engine::ai::{acum_mask_bundle, apply_mask_bundle, LineEvaluator};
[INFO] [stdout]      |                            ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/main_utils.rs:139:13
[INFO] [stdout]     |
[INFO] [stdout] 130 |                 break;
[INFO] [stdout]     |                 ----- any code following this expression is unreachable
[INFO] [stdout] ...
[INFO] [stdout] 139 |             let start = Instant::now();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/main.rs:198:9
[INFO] [stdout]     |
[INFO] [stdout] 197 |           continue;
[INFO] [stdout]     |           -------- any code following this expression is unreachable
[INFO] [stdout] 198 | /         for j in 0..step {
[INFO] [stdout] 199 | |             if rng.gen::<f32>() < 0.5 {
[INFO] [stdout] 200 | |                 a += 1;
[INFO] [stdout] 201 | |             } else {
[INFO] [stdout] ...   |
[INFO] [stdout] 211 | |             counts[count] += 1;
[INFO] [stdout] 212 | |         }
[INFO] [stdout]     | |_________^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::pprint_u64`
[INFO] [stdout]    --> src/board/magic_number.rs:536:9
[INFO] [stdout]     |
[INFO] [stdout] 536 |     use super::pprint_u64;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/board.rs:411:13
[INFO] [stdout]     |
[INFO] [stdout] 411 |     let x = ((count_2row_(s, s >> 1, s >> 2, s >> 3, b, b >> 1, b >> 2, b >> 3)
[INFO] [stdout]     |             ^
[INFO] [stdout] 412 |         & 0x1111_1111_1111_1111)
[INFO] [stdout] 413 |         * 0xf);
[INFO] [stdout]     |              ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 411 ~     let x = (count_2row_(s, s >> 1, s >> 2, s >> 3, b, b >> 1, b >> 2, b >> 3)
[INFO] [stdout] 412 |         & 0x1111_1111_1111_1111)
[INFO] [stdout] 413 ~         * 0xf;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/board.rs:414:13
[INFO] [stdout]     |
[INFO] [stdout] 414 |     let y = ((count_2row_(s, s >> 4, s >> 8, s >> 12, b, b >> 4, b >> 8, b >> 12)
[INFO] [stdout]     |             ^
[INFO] [stdout] 415 |         & 0x000f_000f_000f_000f)
[INFO] [stdout] 416 |         * 0x1111);
[INFO] [stdout]     |                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 414 ~     let y = (count_2row_(s, s >> 4, s >> 8, s >> 12, b, b >> 4, b >> 8, b >> 12)
[INFO] [stdout] 415 |         & 0x000f_000f_000f_000f)
[INFO] [stdout] 416 ~         * 0x1111;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/board.rs:443:15
[INFO] [stdout]     |
[INFO] [stdout] 443 |     let xyz = (xyz1 | xyz2 | xyz3 | xyz4);
[INFO] [stdout]     |               ^                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 443 -     let xyz = (xyz1 | xyz2 | xyz3 | xyz4);
[INFO] [stdout] 443 +     let xyz = xyz1 | xyz2 | xyz3 | xyz4;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `return` value
[INFO] [stdout]    --> src/board.rs:464:12
[INFO] [stdout]     |
[INFO] [stdout] 464 |     return (b & c & (a | e) | e & f & (c | g));
[INFO] [stdout]     |            ^                                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 464 -     return (b & c & (a | e) | e & f & (c | g));
[INFO] [stdout] 464 +     return b & c & (a | e) | e & f & (c | g);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pprint_u64`
[INFO] [stdout]  --> src/dfpn.rs:2:76
[INFO] [stdout]   |
[INFO] [stdout] 2 |     self, get_2row_mask, get_put_reach_mask, get_reach_mask, pprint_board, pprint_u64, Board,
[INFO] [stdout]   |                                                                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::Ordering`
[INFO] [stdout]  --> src/dfpn.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::cmp::Ordering;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::binary_heap::Iter`
[INFO] [stdout]  --> src/exp.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::{collections::binary_heap::Iter, thread, time};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `threat_space_search`
[INFO] [stdout]  --> src/train.rs:7:33
[INFO] [stdout]   |
[INFO] [stdout] 7 |     dfpn::{proof_number_search, threat_space_search, MateType},
[INFO] [stdout]   |                                 ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::EPSILON`
[INFO] [stdout]   --> src/train.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::f32::EPSILON;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main_utils.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let mut b = Board::from(att, def, Player::Black);
[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/main_utils.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let mut l1 = ai::NegAlphaF::new(Box::new(l.clone()), 5);
[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]    --> src/main_utils.rs:104:13
[INFO] [stdout]     |
[INFO] [stdout] 104 |         let mut l2 = ai::NegAlphaF::new(Box::new(l.clone()), 5);
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mcts`
[INFO] [stdout]   --> src/main_utils.rs:98:13
[INFO] [stdout]    |
[INFO] [stdout] 98 |         let mcts = ai::mcts::Mcts::new(10000, 3, 10, po);
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_mcts`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mcts2`
[INFO] [stdout]    --> src/main_utils.rs:100:13
[INFO] [stdout]     |
[INFO] [stdout] 100 |         let mcts2 = ai::mcts::Mcts::new(10000, 3, 10, po);
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_mcts2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m1`
[INFO] [stdout]    --> src/main_utils.rs:101:13
[INFO] [stdout]     |
[INFO] [stdout] 101 |         let m1 = ai::NegAlpha::new(Box::new(ai::CoEvaluator::best()), 3);
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_m1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m2`
[INFO] [stdout]    --> src/main_utils.rs:102:13
[INFO] [stdout]     |
[INFO] [stdout] 102 |         let m2 = ai::NegAlpha::new(Box::new(ai::CoEvaluator::best()), 3);
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_m2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `l1`
[INFO] [stdout]    --> src/main_utils.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let mut l1 = ai::NegAlphaF::new(Box::new(l.clone()), 5);
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_l1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `l2`
[INFO] [stdout]    --> src/main_utils.rs:104:13
[INFO] [stdout]     |
[INFO] [stdout] 104 |         let mut l2 = ai::NegAlphaF::new(Box::new(l.clone()), 5);
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_l2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/main_utils.rs:124:26
[INFO] [stdout]     |
[INFO] [stdout] 124 |             if let Some((a, b)) = res {
[INFO] [stdout]     |                          ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 57 |     let mut l3_ = NegAlphaF::new(Box::new(l.clone()), 1);
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m1`
[INFO] [stdout]   --> src/main.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |     let m1 = NegAlpha::new(Box::new(CoEvaluator::best()), 1);
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_m1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m3_f32`
[INFO] [stdout]   --> src/main.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let m3_f32 = NegAlphaF::new(Box::new(CoEvaluator::best()), 3);
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_m3_f32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m4`
[INFO] [stdout]   --> src/main.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let m4 = NegAlpha::new(Box::new(CoEvaluator::best()), 4);
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_m4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m6`
[INFO] [stdout]   --> src/main.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let m6 = NegAlpha::new(Box::new(CoEvaluator::best()), 6);
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_m6`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m7`
[INFO] [stdout]   --> src/main.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |     let m7 = NegAlpha::new(Box::new(CoEvaluator::best()), 7);
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_m7`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m9`
[INFO] [stdout]   --> src/main.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let m9 = NegAlpha::new(Box::new(CoEvaluator::best()), 9);
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_m9`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mm3`
[INFO] [stdout]   --> src/main.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |     let mm3 = Agent::Struct(String::from("mm3"), Box::new(mm3));
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_mm3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m2`
[INFO] [stdout]   --> src/main.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |     let m2 = Agent::Struct(String::from("m2"), Box::new(m2));
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_m2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m3`
[INFO] [stdout]   --> src/main.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let m3 = Agent::Struct(String::from("m3"), Box::new(m3));
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_m3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m5`
[INFO] [stdout]   --> src/main.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |     let m5 = Agent::Struct(String::from("m5"), Box::new(m5));
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_m5`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `l5_`
[INFO] [stdout]   --> src/main.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 |     let l5_ = MateWrapperActor::new(Box::new(l5_));
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_l5_`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b7`
[INFO] [stdout]   --> src/main.rs:81:9
[INFO] [stdout]    |
[INFO] [stdout] 81 |     let b7 = MateWrapperActor::new(Box::new(b7));
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_b7`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mcts`
[INFO] [stdout]   --> src/main.rs:84:9
[INFO] [stdout]    |
[INFO] [stdout] 84 |     let mcts = ai::mcts::Mcts::new(10_000, 3, 10, po);
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_mcts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mcts2`
[INFO] [stdout]   --> src/main.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 85 |     let mcts2 = ai::mcts::Mcts::new(10_000, 3, 500, l3_);
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_mcts2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:181:13
[INFO] [stdout]     |
[INFO] [stdout] 181 |         let mut count = 0;
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:178:9
[INFO] [stdout]     |
[INFO] [stdout] 178 |     for i in 0..n {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count`
[INFO] [stdout]    --> src/main.rs:181:13
[INFO] [stdout]     |
[INFO] [stdout] 181 |         let mut count = 0;
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]    --> src/main.rs:183:13
[INFO] [stdout]     |
[INFO] [stdout] 183 |         for j in 0..step {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:238:13
[INFO] [stdout]     |
[INFO] [stdout] 238 |         let mut max_action = 0;
[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]    --> src/main.rs:239:13
[INFO] [stdout]     |
[INFO] [stdout] 239 |         let mut max = 0.0;
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_action`
[INFO] [stdout]    --> src/main.rs:238:13
[INFO] [stdout]     |
[INFO] [stdout] 238 |         let mut max_action = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_action`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max`
[INFO] [stdout]    --> src/main.rs:239:13
[INFO] [stdout]     |
[INFO] [stdout] 239 |         let mut max = 0.0;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/main.rs:251:22
[INFO] [stdout]     |
[INFO] [stdout] 251 |         let (action, val, count) = l7_.eval_with_negalpha(&b);
[INFO] [stdout]     |                      ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count`
[INFO] [stdout]    --> src/main.rs:251:27
[INFO] [stdout]     |
[INFO] [stdout] 251 |         let (action, val, count) = l7_.eval_with_negalpha(&b);
[INFO] [stdout]     |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:276:9
[INFO] [stdout]     |
[INFO] [stdout] 276 |     for i in 0_u64..(1 << 32) {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `black`
[INFO] [stdout]    --> src/main.rs:323:9
[INFO] [stdout]     |
[INFO] [stdout] 323 |         black: u64,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_black`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `white`
[INFO] [stdout]    --> src/main.rs:324:9
[INFO] [stdout]     |
[INFO] [stdout] 324 |         white: u64,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_white`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:332:9
[INFO] [stdout]     |
[INFO] [stdout] 332 |     let mut it = BoardIter::new(true);
[INFO] [stdout]     |         ----^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:422:9
[INFO] [stdout]     |
[INFO] [stdout] 422 |     for i in 0..size {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `step` is assigned to, but never used
[INFO] [stdout]    --> src/main.rs:440:9
[INFO] [stdout]     |
[INFO] [stdout] 440 |     let mut step = 0;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_step` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `step` is never read
[INFO] [stdout]    --> src/main.rs:481:13
[INFO] [stdout]     |
[INFO] [stdout] 481 |             step += 1;
[INFO] [stdout]     |             ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val_`
[INFO] [stdout]    --> src/main.rs:565:23
[INFO] [stdout]     |
[INFO] [stdout] 565 |         let (action2, val_, _) = long.eval_with_negalpha(&b);
[INFO] [stdout]     |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_val_`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:627:9
[INFO] [stdout]     |
[INFO] [stdout] 627 |     let mut all_count = 0.0;
[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]    --> src/main.rs:628:9
[INFO] [stdout]     |
[INFO] [stdout] 628 |     let mut all_err_sum = 0.0;
[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]    --> src/main.rs:629:9
[INFO] [stdout]     |
[INFO] [stdout] 629 |     let mut all_sq_sum = 0.0;
[INFO] [stdout]     |         ----^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `all_count`
[INFO] [stdout]    --> src/main.rs:627:9
[INFO] [stdout]     |
[INFO] [stdout] 627 |     let mut all_count = 0.0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_all_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `all_err_sum`
[INFO] [stdout]    --> src/main.rs:628:9
[INFO] [stdout]     |
[INFO] [stdout] 628 |     let mut all_err_sum = 0.0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_all_err_sum`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `all_sq_sum`
[INFO] [stdout]    --> src/main.rs:629:9
[INFO] [stdout]     |
[INFO] [stdout] 629 |     let mut all_sq_sum = 0.0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_all_sq_sum`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:766:9
[INFO] [stdout]     |
[INFO] [stdout] 766 |     let mut model = TrainableSLE::from(model, 0.001);
[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]    --> src/main.rs:768:9
[INFO] [stdout]     |
[INFO] [stdout] 768 |     let mut pmodel = PositionMaskEvaluator::new();
[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]    --> src/main.rs:769:9
[INFO] [stdout]     |
[INFO] [stdout] 769 |     let mut pmodel = TrainablePME::from(pmodel, 0.001);
[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]    --> src/main.rs:770:9
[INFO] [stdout]     |
[INFO] [stdout] 770 |     let mut nmodel = NNLineEvaluator_::new();
[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]    --> src/main.rs:771:9
[INFO] [stdout]     |
[INFO] [stdout] 771 |     let mut nmodel = TrainableNLE_::from(nmodel, 0.005);
[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]    --> src/main.rs:772:9
[INFO] [stdout]     |
[INFO] [stdout] 772 |     let mut pmodel = pattern::test_pattern_evaluator();
[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]    --> src/main.rs:773:9
[INFO] [stdout]     |
[INFO] [stdout] 773 |     let mut pmodel = TrainablePatternEvaluator::from_pattern_evaluator(pmodel, 0.0001, 0.9, 0.999);
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `model`
[INFO] [stdout]    --> src/main.rs:766:9
[INFO] [stdout]     |
[INFO] [stdout] 766 |     let mut model = TrainableSLE::from(model, 0.001);
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_model`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pmodel`
[INFO] [stdout]    --> src/main.rs:769:9
[INFO] [stdout]     |
[INFO] [stdout] 769 |     let mut pmodel = TrainablePME::from(pmodel, 0.001);
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pmodel`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pmodel`
[INFO] [stdout]    --> src/main.rs:773:9
[INFO] [stdout]     |
[INFO] [stdout] 773 |     let mut pmodel = TrainablePatternEvaluator::from_pattern_evaluator(pmodel, 0.0001, 0.9, 0.999);
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pmodel`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:813:9
[INFO] [stdout]     |
[INFO] [stdout] 813 |     let mut b_time_not = 0;
[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]    --> src/main.rs:815:9
[INFO] [stdout]     |
[INFO] [stdout] 815 |     let mut a_time_not = 0;
[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]    --> src/main.rs:817:9
[INFO] [stdout]     |
[INFO] [stdout] 817 |     let mut count_n = 0;
[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]    --> src/main.rs:818:9
[INFO] [stdout]     |
[INFO] [stdout] 818 |     let mut max_path_board = (0, 0);
[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]    --> src/main.rs:819:9
[INFO] [stdout]     |
[INFO] [stdout] 819 |     let mut max_path = 0;
[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]    --> src/main.rs:820:9
[INFO] [stdout]     |
[INFO] [stdout] 820 |     let mut max_reach_count_board = (0, 0);
[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]    --> src/main.rs:821:9
[INFO] [stdout]     |
[INFO] [stdout] 821 |     let mut max_reach_count = 0;
[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]    --> src/main.rs:822:9
[INFO] [stdout]     |
[INFO] [stdout] 822 |     let mut max_valid_count_board = (0, 0);
[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]    --> src/main.rs:823:9
[INFO] [stdout]     |
[INFO] [stdout] 823 |     let mut max_valid_count = 0;
[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]    --> src/main.rs:824:9
[INFO] [stdout]     |
[INFO] [stdout] 824 |     let mut reach_count = 0;
[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]    --> src/main.rs:825:9
[INFO] [stdout]     |
[INFO] [stdout] 825 |     let mut valid_count = 0;
[INFO] [stdout]     |         ----^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:826:9
[INFO] [stdout]     |
[INFO] [stdout] 826 |     for i in 0..n {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]    --> src/main.rs:828:13
[INFO] [stdout]     |
[INFO] [stdout] 828 |         for j in 0..20 {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `flag`
[INFO] [stdout]    --> src/main.rs:892:18
[INFO] [stdout]     |
[INFO] [stdout] 892 |             let (flag, action) = result.unwrap();
[INFO] [stdout]     |                  ^^^^ help: if this is intentional, prefix it with an underscore: `_flag`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:921:9
[INFO] [stdout]     |
[INFO] [stdout] 921 |     for i in 0..10000 {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:961:9
[INFO] [stdout]     |
[INFO] [stdout] 961 |     let mut rng = thread_rng();
[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]    --> src/main.rs:975:13
[INFO] [stdout]     |
[INFO] [stdout] 975 |         let mut r1 = 0.0;
[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]    --> src/main.rs:976:13
[INFO] [stdout]     |
[INFO] [stdout] 976 |         let mut r2 = 0.0;
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rng`
[INFO] [stdout]    --> src/main.rs:961:9
[INFO] [stdout]     |
[INFO] [stdout] 961 |     let mut rng = thread_rng();
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `best` is assigned to, but never used
[INFO] [stdout]    --> src/main.rs:969:9
[INFO] [stdout]     |
[INFO] [stdout] 969 |     let mut best = get_position_eval_agent_alpha(3, 6, 1, 1, 6, 1, 5, 5, 1, 5, 5, 8, 8);
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_best` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:972:9
[INFO] [stdout]     |
[INFO] [stdout] 972 |     for i in 0..1000 {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r1`
[INFO] [stdout]    --> src/main.rs:975:13
[INFO] [stdout]     |
[INFO] [stdout] 975 |         let mut r1 = 0.0;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_r1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r2`
[INFO] [stdout]    --> src/main.rs:976:13
[INFO] [stdout]     |
[INFO] [stdout] 976 |         let mut r2 = 0.0;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_r2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:980:18
[INFO] [stdout]     |
[INFO] [stdout] 980 |             let (i, r1_, r2_) = compare(&tar, test);
[INFO] [stdout]     |                  ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `best` is never read
[INFO] [stdout]    --> src/main.rs:989:13
[INFO] [stdout]     |
[INFO] [stdout] 989 |             best = tar;
[INFO] [stdout]     |             ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `float`
[INFO] [stdout]     --> src/main.rs:1099:9
[INFO] [stdout]      |
[INFO] [stdout] 1099 |     let float = !((stone << 16) | 0xffff);
[INFO] [stdout]      |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ground`
[INFO] [stdout]     --> src/main.rs:1101:9
[INFO] [stdout]      |
[INFO] [stdout] 1101 |     let ground = ((stone << 16) | 0xffff) ^ stone;
[INFO] [stdout]      |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_ground`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exp_prob_compare` is never used
[INFO] [stdout]    --> src/main.rs:170:4
[INFO] [stdout]     |
[INFO] [stdout] 170 | fn exp_prob_compare() {
[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 `exp` is never used
[INFO] [stdout]    --> src/main.rs:219:4
[INFO] [stdout]     |
[INFO] [stdout] 219 | fn exp() {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `command` is never used
[INFO] [stdout]    --> src/main.rs:259:4
[INFO] [stdout]     |
[INFO] [stdout] 259 | fn command() {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_magic_number` is never used
[INFO] [stdout]    --> src/main.rs:270:4
[INFO] [stdout]     |
[INFO] [stdout] 270 | fn get_magic_number() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `call_evaluator` is never used
[INFO] [stdout]    --> src/main.rs:309:4
[INFO] [stdout]     |
[INFO] [stdout] 309 | fn call_evaluator() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exp_positoin_eval_get_count` is never used
[INFO] [stdout]    --> src/main.rs:328:4
[INFO] [stdout]     |
[INFO] [stdout] 328 | fn exp_positoin_eval_get_count() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_pmodel` is never used
[INFO] [stdout]    --> src/main.rs:369:4
[INFO] [stdout]     |
[INFO] [stdout] 369 | fn print_pmodel() {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `use_ai` is never used
[INFO] [stdout]    --> src/main.rs:376:4
[INFO] [stdout]     |
[INFO] [stdout] 376 | fn use_ai() {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_random_board` is never used
[INFO] [stdout]    --> src/main.rs:420:4
[INFO] [stdout]     |
[INFO] [stdout] 420 | fn get_random_board(size: usize) -> Board {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exp_mate_profile` is never used
[INFO] [stdout]    --> src/main.rs:428:4
[INFO] [stdout]     |
[INFO] [stdout] 428 | fn exp_mate_profile(a1: &impl GetAction, a2: &impl GetAction) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `profile` is never used
[INFO] [stdout]    --> src/main.rs:523:4
[INFO] [stdout]     |
[INFO] [stdout] 523 | fn profile() {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mpc_for_coe` is never used
[INFO] [stdout]    --> src/main.rs:610:4
[INFO] [stdout]     |
[INFO] [stdout] 610 | fn mpc_for_coe(long_depth: u8, short_depth: u8) {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `wrapping_line_eval` is never used
[INFO] [stdout]    --> src/main.rs:730:4
[INFO] [stdout]     |
[INFO] [stdout] 730 | fn wrapping_line_eval(l: LineEvaluator, depth: u8) -> MateWrapperActor {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `train_line_eval` is never used
[INFO] [stdout]    --> src/main.rs:747:4
[INFO] [stdout]     |
[INFO] [stdout] 747 | fn train_line_eval(train_db: String, valid_db: String) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `expand_untill_n` is never used
[INFO] [stdout]    --> src/main.rs:786:4
[INFO] [stdout]     |
[INFO] [stdout] 786 | fn expand_untill_n(b: Board, n: usize) -> Vec<Board> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mcts_statistics` is never used
[INFO] [stdout]    --> src/main.rs:913:4
[INFO] [stdout]     |
[INFO] [stdout] 913 | fn mcts_statistics() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `random_i` is never used
[INFO] [stdout]    --> src/main.rs:937:4
[INFO] [stdout]     |
[INFO] [stdout] 937 | fn random_i(max: i32) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_random_model` is never used
[INFO] [stdout]    --> src/main.rs:942:4
[INFO] [stdout]     |
[INFO] [stdout] 942 | fn get_random_model(max: i32) -> Agent {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `explore_best_model` is never used
[INFO] [stdout]    --> src/main.rs:960:4
[INFO] [stdout]     |
[INFO] [stdout] 960 | fn explore_best_model() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mc` is never used
[INFO] [stdout]    --> src/main.rs:997:4
[INFO] [stdout]     |
[INFO] [stdout] 997 | fn mc(a: usize, b: usize) -> Agent {
[INFO] [stdout]     |    ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_co_eval_agent` is never used
[INFO] [stdout]     --> src/main.rs:1001:4
[INFO] [stdout]      |
[INFO] [stdout] 1001 | fn get_co_eval_agent(depth: usize, row_w: i32, pos_w: i32) -> Agent {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_row_evaluator` is never used
[INFO] [stdout]     --> src/main.rs:1015:4
[INFO] [stdout]      |
[INFO] [stdout] 1015 | fn get_row_evaluator(depth: usize) -> Agent {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_position_eval_agent` is never used
[INFO] [stdout]     --> src/main.rs:1024:4
[INFO] [stdout]      |
[INFO] [stdout] 1024 | fn get_position_eval_agent(depth: usize, v: i32, e: i32, s: i32, c: i32) -> Agent {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_position_eval_agent_alpha` is never used
[INFO] [stdout]     --> src/main.rs:1037:4
[INFO] [stdout]      |
[INFO] [stdout] 1037 | fn get_position_eval_agent_alpha(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compare` is never used
[INFO] [stdout]     --> src/main.rs:1062:4
[INFO] [stdout]      |
[INFO] [stdout] 1062 | fn compare(a1: &impl GetAction, a2: &impl GetAction) -> (i32, f32, f32) {
[INFO] [stdout]      |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_v` is never used
[INFO] [stdout]     --> src/main.rs:1095:4
[INFO] [stdout]      |
[INFO] [stdout] 1095 | fn get_v(b: &Board) -> u32 {
[INFO] [stdout]      |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `beam_search` is never used
[INFO] [stdout]     --> src/main.rs:1108:4
[INFO] [stdout]      |
[INFO] [stdout] 1108 | fn beam_search() {
[INFO] [stdout]      |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_board_from_json` is never used
[INFO] [stdout]   --> src/main_utils.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn read_board_from_json(file_name: &str) -> Vec<(u64, u64)> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_board_to_json` is never used
[INFO] [stdout]   --> src/main_utils.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn write_board_to_json(v: Vec<(u64, u64)>, file_name: &str) -> std::io::Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GameRecordIterator` is never constructed
[INFO] [stdout]   --> src/main_utils.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct GameRecordIterator<A1: GetAction, A2: GetAction> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `reset` are never used
[INFO] [stdout]   --> src/main_utils.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl<A1: GetAction, A2: GetAction> GameRecordIterator<A1, A2> {
[INFO] [stdout]    | ------------------------------------------------------------- associated items in this implementation
[INFO] [stdout] 31 |     pub fn new(a1: A1, a2: A2) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn reset(&mut self) -> Board {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_pns` is never used
[INFO] [stdout]   --> src/main_utils.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub fn test_pns() {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_problems` is never used
[INFO] [stdout]   --> src/main_utils.rs:83:8
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub fn generate_problems() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 53 |     l.load("sle_tl50.json".to_string());
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let _ = l.load("sle_tl50.json".to_string());
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 64 |     l.load("simple.json".to_string());
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let _ = l.load("simple.json".to_string());
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 74 |     b.load("bsimple.json".to_string());
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 74 |     let _ = b.load("bsimple.json".to_string());
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:221:5
[INFO] [stdout]     |
[INFO] [stdout] 221 |     l.load("simple.json".to_string());
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 221 |     let _ = l.load("simple.json".to_string());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:311:5
[INFO] [stdout]     |
[INFO] [stdout] 311 |     l.load("simple.json".to_string());
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 311 |     let _ = l.load("simple.json".to_string());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:371:5
[INFO] [stdout]     |
[INFO] [stdout] 371 |     pmodel.load("position.json".to_string());
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 371 |     let _ = pmodel.load("position.json".to_string());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:378:5
[INFO] [stdout]     |
[INFO] [stdout] 378 |     l.load("simple.json".to_string());
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 378 |     let _ = l.load("simple.json".to_string());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:532:5
[INFO] [stdout]     |
[INFO] [stdout] 532 |     nmodel.load("sle_tl50_.json".to_string());
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 532 |     let _ = nmodel.load("sle_tl50_.json".to_string());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:613:5
[INFO] [stdout]     |
[INFO] [stdout] 613 |     l.load("bsimple.json".to_string());
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 613 |     let _ = l.load("bsimple.json".to_string());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:738:5
[INFO] [stdout]     |
[INFO] [stdout] 738 |     l.load("simple.json".to_string());
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 738 |     let _ = l.load("simple.json".to_string());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main_utils.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 |     l.load("simple.json".to_string());
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let _ = l.load("simple.json".to_string());
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main_utils.rs:86:5
[INFO] [stdout]    |
[INFO] [stdout] 86 |     l.load("simple.json".to_string());
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 86 |     let _ = l.load("simple.json".to_string());
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main_utils.rs:107:17
[INFO] [stdout]     |
[INFO] [stdout] 107 |                 write_board_to_json(problems, "tss10000.json");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 107 |                 let _ = write_board_to_json(problems, "tss10000.json");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main_utils.rs:108:17
[INFO] [stdout]     |
[INFO] [stdout] 108 |                 write_board_to_json(problems_no_tss, "no_tss10000.json");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 108 |                 let _ = write_board_to_json(problems_no_tss, "no_tss10000.json");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d`
[INFO] [stdout]    --> src/board.rs:463:56
[INFO] [stdout]     |
[INFO] [stdout] 463 | const fn _get_reach_mask_alpha(a: u64, b: u64, c: u64, d: u64, e: u64, f: u64, g: u64) -> u64 {
[INFO] [stdout]     |                                                        ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/board.rs:539:28
[INFO] [stdout]     |
[INFO] [stdout] 539 | pub const fn get_1row_mask(s: u64, b: u64) -> u64 {
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b1`
[INFO] [stdout]    --> src/board.rs:540:10
[INFO] [stdout]     |
[INFO] [stdout] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stdout]     |          ^^ help: if this is intentional, prefix it with an underscore: `_b1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b2`
[INFO] [stdout]    --> src/board.rs:540:14
[INFO] [stdout]     |
[INFO] [stdout] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stdout]     |              ^^ help: if this is intentional, prefix it with an underscore: `_b2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b3`
[INFO] [stdout]    --> src/board.rs:540:18
[INFO] [stdout]     |
[INFO] [stdout] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stdout]     |                  ^^ help: if this is intentional, prefix it with an underscore: `_b3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b4`
[INFO] [stdout]    --> src/board.rs:540:22
[INFO] [stdout]     |
[INFO] [stdout] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stdout]     |                      ^^ help: if this is intentional, prefix it with an underscore: `_b4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b6`
[INFO] [stdout]    --> src/board.rs:540:26
[INFO] [stdout]     |
[INFO] [stdout] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stdout]     |                          ^^ help: if this is intentional, prefix it with an underscore: `_b6`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b8`
[INFO] [stdout]    --> src/board.rs:540:30
[INFO] [stdout]     |
[INFO] [stdout] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stdout]     |                              ^^ help: if this is intentional, prefix it with an underscore: `_b8`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b9`
[INFO] [stdout]    --> src/board.rs:540:34
[INFO] [stdout]     |
[INFO] [stdout] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stdout]     |                                  ^^ help: if this is intentional, prefix it with an underscore: `_b9`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b11`
[INFO] [stdout]    --> src/board.rs:540:38
[INFO] [stdout]     |
[INFO] [stdout] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_b11`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b12`
[INFO] [stdout]    --> src/board.rs:540:43
[INFO] [stdout]     |
[INFO] [stdout] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stdout]     |                                           ^^^ help: if this is intentional, prefix it with an underscore: `_b12`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b13`
[INFO] [stdout]    --> src/board.rs:540:48
[INFO] [stdout]     |
[INFO] [stdout] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stdout]     |                                                ^^^ help: if this is intentional, prefix it with an underscore: `_b13`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b15`
[INFO] [stdout]    --> src/board.rs:540:53
[INFO] [stdout]     |
[INFO] [stdout] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stdout]     |                                                     ^^^ help: if this is intentional, prefix it with an underscore: `_b15`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b16`
[INFO] [stdout]    --> src/board.rs:553:10
[INFO] [stdout]     |
[INFO] [stdout] 553 |     let (b16, b17, b19, b20, b21, b22, b24, b26, b30) = (
[INFO] [stdout]     |          ^^^ help: if this is intentional, prefix it with an underscore: `_b16`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b17`
[INFO] [stdout]    --> src/board.rs:553:15
[INFO] [stdout]     |
[INFO] [stdout] 553 |     let (b16, b17, b19, b20, b21, b22, b24, b26, b30) = (
[INFO] [stdout]     |               ^^^ help: if this is intentional, prefix it with an underscore: `_b17`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b19`
[INFO] [stdout]    --> src/board.rs:553:20
[INFO] [stdout]     |
[INFO] [stdout] 553 |     let (b16, b17, b19, b20, b21, b22, b24, b26, b30) = (
[INFO] [stdout]     |                    ^^^ help: if this is intentional, prefix it with an underscore: `_b19`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b20`
[INFO] [stdout]    --> src/board.rs:553:25
[INFO] [stdout]     |
[INFO] [stdout] 553 |     let (b16, b17, b19, b20, b21, b22, b24, b26, b30) = (
[INFO] [stdout]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_b20`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b21`
[INFO] [stdout]    --> src/board.rs:553:30
[INFO] [stdout]     |
[INFO] [stdout] 553 |     let (b16, b17, b19, b20, b21, b22, b24, b26, b30) = (
[INFO] [stdout]     |                              ^^^ help: if this is intentional, prefix it with an underscore: `_b21`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b22`
[INFO] [stdout]    --> src/board.rs:553:35
[INFO] [stdout]     |
[INFO] [stdout] 553 |     let (b16, b17, b19, b20, b21, b22, b24, b26, b30) = (
[INFO] [stdout]     |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_b22`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b24`
[INFO] [stdout]    --> src/board.rs:553:40
[INFO] [stdout]     |
[INFO] [stdout] 553 |     let (b16, b17, b19, b20, b21, b22, b24, b26, b30) = (
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_b24`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b26`
[INFO] [stdout]    --> src/board.rs:553:45
[INFO] [stdout]     |
[INFO] [stdout] 553 |     let (b16, b17, b19, b20, b21, b22, b24, b26, b30) = (
[INFO] [stdout]     |                                             ^^^ help: if this is intentional, prefix it with an underscore: `_b26`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b30`
[INFO] [stdout]    --> src/board.rs:553:50
[INFO] [stdout]     |
[INFO] [stdout] 553 |     let (b16, b17, b19, b20, b21, b22, b24, b26, b30) = (
[INFO] [stdout]     |                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_b30`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b32`
[INFO] [stdout]    --> src/board.rs:564:10
[INFO] [stdout]     |
[INFO] [stdout] 564 |     let (b32, b33, b34, b36, b38, b39, b40, b42, b45) = (
[INFO] [stdout]     |          ^^^ help: if this is intentional, prefix it with an underscore: `_b32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b33`
[INFO] [stdout]    --> src/board.rs:564:15
[INFO] [stdout]     |
[INFO] [stdout] 564 |     let (b32, b33, b34, b36, b38, b39, b40, b42, b45) = (
[INFO] [stdout]     |               ^^^ help: if this is intentional, prefix it with an underscore: `_b33`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b34`
[INFO] [stdout]    --> src/board.rs:564:20
[INFO] [stdout]     |
[INFO] [stdout] 564 |     let (b32, b33, b34, b36, b38, b39, b40, b42, b45) = (
[INFO] [stdout]     |                    ^^^ help: if this is intentional, prefix it with an underscore: `_b34`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b36`
[INFO] [stdout]    --> src/board.rs:564:25
[INFO] [stdout]     |
[INFO] [stdout] 564 |     let (b32, b33, b34, b36, b38, b39, b40, b42, b45) = (
[INFO] [stdout]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_b36`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b38`
[INFO] [stdout]    --> src/board.rs:564:30
[INFO] [stdout]     |
[INFO] [stdout] 564 |     let (b32, b33, b34, b36, b38, b39, b40, b42, b45) = (
[INFO] [stdout]     |                              ^^^ help: if this is intentional, prefix it with an underscore: `_b38`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b39`
[INFO] [stdout]    --> src/board.rs:564:35
[INFO] [stdout]     |
[INFO] [stdout] 564 |     let (b32, b33, b34, b36, b38, b39, b40, b42, b45) = (
[INFO] [stdout]     |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_b39`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b40`
[INFO] [stdout]    --> src/board.rs:564:40
[INFO] [stdout]     |
[INFO] [stdout] 564 |     let (b32, b33, b34, b36, b38, b39, b40, b42, b45) = (
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_b40`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b42`
[INFO] [stdout]    --> src/board.rs:564:45
[INFO] [stdout]     |
[INFO] [stdout] 564 |     let (b32, b33, b34, b36, b38, b39, b40, b42, b45) = (
[INFO] [stdout]     |                                             ^^^ help: if this is intentional, prefix it with an underscore: `_b42`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b45`
[INFO] [stdout]    --> src/board.rs:564:50
[INFO] [stdout]     |
[INFO] [stdout] 564 |     let (b32, b33, b34, b36, b38, b39, b40, b42, b45) = (
[INFO] [stdout]     |                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_b45`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b48`
[INFO] [stdout]    --> src/board.rs:575:10
[INFO] [stdout]     |
[INFO] [stdout] 575 |     let (b48, b49, b57, b60, b63) = (b >> 48, b >> 49, b >> 57, b >> 60, b >> 63);
[INFO] [stdout]     |          ^^^ help: if this is intentional, prefix it with an underscore: `_b48`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b49`
[INFO] [stdout]    --> src/board.rs:575:15
[INFO] [stdout]     |
[INFO] [stdout] 575 |     let (b48, b49, b57, b60, b63) = (b >> 48, b >> 49, b >> 57, b >> 60, b >> 63);
[INFO] [stdout]     |               ^^^ help: if this is intentional, prefix it with an underscore: `_b49`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b57`
[INFO] [stdout]    --> src/board.rs:575:20
[INFO] [stdout]     |
[INFO] [stdout] 575 |     let (b48, b49, b57, b60, b63) = (b >> 48, b >> 49, b >> 57, b >> 60, b >> 63);
[INFO] [stdout]     |                    ^^^ help: if this is intentional, prefix it with an underscore: `_b57`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b60`
[INFO] [stdout]    --> src/board.rs:575:25
[INFO] [stdout]     |
[INFO] [stdout] 575 |     let (b48, b49, b57, b60, b63) = (b >> 48, b >> 49, b >> 57, b >> 60, b >> 63);
[INFO] [stdout]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_b60`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b63`
[INFO] [stdout]    --> src/board.rs:575:30
[INFO] [stdout]     |
[INFO] [stdout] 575 |     let (b48, b49, b57, b60, b63) = (b >> 48, b >> 49, b >> 57, b >> 60, b >> 63);
[INFO] [stdout]     |                              ^^^ help: if this is intentional, prefix it with an underscore: `_b63`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `count` is assigned to, but never used
[INFO] [stdout]     --> src/board.rs:1039:9
[INFO] [stdout]      |
[INFO] [stdout] 1039 |     let mut count = 1;
[INFO] [stdout]      |         ^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `count` is never read
[INFO] [stdout]     --> src/board.rs:1051:9
[INFO] [stdout]      |
[INFO] [stdout] 1051 |         count += 1;
[INFO] [stdout]      |         ^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `count` is assigned to, but never used
[INFO] [stdout]     --> src/board.rs:1092:9
[INFO] [stdout]      |
[INFO] [stdout] 1092 |     let mut count = 1;
[INFO] [stdout]      |         ^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `count` is never read
[INFO] [stdout]     --> src/board.rs:1104:9
[INFO] [stdout]      |
[INFO] [stdout] 1104 |         count += 1;
[INFO] [stdout]      |         ^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action`
[INFO] [stdout]     --> src/board.rs:1375:18
[INFO] [stdout]      |
[INFO] [stdout] 1375 |             for (action, node) in self.children.iter() {
[INFO] [stdout]      |                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_action`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node`
[INFO] [stdout]     --> src/board.rs:1375:26
[INFO] [stdout]      |
[INFO] [stdout] 1375 |             for (action, node) in self.children.iter() {
[INFO] [stdout]      |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `func`
[INFO] [stdout]     --> src/board.rs:1515:33
[INFO] [stdout]      |
[INFO] [stdout] 1515 |             Agent::Custom(name, func) => format!("{}", name),
[INFO] [stdout]      |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_func`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ga`
[INFO] [stdout]     --> src/board.rs:1516:33
[INFO] [stdout]      |
[INFO] [stdout] 1516 |             Agent::Struct(name, ga) => format!("{}", name),
[INFO] [stdout]      |                                 ^^ help: if this is intentional, prefix it with an underscore: `_ga`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a_milis`
[INFO] [stdout]     --> src/board.rs:1531:21
[INFO] [stdout]      |
[INFO] [stdout] 1531 |                 let a_milis = end.as_nanos();
[INFO] [stdout]      |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_a_milis`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b_milis`
[INFO] [stdout]     --> src/board.rs:1535:21
[INFO] [stdout]      |
[INFO] [stdout] 1535 |                 let b_milis = end.as_nanos();
[INFO] [stdout]      |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_b_milis`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]     --> src/board.rs:1548:27
[INFO] [stdout]      |
[INFO] [stdout] 1548 |             Agent::Custom(name, func) => func(board),
[INFO] [stdout]      |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]     --> src/board.rs:1549:27
[INFO] [stdout]      |
[INFO] [stdout] 1549 |             Agent::Struct(name, ga) => ga.get_action(board),
[INFO] [stdout]      |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]     --> src/board.rs:1720:9
[INFO] [stdout]      |
[INFO] [stdout] 1720 |     for i in 0..n {
[INFO] [stdout]      |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]     --> src/board.rs:1794:9
[INFO] [stdout]      |
[INFO] [stdout] 1794 |     for i in 0..n {
[INFO] [stdout]      |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/db.rs:145:23
[INFO] [stdout]     |
[INFO] [stdout] 145 |                 for &(name, value) in pairs.iter() {
[INFO] [stdout]     |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/db.rs:218:9
[INFO] [stdout]     |
[INFO] [stdout] 218 |     for i in 0..(id % 4) {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mask`
[INFO] [stdout]    --> src/dfpn.rs:299:13
[INFO] [stdout]     |
[INFO] [stdout] 299 |         let mask = get_reach_mask(def, att);
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_mask`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/dfpn.rs:352:18
[INFO] [stdout]     |
[INFO] [stdout] 352 |             let (a, (n_att, n_def)) = new_nodes[0];
[INFO] [stdout]     |                  ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mask`
[INFO] [stdout]    --> src/dfpn.rs:380:13
[INFO] [stdout]     |
[INFO] [stdout] 380 |         let mask = get_reach_mask(def, att);
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_mask`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_att`
[INFO] [stdout]    --> src/dfpn.rs:394:14
[INFO] [stdout]     |
[INFO] [stdout] 394 |         let (n_att, n_def) = root_expands[0].1;
[INFO] [stdout]     |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_n_att`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_def`
[INFO] [stdout]    --> src/dfpn.rs:394:21
[INFO] [stdout]     |
[INFO] [stdout] 394 |         let (n_att, n_def) = root_expands[0].1;
[INFO] [stdout]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_n_def`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `count_reach_board` is assigned to, but never used
[INFO] [stdout]    --> src/dfpn.rs:400:9
[INFO] [stdout]     |
[INFO] [stdout] 400 |     let mut count_reach_board = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_count_reach_board` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `count_valid_board` is assigned to, but never used
[INFO] [stdout]    --> src/dfpn.rs:401:9
[INFO] [stdout]     |
[INFO] [stdout] 401 |     let mut count_valid_board = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_count_valid_board` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/dfpn.rs:425:18
[INFO] [stdout]     |
[INFO] [stdout] 425 |             let (a, (n_att, n_def)) = new_nodes[0];
[INFO] [stdout]     |                  ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_att`
[INFO] [stdout]    --> src/dfpn.rs:425:22
[INFO] [stdout]     |
[INFO] [stdout] 425 |             let (a, (n_att, n_def)) = new_nodes[0];
[INFO] [stdout]     |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_n_att`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_def`
[INFO] [stdout]    --> src/dfpn.rs:425:29
[INFO] [stdout]     |
[INFO] [stdout] 425 |             let (a, (n_att, n_def)) = new_nodes[0];
[INFO] [stdout]     |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_n_def`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `count_reach_board` is never read
[INFO] [stdout]    --> src/dfpn.rs:422:9
[INFO] [stdout]     |
[INFO] [stdout] 422 |         count_reach_board += get_valid_boards(tar_board.0, tar_board.1).len();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `count_valid_board` is never read
[INFO] [stdout]    --> src/dfpn.rs:423:9
[INFO] [stdout]     |
[INFO] [stdout] 423 |         count_valid_board += get_valid_boards(tar_board.0, tar_board.1).len();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stone`
[INFO] [stdout]    --> src/dfpn.rs:440:9
[INFO] [stdout]     |
[INFO] [stdout] 440 |     let stone = att | def;
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_stone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `matetype`
[INFO] [stdout]    --> src/dfpn.rs:494:5
[INFO] [stdout]     |
[INFO] [stdout] 494 |     matetype: MateType,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_matetype`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action`
[INFO] [stdout]    --> src/dfpn.rs:513:14
[INFO] [stdout]     |
[INFO] [stdout] 513 |         for (action, n_att) in MaskActionIterator::new(att, action_mask) {
[INFO] [stdout]     |              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_action`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `matetype`
[INFO] [stdout]    --> src/dfpn.rs:594:5
[INFO] [stdout]     |
[INFO] [stdout] 594 |     matetype: MateType,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_matetype`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action`
[INFO] [stdout]    --> src/dfpn.rs:613:14
[INFO] [stdout]     |
[INFO] [stdout] 613 |         for (action, n_def) in MaskActionIterator::new(def, action_mask) {
[INFO] [stdout]     |              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_action`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `wait_time`
[INFO] [stdout]   --> src/exp.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |         let wait_time = time::Duration::from_millis(1000);
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_wait_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s2`
[INFO] [stdout]   --> src/exp.rs:96:18
[INFO] [stdout]    |
[INFO] [stdout] 96 |         let (s1, s2) = board::eval(&a1, &a2, 1);
[INFO] [stdout]    |                  ^^ help: if this is intentional, prefix it with an underscore: `_s2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/ml/funcs.rs:236:17
[INFO] [stdout]     |
[INFO] [stdout] 236 |             let x = inputs[0].data[i];
[INFO] [stdout]     |                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `T`
[INFO] [stdout]     |
[INFO] [stdout] 236 -             let x = inputs[0].data[i];
[INFO] [stdout] 236 +             let ai::mpc::T = inputs[0].data[i];
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 236 |             let _x = inputs[0].data[i];
[INFO] [stdout]     |                 +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/ml/ops.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |         for i in 0..inputs.len() {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `grad`
[INFO] [stdout]    --> src/ml.rs:190:28
[INFO] [stdout]     |
[INFO] [stdout] 190 |     fn backward(&mut self, grad: &Tensor, inputs: Vec<&Tensor>, _: &Tensor) -> Vec<Tensor> {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_grad`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inputs`
[INFO] [stdout]    --> src/ml.rs:190:43
[INFO] [stdout]     |
[INFO] [stdout] 190 |     fn backward(&mut self, grad: &Tensor, inputs: Vec<&Tensor>, _: &Tensor) -> Vec<Tensor> {
[INFO] [stdout]     |                                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_inputs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]    --> src/ml.rs:193:20
[INFO] [stdout]     |
[INFO] [stdout] 193 |     fn call(&self, input: Vec<Tensor>) -> Tensor {
[INFO] [stdout]     |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `play_agent`
[INFO] [stdout]    --> src/train.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 107 |     let play_agent = super::board::Agent::Mcts(50, 500);
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_play_agent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `count` is assigned to, but never used
[INFO] [stdout]    --> src/train.rs:141:13
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let count: i32;
[INFO] [stdout]     |             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `reward` is never read
[INFO] [stdout]    --> src/train.rs:101:22
[INFO] [stdout]     |
[INFO] [stdout] 101 |     let mut reward = 0;
[INFO] [stdout]     |                      ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 181 |             reward = 1;
[INFO] [stdout]     |             ---------- `reward` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `count` is never read
[INFO] [stdout]    --> src/train.rs:161:35
[INFO] [stdout]     |
[INFO] [stdout] 161 |                     (action, val, count) = neg.eval_with_negalpha(&b);
[INFO] [stdout]     |                                   ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `agent`
[INFO] [stdout]    --> src/train.rs:226:20
[INFO] [stdout]     |
[INFO] [stdout] 226 | fn play_and_record(agent: &NNUE) -> Vec<Transition> {
[INFO] [stdout]     |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_agent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `reward` is never read
[INFO] [stdout]    --> src/train.rs:229:22
[INFO] [stdout]     |
[INFO] [stdout] 229 |     let mut reward = 0;
[INFO] [stdout]     |                      ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 264 |             reward = 0;
[INFO] [stdout]     |             ---------- `reward` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/train.rs:313:9
[INFO] [stdout]     |
[INFO] [stdout] 313 |     for i in 0..(id % 4) {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count`
[INFO] [stdout]    --> src/train.rs:371:22
[INFO] [stdout]     |
[INFO] [stdout] 371 |         let (_, val, count) = agent.eval_with_negalpha(&b);
[INFO] [stdout]     |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `reward` is never read
[INFO] [stdout]    --> src/train.rs:368:22
[INFO] [stdout]     |
[INFO] [stdout] 368 |     let mut reward = 0;
[INFO] [stdout]     |                      ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 387 |             reward = 0;
[INFO] [stdout]     |             ---------- `reward` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rng`
[INFO] [stdout]    --> src/train.rs:404:9
[INFO] [stdout]     |
[INFO] [stdout] 404 |     let rng = rand::thread_rng();
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `batch_num`
[INFO] [stdout]    --> src/train.rs:583:13
[INFO] [stdout]     |
[INFO] [stdout] 583 |         let batch_num = ts.len() / BATCH_SIZE;
[INFO] [stdout]     |             ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `BATCH_NUM`
[INFO] [stdout]     |
[INFO] [stdout] 583 -         let batch_num = ts.len() / BATCH_SIZE;
[INFO] [stdout] 583 +         let train::BATCH_NUM = ts.len() / BATCH_SIZE;
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 583 |         let _batch_num = ts.len() / BATCH_SIZE;
[INFO] [stdout]     |             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `data` is never read
[INFO] [stdout]    --> src/train.rs:560:20
[INFO] [stdout]     |
[INFO] [stdout] 560 |     let mut data = Vec::new();
[INFO] [stdout]     |                    ^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 593 |         data = ts.choose_multiple(&mut rng, n).cloned().collect();
[INFO] [stdout]     |         ---- `data` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `batch_num`
[INFO] [stdout]    --> src/train.rs:703:13
[INFO] [stdout]     |
[INFO] [stdout] 703 |         let batch_num = ts.len() / BATCH_SIZE;
[INFO] [stdout]     |             ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `BATCH_NUM`
[INFO] [stdout]     |
[INFO] [stdout] 703 -         let batch_num = ts.len() / BATCH_SIZE;
[INFO] [stdout] 703 +         let train::BATCH_NUM = ts.len() / BATCH_SIZE;
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 703 |         let _batch_num = ts.len() / BATCH_SIZE;
[INFO] [stdout]     |             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `eval_it`
[INFO] [stdout]    --> src/train.rs:747:21
[INFO] [stdout]     |
[INFO] [stdout] 747 |                 let eval_it =
[INFO] [stdout]     |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_eval_it`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `pn` and `dn` are never read
[INFO] [stdout]   --> src/dfpn.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct NodeNumber {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 16 |     pn: f32,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 17 |     dn: f32,
[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 functions `new` and `from` are never used
[INFO] [stdout]   --> src/dfpn.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl NodeNumber {
[INFO] [stdout]    | --------------- associated functions in this implementation
[INFO] [stdout] 21 |     fn new() -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     fn from(pn: f32, dn: f32) -> Self {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `next` is never used
[INFO] [stdout]   --> src/dfpn.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl Player {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] 43 |     fn next(&self) -> Self {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `SingleShootLoss` is never used
[INFO] [stdout]   --> src/ml/funcs.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | trait SingleShootLoss {
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEPTH` is never used
[INFO] [stdout]   --> src/train.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const DEPTH: u8 = 3;
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RANDOM_MOVE` is never used
[INFO] [stdout]   --> src/train.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const RANDOM_MOVE: usize = 7;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `play_with_analyze` is never used
[INFO] [stdout]    --> src/train.rs:365:4
[INFO] [stdout]     |
[INFO] [stdout] 365 | fn play_with_analyze(agent: &NNUE) -> Vec<Transition> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/board.rs:1349:9
[INFO] [stdout]      |
[INFO] [stdout] 1349 | /         write!(
[INFO] [stdout] 1350 | |             f,
[INFO] [stdout] 1351 | |             "action: {:>2}, score: {:>5.2}%({:>7.0}/{:>7.0}), Q: {:>5.3}",
[INFO] [stdout] 1352 | |             self.action,
[INFO] [stdout] ...    |
[INFO] [stdout] 1356 | |             self.q
[INFO] [stdout] 1357 | |         );
[INFO] [stdout]      | |_________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]      = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1349 |         let _ = write!(
[INFO] [stdout]      |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]     --> src/board.rs:1462:23
[INFO] [stdout]      |
[INFO] [stdout] 1462 |     fn get_uct(&self, N: f32) -> f32 {
[INFO] [stdout]      |                       ^ help: convert the identifier to snake case: `n`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/ml.rs:415:9
[INFO] [stdout]     |
[INFO] [stdout] 415 |         fs::create_dir_all(path.clone());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 415 |         let _ = fs::create_dir_all(path.clone());
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/ml.rs:420:13
[INFO] [stdout]     |
[INFO] [stdout] 420 |             self.layers[i].save_param(path.clone());
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 420 |             let _ = self.layers[i].save_param(path.clone());
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/ml.rs:432:13
[INFO] [stdout]     |
[INFO] [stdout] 432 |             self.layers[i].load_param(path.clone());
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 432 |             let _ = self.layers[i].load_param(path.clone());
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/train.rs:669:5
[INFO] [stdout]     |
[INFO] [stdout] 669 |     l.load("simple.json".to_string());
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 669 |     let _ = l.load("simple.json".to_string());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/train.rs:686:9
[INFO] [stdout]     |
[INFO] [stdout] 686 |         model.load(load_name.clone());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 686 |         let _ = model.load(load_name.clone());
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/train.rs:814:21
[INFO] [stdout]     |
[INFO] [stdout] 814 |                     model.save(name.clone());
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 814 |                     let _ = model.save(name.clone());
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/train.rs:819:17
[INFO] [stdout]     |
[INFO] [stdout] 819 |                 model.save(format!("latest-{}", name));
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 819 |                 let _ = model.save(format!("latest-{}", name));
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.74s
[INFO] running `Command { std: "docker" "inspect" "68331bce256be0211600783ad67f332d0c99960b97cd22fbdcdc1773b5f6745a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "68331bce256be0211600783ad67f332d0c99960b97cd22fbdcdc1773b5f6745a", kill_on_drop: false }`
[INFO] [stdout] 68331bce256be0211600783ad67f332d0c99960b97cd22fbdcdc1773b5f6745a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] e371b6bcd8656c4691418d395c9de31df32bfa99624bbe612596a4c11259887a
[INFO] running `Command { std: "docker" "start" "-a" "e371b6bcd8656c4691418d395c9de31df32bfa99624bbe612596a4c11259887a", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `super::pprint_u64`
[INFO] [stderr]    --> src/board/magic_number.rs:536:9
[INFO] [stderr]     |
[INFO] [stderr] 536 |     use super::pprint_u64;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/board.rs:411:13
[INFO] [stderr]     |
[INFO] [stderr] 411 |     let x = ((count_2row_(s, s >> 1, s >> 2, s >> 3, b, b >> 1, b >> 2, b >> 3)
[INFO] [stderr]     |             ^
[INFO] [stderr] 412 |         & 0x1111_1111_1111_1111)
[INFO] [stderr] 413 |         * 0xf);
[INFO] [stderr]     |              ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 411 ~     let x = (count_2row_(s, s >> 1, s >> 2, s >> 3, b, b >> 1, b >> 2, b >> 3)
[INFO] [stderr] 412 |         & 0x1111_1111_1111_1111)
[INFO] [stderr] 413 ~         * 0xf;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/board.rs:414:13
[INFO] [stderr]     |
[INFO] [stderr] 414 |     let y = ((count_2row_(s, s >> 4, s >> 8, s >> 12, b, b >> 4, b >> 8, b >> 12)
[INFO] [stderr]     |             ^
[INFO] [stderr] 415 |         & 0x000f_000f_000f_000f)
[INFO] [stderr] 416 |         * 0x1111);
[INFO] [stderr]     |                 ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 414 ~     let y = (count_2row_(s, s >> 4, s >> 8, s >> 12, b, b >> 4, b >> 8, b >> 12)
[INFO] [stderr] 415 |         & 0x000f_000f_000f_000f)
[INFO] [stderr] 416 ~         * 0x1111;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/board.rs:443:15
[INFO] [stderr]     |
[INFO] [stderr] 443 |     let xyz = (xyz1 | xyz2 | xyz3 | xyz4);
[INFO] [stderr]     |               ^                         ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 443 -     let xyz = (xyz1 | xyz2 | xyz3 | xyz4);
[INFO] [stderr] 443 +     let xyz = xyz1 | xyz2 | xyz3 | xyz4;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `return` value
[INFO] [stderr]    --> src/board.rs:464:12
[INFO] [stderr]     |
[INFO] [stderr] 464 |     return (b & c & (a | e) | e & f & (c | g));
[INFO] [stderr]     |            ^                                 ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 464 -     return (b & c & (a | e) | e & f & (c | g));
[INFO] [stderr] 464 +     return b & c & (a | e) | e & f & (c | g);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `pprint_u64`
[INFO] [stderr]  --> src/dfpn.rs:2:76
[INFO] [stderr]   |
[INFO] [stderr] 2 |     self, get_2row_mask, get_put_reach_mask, get_reach_mask, pprint_board, pprint_u64, Board,
[INFO] [stderr]   |                                                                            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::cmp::Ordering`
[INFO] [stderr]  --> src/dfpn.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::cmp::Ordering;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `collections::binary_heap::Iter`
[INFO] [stderr]  --> src/exp.rs:7:11
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::{collections::binary_heap::Iter, thread, time};
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `threat_space_search`
[INFO] [stderr]  --> src/train.rs:7:33
[INFO] [stderr]   |
[INFO] [stderr] 7 |     dfpn::{proof_number_search, threat_space_search, MateType},
[INFO] [stderr]   |                                 ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::f32::EPSILON`
[INFO] [stderr]   --> src/train.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 14 | use std::f32::EPSILON;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `d`
[INFO] [stderr]    --> src/board.rs:463:56
[INFO] [stderr]     |
[INFO] [stderr] 463 | const fn _get_reach_mask_alpha(a: u64, b: u64, c: u64, d: u64, e: u64, f: u64, g: u64) -> u64 {
[INFO] [stderr]     |                                                        ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `s`
[INFO] [stderr]    --> src/board.rs:539:28
[INFO] [stderr]     |
[INFO] [stderr] 539 | pub const fn get_1row_mask(s: u64, b: u64) -> u64 {
[INFO] [stderr]     |                            ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b1`
[INFO] [stderr]    --> src/board.rs:540:10
[INFO] [stderr]     |
[INFO] [stderr] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stderr]     |          ^^ help: if this is intentional, prefix it with an underscore: `_b1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b2`
[INFO] [stderr]    --> src/board.rs:540:14
[INFO] [stderr]     |
[INFO] [stderr] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stderr]     |              ^^ help: if this is intentional, prefix it with an underscore: `_b2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b3`
[INFO] [stderr]    --> src/board.rs:540:18
[INFO] [stderr]     |
[INFO] [stderr] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stderr]     |                  ^^ help: if this is intentional, prefix it with an underscore: `_b3`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b4`
[INFO] [stderr]    --> src/board.rs:540:22
[INFO] [stderr]     |
[INFO] [stderr] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stderr]     |                      ^^ help: if this is intentional, prefix it with an underscore: `_b4`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b6`
[INFO] [stderr]    --> src/board.rs:540:26
[INFO] [stderr]     |
[INFO] [stderr] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stderr]     |                          ^^ help: if this is intentional, prefix it with an underscore: `_b6`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b8`
[INFO] [stderr]    --> src/board.rs:540:30
[INFO] [stderr]     |
[INFO] [stderr] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stderr]     |                              ^^ help: if this is intentional, prefix it with an underscore: `_b8`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b9`
[INFO] [stderr]    --> src/board.rs:540:34
[INFO] [stderr]     |
[INFO] [stderr] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stderr]     |                                  ^^ help: if this is intentional, prefix it with an underscore: `_b9`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b11`
[INFO] [stderr]    --> src/board.rs:540:38
[INFO] [stderr]     |
[INFO] [stderr] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stderr]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_b11`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b12`
[INFO] [stderr]    --> src/board.rs:540:43
[INFO] [stderr]     |
[INFO] [stderr] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stderr]     |                                           ^^^ help: if this is intentional, prefix it with an underscore: `_b12`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b13`
[INFO] [stderr]    --> src/board.rs:540:48
[INFO] [stderr]     |
[INFO] [stderr] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stderr]     |                                                ^^^ help: if this is intentional, prefix it with an underscore: `_b13`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b15`
[INFO] [stderr]    --> src/board.rs:540:53
[INFO] [stderr]     |
[INFO] [stderr] 540 |     let (b1, b2, b3, b4, b6, b8, b9, b11, b12, b13, b15) = (
[INFO] [stderr]     |                                                     ^^^ help: if this is intentional, prefix it with an underscore: `_b15`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b16`
[INFO] [stderr]    --> src/board.rs:553:10
[INFO] [stderr]     |
[INFO] [stderr] 553 |     let (b16, b17, b19, b20, b21, b22, b24, b26, b30) = (
[INFO] [stderr]     |          ^^^ help: if this is intentional, prefix it with an underscore: `_b16`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b17`
[INFO] [stderr]    --> src/board.rs:553:15
[INFO] [stderr]     |
[INFO] [stderr] 553 |     let (b16, b17, b19, b20, b21, b22, b24, b26, b30) = (
[INFO] [stderr]     |               ^^^ help: if this is intentional, prefix it with an underscore: `_b17`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b19`
[INFO] [stderr]    --> src/board.rs:553:20
[INFO] [stderr]     |
[INFO] [stderr] 553 |     let (b16, b17, b19, b20, b21, b22, b24, b26, b30) = (
[INFO] [stderr]     |                    ^^^ help: if this is intentional, prefix it with an underscore: `_b19`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b20`
[INFO] [stderr]    --> src/board.rs:553:25
[INFO] [stderr]     |
[INFO] [stderr] 553 |     let (b16, b17, b19, b20, b21, b22, b24, b26, b30) = (
[INFO] [stderr]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_b20`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b21`
[INFO] [stderr]    --> src/board.rs:553:30
[INFO] [stderr]     |
[INFO] [stderr] 553 |     let (b16, b17, b19, b20, b21, b22, b24, b26, b30) = (
[INFO] [stderr]     |                              ^^^ help: if this is intentional, prefix it with an underscore: `_b21`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b22`
[INFO] [stderr]    --> src/board.rs:553:35
[INFO] [stderr]     |
[INFO] [stderr] 553 |     let (b16, b17, b19, b20, b21, b22, b24, b26, b30) = (
[INFO] [stderr]     |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_b22`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b24`
[INFO] [stderr]    --> src/board.rs:553:40
[INFO] [stderr]     |
[INFO] [stderr] 553 |     let (b16, b17, b19, b20, b21, b22, b24, b26, b30) = (
[INFO] [stderr]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_b24`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b26`
[INFO] [stderr]    --> src/board.rs:553:45
[INFO] [stderr]     |
[INFO] [stderr] 553 |     let (b16, b17, b19, b20, b21, b22, b24, b26, b30) = (
[INFO] [stderr]     |                                             ^^^ help: if this is intentional, prefix it with an underscore: `_b26`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b30`
[INFO] [stderr]    --> src/board.rs:553:50
[INFO] [stderr]     |
[INFO] [stderr] 553 |     let (b16, b17, b19, b20, b21, b22, b24, b26, b30) = (
[INFO] [stderr]     |                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_b30`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b32`
[INFO] [stderr]    --> src/board.rs:564:10
[INFO] [stderr]     |
[INFO] [stderr] 564 |     let (b32, b33, b34, b36, b38, b39, b40, b42, b45) = (
[INFO] [stderr]     |          ^^^ help: if this is intentional, prefix it with an underscore: `_b32`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b33`
[INFO] [stderr]    --> src/board.rs:564:15
[INFO] [stderr]     |
[INFO] [stderr] 564 |     let (b32, b33, b34, b36, b38, b39, b40, b42, b45) = (
[INFO] [stderr]     |               ^^^ help: if this is intentional, prefix it with an underscore: `_b33`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b34`
[INFO] [stderr]    --> src/board.rs:564:20
[INFO] [stderr]     |
[INFO] [stderr] 564 |     let (b32, b33, b34, b36, b38, b39, b40, b42, b45) = (
[INFO] [stderr]     |                    ^^^ help: if this is intentional, prefix it with an underscore: `_b34`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b36`
[INFO] [stderr]    --> src/board.rs:564:25
[INFO] [stderr]     |
[INFO] [stderr] 564 |     let (b32, b33, b34, b36, b38, b39, b40, b42, b45) = (
[INFO] [stderr]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_b36`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b38`
[INFO] [stderr]    --> src/board.rs:564:30
[INFO] [stderr]     |
[INFO] [stderr] 564 |     let (b32, b33, b34, b36, b38, b39, b40, b42, b45) = (
[INFO] [stderr]     |                              ^^^ help: if this is intentional, prefix it with an underscore: `_b38`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b39`
[INFO] [stderr]    --> src/board.rs:564:35
[INFO] [stderr]     |
[INFO] [stderr] 564 |     let (b32, b33, b34, b36, b38, b39, b40, b42, b45) = (
[INFO] [stderr]     |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_b39`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b40`
[INFO] [stderr]    --> src/board.rs:564:40
[INFO] [stderr]     |
[INFO] [stderr] 564 |     let (b32, b33, b34, b36, b38, b39, b40, b42, b45) = (
[INFO] [stderr]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_b40`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b42`
[INFO] [stderr]    --> src/board.rs:564:45
[INFO] [stderr]     |
[INFO] [stderr] 564 |     let (b32, b33, b34, b36, b38, b39, b40, b42, b45) = (
[INFO] [stderr]     |                                             ^^^ help: if this is intentional, prefix it with an underscore: `_b42`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b45`
[INFO] [stderr]    --> src/board.rs:564:50
[INFO] [stderr]     |
[INFO] [stderr] 564 |     let (b32, b33, b34, b36, b38, b39, b40, b42, b45) = (
[INFO] [stderr]     |                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_b45`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b48`
[INFO] [stderr]    --> src/board.rs:575:10
[INFO] [stderr]     |
[INFO] [stderr] 575 |     let (b48, b49, b57, b60, b63) = (b >> 48, b >> 49, b >> 57, b >> 60, b >> 63);
[INFO] [stderr]     |          ^^^ help: if this is intentional, prefix it with an underscore: `_b48`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b49`
[INFO] [stderr]    --> src/board.rs:575:15
[INFO] [stderr]     |
[INFO] [stderr] 575 |     let (b48, b49, b57, b60, b63) = (b >> 48, b >> 49, b >> 57, b >> 60, b >> 63);
[INFO] [stderr]     |               ^^^ help: if this is intentional, prefix it with an underscore: `_b49`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b57`
[INFO] [stderr]    --> src/board.rs:575:20
[INFO] [stderr]     |
[INFO] [stderr] 575 |     let (b48, b49, b57, b60, b63) = (b >> 48, b >> 49, b >> 57, b >> 60, b >> 63);
[INFO] [stderr]     |                    ^^^ help: if this is intentional, prefix it with an underscore: `_b57`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b60`
[INFO] [stderr]    --> src/board.rs:575:25
[INFO] [stderr]     |
[INFO] [stderr] 575 |     let (b48, b49, b57, b60, b63) = (b >> 48, b >> 49, b >> 57, b >> 60, b >> 63);
[INFO] [stderr]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_b60`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b63`
[INFO] [stderr]    --> src/board.rs:575:30
[INFO] [stderr]     |
[INFO] [stderr] 575 |     let (b48, b49, b57, b60, b63) = (b >> 48, b >> 49, b >> 57, b >> 60, b >> 63);
[INFO] [stderr]     |                              ^^^ help: if this is intentional, prefix it with an underscore: `_b63`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `count` is assigned to, but never used
[INFO] [stderr]     --> src/board.rs:1039:9
[INFO] [stderr]      |
[INFO] [stderr] 1039 |     let mut count = 1;
[INFO] [stderr]      |         ^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: consider using `_count` instead
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `count` is never read
[INFO] [stderr]     --> src/board.rs:1051:9
[INFO] [stderr]      |
[INFO] [stderr] 1051 |         count += 1;
[INFO] [stderr]      |         ^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = help: maybe it is overwritten before being read?
[INFO] [stderr]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `count` is assigned to, but never used
[INFO] [stderr]     --> src/board.rs:1092:9
[INFO] [stderr]      |
[INFO] [stderr] 1092 |     let mut count = 1;
[INFO] [stderr]      |         ^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: consider using `_count` instead
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `count` is never read
[INFO] [stderr]     --> src/board.rs:1104:9
[INFO] [stderr]      |
[INFO] [stderr] 1104 |         count += 1;
[INFO] [stderr]      |         ^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `action`
[INFO] [stderr]     --> src/board.rs:1375:18
[INFO] [stderr]      |
[INFO] [stderr] 1375 |             for (action, node) in self.children.iter() {
[INFO] [stderr]      |                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_action`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `node`
[INFO] [stderr]     --> src/board.rs:1375:26
[INFO] [stderr]      |
[INFO] [stderr] 1375 |             for (action, node) in self.children.iter() {
[INFO] [stderr]      |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `func`
[INFO] [stderr]     --> src/board.rs:1515:33
[INFO] [stderr]      |
[INFO] [stderr] 1515 |             Agent::Custom(name, func) => format!("{}", name),
[INFO] [stderr]      |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_func`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ga`
[INFO] [stderr]     --> src/board.rs:1516:33
[INFO] [stderr]      |
[INFO] [stderr] 1516 |             Agent::Struct(name, ga) => format!("{}", name),
[INFO] [stderr]      |                                 ^^ help: if this is intentional, prefix it with an underscore: `_ga`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `a_milis`
[INFO] [stderr]     --> src/board.rs:1531:21
[INFO] [stderr]      |
[INFO] [stderr] 1531 |                 let a_milis = end.as_nanos();
[INFO] [stderr]      |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_a_milis`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b_milis`
[INFO] [stderr]     --> src/board.rs:1535:21
[INFO] [stderr]      |
[INFO] [stderr] 1535 |                 let b_milis = end.as_nanos();
[INFO] [stderr]      |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_b_milis`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `name`
[INFO] [stderr]     --> src/board.rs:1548:27
[INFO] [stderr]      |
[INFO] [stderr] 1548 |             Agent::Custom(name, func) => func(board),
[INFO] [stderr]      |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `name`
[INFO] [stderr]     --> src/board.rs:1549:27
[INFO] [stderr]      |
[INFO] [stderr] 1549 |             Agent::Struct(name, ga) => ga.get_action(board),
[INFO] [stderr]      |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]     --> src/board.rs:1720:9
[INFO] [stderr]      |
[INFO] [stderr] 1720 |     for i in 0..n {
[INFO] [stderr]      |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]     --> src/board.rs:1794:9
[INFO] [stderr]      |
[INFO] [stderr] 1794 |     for i in 0..n {
[INFO] [stderr]      |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `name`
[INFO] [stderr]    --> src/db.rs:145:23
[INFO] [stderr]     |
[INFO] [stderr] 145 |                 for &(name, value) in pairs.iter() {
[INFO] [stderr]     |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/db.rs:218:9
[INFO] [stderr]     |
[INFO] [stderr] 218 |     for i in 0..(id % 4) {
[INFO] [stderr]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `mask`
[INFO] [stderr]    --> src/dfpn.rs:299:13
[INFO] [stderr]     |
[INFO] [stderr] 299 |         let mask = get_reach_mask(def, att);
[INFO] [stderr]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_mask`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `a`
[INFO] [stderr]    --> src/dfpn.rs:352:18
[INFO] [stderr]     |
[INFO] [stderr] 352 |             let (a, (n_att, n_def)) = new_nodes[0];
[INFO] [stderr]     |                  ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `mask`
[INFO] [stderr]    --> src/dfpn.rs:380:13
[INFO] [stderr]     |
[INFO] [stderr] 380 |         let mask = get_reach_mask(def, att);
[INFO] [stderr]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_mask`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `n_att`
[INFO] [stderr]    --> src/dfpn.rs:394:14
[INFO] [stderr]     |
[INFO] [stderr] 394 |         let (n_att, n_def) = root_expands[0].1;
[INFO] [stderr]     |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_n_att`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `n_def`
[INFO] [stderr]    --> src/dfpn.rs:394:21
[INFO] [stderr]     |
[INFO] [stderr] 394 |         let (n_att, n_def) = root_expands[0].1;
[INFO] [stderr]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_n_def`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `count_reach_board` is assigned to, but never used
[INFO] [stderr]    --> src/dfpn.rs:400:9
[INFO] [stderr]     |
[INFO] [stderr] 400 |     let mut count_reach_board = 0;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: consider using `_count_reach_board` instead
[INFO] [stderr] 
[INFO] [stderr] warning: variable `count_valid_board` is assigned to, but never used
[INFO] [stderr]    --> src/dfpn.rs:401:9
[INFO] [stderr]     |
[INFO] [stderr] 401 |     let mut count_valid_board = 0;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: consider using `_count_valid_board` instead
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `a`
[INFO] [stderr]    --> src/dfpn.rs:425:18
[INFO] [stderr]     |
[INFO] [stderr] 425 |             let (a, (n_att, n_def)) = new_nodes[0];
[INFO] [stderr]     |                  ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `n_att`
[INFO] [stderr]    --> src/dfpn.rs:425:22
[INFO] [stderr]     |
[INFO] [stderr] 425 |             let (a, (n_att, n_def)) = new_nodes[0];
[INFO] [stderr]     |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_n_att`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `n_def`
[INFO] [stderr]    --> src/dfpn.rs:425:29
[INFO] [stderr]     |
[INFO] [stderr] 425 |             let (a, (n_att, n_def)) = new_nodes[0];
[INFO] [stderr]     |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_n_def`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `count_reach_board` is never read
[INFO] [stderr]    --> src/dfpn.rs:422:9
[INFO] [stderr]     |
[INFO] [stderr] 422 |         count_reach_board += get_valid_boards(tar_board.0, tar_board.1).len();
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `count_valid_board` is never read
[INFO] [stderr]    --> src/dfpn.rs:423:9
[INFO] [stderr]     |
[INFO] [stderr] 423 |         count_valid_board += get_valid_boards(tar_board.0, tar_board.1).len();
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `stone`
[INFO] [stderr]    --> src/dfpn.rs:440:9
[INFO] [stderr]     |
[INFO] [stderr] 440 |     let stone = att | def;
[INFO] [stderr]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_stone`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `matetype`
[INFO] [stderr]    --> src/dfpn.rs:494:5
[INFO] [stderr]     |
[INFO] [stderr] 494 |     matetype: MateType,
[INFO] [stderr]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_matetype`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `action`
[INFO] [stderr]    --> src/dfpn.rs:513:14
[INFO] [stderr]     |
[INFO] [stderr] 513 |         for (action, n_att) in MaskActionIterator::new(att, action_mask) {
[INFO] [stderr]     |              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_action`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `matetype`
[INFO] [stderr]    --> src/dfpn.rs:594:5
[INFO] [stderr]     |
[INFO] [stderr] 594 |     matetype: MateType,
[INFO] [stderr]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_matetype`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `action`
[INFO] [stderr]    --> src/dfpn.rs:613:14
[INFO] [stderr]     |
[INFO] [stderr] 613 |         for (action, n_def) in MaskActionIterator::new(def, action_mask) {
[INFO] [stderr]     |              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_action`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `wait_time`
[INFO] [stderr]   --> src/exp.rs:67:13
[INFO] [stderr]    |
[INFO] [stderr] 67 |         let wait_time = time::Duration::from_millis(1000);
[INFO] [stderr]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_wait_time`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `s2`
[INFO] [stderr]   --> src/exp.rs:96:18
[INFO] [stderr]    |
[INFO] [stderr] 96 |         let (s1, s2) = board::eval(&a1, &a2, 1);
[INFO] [stderr]    |                  ^^ help: if this is intentional, prefix it with an underscore: `_s2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/ml/funcs.rs:236:17
[INFO] [stderr]     |
[INFO] [stderr] 236 |             let x = inputs[0].data[i];
[INFO] [stderr]     |                 ^
[INFO] [stderr]     |
[INFO] [stderr] help: you might have meant to pattern match on the similarly named constant `T`
[INFO] [stderr]     |
[INFO] [stderr] 236 -             let x = inputs[0].data[i];
[INFO] [stderr] 236 +             let ai::mpc::T = inputs[0].data[i];
[INFO] [stderr]     |
[INFO] [stderr] help: if this is intentional, prefix it with an underscore
[INFO] [stderr]     |
[INFO] [stderr] 236 |             let _x = inputs[0].data[i];
[INFO] [stderr]     |                 +
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]   --> src/ml/ops.rs:19:13
[INFO] [stderr]    |
[INFO] [stderr] 19 |         for i in 0..inputs.len() {
[INFO] [stderr]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `grad`
[INFO] [stderr]    --> src/ml.rs:190:28
[INFO] [stderr]     |
[INFO] [stderr] 190 |     fn backward(&mut self, grad: &Tensor, inputs: Vec<&Tensor>, _: &Tensor) -> Vec<Tensor> {
[INFO] [stderr]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_grad`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `inputs`
[INFO] [stderr]    --> src/ml.rs:190:43
[INFO] [stderr]     |
[INFO] [stderr] 190 |     fn backward(&mut self, grad: &Tensor, inputs: Vec<&Tensor>, _: &Tensor) -> Vec<Tensor> {
[INFO] [stderr]     |                                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_inputs`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `input`
[INFO] [stderr]    --> src/ml.rs:193:20
[INFO] [stderr]     |
[INFO] [stderr] 193 |     fn call(&self, input: Vec<Tensor>) -> Tensor {
[INFO] [stderr]     |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `play_agent`
[INFO] [stderr]    --> src/train.rs:107:9
[INFO] [stderr]     |
[INFO] [stderr] 107 |     let play_agent = super::board::Agent::Mcts(50, 500);
[INFO] [stderr]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_play_agent`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `count` is assigned to, but never used
[INFO] [stderr]    --> src/train.rs:141:13
[INFO] [stderr]     |
[INFO] [stderr] 141 |         let count: i32;
[INFO] [stderr]     |             ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: consider using `_count` instead
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `reward` is never read
[INFO] [stderr]    --> src/train.rs:101:22
[INFO] [stderr]     |
[INFO] [stderr] 101 |     let mut reward = 0;
[INFO] [stderr]     |                      ^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 181 |             reward = 1;
[INFO] [stderr]     |             ---------- `reward` is overwritten here before the previous value is read
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `count` is never read
[INFO] [stderr]    --> src/train.rs:161:35
[INFO] [stderr]     |
[INFO] [stderr] 161 |                     (action, val, count) = neg.eval_with_negalpha(&b);
[INFO] [stderr]     |                                   ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `agent`
[INFO] [stderr]    --> src/train.rs:226:20
[INFO] [stderr]     |
[INFO] [stderr] 226 | fn play_and_record(agent: &NNUE) -> Vec<Transition> {
[INFO] [stderr]     |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_agent`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `reward` is never read
[INFO] [stderr]    --> src/train.rs:229:22
[INFO] [stderr]     |
[INFO] [stderr] 229 |     let mut reward = 0;
[INFO] [stderr]     |                      ^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 264 |             reward = 0;
[INFO] [stderr]     |             ---------- `reward` is overwritten here before the previous value is read
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/train.rs:313:9
[INFO] [stderr]     |
[INFO] [stderr] 313 |     for i in 0..(id % 4) {
[INFO] [stderr]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `count`
[INFO] [stderr]    --> src/train.rs:371:22
[INFO] [stderr]     |
[INFO] [stderr] 371 |         let (_, val, count) = agent.eval_with_negalpha(&b);
[INFO] [stderr]     |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `reward` is never read
[INFO] [stderr]    --> src/train.rs:368:22
[INFO] [stderr]     |
[INFO] [stderr] 368 |     let mut reward = 0;
[INFO] [stderr]     |                      ^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 387 |             reward = 0;
[INFO] [stderr]     |             ---------- `reward` is overwritten here before the previous value is read
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rng`
[INFO] [stderr]    --> src/train.rs:404:9
[INFO] [stderr]     |
[INFO] [stderr] 404 |     let rng = rand::thread_rng();
[INFO] [stderr]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `batch_num`
[INFO] [stderr]    --> src/train.rs:583:13
[INFO] [stderr]     |
[INFO] [stderr] 583 |         let batch_num = ts.len() / BATCH_SIZE;
[INFO] [stderr]     |             ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: you might have meant to pattern match on the similarly named constant `BATCH_NUM`
[INFO] [stderr]     |
[INFO] [stderr] 583 -         let batch_num = ts.len() / BATCH_SIZE;
[INFO] [stderr] 583 +         let train::BATCH_NUM = ts.len() / BATCH_SIZE;
[INFO] [stderr]     |
[INFO] [stderr] help: if this is intentional, prefix it with an underscore
[INFO] [stderr]     |
[INFO] [stderr] 583 |         let _batch_num = ts.len() / BATCH_SIZE;
[INFO] [stderr]     |             +
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `data` is never read
[INFO] [stderr]    --> src/train.rs:560:20
[INFO] [stderr]     |
[INFO] [stderr] 560 |     let mut data = Vec::new();
[INFO] [stderr]     |                    ^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 593 |         data = ts.choose_multiple(&mut rng, n).cloned().collect();
[INFO] [stderr]     |         ---- `data` is overwritten here before the previous value is read
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `batch_num`
[INFO] [stderr]    --> src/train.rs:703:13
[INFO] [stderr]     |
[INFO] [stderr] 703 |         let batch_num = ts.len() / BATCH_SIZE;
[INFO] [stderr]     |             ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: you might have meant to pattern match on the similarly named constant `BATCH_NUM`
[INFO] [stderr]     |
[INFO] [stderr] 703 -         let batch_num = ts.len() / BATCH_SIZE;
[INFO] [stderr] 703 +         let train::BATCH_NUM = ts.len() / BATCH_SIZE;
[INFO] [stderr]     |
[INFO] [stderr] help: if this is intentional, prefix it with an underscore
[INFO] [stderr]     |
[INFO] [stderr] 703 |         let _batch_num = ts.len() / BATCH_SIZE;
[INFO] [stderr]     |             +
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `eval_it`
[INFO] [stderr]    --> src/train.rs:747:21
[INFO] [stderr]     |
[INFO] [stderr] 747 |                 let eval_it =
[INFO] [stderr]     |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_eval_it`
[INFO] [stderr] 
[INFO] [stderr] warning: fields `pn` and `dn` are never read
[INFO] [stderr]   --> src/dfpn.rs:16:5
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub struct NodeNumber {
[INFO] [stderr]    |            ---------- fields in this struct
[INFO] [stderr] 16 |     pn: f32,
[INFO] [stderr]    |     ^^
[INFO] [stderr] 17 |     dn: f32,
[INFO] [stderr]    |     ^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `new` and `from` are never used
[INFO] [stderr]   --> src/dfpn.rs:21:8
[INFO] [stderr]    |
[INFO] [stderr] 20 | impl NodeNumber {
[INFO] [stderr]    | --------------- associated functions in this implementation
[INFO] [stderr] 21 |     fn new() -> Self {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] ...
[INFO] [stderr] 24 |     fn from(pn: f32, dn: f32) -> Self {
[INFO] [stderr]    |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `next` is never used
[INFO] [stderr]   --> src/dfpn.rs:43:8
[INFO] [stderr]    |
[INFO] [stderr] 42 | impl Player {
[INFO] [stderr]    | ----------- method in this implementation
[INFO] [stderr] 43 |     fn next(&self) -> Self {
[INFO] [stderr]    |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `SingleShootLoss` is never used
[INFO] [stderr]   --> src/ml/funcs.rs:12:7
[INFO] [stderr]    |
[INFO] [stderr] 12 | trait SingleShootLoss {
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DEPTH` is never used
[INFO] [stderr]   --> src/train.rs:19:7
[INFO] [stderr]    |
[INFO] [stderr] 19 | const DEPTH: u8 = 3;
[INFO] [stderr]    |       ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `RANDOM_MOVE` is never used
[INFO] [stderr]   --> src/train.rs:20:7
[INFO] [stderr]    |
[INFO] [stderr] 20 | const RANDOM_MOVE: usize = 7;
[INFO] [stderr]    |       ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `play_with_analyze` is never used
[INFO] [stderr]    --> src/train.rs:365:4
[INFO] [stderr]     |
[INFO] [stderr] 365 | fn play_with_analyze(agent: &NNUE) -> Vec<Transition> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]     --> src/board.rs:1349:9
[INFO] [stderr]      |
[INFO] [stderr] 1349 | /         write!(
[INFO] [stderr] 1350 | |             f,
[INFO] [stderr] 1351 | |             "action: {:>2}, score: {:>5.2}%({:>7.0}/{:>7.0}), Q: {:>5.3}",
[INFO] [stderr] 1352 | |             self.action,
[INFO] [stderr] ...    |
[INFO] [stderr] 1356 | |             self.q
[INFO] [stderr] 1357 | |         );
[INFO] [stderr]      | |_________^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]      = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]      |
[INFO] [stderr] 1349 |         let _ = write!(
[INFO] [stderr]      |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: variable `N` should have a snake case name
[INFO] [stderr]     --> src/board.rs:1462:23
[INFO] [stderr]      |
[INFO] [stderr] 1462 |     fn get_uct(&self, N: f32) -> f32 {
[INFO] [stderr]      |                       ^ help: convert the identifier to snake case: `n`
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/ml.rs:415:9
[INFO] [stderr]     |
[INFO] [stderr] 415 |         fs::create_dir_all(path.clone());
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 415 |         let _ = fs::create_dir_all(path.clone());
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/ml.rs:420:13
[INFO] [stderr]     |
[INFO] [stderr] 420 |             self.layers[i].save_param(path.clone());
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 420 |             let _ = self.layers[i].save_param(path.clone());
[INFO] [stderr]     |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/ml.rs:432:13
[INFO] [stderr]     |
[INFO] [stderr] 432 |             self.layers[i].load_param(path.clone());
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 432 |             let _ = self.layers[i].load_param(path.clone());
[INFO] [stderr]     |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/train.rs:669:5
[INFO] [stderr]     |
[INFO] [stderr] 669 |     l.load("simple.json".to_string());
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 669 |     let _ = l.load("simple.json".to_string());
[INFO] [stderr]     |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/train.rs:686:9
[INFO] [stderr]     |
[INFO] [stderr] 686 |         model.load(load_name.clone());
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 686 |         let _ = model.load(load_name.clone());
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/train.rs:814:21
[INFO] [stderr]     |
[INFO] [stderr] 814 |                     model.save(name.clone());
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 814 |                     let _ = model.save(name.clone());
[INFO] [stderr]     |                     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/train.rs:819:17
[INFO] [stderr]     |
[INFO] [stderr] 819 |                 model.save(format!("latest-{}", name));
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 819 |                 let _ = model.save(format!("latest-{}", name));
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: `qubic_engine` (lib) generated 116 warnings (run `cargo fix --lib -p qubic_engine` to apply 86 suggestions)
[INFO] [stderr] warning: `qubic_engine` (lib test) generated 116 warnings (116 duplicates)
[INFO] [stderr] warning: unused imports: `ProofNumberSearchStatus` and `threat_space_search`
[INFO] [stderr]  --> src/main_utils.rs:4:39
[INFO] [stderr]   |
[INFO] [stderr] 4 |     dfpn::{self, proof_number_search, threat_space_search, MateType, ProofNumberSearchStatus},
[INFO] [stderr]   |                                       ^^^^^^^^^^^^^^^^^^^            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stderr]  --> src/main_utils.rs:6:13
[INFO] [stderr]   |
[INFO] [stderr] 6 | use serde::{Deserialize, Serialize};
[INFO] [stderr]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `SimplePatternEvaluator`, `TrainableBLE`, and `TrainableSPE`
[INFO] [stderr]  --> src/main.rs:4:46
[INFO] [stderr]   |
[INFO] [stderr] 4 |     BucketLineEvaluator, SimplLineEvaluator, SimplePatternEvaluator, TrainableBLE, TrainableSLE,
[INFO] [stderr]   |                                              ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stderr] 5 |     TrainableSPE,
[INFO] [stderr]   |     ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `NNLineEvaluator` and `TrainableNLE`
[INFO] [stderr]  --> src/main.rs:7:33
[INFO] [stderr]   |
[INFO] [stderr] 7 | use qubic_engine::ai::line_nn::{NNLineEvaluator, NNLineEvaluator_, TrainableNLE, TrainableNLE_};
[INFO] [stderr]   |                                 ^^^^^^^^^^^^^^^                    ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `TrainableLineEvaluator`
[INFO] [stderr]   --> src/main.rs:12:38
[INFO] [stderr]    |
[INFO] [stderr] 12 |     PlayoutLevel, PositionEvaluator, TrainableLineEvaluator,
[INFO] [stderr]    |                                      ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `count_2row_`, `get_2row_mask`, and `get_random`
[INFO] [stderr]   --> src/main.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 15 |     count_2row_, get_2row_mask, get_random, mate_check_horizontal, play_actor, pprint_board,
[INFO] [stderr]    |     ^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `qubic_engine::db::BoardDB`
[INFO] [stderr]   --> src/main.rs:18:5
[INFO] [stderr]    |
[INFO] [stderr] 18 | use qubic_engine::db::BoardDB;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `train_with_db`
[INFO] [stderr]   --> src/main.rs:19:38
[INFO] [stderr]    |
[INFO] [stderr] 19 | use qubic_engine::train::{create_db, train_with_db};
[INFO] [stderr]    |                                      ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `NNUE`
[INFO] [stderr]   --> src/main.rs:21:33
[INFO] [stderr]    |
[INFO] [stderr] 21 |     ai::{CoEvaluator, NegAlpha, NNUE},
[INFO] [stderr]    |                                 ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `rand::rngs::ThreadRng`
[INFO] [stderr]   --> src/main.rs:24:5
[INFO] [stderr]    |
[INFO] [stderr] 24 | use rand::rngs::ThreadRng;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `rand_distr::num_traits::WrappingNeg`
[INFO] [stderr]   --> src/main.rs:27:5
[INFO] [stderr]    |
[INFO] [stderr] 27 | use rand_distr::num_traits::WrappingNeg;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::ops::Neg`
[INFO] [stderr]   --> src/main.rs:29:5
[INFO] [stderr]    |
[INFO] [stderr] 29 | use std::ops::Neg;
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::os::unix::thread`
[INFO] [stderr]   --> src/main.rs:30:5
[INFO] [stderr]    |
[INFO] [stderr] 30 | use std::os::unix::thread;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Duration`
[INFO] [stderr]   --> src/main.rs:31:17
[INFO] [stderr]    |
[INFO] [stderr] 31 | use std::time::{Duration, Instant};
[INFO] [stderr]    |                 ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around function argument
[INFO] [stderr]    --> src/main.rs:166:21
[INFO] [stderr]     |
[INFO] [stderr] 166 |         return Some((self.board.clone()));
[INFO] [stderr]     |                     ^                  ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 166 -         return Some((self.board.clone()));
[INFO] [stderr] 166 +         return Some(self.board.clone() );
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ProofNumberSearchStatus`
[INFO] [stderr]    --> src/main.rs:429:40
[INFO] [stderr]     |
[INFO] [stderr] 429 |     use qubic_engine::dfpn::{MateType, ProofNumberSearchStatus};
[INFO] [stderr]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]     --> src/main.rs:1098:17
[INFO] [stderr]      |
[INFO] [stderr] 1098 |     let stone = (b.black | b.white);
[INFO] [stderr]      |                 ^                 ^
[INFO] [stderr]      |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]      |
[INFO] [stderr] 1098 -     let stone = (b.black | b.white);
[INFO] [stderr] 1098 +     let stone = b.black | b.white ;
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `LineEvaluator`, `acum_mask_bundle`, and `apply_mask_bundle`
[INFO] [stderr]     --> src/main.rs:1109:28
[INFO] [stderr]      |
[INFO] [stderr] 1109 |     use qubic_engine::ai::{acum_mask_bundle, apply_mask_bundle, LineEvaluator};
[INFO] [stderr]      |                            ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable statement
[INFO] [stderr]    --> src/main_utils.rs:139:13
[INFO] [stderr]     |
[INFO] [stderr] 130 |                 break;
[INFO] [stderr]     |                 ----- any code following this expression is unreachable
[INFO] [stderr] ...
[INFO] [stderr] 139 |             let start = Instant::now();
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable expression
[INFO] [stderr]    --> src/main.rs:198:9
[INFO] [stderr]     |
[INFO] [stderr] 197 |           continue;
[INFO] [stderr]     |           -------- any code following this expression is unreachable
[INFO] [stderr] 198 | /         for j in 0..step {
[INFO] [stderr] 199 | |             if rng.gen::<f32>() < 0.5 {
[INFO] [stderr] 200 | |                 a += 1;
[INFO] [stderr] 201 | |             } else {
[INFO] [stderr] ...   |
[INFO] [stderr] 211 | |             counts[count] += 1;
[INFO] [stderr] 212 | |         }
[INFO] [stderr]     | |_________^ unreachable expression
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/main_utils.rs:65:9
[INFO] [stderr]    |
[INFO] [stderr] 65 |     let mut b = Board::from(att, def, Player::Black);
[INFO] [stderr]    |         ----^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main_utils.rs:103:13
[INFO] [stderr]     |
[INFO] [stderr] 103 |         let mut l1 = ai::NegAlphaF::new(Box::new(l.clone()), 5);
[INFO] [stderr]     |             ----^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main_utils.rs:104:13
[INFO] [stderr]     |
[INFO] [stderr] 104 |         let mut l2 = ai::NegAlphaF::new(Box::new(l.clone()), 5);
[INFO] [stderr]     |             ----^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `mcts`
[INFO] [stderr]   --> src/main_utils.rs:98:13
[INFO] [stderr]    |
[INFO] [stderr] 98 |         let mcts = ai::mcts::Mcts::new(10000, 3, 10, po);
[INFO] [stderr]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_mcts`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `mcts2`
[INFO] [stderr]    --> src/main_utils.rs:100:13
[INFO] [stderr]     |
[INFO] [stderr] 100 |         let mcts2 = ai::mcts::Mcts::new(10000, 3, 10, po);
[INFO] [stderr]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_mcts2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `m1`
[INFO] [stderr]    --> src/main_utils.rs:101:13
[INFO] [stderr]     |
[INFO] [stderr] 101 |         let m1 = ai::NegAlpha::new(Box::new(ai::CoEvaluator::best()), 3);
[INFO] [stderr]     |             ^^ help: if this is intentional, prefix it with an underscore: `_m1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `m2`
[INFO] [stderr]    --> src/main_utils.rs:102:13
[INFO] [stderr]     |
[INFO] [stderr] 102 |         let m2 = ai::NegAlpha::new(Box::new(ai::CoEvaluator::best()), 3);
[INFO] [stderr]     |             ^^ help: if this is intentional, prefix it with an underscore: `_m2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `l1`
[INFO] [stderr]    --> src/main_utils.rs:103:13
[INFO] [stderr]     |
[INFO] [stderr] 103 |         let mut l1 = ai::NegAlphaF::new(Box::new(l.clone()), 5);
[INFO] [stderr]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_l1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `l2`
[INFO] [stderr]    --> src/main_utils.rs:104:13
[INFO] [stderr]     |
[INFO] [stderr] 104 |         let mut l2 = ai::NegAlphaF::new(Box::new(l.clone()), 5);
[INFO] [stderr]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_l2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `a`
[INFO] [stderr]    --> src/main_utils.rs:124:26
[INFO] [stderr]     |
[INFO] [stderr] 124 |             if let Some((a, b)) = res {
[INFO] [stderr]     |                          ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/main.rs:57:9
[INFO] [stderr]    |
[INFO] [stderr] 57 |     let mut l3_ = NegAlphaF::new(Box::new(l.clone()), 1);
[INFO] [stderr]    |         ----^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `m1`
[INFO] [stderr]   --> src/main.rs:38:9
[INFO] [stderr]    |
[INFO] [stderr] 38 |     let m1 = NegAlpha::new(Box::new(CoEvaluator::best()), 1);
[INFO] [stderr]    |         ^^ help: if this is intentional, prefix it with an underscore: `_m1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `m3_f32`
[INFO] [stderr]   --> src/main.rs:41:9
[INFO] [stderr]    |
[INFO] [stderr] 41 |     let m3_f32 = NegAlphaF::new(Box::new(CoEvaluator::best()), 3);
[INFO] [stderr]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_m3_f32`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `m4`
[INFO] [stderr]   --> src/main.rs:42:9
[INFO] [stderr]    |
[INFO] [stderr] 42 |     let m4 = NegAlpha::new(Box::new(CoEvaluator::best()), 4);
[INFO] [stderr]    |         ^^ help: if this is intentional, prefix it with an underscore: `_m4`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `m6`
[INFO] [stderr]   --> src/main.rs:44:9
[INFO] [stderr]    |
[INFO] [stderr] 44 |     let m6 = NegAlpha::new(Box::new(CoEvaluator::best()), 6);
[INFO] [stderr]    |         ^^ help: if this is intentional, prefix it with an underscore: `_m6`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `m7`
[INFO] [stderr]   --> src/main.rs:45:9
[INFO] [stderr]    |
[INFO] [stderr] 45 |     let m7 = NegAlpha::new(Box::new(CoEvaluator::best()), 7);
[INFO] [stderr]    |         ^^ help: if this is intentional, prefix it with an underscore: `_m7`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `m9`
[INFO] [stderr]   --> src/main.rs:46:9
[INFO] [stderr]    |
[INFO] [stderr] 46 |     let m9 = NegAlpha::new(Box::new(CoEvaluator::best()), 9);
[INFO] [stderr]    |         ^^ help: if this is intentional, prefix it with an underscore: `_m9`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `mm3`
[INFO] [stderr]   --> src/main.rs:48:9
[INFO] [stderr]    |
[INFO] [stderr] 48 |     let mm3 = Agent::Struct(String::from("mm3"), Box::new(mm3));
[INFO] [stderr]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_mm3`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `m2`
[INFO] [stderr]   --> src/main.rs:49:9
[INFO] [stderr]    |
[INFO] [stderr] 49 |     let m2 = Agent::Struct(String::from("m2"), Box::new(m2));
[INFO] [stderr]    |         ^^ help: if this is intentional, prefix it with an underscore: `_m2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `m3`
[INFO] [stderr]   --> src/main.rs:50:9
[INFO] [stderr]    |
[INFO] [stderr] 50 |     let m3 = Agent::Struct(String::from("m3"), Box::new(m3));
[INFO] [stderr]    |         ^^ help: if this is intentional, prefix it with an underscore: `_m3`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `m5`
[INFO] [stderr]   --> src/main.rs:51:9
[INFO] [stderr]    |
[INFO] [stderr] 51 |     let m5 = Agent::Struct(String::from("m5"), Box::new(m5));
[INFO] [stderr]    |         ^^ help: if this is intentional, prefix it with an underscore: `_m5`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `l5_`
[INFO] [stderr]   --> src/main.rs:63:9
[INFO] [stderr]    |
[INFO] [stderr] 63 |     let l5_ = MateWrapperActor::new(Box::new(l5_));
[INFO] [stderr]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_l5_`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b7`
[INFO] [stderr]   --> src/main.rs:81:9
[INFO] [stderr]    |
[INFO] [stderr] 81 |     let b7 = MateWrapperActor::new(Box::new(b7));
[INFO] [stderr]    |         ^^ help: if this is intentional, prefix it with an underscore: `_b7`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `mcts`
[INFO] [stderr]   --> src/main.rs:84:9
[INFO] [stderr]    |
[INFO] [stderr] 84 |     let mcts = ai::mcts::Mcts::new(10_000, 3, 10, po);
[INFO] [stderr]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_mcts`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `mcts2`
[INFO] [stderr]   --> src/main.rs:85:9
[INFO] [stderr]    |
[INFO] [stderr] 85 |     let mcts2 = ai::mcts::Mcts::new(10_000, 3, 500, l3_);
[INFO] [stderr]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_mcts2`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:181:13
[INFO] [stderr]     |
[INFO] [stderr] 181 |         let mut count = 0;
[INFO] [stderr]     |             ----^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/main.rs:178:9
[INFO] [stderr]     |
[INFO] [stderr] 178 |     for i in 0..n {
[INFO] [stderr]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `count`
[INFO] [stderr]    --> src/main.rs:181:13
[INFO] [stderr]     |
[INFO] [stderr] 181 |         let mut count = 0;
[INFO] [stderr]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `j`
[INFO] [stderr]    --> src/main.rs:183:13
[INFO] [stderr]     |
[INFO] [stderr] 183 |         for j in 0..step {
[INFO] [stderr]     |             ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:238:13
[INFO] [stderr]     |
[INFO] [stderr] 238 |         let mut max_action = 0;
[INFO] [stderr]     |             ----^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:239:13
[INFO] [stderr]     |
[INFO] [stderr] 239 |         let mut max = 0.0;
[INFO] [stderr]     |             ----^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `max_action`
[INFO] [stderr]    --> src/main.rs:238:13
[INFO] [stderr]     |
[INFO] [stderr] 238 |         let mut max_action = 0;
[INFO] [stderr]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_action`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `max`
[INFO] [stderr]    --> src/main.rs:239:13
[INFO] [stderr]     |
[INFO] [stderr] 239 |         let mut max = 0.0;
[INFO] [stderr]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `val`
[INFO] [stderr]    --> src/main.rs:251:22
[INFO] [stderr]     |
[INFO] [stderr] 251 |         let (action, val, count) = l7_.eval_with_negalpha(&b);
[INFO] [stderr]     |                      ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `count`
[INFO] [stderr]    --> src/main.rs:251:27
[INFO] [stderr]     |
[INFO] [stderr] 251 |         let (action, val, count) = l7_.eval_with_negalpha(&b);
[INFO] [stderr]     |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/main.rs:276:9
[INFO] [stderr]     |
[INFO] [stderr] 276 |     for i in 0_u64..(1 << 32) {
[INFO] [stderr]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `black`
[INFO] [stderr]    --> src/main.rs:323:9
[INFO] [stderr]     |
[INFO] [stderr] 323 |         black: u64,
[INFO] [stderr]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_black`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `white`
[INFO] [stderr]    --> src/main.rs:324:9
[INFO] [stderr]     |
[INFO] [stderr] 324 |         white: u64,
[INFO] [stderr]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_white`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:332:9
[INFO] [stderr]     |
[INFO] [stderr] 332 |     let mut it = BoardIter::new(true);
[INFO] [stderr]     |         ----^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/main.rs:422:9
[INFO] [stderr]     |
[INFO] [stderr] 422 |     for i in 0..size {
[INFO] [stderr]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `step` is assigned to, but never used
[INFO] [stderr]    --> src/main.rs:440:9
[INFO] [stderr]     |
[INFO] [stderr] 440 |     let mut step = 0;
[INFO] [stderr]     |         ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: consider using `_step` instead
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `step` is never read
[INFO] [stderr]    --> src/main.rs:481:13
[INFO] [stderr]     |
[INFO] [stderr] 481 |             step += 1;
[INFO] [stderr]     |             ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `val_`
[INFO] [stderr]    --> src/main.rs:565:23
[INFO] [stderr]     |
[INFO] [stderr] 565 |         let (action2, val_, _) = long.eval_with_negalpha(&b);
[INFO] [stderr]     |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_val_`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:627:9
[INFO] [stderr]     |
[INFO] [stderr] 627 |     let mut all_count = 0.0;
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:628:9
[INFO] [stderr]     |
[INFO] [stderr] 628 |     let mut all_err_sum = 0.0;
[INFO] [stderr]     |         ----^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:629:9
[INFO] [stderr]     |
[INFO] [stderr] 629 |     let mut all_sq_sum = 0.0;
[INFO] [stderr]     |         ----^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `all_count`
[INFO] [stderr]    --> src/main.rs:627:9
[INFO] [stderr]     |
[INFO] [stderr] 627 |     let mut all_count = 0.0;
[INFO] [stderr]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_all_count`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `all_err_sum`
[INFO] [stderr]    --> src/main.rs:628:9
[INFO] [stderr]     |
[INFO] [stderr] 628 |     let mut all_err_sum = 0.0;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_all_err_sum`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `all_sq_sum`
[INFO] [stderr]    --> src/main.rs:629:9
[INFO] [stderr]     |
[INFO] [stderr] 629 |     let mut all_sq_sum = 0.0;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_all_sq_sum`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:766:9
[INFO] [stderr]     |
[INFO] [stderr] 766 |     let mut model = TrainableSLE::from(model, 0.001);
[INFO] [stderr]     |         ----^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:768:9
[INFO] [stderr]     |
[INFO] [stderr] 768 |     let mut pmodel = PositionMaskEvaluator::new();
[INFO] [stderr]     |         ----^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:769:9
[INFO] [stderr]     |
[INFO] [stderr] 769 |     let mut pmodel = TrainablePME::from(pmodel, 0.001);
[INFO] [stderr]     |         ----^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:770:9
[INFO] [stderr]     |
[INFO] [stderr] 770 |     let mut nmodel = NNLineEvaluator_::new();
[INFO] [stderr]     |         ----^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:771:9
[INFO] [stderr]     |
[INFO] [stderr] 771 |     let mut nmodel = TrainableNLE_::from(nmodel, 0.005);
[INFO] [stderr]     |         ----^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:772:9
[INFO] [stderr]     |
[INFO] [stderr] 772 |     let mut pmodel = pattern::test_pattern_evaluator();
[INFO] [stderr]     |         ----^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:773:9
[INFO] [stderr]     |
[INFO] [stderr] 773 |     let mut pmodel = TrainablePatternEvaluator::from_pattern_evaluator(pmodel, 0.0001, 0.9, 0.999);
[INFO] [stderr]     |         ----^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `model`
[INFO] [stderr]    --> src/main.rs:766:9
[INFO] [stderr]     |
[INFO] [stderr] 766 |     let mut model = TrainableSLE::from(model, 0.001);
[INFO] [stderr]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_model`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pmodel`
[INFO] [stderr]    --> src/main.rs:769:9
[INFO] [stderr]     |
[INFO] [stderr] 769 |     let mut pmodel = TrainablePME::from(pmodel, 0.001);
[INFO] [stderr]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pmodel`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pmodel`
[INFO] [stderr]    --> src/main.rs:773:9
[INFO] [stderr]     |
[INFO] [stderr] 773 |     let mut pmodel = TrainablePatternEvaluator::from_pattern_evaluator(pmodel, 0.0001, 0.9, 0.999);
[INFO] [stderr]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pmodel`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:813:9
[INFO] [stderr]     |
[INFO] [stderr] 813 |     let mut b_time_not = 0;
[INFO] [stderr]     |         ----^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:815:9
[INFO] [stderr]     |
[INFO] [stderr] 815 |     let mut a_time_not = 0;
[INFO] [stderr]     |         ----^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:817:9
[INFO] [stderr]     |
[INFO] [stderr] 817 |     let mut count_n = 0;
[INFO] [stderr]     |         ----^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:818:9
[INFO] [stderr]     |
[INFO] [stderr] 818 |     let mut max_path_board = (0, 0);
[INFO] [stderr]     |         ----^^^^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:819:9
[INFO] [stderr]     |
[INFO] [stderr] 819 |     let mut max_path = 0;
[INFO] [stderr]     |         ----^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:820:9
[INFO] [stderr]     |
[INFO] [stderr] 820 |     let mut max_reach_count_board = (0, 0);
[INFO] [stderr]     |         ----^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:821:9
[INFO] [stderr]     |
[INFO] [stderr] 821 |     let mut max_reach_count = 0;
[INFO] [stderr]     |         ----^^^^^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:822:9
[INFO] [stderr]     |
[INFO] [stderr] 822 |     let mut max_valid_count_board = (0, 0);
[INFO] [stderr]     |         ----^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:823:9
[INFO] [stderr]     |
[INFO] [stderr] 823 |     let mut max_valid_count = 0;
[INFO] [stderr]     |         ----^^^^^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:824:9
[INFO] [stderr]     |
[INFO] [stderr] 824 |     let mut reach_count = 0;
[INFO] [stderr]     |         ----^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:825:9
[INFO] [stderr]     |
[INFO] [stderr] 825 |     let mut valid_count = 0;
[INFO] [stderr]     |         ----^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/main.rs:826:9
[INFO] [stderr]     |
[INFO] [stderr] 826 |     for i in 0..n {
[INFO] [stderr]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `j`
[INFO] [stderr]    --> src/main.rs:828:13
[INFO] [stderr]     |
[INFO] [stderr] 828 |         for j in 0..20 {
[INFO] [stderr]     |             ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `flag`
[INFO] [stderr]    --> src/main.rs:892:18
[INFO] [stderr]     |
[INFO] [stderr] 892 |             let (flag, action) = result.unwrap();
[INFO] [stderr]     |                  ^^^^ help: if this is intentional, prefix it with an underscore: `_flag`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/main.rs:921:9
[INFO] [stderr]     |
[INFO] [stderr] 921 |     for i in 0..10000 {
[INFO] [stderr]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:961:9
[INFO] [stderr]     |
[INFO] [stderr] 961 |     let mut rng = thread_rng();
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:975:13
[INFO] [stderr]     |
[INFO] [stderr] 975 |         let mut r1 = 0.0;
[INFO] [stderr]     |             ----^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:976:13
[INFO] [stderr]     |
[INFO] [stderr] 976 |         let mut r2 = 0.0;
[INFO] [stderr]     |             ----^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rng`
[INFO] [stderr]    --> src/main.rs:961:9
[INFO] [stderr]     |
[INFO] [stderr] 961 |     let mut rng = thread_rng();
[INFO] [stderr]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `best` is assigned to, but never used
[INFO] [stderr]    --> src/main.rs:969:9
[INFO] [stderr]     |
[INFO] [stderr] 969 |     let mut best = get_position_eval_agent_alpha(3, 6, 1, 1, 6, 1, 5, 5, 1, 5, 5, 8, 8);
[INFO] [stderr]     |         ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: consider using `_best` instead
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/main.rs:972:9
[INFO] [stderr]     |
[INFO] [stderr] 972 |     for i in 0..1000 {
[INFO] [stderr]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `r1`
[INFO] [stderr]    --> src/main.rs:975:13
[INFO] [stderr]     |
[INFO] [stderr] 975 |         let mut r1 = 0.0;
[INFO] [stderr]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_r1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `r2`
[INFO] [stderr]    --> src/main.rs:976:13
[INFO] [stderr]     |
[INFO] [stderr] 976 |         let mut r2 = 0.0;
[INFO] [stderr]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_r2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/main.rs:980:18
[INFO] [stderr]     |
[INFO] [stderr] 980 |             let (i, r1_, r2_) = compare(&tar, test);
[INFO] [stderr]     |                  ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `best` is never read
[INFO] [stderr]    --> src/main.rs:989:13
[INFO] [stderr]     |
[INFO] [stderr] 989 |             best = tar;
[INFO] [stderr]     |             ^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `float`
[INFO] [stderr]     --> src/main.rs:1099:9
[INFO] [stderr]      |
[INFO] [stderr] 1099 |     let float = !((stone << 16) | 0xffff);
[INFO] [stderr]      |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_float`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ground`
[INFO] [stderr]     --> src/main.rs:1101:9
[INFO] [stderr]      |
[INFO] [stderr] 1101 |     let ground = ((stone << 16) | 0xffff) ^ stone;
[INFO] [stderr]      |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_ground`
[INFO] [stderr] 
[INFO] [stderr] warning: function `exp_prob_compare` is never used
[INFO] [stderr]    --> src/main.rs:170:4
[INFO] [stderr]     |
[INFO] [stderr] 170 | fn exp_prob_compare() {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `exp` is never used
[INFO] [stderr]    --> src/main.rs:219:4
[INFO] [stderr]     |
[INFO] [stderr] 219 | fn exp() {
[INFO] [stderr]     |    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `command` is never used
[INFO] [stderr]    --> src/main.rs:259:4
[INFO] [stderr]     |
[INFO] [stderr] 259 | fn command() {
[INFO] [stderr]     |    ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_magic_number` is never used
[INFO] [stderr]    --> src/main.rs:270:4
[INFO] [stderr]     |
[INFO] [stderr] 270 | fn get_magic_number() {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `call_evaluator` is never used
[INFO] [stderr]    --> src/main.rs:309:4
[INFO] [stderr]     |
[INFO] [stderr] 309 | fn call_evaluator() {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `exp_positoin_eval_get_count` is never used
[INFO] [stderr]    --> src/main.rs:328:4
[INFO] [stderr]     |
[INFO] [stderr] 328 | fn exp_positoin_eval_get_count() {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `print_pmodel` is never used
[INFO] [stderr]    --> src/main.rs:369:4
[INFO] [stderr]     |
[INFO] [stderr] 369 | fn print_pmodel() {
[INFO] [stderr]     |    ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `use_ai` is never used
[INFO] [stderr]    --> src/main.rs:376:4
[INFO] [stderr]     |
[INFO] [stderr] 376 | fn use_ai() {
[INFO] [stderr]     |    ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_random_board` is never used
[INFO] [stderr]    --> src/main.rs:420:4
[INFO] [stderr]     |
[INFO] [stderr] 420 | fn get_random_board(size: usize) -> Board {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `exp_mate_profile` is never used
[INFO] [stderr]    --> src/main.rs:428:4
[INFO] [stderr]     |
[INFO] [stderr] 428 | fn exp_mate_profile(a1: &impl GetAction, a2: &impl GetAction) {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `profile` is never used
[INFO] [stderr]    --> src/main.rs:523:4
[INFO] [stderr]     |
[INFO] [stderr] 523 | fn profile() {
[INFO] [stderr]     |    ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `mpc_for_coe` is never used
[INFO] [stderr]    --> src/main.rs:610:4
[INFO] [stderr]     |
[INFO] [stderr] 610 | fn mpc_for_coe(long_depth: u8, short_depth: u8) {
[INFO] [stderr]     |    ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `wrapping_line_eval` is never used
[INFO] [stderr]    --> src/main.rs:730:4
[INFO] [stderr]     |
[INFO] [stderr] 730 | fn wrapping_line_eval(l: LineEvaluator, depth: u8) -> MateWrapperActor {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `train_line_eval` is never used
[INFO] [stderr]    --> src/main.rs:747:4
[INFO] [stderr]     |
[INFO] [stderr] 747 | fn train_line_eval(train_db: String, valid_db: String) {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `expand_untill_n` is never used
[INFO] [stderr]    --> src/main.rs:786:4
[INFO] [stderr]     |
[INFO] [stderr] 786 | fn expand_untill_n(b: Board, n: usize) -> Vec<Board> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `mcts_statistics` is never used
[INFO] [stderr]    --> src/main.rs:913:4
[INFO] [stderr]     |
[INFO] [stderr] 913 | fn mcts_statistics() {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `random_i` is never used
[INFO] [stderr]    --> src/main.rs:937:4
[INFO] [stderr]     |
[INFO] [stderr] 937 | fn random_i(max: i32) -> i32 {
[INFO] [stderr]     |    ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_random_model` is never used
[INFO] [stderr]    --> src/main.rs:942:4
[INFO] [stderr]     |
[INFO] [stderr] 942 | fn get_random_model(max: i32) -> Agent {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `explore_best_model` is never used
[INFO] [stderr]    --> src/main.rs:960:4
[INFO] [stderr]     |
[INFO] [stderr] 960 | fn explore_best_model() {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `mc` is never used
[INFO] [stderr]    --> src/main.rs:997:4
[INFO] [stderr]     |
[INFO] [stderr] 997 | fn mc(a: usize, b: usize) -> Agent {
[INFO] [stderr]     |    ^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_co_eval_agent` is never used
[INFO] [stderr]     --> src/main.rs:1001:4
[INFO] [stderr]      |
[INFO] [stderr] 1001 | fn get_co_eval_agent(depth: usize, row_w: i32, pos_w: i32) -> Agent {
[INFO] [stderr]      |    ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_row_evaluator` is never used
[INFO] [stderr]     --> src/main.rs:1015:4
[INFO] [stderr]      |
[INFO] [stderr] 1015 | fn get_row_evaluator(depth: usize) -> Agent {
[INFO] [stderr]      |    ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_position_eval_agent` is never used
[INFO] [stderr]     --> src/main.rs:1024:4
[INFO] [stderr]      |
[INFO] [stderr] 1024 | fn get_position_eval_agent(depth: usize, v: i32, e: i32, s: i32, c: i32) -> Agent {
[INFO] [stderr]      |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_position_eval_agent_alpha` is never used
[INFO] [stderr]     --> src/main.rs:1037:4
[INFO] [stderr]      |
[INFO] [stderr] 1037 | fn get_position_eval_agent_alpha(
[INFO] [stderr]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `compare` is never used
[INFO] [stderr]     --> src/main.rs:1062:4
[INFO] [stderr]      |
[INFO] [stderr] 1062 | fn compare(a1: &impl GetAction, a2: &impl GetAction) -> (i32, f32, f32) {
[INFO] [stderr]      |    ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_v` is never used
[INFO] [stderr]     --> src/main.rs:1095:4
[INFO] [stderr]      |
[INFO] [stderr] 1095 | fn get_v(b: &Board) -> u32 {
[INFO] [stderr]      |    ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `beam_search` is never used
[INFO] [stderr]     --> src/main.rs:1108:4
[INFO] [stderr]      |
[INFO] [stderr] 1108 | fn beam_search() {
[INFO] [stderr]      |    ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `read_board_from_json` is never used
[INFO] [stderr]   --> src/main_utils.rs:12:8
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub fn read_board_from_json(file_name: &str) -> Vec<(u64, u64)> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `write_board_to_json` is never used
[INFO] [stderr]   --> src/main_utils.rs:17:8
[INFO] [stderr]    |
[INFO] [stderr] 17 | pub fn write_board_to_json(v: Vec<(u64, u64)>, file_name: &str) -> std::io::Result<()> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `GameRecordIterator` is never constructed
[INFO] [stderr]   --> src/main_utils.rs:24:12
[INFO] [stderr]    |
[INFO] [stderr] 24 | pub struct GameRecordIterator<A1: GetAction, A2: GetAction> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `reset` are never used
[INFO] [stderr]   --> src/main_utils.rs:31:12
[INFO] [stderr]    |
[INFO] [stderr] 30 | impl<A1: GetAction, A2: GetAction> GameRecordIterator<A1, A2> {
[INFO] [stderr]    | ------------------------------------------------------------- associated items in this implementation
[INFO] [stderr] 31 |     pub fn new(a1: A1, a2: A2) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 39 |     pub fn reset(&mut self) -> Board {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `test_pns` is never used
[INFO] [stderr]   --> src/main_utils.rs:61:8
[INFO] [stderr]    |
[INFO] [stderr] 61 | pub fn test_pns() {
[INFO] [stderr]    |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `generate_problems` is never used
[INFO] [stderr]   --> src/main_utils.rs:83:8
[INFO] [stderr]    |
[INFO] [stderr] 83 | pub fn generate_problems() {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/main.rs:53:5
[INFO] [stderr]    |
[INFO] [stderr] 53 |     l.load("sle_tl50.json".to_string());
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 53 |     let _ = l.load("sle_tl50.json".to_string());
[INFO] [stderr]    |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/main.rs:64:5
[INFO] [stderr]    |
[INFO] [stderr] 64 |     l.load("simple.json".to_string());
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 64 |     let _ = l.load("simple.json".to_string());
[INFO] [stderr]    |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/main.rs:74:5
[INFO] [stderr]    |
[INFO] [stderr] 74 |     b.load("bsimple.json".to_string());
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 74 |     let _ = b.load("bsimple.json".to_string());
[INFO] [stderr]    |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/main.rs:221:5
[INFO] [stderr]     |
[INFO] [stderr] 221 |     l.load("simple.json".to_string());
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 221 |     let _ = l.load("simple.json".to_string());
[INFO] [stderr]     |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/main.rs:311:5
[INFO] [stderr]     |
[INFO] [stderr] 311 |     l.load("simple.json".to_string());
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 311 |     let _ = l.load("simple.json".to_string());
[INFO] [stderr]     |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/main.rs:371:5
[INFO] [stderr]     |
[INFO] [stderr] 371 |     pmodel.load("position.json".to_string());
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 371 |     let _ = pmodel.load("position.json".to_string());
[INFO] [stderr]     |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/main.rs:378:5
[INFO] [stderr]     |
[INFO] [stderr] 378 |     l.load("simple.json".to_string());
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 378 |     let _ = l.load("simple.json".to_string());
[INFO] [stderr]     |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/main.rs:532:5
[INFO] [stderr]     |
[INFO] [stderr] 532 |     nmodel.load("sle_tl50_.json".to_string());
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 532 |     let _ = nmodel.load("sle_tl50_.json".to_string());
[INFO] [stderr]     |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/main.rs:613:5
[INFO] [stderr]     |
[INFO] [stderr] 613 |     l.load("bsimple.json".to_string());
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 613 |     let _ = l.load("bsimple.json".to_string());
[INFO] [stderr]     |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/main.rs:738:5
[INFO] [stderr]     |
[INFO] [stderr] 738 |     l.load("simple.json".to_string());
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 738 |     let _ = l.load("simple.json".to_string());
[INFO] [stderr]     |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/main_utils.rs:72:5
[INFO] [stderr]    |
[INFO] [stderr] 72 |     l.load("simple.json".to_string());
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 72 |     let _ = l.load("simple.json".to_string());
[INFO] [stderr]    |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/main_utils.rs:86:5
[INFO] [stderr]    |
[INFO] [stderr] 86 |     l.load("simple.json".to_string());
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 86 |     let _ = l.load("simple.json".to_string());
[INFO] [stderr]    |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/main_utils.rs:107:17
[INFO] [stderr]     |
[INFO] [stderr] 107 |                 write_board_to_json(problems, "tss10000.json");
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 107 |                 let _ = write_board_to_json(problems, "tss10000.json");
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/main_utils.rs:108:17
[INFO] [stderr]     |
[INFO] [stderr] 108 |                 write_board_to_json(problems_no_tss, "no_tss10000.json");
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 108 |                 let _ = write_board_to_json(problems_no_tss, "no_tss10000.json");
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: `qubic_engine` (bin "qubic_engine" test) generated 153 warnings (run `cargo fix --bin "qubic_engine" -p qubic_engine --tests` to apply 100 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.14s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/qubic_engine-7f2b990d63bb4249)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/qubic_engine-d52c70f5507d7249)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests qubic_engine
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/board.rs:411:13
[INFO] [stderr]     |
[INFO] [stderr] 411 |     let x = ((count_2row_(s, s >> 1, s >> 2, s >> 3, b, b >> 1, b >> 2, b >> 3)
[INFO] [stderr]     |             ^
[INFO] [stderr] 412 |         & 0x1111_1111_1111_1111)
[INFO] [stderr] 413 |         * 0xf);
[INFO] [stderr]     |              ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 411 ~     let x = (count_2row_(s, s >> 1, s >> 2, s >> 3, b, b >> 1, b >> 2, b >> 3)
[INFO] [stderr] 412 |         & 0x1111_1111_1111_1111)
[INFO] [stderr] 413 ~         * 0xf;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/board.rs:414:13
[INFO] [stderr]     |
[INFO] [stderr] 414 |     let y = ((count_2row_(s, s >> 4, s >> 8, s >> 12, b, b >> 4, b >> 8, b >> 12)
[INFO] [stderr]     |             ^
[INFO] [stderr] 415 |         & 0x000f_000f_000f_000f)
[INFO] [stderr] 416 |         * 0x1111);
[INFO] [stderr]     |                 ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 414 ~     let y = (count_2row_(s, s >> 4, s >> 8, s >> 12, b, b >> 4, b >> 8, b >> 12)
[INFO] [stderr] 415 |         & 0x000f_000f_000f_000f)
[INFO] [stderr] 416 ~         * 0x1111;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/board.rs:443:15
[INFO] [stderr]     |
[INFO] [stderr] 443 |     let xyz = (xyz1 | xyz2 | xyz3 | xyz4);
[INFO] [stderr]     |               ^                         ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 443 -     let xyz = (xyz1 | xyz2 | xyz3 | xyz4);
[INFO] [stderr] 443 +     let xyz = xyz1 | xyz2 | xyz3 | xyz4;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `return` value
[INFO] [stderr]    --> src/board.rs:464:12
[INFO] [stderr]     |
[INFO] [stderr] 464 |     return (b & c & (a | e) | e & f & (c | g));
[INFO] [stderr]     |            ^                                 ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 464 -     return (b & c & (a | e) | e & f & (c | g));
[INFO] [stderr] 464 +     return b & c & (a | e) | e & f & (c | g);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: 4 warnings emitted
[INFO] [stderr] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "e371b6bcd8656c4691418d395c9de31df32bfa99624bbe612596a4c11259887a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e371b6bcd8656c4691418d395c9de31df32bfa99624bbe612596a4c11259887a", kill_on_drop: false }`
[INFO] [stdout] e371b6bcd8656c4691418d395c9de31df32bfa99624bbe612596a4c11259887a
