[INFO] cloning repository https://github.com/HGHimself/tictactoe
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/HGHimself/tictactoe" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHGHimself%2Ftictactoe", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHGHimself%2Ftictactoe'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 0d8db819b2ceb29d905b786aa52fe242268daa9e
[INFO] testing HGHimself/tictactoe against 1.85.0 for beta-1.86-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHGHimself%2Ftictactoe" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/HGHimself/tictactoe on toolchain 1.85.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.85.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/HGHimself/tictactoe
[INFO] finished tweaking git repo https://github.com/HGHimself/tictactoe
[INFO] tweaked toml for git repo https://github.com/HGHimself/tictactoe written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/HGHimself/tictactoe 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" "+1.85.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.68
[INFO] [stderr]   Downloaded wasm-bindgen-backend v0.2.68
[INFO] [stderr]   Downloaded thread_local v1.0.1
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.68
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.68
[INFO] [stderr]   Downloaded getrandom v0.1.15
[INFO] [stderr]   Downloaded ppv-lite86 v0.2.9
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.68
[INFO] [stderr]   Downloaded aho-corasick v0.7.14
[INFO] [stderr]   Downloaded regex v1.4.1
[INFO] [stderr]   Downloaded syn v1.0.45
[INFO] [stderr]   Downloaded regex-syntax v0.6.20
[INFO] [stderr]   Downloaded libc v0.2.79
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/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:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+1.85.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] dab90c209b7845b57c4bf006e726c54e526b4f83afbb99c96f51f4788185d91f
[INFO] running `Command { std: "docker" "start" "-a" "dab90c209b7845b57c4bf006e726c54e526b4f83afbb99c96f51f4788185d91f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "dab90c209b7845b57c4bf006e726c54e526b4f83afbb99c96f51f4788185d91f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dab90c209b7845b57c4bf006e726c54e526b4f83afbb99c96f51f4788185d91f", kill_on_drop: false }`
[INFO] [stdout] dab90c209b7845b57c4bf006e726c54e526b4f83afbb99c96f51f4788185d91f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/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:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+1.85.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f0b78d7c71d16d71395e5dfe9407daffb6310a37367c024962527052bcc71f29
[INFO] running `Command { std: "docker" "start" "-a" "f0b78d7c71d16d71395e5dfe9407daffb6310a37367c024962527052bcc71f29", kill_on_drop: false }`
[INFO] [stderr]    Compiling cfg-if v0.1.10
[INFO] [stderr]    Compiling proc-macro2 v1.0.24
[INFO] [stderr]    Compiling unicode-xid v0.2.1
[INFO] [stderr]    Compiling libc v0.2.79
[INFO] [stderr]    Compiling syn v1.0.45
[INFO] [stderr]    Compiling log v0.4.11
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.68
[INFO] [stderr]    Compiling getrandom v0.1.15
[INFO] [stderr]    Compiling memchr v2.3.3
[INFO] [stderr]    Compiling bumpalo v3.4.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.9
[INFO] [stderr]    Compiling wasm-bindgen v0.2.68
[INFO] [stderr]    Compiling regex-syntax v0.6.20
[INFO] [stderr]    Compiling thread_local v1.0.1
[INFO] [stderr]    Compiling aho-corasick v0.7.14
[INFO] [stderr]    Compiling quote v1.0.7
[INFO] [stderr]    Compiling rand_core v0.5.1
[INFO] [stderr]    Compiling rand_chacha v0.2.2
[INFO] [stderr]    Compiling rand v0.7.3
[INFO] [stderr]    Compiling regex v1.4.1
[INFO] [stderr]    Compiling wasm-bindgen-backend v0.2.68
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.68
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.68
[INFO] [stderr]    Compiling tictactoe v0.1.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::cmp`
[INFO] [stdout]  --> src/lib.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/heuristic_counter.rs:161:8
[INFO] [stdout]     |
[INFO] [stdout] 161 |     if (x_4_in_row(input) != 0) {
[INFO] [stdout]     |        ^                      ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 161 -     if (x_4_in_row(input) != 0) {
[INFO] [stdout] 161 +     if x_4_in_row(input) != 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/heuristic_counter.rs:164:8
[INFO] [stdout]     |
[INFO] [stdout] 164 |     if (o_4_in_row(input) != 0) {
[INFO] [stdout]     |        ^                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 164 -     if (o_4_in_row(input) != 0) {
[INFO] [stdout] 164 +     if o_4_in_row(input) != 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/heuristic_counter.rs:172:14
[INFO] [stdout]     |
[INFO] [stdout] 172 |     count += (x_2_empty_2_in_row(input) + x_1_empty_2_in_row(input)); //[# of open-2-in-a-row for me]
[INFO] [stdout]     |              ^                                                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 172 -     count += (x_2_empty_2_in_row(input) + x_1_empty_2_in_row(input)); //[# of open-2-in-a-row for me]
[INFO] [stdout] 172 +     count += x_2_empty_2_in_row(input) + x_1_empty_2_in_row(input); //[# of open-2-in-a-row for me]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/heuristic_counter.rs:173:14
[INFO] [stdout]     |
[INFO] [stdout] 173 |     count -= (o_2_empty_2_in_row(input) + o_1_empty_2_in_row(input)); //[# of open-2-in-a-row for opponent]
[INFO] [stdout]     |              ^                                                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 173 -     count -= (o_2_empty_2_in_row(input) + o_1_empty_2_in_row(input)); //[# of open-2-in-a-row for opponent]
[INFO] [stdout] 173 +     count -= o_2_empty_2_in_row(input) + o_1_empty_2_in_row(input); //[# of open-2-in-a-row for opponent]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/heuristic_counter.rs:179:8
[INFO] [stdout]     |
[INFO] [stdout] 179 |     if (o_4_in_row(input) != 0) {
[INFO] [stdout]     |        ^                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 179 -     if (o_4_in_row(input) != 0) {
[INFO] [stdout] 179 +     if o_4_in_row(input) != 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/heuristic_counter.rs:182:8
[INFO] [stdout]     |
[INFO] [stdout] 182 |     if (x_4_in_row(input) != 0) {
[INFO] [stdout]     |        ^                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 182 -     if (x_4_in_row(input) != 0) {
[INFO] [stdout] 182 +     if x_4_in_row(input) != 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/heuristic_counter.rs:190:14
[INFO] [stdout]     |
[INFO] [stdout] 190 |     count += (o_2_empty_2_in_row(input) + o_1_empty_2_in_row(input)); //[# of open-2-in-a-row for me]
[INFO] [stdout]     |              ^                                                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 190 -     count += (o_2_empty_2_in_row(input) + o_1_empty_2_in_row(input)); //[# of open-2-in-a-row for me]
[INFO] [stdout] 190 +     count += o_2_empty_2_in_row(input) + o_1_empty_2_in_row(input); //[# of open-2-in-a-row for me]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/heuristic_counter.rs:191:14
[INFO] [stdout]     |
[INFO] [stdout] 191 |     count -= (x_2_empty_2_in_row(input) + x_1_empty_2_in_row(input)); //[# of open-2-in-a-row for opponent]
[INFO] [stdout]     |              ^                                                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 191 -     count -= (x_2_empty_2_in_row(input) + x_1_empty_2_in_row(input)); //[# of open-2-in-a-row for opponent]
[INFO] [stdout] 191 +     count -= x_2_empty_2_in_row(input) + x_1_empty_2_in_row(input); //[# of open-2-in-a-row for opponent]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/lib.rs:82:28
[INFO] [stdout]    |
[INFO] [stdout] 82 |         heuristic_total += (v_heuristic + h_heuristic);
[INFO] [stdout]    |                            ^                         ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 82 -         heuristic_total += (v_heuristic + h_heuristic);
[INFO] [stdout] 82 +         heuristic_total += v_heuristic + h_heuristic;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/lib.rs:107:28
[INFO] [stdout]     |
[INFO] [stdout] 107 |         heuristic_total += (v_heuristic + h_heuristic);
[INFO] [stdout]     |                            ^                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 107 -         heuristic_total += (v_heuristic + h_heuristic);
[INFO] [stdout] 107 +         heuristic_total += v_heuristic + h_heuristic;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/lib.rs:247:22
[INFO] [stdout]     |
[INFO] [stdout] 247 |                 let (x, y) = gen_random(self.length);
[INFO] [stdout]     |                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/lib.rs:247:25
[INFO] [stdout]     |
[INFO] [stdout] 247 |                 let (x, y) = gen_random(self.length);
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `player`, `opponent`, and `winner` are never read
[INFO] [stdout]   --> src/lib.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct TicTacToe {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 25 |     player: Symbol,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 26 |     opponent: Symbol,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 27 |     turn: Symbol,
[INFO] [stdout] 28 |     winner: Symbol,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_board` is never used
[INFO] [stdout]    --> src/lib.rs:325:8
[INFO] [stdout]     |
[INFO] [stdout] 324 | impl TicTacToe {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 325 |     fn get_board(&self) -> &Board {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 13.50s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: wasm-bindgen v0.2.68
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] running `Command { std: "docker" "inspect" "f0b78d7c71d16d71395e5dfe9407daffb6310a37367c024962527052bcc71f29", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f0b78d7c71d16d71395e5dfe9407daffb6310a37367c024962527052bcc71f29", kill_on_drop: false }`
[INFO] [stdout] f0b78d7c71d16d71395e5dfe9407daffb6310a37367c024962527052bcc71f29
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/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:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+1.85.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4944077a0f5841891c20b333c2bc1256a40c1aaefe7d7a6f41e8f18c7ff4996b
[INFO] running `Command { std: "docker" "start" "-a" "4944077a0f5841891c20b333c2bc1256a40c1aaefe7d7a6f41e8f18c7ff4996b", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `std::cmp`
[INFO] [stdout]  --> src/lib.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/heuristic_counter.rs:161:8
[INFO] [stdout]     |
[INFO] [stdout] 161 |     if (x_4_in_row(input) != 0) {
[INFO] [stdout]     |        ^                      ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 161 -     if (x_4_in_row(input) != 0) {
[INFO] [stdout] 161 +     if x_4_in_row(input) != 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/heuristic_counter.rs:164:8
[INFO] [stdout]     |
[INFO] [stdout] 164 |     if (o_4_in_row(input) != 0) {
[INFO] [stdout]     |        ^                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 164 -     if (o_4_in_row(input) != 0) {
[INFO] [stdout] 164 +     if o_4_in_row(input) != 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/heuristic_counter.rs:172:14
[INFO] [stdout]     |
[INFO] [stdout] 172 |     count += (x_2_empty_2_in_row(input) + x_1_empty_2_in_row(input)); //[# of open-2-in-a-row for me]
[INFO] [stdout]     |              ^                                                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 172 -     count += (x_2_empty_2_in_row(input) + x_1_empty_2_in_row(input)); //[# of open-2-in-a-row for me]
[INFO] [stdout] 172 +     count += x_2_empty_2_in_row(input) + x_1_empty_2_in_row(input); //[# of open-2-in-a-row for me]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/heuristic_counter.rs:173:14
[INFO] [stdout]     |
[INFO] [stdout] 173 |     count -= (o_2_empty_2_in_row(input) + o_1_empty_2_in_row(input)); //[# of open-2-in-a-row for opponent]
[INFO] [stdout]     |              ^                                                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 173 -     count -= (o_2_empty_2_in_row(input) + o_1_empty_2_in_row(input)); //[# of open-2-in-a-row for opponent]
[INFO] [stdout] 173 +     count -= o_2_empty_2_in_row(input) + o_1_empty_2_in_row(input); //[# of open-2-in-a-row for opponent]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/heuristic_counter.rs:179:8
[INFO] [stdout]     |
[INFO] [stdout] 179 |     if (o_4_in_row(input) != 0) {
[INFO] [stdout]     |        ^                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 179 -     if (o_4_in_row(input) != 0) {
[INFO] [stdout] 179 +     if o_4_in_row(input) != 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/heuristic_counter.rs:182:8
[INFO] [stdout]     |
[INFO] [stdout] 182 |     if (x_4_in_row(input) != 0) {
[INFO] [stdout]     |        ^                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 182 -     if (x_4_in_row(input) != 0) {
[INFO] [stdout] 182 +     if x_4_in_row(input) != 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/heuristic_counter.rs:190:14
[INFO] [stdout]     |
[INFO] [stdout] 190 |     count += (o_2_empty_2_in_row(input) + o_1_empty_2_in_row(input)); //[# of open-2-in-a-row for me]
[INFO] [stdout]     |              ^                                                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 190 -     count += (o_2_empty_2_in_row(input) + o_1_empty_2_in_row(input)); //[# of open-2-in-a-row for me]
[INFO] [stdout] 190 +     count += o_2_empty_2_in_row(input) + o_1_empty_2_in_row(input); //[# of open-2-in-a-row for me]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/heuristic_counter.rs:191:14
[INFO] [stdout]     |
[INFO] [stdout] 191 |     count -= (x_2_empty_2_in_row(input) + x_1_empty_2_in_row(input)); //[# of open-2-in-a-row for opponent]
[INFO] [stdout]     |              ^                                                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 191 -     count -= (x_2_empty_2_in_row(input) + x_1_empty_2_in_row(input)); //[# of open-2-in-a-row for opponent]
[INFO] [stdout] 191 +     count -= x_2_empty_2_in_row(input) + x_1_empty_2_in_row(input); //[# of open-2-in-a-row for opponent]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/lib.rs:82:28
[INFO] [stdout]    |
[INFO] [stdout] 82 |         heuristic_total += (v_heuristic + h_heuristic);
[INFO] [stdout]    |                            ^                         ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 82 -         heuristic_total += (v_heuristic + h_heuristic);
[INFO] [stdout] 82 +         heuristic_total += v_heuristic + h_heuristic;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/lib.rs:107:28
[INFO] [stdout]     |
[INFO] [stdout] 107 |         heuristic_total += (v_heuristic + h_heuristic);
[INFO] [stdout]     |                            ^                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 107 -         heuristic_total += (v_heuristic + h_heuristic);
[INFO] [stdout] 107 +         heuristic_total += v_heuristic + h_heuristic;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/lib.rs:247:22
[INFO] [stdout]     |
[INFO] [stdout] 247 |                 let (x, y) = gen_random(self.length);
[INFO] [stdout]     |                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/lib.rs:247:25
[INFO] [stdout]     |
[INFO] [stdout] 247 |                 let (x, y) = gen_random(self.length);
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `player`, `opponent`, and `winner` are never read
[INFO] [stdout]   --> src/lib.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct TicTacToe {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 25 |     player: Symbol,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 26 |     opponent: Symbol,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 27 |     turn: Symbol,
[INFO] [stdout] 28 |     winner: Symbol,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_board` is never used
[INFO] [stdout]    --> src/lib.rs:325:8
[INFO] [stdout]     |
[INFO] [stdout] 324 | impl TicTacToe {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 325 |     fn get_board(&self) -> &Board {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling tictactoe v0.1.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::cmp`
[INFO] [stdout]  --> src/lib.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/heuristic_counter.rs:161:8
[INFO] [stdout]     |
[INFO] [stdout] 161 |     if (x_4_in_row(input) != 0) {
[INFO] [stdout]     |        ^                      ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 161 -     if (x_4_in_row(input) != 0) {
[INFO] [stdout] 161 +     if x_4_in_row(input) != 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/heuristic_counter.rs:164:8
[INFO] [stdout]     |
[INFO] [stdout] 164 |     if (o_4_in_row(input) != 0) {
[INFO] [stdout]     |        ^                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 164 -     if (o_4_in_row(input) != 0) {
[INFO] [stdout] 164 +     if o_4_in_row(input) != 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/heuristic_counter.rs:172:14
[INFO] [stdout]     |
[INFO] [stdout] 172 |     count += (x_2_empty_2_in_row(input) + x_1_empty_2_in_row(input)); //[# of open-2-in-a-row for me]
[INFO] [stdout]     |              ^                                                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 172 -     count += (x_2_empty_2_in_row(input) + x_1_empty_2_in_row(input)); //[# of open-2-in-a-row for me]
[INFO] [stdout] 172 +     count += x_2_empty_2_in_row(input) + x_1_empty_2_in_row(input); //[# of open-2-in-a-row for me]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/heuristic_counter.rs:173:14
[INFO] [stdout]     |
[INFO] [stdout] 173 |     count -= (o_2_empty_2_in_row(input) + o_1_empty_2_in_row(input)); //[# of open-2-in-a-row for opponent]
[INFO] [stdout]     |              ^                                                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 173 -     count -= (o_2_empty_2_in_row(input) + o_1_empty_2_in_row(input)); //[# of open-2-in-a-row for opponent]
[INFO] [stdout] 173 +     count -= o_2_empty_2_in_row(input) + o_1_empty_2_in_row(input); //[# of open-2-in-a-row for opponent]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/heuristic_counter.rs:179:8
[INFO] [stdout]     |
[INFO] [stdout] 179 |     if (o_4_in_row(input) != 0) {
[INFO] [stdout]     |        ^                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 179 -     if (o_4_in_row(input) != 0) {
[INFO] [stdout] 179 +     if o_4_in_row(input) != 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/heuristic_counter.rs:182:8
[INFO] [stdout]     |
[INFO] [stdout] 182 |     if (x_4_in_row(input) != 0) {
[INFO] [stdout]     |        ^                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 182 -     if (x_4_in_row(input) != 0) {
[INFO] [stdout] 182 +     if x_4_in_row(input) != 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/heuristic_counter.rs:190:14
[INFO] [stdout]     |
[INFO] [stdout] 190 |     count += (o_2_empty_2_in_row(input) + o_1_empty_2_in_row(input)); //[# of open-2-in-a-row for me]
[INFO] [stdout]     |              ^                                                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 190 -     count += (o_2_empty_2_in_row(input) + o_1_empty_2_in_row(input)); //[# of open-2-in-a-row for me]
[INFO] [stdout] 190 +     count += o_2_empty_2_in_row(input) + o_1_empty_2_in_row(input); //[# of open-2-in-a-row for me]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/heuristic_counter.rs:191:14
[INFO] [stdout]     |
[INFO] [stdout] 191 |     count -= (x_2_empty_2_in_row(input) + x_1_empty_2_in_row(input)); //[# of open-2-in-a-row for opponent]
[INFO] [stdout]     |              ^                                                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 191 -     count -= (x_2_empty_2_in_row(input) + x_1_empty_2_in_row(input)); //[# of open-2-in-a-row for opponent]
[INFO] [stdout] 191 +     count -= x_2_empty_2_in_row(input) + x_1_empty_2_in_row(input); //[# of open-2-in-a-row for opponent]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/heuristic_counter.rs:543:18
[INFO] [stdout]     |
[INFO] [stdout] 543 |         count += (x_2_empty_2_in_row(input) + x_1_empty_2_in_row(input)); //[# of open-2-in-a-row for me]
[INFO] [stdout]     |                  ^                                                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 543 -         count += (x_2_empty_2_in_row(input) + x_1_empty_2_in_row(input)); //[# of open-2-in-a-row for me]
[INFO] [stdout] 543 +         count += x_2_empty_2_in_row(input) + x_1_empty_2_in_row(input); //[# of open-2-in-a-row for me]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/heuristic_counter.rs:545:18
[INFO] [stdout]     |
[INFO] [stdout] 545 |         count -= (o_2_empty_2_in_row(input) + o_1_empty_2_in_row(input)); //[# of open-2-in-a-row for opponent]
[INFO] [stdout]     |                  ^                                                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 545 -         count -= (o_2_empty_2_in_row(input) + o_1_empty_2_in_row(input)); //[# of open-2-in-a-row for opponent]
[INFO] [stdout] 545 +         count -= o_2_empty_2_in_row(input) + o_1_empty_2_in_row(input); //[# of open-2-in-a-row for opponent]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/lib.rs:82:28
[INFO] [stdout]    |
[INFO] [stdout] 82 |         heuristic_total += (v_heuristic + h_heuristic);
[INFO] [stdout]    |                            ^                         ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 82 -         heuristic_total += (v_heuristic + h_heuristic);
[INFO] [stdout] 82 +         heuristic_total += v_heuristic + h_heuristic;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/lib.rs:107:28
[INFO] [stdout]     |
[INFO] [stdout] 107 |         heuristic_total += (v_heuristic + h_heuristic);
[INFO] [stdout]     |                            ^                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 107 -         heuristic_total += (v_heuristic + h_heuristic);
[INFO] [stdout] 107 +         heuristic_total += v_heuristic + h_heuristic;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/lib.rs:247:22
[INFO] [stdout]     |
[INFO] [stdout] 247 |                 let (x, y) = gen_random(self.length);
[INFO] [stdout]     |                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/lib.rs:247:25
[INFO] [stdout]     |
[INFO] [stdout] 247 |                 let (x, y) = gen_random(self.length);
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `player`, `opponent`, and `winner` are never read
[INFO] [stdout]   --> src/lib.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct TicTacToe {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 25 |     player: Symbol,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 26 |     opponent: Symbol,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 27 |     turn: Symbol,
[INFO] [stdout] 28 |     winner: Symbol,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.45s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: wasm-bindgen v0.2.68
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] running `Command { std: "docker" "inspect" "4944077a0f5841891c20b333c2bc1256a40c1aaefe7d7a6f41e8f18c7ff4996b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4944077a0f5841891c20b333c2bc1256a40c1aaefe7d7a6f41e8f18c7ff4996b", kill_on_drop: false }`
[INFO] [stdout] 4944077a0f5841891c20b333c2bc1256a40c1aaefe7d7a6f41e8f18c7ff4996b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/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:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+1.85.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 09dd04938c3518ccaf5967f80e16d127ecf44e51bd578ac5247a2677df758060
[INFO] running `Command { std: "docker" "start" "-a" "09dd04938c3518ccaf5967f80e16d127ecf44e51bd578ac5247a2677df758060", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `std::cmp`
[INFO] [stderr]  --> src/lib.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::cmp;
[INFO] [stderr]   |     ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/heuristic_counter.rs:161:8
[INFO] [stderr]     |
[INFO] [stderr] 161 |     if (x_4_in_row(input) != 0) {
[INFO] [stderr]     |        ^                      ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 161 -     if (x_4_in_row(input) != 0) {
[INFO] [stderr] 161 +     if x_4_in_row(input) != 0 {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/heuristic_counter.rs:164:8
[INFO] [stderr]     |
[INFO] [stderr] 164 |     if (o_4_in_row(input) != 0) {
[INFO] [stderr]     |        ^                      ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 164 -     if (o_4_in_row(input) != 0) {
[INFO] [stderr] 164 +     if o_4_in_row(input) != 0 {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/heuristic_counter.rs:172:14
[INFO] [stderr]     |
[INFO] [stderr] 172 |     count += (x_2_empty_2_in_row(input) + x_1_empty_2_in_row(input)); //[# of open-2-in-a-row for me]
[INFO] [stderr]     |              ^                                                     ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 172 -     count += (x_2_empty_2_in_row(input) + x_1_empty_2_in_row(input)); //[# of open-2-in-a-row for me]
[INFO] [stderr] 172 +     count += x_2_empty_2_in_row(input) + x_1_empty_2_in_row(input); //[# of open-2-in-a-row for me]
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/heuristic_counter.rs:173:14
[INFO] [stderr]     |
[INFO] [stderr] 173 |     count -= (o_2_empty_2_in_row(input) + o_1_empty_2_in_row(input)); //[# of open-2-in-a-row for opponent]
[INFO] [stderr]     |              ^                                                     ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 173 -     count -= (o_2_empty_2_in_row(input) + o_1_empty_2_in_row(input)); //[# of open-2-in-a-row for opponent]
[INFO] [stderr] 173 +     count -= o_2_empty_2_in_row(input) + o_1_empty_2_in_row(input); //[# of open-2-in-a-row for opponent]
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/heuristic_counter.rs:179:8
[INFO] [stderr]     |
[INFO] [stderr] 179 |     if (o_4_in_row(input) != 0) {
[INFO] [stderr]     |        ^                      ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 179 -     if (o_4_in_row(input) != 0) {
[INFO] [stderr] 179 +     if o_4_in_row(input) != 0 {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/heuristic_counter.rs:182:8
[INFO] [stderr]     |
[INFO] [stderr] 182 |     if (x_4_in_row(input) != 0) {
[INFO] [stderr]     |        ^                      ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 182 -     if (x_4_in_row(input) != 0) {
[INFO] [stderr] 182 +     if x_4_in_row(input) != 0 {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/heuristic_counter.rs:190:14
[INFO] [stderr]     |
[INFO] [stderr] 190 |     count += (o_2_empty_2_in_row(input) + o_1_empty_2_in_row(input)); //[# of open-2-in-a-row for me]
[INFO] [stderr]     |              ^                                                     ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 190 -     count += (o_2_empty_2_in_row(input) + o_1_empty_2_in_row(input)); //[# of open-2-in-a-row for me]
[INFO] [stderr] 190 +     count += o_2_empty_2_in_row(input) + o_1_empty_2_in_row(input); //[# of open-2-in-a-row for me]
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/heuristic_counter.rs:191:14
[INFO] [stderr]     |
[INFO] [stderr] 191 |     count -= (x_2_empty_2_in_row(input) + x_1_empty_2_in_row(input)); //[# of open-2-in-a-row for opponent]
[INFO] [stderr]     |              ^                                                     ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 191 -     count -= (x_2_empty_2_in_row(input) + x_1_empty_2_in_row(input)); //[# of open-2-in-a-row for opponent]
[INFO] [stderr] 191 +     count -= x_2_empty_2_in_row(input) + x_1_empty_2_in_row(input); //[# of open-2-in-a-row for opponent]
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]   --> src/lib.rs:82:28
[INFO] [stderr]    |
[INFO] [stderr] 82 |         heuristic_total += (v_heuristic + h_heuristic);
[INFO] [stderr]    |                            ^                         ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 82 -         heuristic_total += (v_heuristic + h_heuristic);
[INFO] [stderr] 82 +         heuristic_total += v_heuristic + h_heuristic;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/lib.rs:107:28
[INFO] [stderr]     |
[INFO] [stderr] 107 |         heuristic_total += (v_heuristic + h_heuristic);
[INFO] [stderr]     |                            ^                         ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 107 -         heuristic_total += (v_heuristic + h_heuristic);
[INFO] [stderr] 107 +         heuristic_total += v_heuristic + h_heuristic;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/lib.rs:247:22
[INFO] [stderr]     |
[INFO] [stderr] 247 |                 let (x, y) = gen_random(self.length);
[INFO] [stderr]     |                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `y`
[INFO] [stderr]    --> src/lib.rs:247:25
[INFO] [stderr]     |
[INFO] [stderr] 247 |                 let (x, y) = gen_random(self.length);
[INFO] [stderr]     |                         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stderr] 
[INFO] [stderr] warning: fields `player`, `opponent`, and `winner` are never read
[INFO] [stderr]   --> src/lib.rs:25:5
[INFO] [stderr]    |
[INFO] [stderr] 21 | pub struct TicTacToe {
[INFO] [stderr]    |            --------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 25 |     player: Symbol,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 26 |     opponent: Symbol,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 27 |     turn: Symbol,
[INFO] [stderr] 28 |     winner: Symbol,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `get_board` is never used
[INFO] [stderr]    --> src/lib.rs:325:8
[INFO] [stderr]     |
[INFO] [stderr] 324 | impl TicTacToe {
[INFO] [stderr]     | -------------- method in this implementation
[INFO] [stderr] 325 |     fn get_board(&self) -> &Board {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/heuristic_counter.rs:543:18
[INFO] [stderr]     |
[INFO] [stderr] 543 |         count += (x_2_empty_2_in_row(input) + x_1_empty_2_in_row(input)); //[# of open-2-in-a-row for me]
[INFO] [stderr]     |                  ^                                                     ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 543 -         count += (x_2_empty_2_in_row(input) + x_1_empty_2_in_row(input)); //[# of open-2-in-a-row for me]
[INFO] [stderr] 543 +         count += x_2_empty_2_in_row(input) + x_1_empty_2_in_row(input); //[# of open-2-in-a-row for me]
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/heuristic_counter.rs:545:18
[INFO] [stderr]     |
[INFO] [stderr] 545 |         count -= (o_2_empty_2_in_row(input) + o_1_empty_2_in_row(input)); //[# of open-2-in-a-row for opponent]
[INFO] [stderr]     |                  ^                                                     ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 545 -         count -= (o_2_empty_2_in_row(input) + o_1_empty_2_in_row(input)); //[# of open-2-in-a-row for opponent]
[INFO] [stderr] 545 +         count -= o_2_empty_2_in_row(input) + o_1_empty_2_in_row(input); //[# of open-2-in-a-row for opponent]
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: `tictactoe` (lib) generated 15 warnings (run `cargo fix --lib -p tictactoe` to apply 11 suggestions)
[INFO] [stderr] warning: `tictactoe` (lib test) generated 16 warnings (14 duplicates) (run `cargo fix --lib -p tictactoe --tests` to apply 2 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.12s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: wasm-bindgen v0.2.68
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/tictactoe-f8cef6abb80f60c2)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test test::test_get_all_potential_moves ... ok
[INFO] [stdout] test test::test_xy_to_linear ... ok
[INFO] [stdout] test heuristic_counter::test::test_x_2_empty_2_in_row ... ok
[INFO] [stdout] test heuristic_counter::test::test_x_2_empty_3_in_row ... ok
[INFO] [stdout] test heuristic_counter::test::test_x_1_empty_3_in_row ... ok
[INFO] [stdout] test test::test_move ... ok
[INFO] [stdout] test heuristic_counter::test::test_x_1_empty_2_in_row ... ok
[INFO] [stdout] test heuristic_counter::test::test_heuristic ... ok
[INFO] [stdout] test test::test_heuristic ... ok
[INFO] [stdout] test test::test_terminal ... ok
[INFO] [stdout] test test::test_agent_move ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.03s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/tictactoe-747b41b342e37c2d)
[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 tictactoe
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/heuristic_counter.rs:161:8
[INFO] [stderr]     |
[INFO] [stderr] 161 |     if (x_4_in_row(input) != 0) {
[INFO] [stderr]     |        ^                      ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 161 -     if (x_4_in_row(input) != 0) {
[INFO] [stderr] 161 +     if x_4_in_row(input) != 0 {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/heuristic_counter.rs:164:8
[INFO] [stderr]     |
[INFO] [stderr] 164 |     if (o_4_in_row(input) != 0) {
[INFO] [stderr]     |        ^                      ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 164 -     if (o_4_in_row(input) != 0) {
[INFO] [stderr] 164 +     if o_4_in_row(input) != 0 {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/heuristic_counter.rs:172:14
[INFO] [stderr]     |
[INFO] [stderr] 172 |     count += (x_2_empty_2_in_row(input) + x_1_empty_2_in_row(input)); //[# of open-2-in-a-row for me]
[INFO] [stderr]     |              ^                                                     ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 172 -     count += (x_2_empty_2_in_row(input) + x_1_empty_2_in_row(input)); //[# of open-2-in-a-row for me]
[INFO] [stderr] 172 +     count += x_2_empty_2_in_row(input) + x_1_empty_2_in_row(input); //[# of open-2-in-a-row for me]
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/heuristic_counter.rs:173:14
[INFO] [stderr]     |
[INFO] [stderr] 173 |     count -= (o_2_empty_2_in_row(input) + o_1_empty_2_in_row(input)); //[# of open-2-in-a-row for opponent]
[INFO] [stderr]     |              ^                                                     ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 173 -     count -= (o_2_empty_2_in_row(input) + o_1_empty_2_in_row(input)); //[# of open-2-in-a-row for opponent]
[INFO] [stderr] 173 +     count -= o_2_empty_2_in_row(input) + o_1_empty_2_in_row(input); //[# of open-2-in-a-row for opponent]
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/heuristic_counter.rs:179:8
[INFO] [stderr]     |
[INFO] [stderr] 179 |     if (o_4_in_row(input) != 0) {
[INFO] [stderr]     |        ^                      ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 179 -     if (o_4_in_row(input) != 0) {
[INFO] [stderr] 179 +     if o_4_in_row(input) != 0 {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/heuristic_counter.rs:182:8
[INFO] [stderr]     |
[INFO] [stderr] 182 |     if (x_4_in_row(input) != 0) {
[INFO] [stderr]     |        ^                      ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 182 -     if (x_4_in_row(input) != 0) {
[INFO] [stderr] 182 +     if x_4_in_row(input) != 0 {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/heuristic_counter.rs:190:14
[INFO] [stderr]     |
[INFO] [stderr] 190 |     count += (o_2_empty_2_in_row(input) + o_1_empty_2_in_row(input)); //[# of open-2-in-a-row for me]
[INFO] [stderr]     |              ^                                                     ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 190 -     count += (o_2_empty_2_in_row(input) + o_1_empty_2_in_row(input)); //[# of open-2-in-a-row for me]
[INFO] [stderr] 190 +     count += o_2_empty_2_in_row(input) + o_1_empty_2_in_row(input); //[# of open-2-in-a-row for me]
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/heuristic_counter.rs:191:14
[INFO] [stderr]     |
[INFO] [stderr] 191 |     count -= (x_2_empty_2_in_row(input) + x_1_empty_2_in_row(input)); //[# of open-2-in-a-row for opponent]
[INFO] [stderr]     |              ^                                                     ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 191 -     count -= (x_2_empty_2_in_row(input) + x_1_empty_2_in_row(input)); //[# of open-2-in-a-row for opponent]
[INFO] [stderr] 191 +     count -= x_2_empty_2_in_row(input) + x_1_empty_2_in_row(input); //[# of open-2-in-a-row for opponent]
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]   --> src/lib.rs:82:28
[INFO] [stderr]    |
[INFO] [stderr] 82 |         heuristic_total += (v_heuristic + h_heuristic);
[INFO] [stderr]    |                            ^                         ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 82 -         heuristic_total += (v_heuristic + h_heuristic);
[INFO] [stderr] 82 +         heuristic_total += v_heuristic + h_heuristic;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/lib.rs:107:28
[INFO] [stderr]     |
[INFO] [stderr] 107 |         heuristic_total += (v_heuristic + h_heuristic);
[INFO] [stderr]     |                            ^                         ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 107 -         heuristic_total += (v_heuristic + h_heuristic);
[INFO] [stderr] 107 +         heuristic_total += v_heuristic + h_heuristic;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: 10 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" "09dd04938c3518ccaf5967f80e16d127ecf44e51bd578ac5247a2677df758060", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "09dd04938c3518ccaf5967f80e16d127ecf44e51bd578ac5247a2677df758060", kill_on_drop: false }`
[INFO] [stdout] 09dd04938c3518ccaf5967f80e16d127ecf44e51bd578ac5247a2677df758060
