[INFO] cloning repository https://github.com/Maix31/rust_domino
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Maix31/rust_domino" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMaix31%2Frust_domino", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMaix31%2Frust_domino'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a0db285687c4ea7ac1e2d9e086108d6ba7d9cfef
[INFO] checking Maix31/rust_domino against master#b0696a5160711c068cb1f01b7437db7990d15750 for pr-121848
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMaix31%2Frust_domino" "/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/Maix31/rust_domino on toolchain b0696a5160711c068cb1f01b7437db7990d15750
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b0696a5160711c068cb1f01b7437db7990d15750" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/Maix31/rust_domino
[INFO] finished tweaking git repo https://github.com/Maix31/rust_domino
[INFO] tweaked toml for git repo https://github.com/Maix31/rust_domino written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/Maix31/rust_domino 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" "+b0696a5160711c068cb1f01b7437db7990d15750" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded reborrow v0.5.4
[INFO] [stderr]   Downloaded gemm v0.15.4
[INFO] [stderr]   Downloaded gemm-f64 v0.15.4
[INFO] [stderr]   Downloaded gemm-f32 v0.15.4
[INFO] [stderr]   Downloaded bitarray v0.10.0
[INFO] [stderr]   Downloaded gemm-c32 v0.15.4
[INFO] [stderr]   Downloaded gemm-common v0.15.4
[INFO] [stderr]   Downloaded gemm-c64 v0.15.4
[INFO] [stderr]   Downloaded gemm-f16 v0.15.4
[INFO] [stderr]   Downloaded dyn-stack v0.9.0
[INFO] [stderr]   Downloaded cudarc v0.9.13
[INFO] [stderr]   Downloaded dfdx v0.13.0
[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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b0696a5160711c068cb1f01b7437db7990d15750" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 5d7a934ec3ad6f428163121a10fb8efa3a2aaee8f7138f44e4c80f55dc8ffeb7
[INFO] running `Command { std: "docker" "start" "-a" "5d7a934ec3ad6f428163121a10fb8efa3a2aaee8f7138f44e4c80f55dc8ffeb7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5d7a934ec3ad6f428163121a10fb8efa3a2aaee8f7138f44e4c80f55dc8ffeb7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5d7a934ec3ad6f428163121a10fb8efa3a2aaee8f7138f44e4c80f55dc8ffeb7", kill_on_drop: false }`
[INFO] [stdout] 5d7a934ec3ad6f428163121a10fb8efa3a2aaee8f7138f44e4c80f55dc8ffeb7
[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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b0696a5160711c068cb1f01b7437db7990d15750" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7fe12e1e71e1534c57c9ffbda4a8d769bb997c188046b86f6343603f431e4ab0
[INFO] running `Command { std: "docker" "start" "-a" "7fe12e1e71e1534c57c9ffbda4a8d769bb997c188046b86f6343603f431e4ab0", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.139
[INFO] [stderr]    Compiling crossbeam-utils v0.8.16
[INFO] [stderr]    Compiling memoffset v0.9.0
[INFO] [stderr]    Compiling libm v0.2.7
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.15
[INFO] [stderr]    Compiling num-traits v0.2.16
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]    Compiling rayon-core v1.11.0
[INFO] [stderr]    Compiling paste v1.0.14
[INFO] [stderr]     Checking bytemuck v1.13.1
[INFO] [stderr]     Checking either v1.9.0
[INFO] [stderr]     Checking reborrow v0.5.4
[INFO] [stderr]    Compiling seq-macro v0.3.5
[INFO] [stderr]     Checking ppv-lite86 v0.2.17
[INFO] [stderr]     Checking raw-cpuid v10.7.0
[INFO] [stderr]    Compiling dfdx v0.13.0
[INFO] [stderr]     Checking once_cell v1.18.0
[INFO] [stderr]     Checking bitarray v0.10.0
[INFO] [stderr]     Checking arrayvec v0.7.4
[INFO] [stderr]     Checking dyn-stack v0.9.0
[INFO] [stderr]     Checking crossbeam-channel v0.5.8
[INFO] [stderr]     Checking crossbeam-deque v0.8.3
[INFO] [stderr]     Checking num_cpus v1.16.0
[INFO] [stderr]     Checking getrandom v0.2.8
[INFO] [stderr]     Checking quanta v0.11.1
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking num-complex v0.4.3
[INFO] [stderr]     Checking half v2.3.1
[INFO] [stderr]     Checking rayon v1.7.0
[INFO] [stderr]     Checking rand_distr v0.4.3
[INFO] [stderr]     Checking gemm-common v0.15.4
[INFO] [stderr]     Checking gemm-f32 v0.15.4
[INFO] [stderr]     Checking gemm-c32 v0.15.4
[INFO] [stderr]     Checking gemm-f64 v0.15.4
[INFO] [stderr]     Checking gemm-c64 v0.15.4
[INFO] [stderr]     Checking gemm-f16 v0.15.4
[INFO] [stderr]     Checking gemm v0.15.4
[INFO] [stderr]     Checking rust_domino v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `AtomicI32`
[INFO] [stdout]  --> src/main.rs:2:14
[INFO] [stdout]   |
[INFO] [stdout] 2 |     atomic::{AtomicI32, AtomicI64},
[INFO] [stdout]   |              ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quanta::Clock`
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use quanta::Clock;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::available_parallelism`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::thread::available_parallelism;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hand::Hand`
[INFO] [stdout]  --> src/choose_tile_strategy.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{hand::Hand, snake::Snake, tile::Tile};
[INFO] [stdout]   |             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `env::current_exe`, `thread::current`, `write`
[INFO] [stdout]  --> src/game.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     env::current_exe,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 3 |     fmt::{write, Debug},
[INFO] [stdout]   |           ^^^^^
[INFO] [stdout] 4 |     thread::current,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tile::Tile`
[INFO] [stdout]   --> src/game.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     tile::Tile,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `snake::Snake`
[INFO] [stdout]  --> src/game_observer.rs:1:25
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{tile::Tile, snake::Snake};
[INFO] [stdout]   |                         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Boneyard`, `self`, `snake::Snake`
[INFO] [stdout]  --> src/hand.rs:3:36
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{tile::Tile, boneyard::{Boneyard, self}, snake::Snake};
[INFO] [stdout]   |                                    ^^^^^^^^  ^^^^   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BitArray`
[INFO] [stdout]  --> src/possible_hand.rs:2:22
[INFO] [stdout]   |
[INFO] [stdout] 2 | use bitarray::{self, BitArray};
[INFO] [stdout]   |                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `bitarray` is imported redundantly
[INFO] [stdout]  --> src/possible_hand.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use bitarray::{self, BitArray};
[INFO] [stdout]   |                ^^^^ the item `bitarray` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AtomicI32`
[INFO] [stdout]  --> src/main.rs:2:14
[INFO] [stdout]   |
[INFO] [stdout] 2 |     atomic::{AtomicI32, AtomicI64},
[INFO] [stdout]   |              ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `quanta::Clock`
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use quanta::Clock;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::available_parallelism`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::thread::available_parallelism;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hand::Hand`
[INFO] [stdout]  --> src/choose_tile_strategy.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{hand::Hand, snake::Snake, tile::Tile};
[INFO] [stdout]   |             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `env::current_exe`, `thread::current`, `write`
[INFO] [stdout]  --> src/game.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     env::current_exe,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 3 |     fmt::{write, Debug},
[INFO] [stdout]   |           ^^^^^
[INFO] [stdout] 4 |     thread::current,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tile::Tile`
[INFO] [stdout]   --> src/game.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     tile::Tile,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `snake::Snake`
[INFO] [stdout]  --> src/game_observer.rs:1:25
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{tile::Tile, snake::Snake};
[INFO] [stdout]   |                         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Boneyard`, `self`, `snake::Snake`
[INFO] [stdout]  --> src/hand.rs:3:36
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{tile::Tile, boneyard::{Boneyard, self}, snake::Snake};
[INFO] [stdout]   |                                    ^^^^^^^^  ^^^^   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BitArray`
[INFO] [stdout]  --> src/possible_hand.rs:2:22
[INFO] [stdout]   |
[INFO] [stdout] 2 | use bitarray::{self, BitArray};
[INFO] [stdout]   |                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `bitarray` is imported redundantly
[INFO] [stdout]  --> src/possible_hand.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use bitarray::{self, BitArray};
[INFO] [stdout]   |                ^^^^ the item `bitarray` is already defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/main.rs:142:5
[INFO] [stdout]     |
[INFO] [stdout] 117 | /     loop {
[INFO] [stdout] 118 | |         std::thread::sleep(std::time::Duration::from_secs(5));
[INFO] [stdout] 119 | |         let count = counter.load(std::sync::atomic::Ordering::Relaxed);
[INFO] [stdout] 120 | |         println!("{} games played", count);
[INFO] [stdout] ...   |
[INFO] [stdout] 139 | |         // println!("allocated bytes before main: {}", ALLOCATED.load(Relaxed));
[INFO] [stdout] 140 | |     }
[INFO] [stdout]     | |_____- any code following this expression is unreachable
[INFO] [stdout] 141 |
[INFO] [stdout] 142 | /     for thread in threads {
[INFO] [stdout] 143 | |         thread.join().unwrap();
[INFO] [stdout] 144 | |     }
[INFO] [stdout]     | |_____^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tile`
[INFO] [stdout]  --> src/game_observer.rs:6:28
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn i_drew_tile(&mut self, tile: Tile) {}
[INFO] [stdout]   |                               ^^^^ help: if this is intentional, prefix it with an underscore: `_tile`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tile`
[INFO] [stdout]  --> src/game_observer.rs:7:37
[INFO] [stdout]   |
[INFO] [stdout] 7 |     fn opponent_played_tile(&mut self, tile: Tile) {}
[INFO] [stdout]   |                                        ^^^^ help: if this is intentional, prefix it with an underscore: `_tile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pips`
[INFO] [stdout]  --> src/game_observer.rs:8:37
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn opponent_was_blocked(&mut self, pips: [u8;2]) {}
[INFO] [stdout]   |                                        ^^^^ help: if this is intentional, prefix it with an underscore: `_pips`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/main.rs:142:5
[INFO] [stdout]     |
[INFO] [stdout] 117 | /     loop {
[INFO] [stdout] 118 | |         std::thread::sleep(std::time::Duration::from_secs(5));
[INFO] [stdout] 119 | |         let count = counter.load(std::sync::atomic::Ordering::Relaxed);
[INFO] [stdout] 120 | |         println!("{} games played", count);
[INFO] [stdout] ...   |
[INFO] [stdout] 139 | |         // println!("allocated bytes before main: {}", ALLOCATED.load(Relaxed));
[INFO] [stdout] 140 | |     }
[INFO] [stdout]     | |_____- any code following this expression is unreachable
[INFO] [stdout] 141 |
[INFO] [stdout] 142 | /     for thread in threads {
[INFO] [stdout] 143 | |         thread.join().unwrap();
[INFO] [stdout] 144 | |     }
[INFO] [stdout]     | |_____^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `score_0`
[INFO] [stdout]   --> src/main.rs:87:25
[INFO] [stdout]    |
[INFO] [stdout] 87 |                         score_0,
[INFO] [stdout]    |                         ^^^^^^^ help: try ignoring the field: `score_0: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `score_1`
[INFO] [stdout]   --> src/main.rs:88:25
[INFO] [stdout]    |
[INFO] [stdout] 88 |                         score_1,
[INFO] [stdout]    |                         ^^^^^^^ help: try ignoring the field: `score_1: _`
[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 counter = Arc::new(AtomicI64::new(0));
[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/main.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let mut winner_0 = Arc::new(AtomicI64::new(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:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |     let mut winner_1 = Arc::new(AtomicI64::new(0));
[INFO] [stdout]    |         ----^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tile`
[INFO] [stdout]  --> src/game_observer.rs:6:28
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn i_drew_tile(&mut self, tile: Tile) {}
[INFO] [stdout]   |                               ^^^^ help: if this is intentional, prefix it with an underscore: `_tile`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tile`
[INFO] [stdout]  --> src/game_observer.rs:7:37
[INFO] [stdout]   |
[INFO] [stdout] 7 |     fn opponent_played_tile(&mut self, tile: Tile) {}
[INFO] [stdout]   |                                        ^^^^ help: if this is intentional, prefix it with an underscore: `_tile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pips`
[INFO] [stdout]  --> src/game_observer.rs:8:37
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn opponent_was_blocked(&mut self, pips: [u8;2]) {}
[INFO] [stdout]   |                                        ^^^^ help: if this is intentional, prefix it with an underscore: `_pips`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stress_test` is never used
[INFO] [stdout]   --> src/main.rs:55:4
[INFO] [stdout]    |
[INFO] [stdout] 55 | fn stress_test() {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PossibleTile` is never used
[INFO] [stdout]  --> src/choose_tile_strategy.rs:3:6
[INFO] [stdout]   |
[INFO] [stdout] 3 | enum PossibleTile {
[INFO] [stdout]   |      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PossibleHand` is never constructed
[INFO] [stdout]  --> src/choose_tile_strategy.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | struct PossibleHand {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Draw` is never constructed
[INFO] [stdout]   --> src/game.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub enum GameMode {
[INFO] [stdout]    |          -------- variant in this enum
[INFO] [stdout] 34 |     Draw,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GameMode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `swap_players` is never used
[INFO] [stdout]    --> src/game.rs:216:12
[INFO] [stdout]     |
[INFO] [stdout] 47  | impl<P1: Player, P2: Player> Game<P1, P2> {
[INFO] [stdout]     | ----------------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn swap_players(mut self, should_swap: bool) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `threadRng` should have a snake case name
[INFO] [stdout]   --> src/game.rs:48:16
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn new(threadRng: &mut ThreadRng) -> Game<P1, P2> {
[INFO] [stdout]    |                ^^^^^^^^^ help: convert the identifier to snake case: `thread_rng`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 25 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/possible_hand.rs:74:7
[INFO] [stdout]    |
[INFO] [stdout] 74 |         for i in 0..tiles.len() {
[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/possible_hand.rs:62:7
[INFO] [stdout]    |
[INFO] [stdout] 62 |         let mut tiles = [ 
[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: `score_0`
[INFO] [stdout]   --> src/main.rs:87:25
[INFO] [stdout]    |
[INFO] [stdout] 87 |                         score_0,
[INFO] [stdout]    |                         ^^^^^^^ help: try ignoring the field: `score_0: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `score_1`
[INFO] [stdout]   --> src/main.rs:88:25
[INFO] [stdout]    |
[INFO] [stdout] 88 |                         score_1,
[INFO] [stdout]    |                         ^^^^^^^ help: try ignoring the field: `score_1: _`
[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 counter = Arc::new(AtomicI64::new(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:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let mut winner_0 = Arc::new(AtomicI64::new(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:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |     let mut winner_1 = Arc::new(AtomicI64::new(0));
[INFO] [stdout]    |         ----^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stress_test` is never used
[INFO] [stdout]   --> src/main.rs:55:4
[INFO] [stdout]    |
[INFO] [stdout] 55 | fn stress_test() {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PossibleTile` is never used
[INFO] [stdout]  --> src/choose_tile_strategy.rs:3:6
[INFO] [stdout]   |
[INFO] [stdout] 3 | enum PossibleTile {
[INFO] [stdout]   |      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PossibleHand` is never constructed
[INFO] [stdout]  --> src/choose_tile_strategy.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | struct PossibleHand {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Draw` is never constructed
[INFO] [stdout]   --> src/game.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub enum GameMode {
[INFO] [stdout]    |          -------- variant in this enum
[INFO] [stdout] 34 |     Draw,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GameMode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `swap_players` is never used
[INFO] [stdout]    --> src/game.rs:216:12
[INFO] [stdout]     |
[INFO] [stdout] 47  | impl<P1: Player, P2: Player> Game<P1, P2> {
[INFO] [stdout]     | ----------------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn swap_players(mut self, should_swap: bool) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `threadRng` should have a snake case name
[INFO] [stdout]   --> src/game.rs:48:16
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn new(threadRng: &mut ThreadRng) -> Game<P1, P2> {
[INFO] [stdout]    |                ^^^^^^^^^ help: convert the identifier to snake case: `thread_rng`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 27 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 10.37s
[INFO] running `Command { std: "docker" "inspect" "7fe12e1e71e1534c57c9ffbda4a8d769bb997c188046b86f6343603f431e4ab0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7fe12e1e71e1534c57c9ffbda4a8d769bb997c188046b86f6343603f431e4ab0", kill_on_drop: false }`
[INFO] [stdout] 7fe12e1e71e1534c57c9ffbda4a8d769bb997c188046b86f6343603f431e4ab0
