[INFO] cloning repository https://github.com/2ToTheNthPower/fastpente [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/2ToTheNthPower/fastpente" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F2ToTheNthPower%2Ffastpente", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F2ToTheNthPower%2Ffastpente'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 6f5dcf2d039572c7f26b56d03ac771dbd12f76e8 [INFO] checking 2ToTheNthPower/fastpente against master#2e6fc425411280c658d852813de01c5157255088 for pr-128013 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F2ToTheNthPower%2Ffastpente" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/2ToTheNthPower/fastpente on toolchain 2e6fc425411280c658d852813de01c5157255088 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+2e6fc425411280c658d852813de01c5157255088" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/2ToTheNthPower/fastpente [INFO] finished tweaking git repo https://github.com/2ToTheNthPower/fastpente [INFO] tweaked toml for git repo https://github.com/2ToTheNthPower/fastpente written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/2ToTheNthPower/fastpente 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" "+2e6fc425411280c658d852813de01c5157255088" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:dff56e7819e73ed36160586b3445e93eb0be776c16704aeeded9c3fb668b2384" "/opt/rustwide/cargo-home/bin/cargo" "+2e6fc425411280c658d852813de01c5157255088" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 48dd9c09a505b895f2ee3a223c510d96cf9b37f18f67ae6ad2aaab4e1fbcb766 [INFO] running `Command { std: "docker" "start" "-a" "48dd9c09a505b895f2ee3a223c510d96cf9b37f18f67ae6ad2aaab4e1fbcb766", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "48dd9c09a505b895f2ee3a223c510d96cf9b37f18f67ae6ad2aaab4e1fbcb766", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "48dd9c09a505b895f2ee3a223c510d96cf9b37f18f67ae6ad2aaab4e1fbcb766", kill_on_drop: false }` [INFO] [stdout] 48dd9c09a505b895f2ee3a223c510d96cf9b37f18f67ae6ad2aaab4e1fbcb766 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:dff56e7819e73ed36160586b3445e93eb0be776c16704aeeded9c3fb668b2384" "/opt/rustwide/cargo-home/bin/cargo" "+2e6fc425411280c658d852813de01c5157255088" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 711b37367695d8d0b32b63cf5128dcce1f72bafe0d16c2748bb2850025f91d87 [INFO] running `Command { std: "docker" "start" "-a" "711b37367695d8d0b32b63cf5128dcce1f72bafe0d16c2748bb2850025f91d87", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.71 [INFO] [stderr] Compiling libc v0.2.151 [INFO] [stderr] Compiling num-traits v0.2.17 [INFO] [stderr] Compiling matrixmultiply v0.3.8 [INFO] [stderr] Compiling num-integer v0.1.45 [INFO] [stderr] Checking rawpointer v0.2.1 [INFO] [stderr] Compiling quote v1.0.33 [INFO] [stderr] Checking getrandom v0.2.11 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Compiling syn v2.0.43 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking num-complex v0.4.4 [INFO] [stderr] Checking ndarray v0.15.6 [INFO] [stderr] Compiling serde_derive v1.0.193 [INFO] [stderr] Checking serde v1.0.193 [INFO] [stderr] Checking bincode v1.3.3 [INFO] [stderr] Checking fast_pente v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `array` [INFO] [stdout] --> src/board.rs:2:15 [INFO] [stdout] | [INFO] [stdout] 2 | use ndarray::{array, Array2, Dimension}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Read` and `Write` [INFO] [stdout] --> src/game.rs:1:15 [INFO] [stdout] | [INFO] [stdout] 1 | use std::io::{Read, Write}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs::File` [INFO] [stdout] --> src/game.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fs::File; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::random_player::get_piece_id` [INFO] [stdout] --> src/game.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::random_player::get_piece_id; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `array` [INFO] [stdout] --> src/board.rs:2:15 [INFO] [stdout] | [INFO] [stdout] 2 | use ndarray::{array, Array2, Dimension}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/main.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Duration` [INFO] [stdout] --> src/main.rs:7:17 [INFO] [stdout] | [INFO] [stdout] 7 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Read` and `Write` [INFO] [stdout] --> src/game.rs:1:15 [INFO] [stdout] | [INFO] [stdout] 1 | use std::io::{Read, Write}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs::File` [INFO] [stdout] --> src/game.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fs::File; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::random_player::get_piece_id` [INFO] [stdout] --> src/game.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::random_player::get_piece_id; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/main.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Duration` [INFO] [stdout] --> src/main.rs:7:17 [INFO] [stdout] | [INFO] [stdout] 7 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Dimension` [INFO] [stdout] --> src/board.rs:2:30 [INFO] [stdout] | [INFO] [stdout] 2 | use ndarray::{array, Array2, Dimension}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Dimension` [INFO] [stdout] --> src/board.rs:2:30 [INFO] [stdout] | [INFO] [stdout] 2 | use ndarray::{array, Array2, Dimension}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `row` [INFO] [stdout] --> src/board.rs:56:13 [INFO] [stdout] | [INFO] [stdout] 56 | for row in 0..self.grid.shape()[0] { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_row` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `row` [INFO] [stdout] --> src/board.rs:56:13 [INFO] [stdout] | [INFO] [stdout] 56 | for row in 0..self.grid.shape()[0] { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_row` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/random_player.rs:52:25 [INFO] [stdout] | [INFO] [stdout] 52 | pub fn think(&self, mut game:Game) -> (usize, usize) { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/random_player.rs:52:25 [INFO] [stdout] | [INFO] [stdout] 52 | pub fn think(&self, mut game:Game) -> (usize, usize) { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/mcts_player.rs:41:14 [INFO] [stdout] | [INFO] [stdout] 41 | for (i, action) in valid_actions.iter().enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `is_draw_count` [INFO] [stdout] --> src/mcts_player.rs:43:50 [INFO] [stdout] | [INFO] [stdout] 43 | let (winner_0_count, winner_1_count, is_draw_count) = game.rollout(self.num_rollouts); [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_draw_count` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/mcts_player.rs:35:13 [INFO] [stdout] | [INFO] [stdout] 35 | let mut valid_actions = game.board.get_moves(); [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/mcts_player.rs:45:17 [INFO] [stdout] | [INFO] [stdout] 45 | let mut win_diff = winner_0_count as f32 - winner_1_count as f32; [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `num_players` [INFO] [stdout] --> src/game.rs:31:29 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn new(size: usize, num_players: usize) -> Game { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_players` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `num_players` [INFO] [stdout] --> src/game.rs:42:42 [INFO] [stdout] | [INFO] [stdout] 42 | pub fn reset(&mut self, size: usize, num_players: usize) -> Game { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_players` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `board` [INFO] [stdout] --> src/game.rs:61:18 [INFO] [stdout] | [INFO] [stdout] 61 | let (board, reward, done, outcome) = game.run(true); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_board` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `reward` [INFO] [stdout] --> src/game.rs:61:25 [INFO] [stdout] | [INFO] [stdout] 61 | let (board, reward, done, outcome) = game.run(true); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_reward` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `done` [INFO] [stdout] --> src/game.rs:61:33 [INFO] [stdout] | [INFO] [stdout] 61 | let (board, reward, done, outcome) = game.run(true); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_done` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/game.rs:60:17 [INFO] [stdout] | [INFO] [stdout] 60 | let mut game = self.clone(); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `action` [INFO] [stdout] --> src/game.rs:77:17 [INFO] [stdout] | [INFO] [stdout] 77 | for (i, action) in valid_actions.iter().enumerate() { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_action` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `is_draw_count` [INFO] [stdout] --> src/game.rs:79:50 [INFO] [stdout] | [INFO] [stdout] 79 | let (winner_0_count, winner_1_count, is_draw_count) = self.rollout(rollouts_per_move); [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_draw_count` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/game.rs:75:13 [INFO] [stdout] | [INFO] [stdout] 75 | let mut valid_actions = self.board.get_moves(); [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `action` is never read [INFO] [stdout] --> src/game.rs:273:21 [INFO] [stdout] | [INFO] [stdout] 273 | let mut action = (0, 0); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/game.rs:279:21 [INFO] [stdout] | [INFO] [stdout] 279 | let mut valid_actions = self.board.get_moves(); [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `num_draws` [INFO] [stdout] --> src/main.rs:17:13 [INFO] [stdout] | [INFO] [stdout] 17 | let mut num_draws = 0; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_draws` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `num_wins` [INFO] [stdout] --> src/main.rs:18:13 [INFO] [stdout] | [INFO] [stdout] 18 | let mut num_wins = vec![0; num_players]; [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_wins` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `board` [INFO] [stdout] --> src/main.rs:22:14 [INFO] [stdout] | [INFO] [stdout] 22 | let (board, reward, done, outcome) = game.run(false, ); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_board` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `reward` [INFO] [stdout] --> src/main.rs:22:21 [INFO] [stdout] | [INFO] [stdout] 22 | let (board, reward, done, outcome) = game.run(false, ); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_reward` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `done` [INFO] [stdout] --> src/main.rs:22:29 [INFO] [stdout] | [INFO] [stdout] 22 | let (board, reward, done, outcome) = game.run(false, ); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_done` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `outcome` [INFO] [stdout] --> src/main.rs:22:35 [INFO] [stdout] | [INFO] [stdout] 22 | let (board, reward, done, outcome) = game.run(false, ); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_outcome` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `file_path` [INFO] [stdout] --> src/main.rs:24:13 [INFO] [stdout] | [INFO] [stdout] 24 | let file_path = format!("games/game_{}.bin", num_games); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | let mut num_draws = 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:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | let mut num_wins = vec![0; num_players]; [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:21:13 [INFO] [stdout] | [INFO] [stdout] 21 | let mut game = Game::new(size, num_players); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/mcts_player.rs:41:14 [INFO] [stdout] | [INFO] [stdout] 41 | for (i, action) in valid_actions.iter().enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `is_draw_count` [INFO] [stdout] --> src/mcts_player.rs:43:50 [INFO] [stdout] | [INFO] [stdout] 43 | let (winner_0_count, winner_1_count, is_draw_count) = game.rollout(self.num_rollouts); [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_draw_count` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_piece_id` is never used [INFO] [stdout] --> src/random_player.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn get_piece_id(piece: &Piece) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/mcts_player.rs:35:13 [INFO] [stdout] | [INFO] [stdout] 35 | let mut valid_actions = game.board.get_moves(); [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/mcts_player.rs:45:17 [INFO] [stdout] | [INFO] [stdout] 45 | let mut win_diff = winner_0_count as f32 - winner_1_count as f32; [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `num_players` [INFO] [stdout] --> src/game.rs:31:29 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn new(size: usize, num_players: usize) -> Game { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_players` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `num_players` [INFO] [stdout] --> src/game.rs:42:42 [INFO] [stdout] | [INFO] [stdout] 42 | pub fn reset(&mut self, size: usize, num_players: usize) -> Game { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_players` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `board` [INFO] [stdout] --> src/game.rs:61:18 [INFO] [stdout] | [INFO] [stdout] 61 | let (board, reward, done, outcome) = game.run(true); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_board` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `reward` [INFO] [stdout] --> src/game.rs:61:25 [INFO] [stdout] | [INFO] [stdout] 61 | let (board, reward, done, outcome) = game.run(true); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_reward` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `done` [INFO] [stdout] --> src/game.rs:61:33 [INFO] [stdout] | [INFO] [stdout] 61 | let (board, reward, done, outcome) = game.run(true); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_done` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/game.rs:60:17 [INFO] [stdout] | [INFO] [stdout] 60 | let mut game = self.clone(); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `action` [INFO] [stdout] --> src/game.rs:77:17 [INFO] [stdout] | [INFO] [stdout] 77 | for (i, action) in valid_actions.iter().enumerate() { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_action` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `is_draw_count` [INFO] [stdout] --> src/game.rs:79:50 [INFO] [stdout] | [INFO] [stdout] 79 | let (winner_0_count, winner_1_count, is_draw_count) = self.rollout(rollouts_per_move); [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_draw_count` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/game.rs:75:13 [INFO] [stdout] | [INFO] [stdout] 75 | let mut valid_actions = self.board.get_moves(); [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 35 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `action` is never read [INFO] [stdout] --> src/game.rs:273:21 [INFO] [stdout] | [INFO] [stdout] 273 | let mut action = (0, 0); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/game.rs:279:21 [INFO] [stdout] | [INFO] [stdout] 279 | let mut valid_actions = self.board.get_moves(); [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `num_draws` [INFO] [stdout] --> src/main.rs:17:13 [INFO] [stdout] | [INFO] [stdout] 17 | let mut num_draws = 0; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_draws` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `num_wins` [INFO] [stdout] --> src/main.rs:18:13 [INFO] [stdout] | [INFO] [stdout] 18 | let mut num_wins = vec![0; num_players]; [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_wins` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `board` [INFO] [stdout] --> src/main.rs:22:14 [INFO] [stdout] | [INFO] [stdout] 22 | let (board, reward, done, outcome) = game.run(false, ); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_board` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `reward` [INFO] [stdout] --> src/main.rs:22:21 [INFO] [stdout] | [INFO] [stdout] 22 | let (board, reward, done, outcome) = game.run(false, ); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_reward` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `done` [INFO] [stdout] --> src/main.rs:22:29 [INFO] [stdout] | [INFO] [stdout] 22 | let (board, reward, done, outcome) = game.run(false, ); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_done` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `outcome` [INFO] [stdout] --> src/main.rs:22:35 [INFO] [stdout] | [INFO] [stdout] 22 | let (board, reward, done, outcome) = game.run(false, ); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_outcome` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `file_path` [INFO] [stdout] --> src/main.rs:24:13 [INFO] [stdout] | [INFO] [stdout] 24 | let file_path = format!("games/game_{}.bin", num_games); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | let mut num_draws = 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:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | let mut num_wins = vec![0; num_players]; [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:21:13 [INFO] [stdout] | [INFO] [stdout] 21 | let mut game = Game::new(size, num_players); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_piece_id` is never used [INFO] [stdout] --> src/random_player.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn get_piece_id(piece: &Piece) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 35 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.72s [INFO] running `Command { std: "docker" "inspect" "711b37367695d8d0b32b63cf5128dcce1f72bafe0d16c2748bb2850025f91d87", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "711b37367695d8d0b32b63cf5128dcce1f72bafe0d16c2748bb2850025f91d87", kill_on_drop: false }` [INFO] [stdout] 711b37367695d8d0b32b63cf5128dcce1f72bafe0d16c2748bb2850025f91d87