[INFO] cloning repository https://github.com/ProgrammingIncluded/Unstable-Unicorns-RS
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ProgrammingIncluded/Unstable-Unicorns-RS" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FProgrammingIncluded%2FUnstable-Unicorns-RS", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FProgrammingIncluded%2FUnstable-Unicorns-RS'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 4384d2c4840621c145690bddab08131afa1209c5
[INFO] checking ProgrammingIncluded/Unstable-Unicorns-RS against master#b3bd7058c139e71bae0862ef8f8ac936208873e9 for pr-123752
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FProgrammingIncluded%2FUnstable-Unicorns-RS" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/ProgrammingIncluded/Unstable-Unicorns-RS on toolchain b3bd7058c139e71bae0862ef8f8ac936208873e9
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b3bd7058c139e71bae0862ef8f8ac936208873e9" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/ProgrammingIncluded/Unstable-Unicorns-RS
[INFO] finished tweaking git repo https://github.com/ProgrammingIncluded/Unstable-Unicorns-RS
[INFO] tweaked toml for git repo https://github.com/ProgrammingIncluded/Unstable-Unicorns-RS written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/ProgrammingIncluded/Unstable-Unicorns-RS 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" "+b3bd7058c139e71bae0862ef8f8ac936208873e9" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[ERROR] this task or one of its parent failed!
[ERROR] no output for 300 seconds
[ERROR] note: run with `RUST_BACKTRACE=1` to display a backtrace.
[INFO] checking ProgrammingIncluded/Unstable-Unicorns-RS against try#57fe1b734d9ff1c8a92bda60b85506b9648158d3 for pr-123752
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FProgrammingIncluded%2FUnstable-Unicorns-RS" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/ProgrammingIncluded/Unstable-Unicorns-RS on toolchain 57fe1b734d9ff1c8a92bda60b85506b9648158d3
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+57fe1b734d9ff1c8a92bda60b85506b9648158d3" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/ProgrammingIncluded/Unstable-Unicorns-RS
[INFO] finished tweaking git repo https://github.com/ProgrammingIncluded/Unstable-Unicorns-RS
[INFO] tweaked toml for git repo https://github.com/ProgrammingIncluded/Unstable-Unicorns-RS written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/ProgrammingIncluded/Unstable-Unicorns-RS 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" "+57fe1b734d9ff1c8a92bda60b85506b9648158d3" "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] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+57fe1b734d9ff1c8a92bda60b85506b9648158d3" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 784f4863c3a96abb49978efb77675f0ea18278a0edce16aeba9abdb92761a7b1
[INFO] running `Command { std: "docker" "start" "-a" "784f4863c3a96abb49978efb77675f0ea18278a0edce16aeba9abdb92761a7b1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "784f4863c3a96abb49978efb77675f0ea18278a0edce16aeba9abdb92761a7b1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "784f4863c3a96abb49978efb77675f0ea18278a0edce16aeba9abdb92761a7b1", kill_on_drop: false }`
[INFO] [stdout] 784f4863c3a96abb49978efb77675f0ea18278a0edce16aeba9abdb92761a7b1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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" "+57fe1b734d9ff1c8a92bda60b85506b9648158d3" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 57d4ef06e21962b39cbc3f617d12fa9b25707e59bf708349bb85f2155e47f29a
[INFO] running `Command { std: "docker" "start" "-a" "57d4ef06e21962b39cbc3f617d12fa9b25707e59bf708349bb85f2155e47f29a", kill_on_drop: false }`
[INFO] [stderr]     Checking dyn-clone v1.0.4
[INFO] [stderr]     Checking unstable_unicorns v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `TypeId`
[INFO] [stdout]  --> src/cards.rs:2:21
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::any::{Any, TypeId};
[INFO] [stdout]   |                     ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> src/cards.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Actions`, `Board`
[INFO] [stdout]   --> src/cards.rs:11:20
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::state::{Actions, Action, ActionType, Board, History};
[INFO] [stdout]    |                    ^^^^^^^                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Any`, `TypeId`
[INFO] [stdout]  --> src/state.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::any::{Any, TypeId};
[INFO] [stdout]   |                ^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt`
[INFO] [stdout]  --> src/state.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::fmt;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> src/state.rs:138:9
[INFO] [stdout]     |
[INFO] [stdout] 138 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> src/game.rs:191:9
[INFO] [stdout]     |
[INFO] [stdout] 191 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::cards::*`
[INFO] [stdout]    --> src/game.rs:192:9
[INFO] [stdout]     |
[INFO] [stdout] 192 |     use crate::cards::*;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TypeId`
[INFO] [stdout]  --> src/cards.rs:2:21
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::any::{Any, TypeId};
[INFO] [stdout]   |                     ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Actions`
[INFO] [stdout]   --> src/cards.rs:11:20
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::state::{Actions, Action, ActionType, Board, History};
[INFO] [stdout]    |                    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Any`, `TypeId`
[INFO] [stdout]  --> src/state.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::any::{Any, TypeId};
[INFO] [stdout]   |                ^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt`
[INFO] [stdout]  --> src/state.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::fmt;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player`
[INFO] [stdout]   --> src/cards.rs:39:30
[INFO] [stdout]    |
[INFO] [stdout] 39 |     fn play(self: Box<Self>, player: usize, history: &History) -> Option<Action> { None }
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_player`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `history`
[INFO] [stdout]   --> src/cards.rs:39:45
[INFO] [stdout]    |
[INFO] [stdout] 39 |     fn play(self: Box<Self>, player: usize, history: &History) -> Option<Action> { None }
[INFO] [stdout]    |                                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_history`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player`
[INFO] [stdout]   --> src/cards.rs:40:31
[INFO] [stdout]    |
[INFO] [stdout] 40 |     fn react(self: Box<Self>, player: usize, history: &History) -> Option<Action> { None }
[INFO] [stdout]    |                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_player`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `history`
[INFO] [stdout]   --> src/cards.rs:40:46
[INFO] [stdout]    |
[INFO] [stdout] 40 |     fn react(self: Box<Self>, player: usize, history: &History) -> Option<Action> { None }
[INFO] [stdout]    |                                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_history`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player`
[INFO] [stdout]   --> src/cards.rs:41:23
[INFO] [stdout]    |
[INFO] [stdout] 41 |     fn destroy(&self, player: usize, history: &History) -> Option<Action> { None }
[INFO] [stdout]    |                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_player`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `history`
[INFO] [stdout]   --> src/cards.rs:41:38
[INFO] [stdout]    |
[INFO] [stdout] 41 |     fn destroy(&self, player: usize, history: &History) -> Option<Action> { None }
[INFO] [stdout]    |                                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_history`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player`
[INFO] [stdout]   --> src/cards.rs:42:21
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn steal(&self, player: usize, history: &History) -> Option<Action> { None }
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_player`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `history`
[INFO] [stdout]   --> src/cards.rs:42:36
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn steal(&self, player: usize, history: &History) -> Option<Action> { None }
[INFO] [stdout]    |                                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_history`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player`
[INFO] [stdout]   --> src/cards.rs:39:30
[INFO] [stdout]    |
[INFO] [stdout] 39 |     fn play(self: Box<Self>, player: usize, history: &History) -> Option<Action> { None }
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_player`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `history`
[INFO] [stdout]   --> src/cards.rs:39:45
[INFO] [stdout]    |
[INFO] [stdout] 39 |     fn play(self: Box<Self>, player: usize, history: &History) -> Option<Action> { None }
[INFO] [stdout]    |                                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_history`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player`
[INFO] [stdout]   --> src/cards.rs:40:31
[INFO] [stdout]    |
[INFO] [stdout] 40 |     fn react(self: Box<Self>, player: usize, history: &History) -> Option<Action> { None }
[INFO] [stdout]    |                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_player`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `history`
[INFO] [stdout]   --> src/cards.rs:40:46
[INFO] [stdout]    |
[INFO] [stdout] 40 |     fn react(self: Box<Self>, player: usize, history: &History) -> Option<Action> { None }
[INFO] [stdout]    |                                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_history`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player`
[INFO] [stdout]   --> src/cards.rs:41:23
[INFO] [stdout]    |
[INFO] [stdout] 41 |     fn destroy(&self, player: usize, history: &History) -> Option<Action> { None }
[INFO] [stdout]    |                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_player`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `history`
[INFO] [stdout]   --> src/cards.rs:41:38
[INFO] [stdout]    |
[INFO] [stdout] 41 |     fn destroy(&self, player: usize, history: &History) -> Option<Action> { None }
[INFO] [stdout]    |                                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_history`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player`
[INFO] [stdout]   --> src/cards.rs:42:21
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn steal(&self, player: usize, history: &History) -> Option<Action> { None }
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_player`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `history`
[INFO] [stdout]   --> src/cards.rs:42:36
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn steal(&self, player: usize, history: &History) -> Option<Action> { None }
[INFO] [stdout]    |                                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_history`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player`
[INFO] [stdout]    --> src/cards.rs:107:30
[INFO] [stdout]     |
[INFO] [stdout] 107 |     fn play(self: Box<Self>, player: usize, history: &History) -> Option<Action> {
[INFO] [stdout]     |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_player`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `history`
[INFO] [stdout]    --> src/cards.rs:107:45
[INFO] [stdout]     |
[INFO] [stdout] 107 |     fn play(self: Box<Self>, player: usize, history: &History) -> Option<Action> {
[INFO] [stdout]     |                                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_history`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player`
[INFO] [stdout]    --> src/cards.rs:141:31
[INFO] [stdout]     |
[INFO] [stdout] 141 |     fn react(self: Box<Self>, player: usize, history: &History) -> Option<Action> {
[INFO] [stdout]     |                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_player`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player`
[INFO] [stdout]    --> src/cards.rs:163:31
[INFO] [stdout]     |
[INFO] [stdout] 163 |     fn react(self: Box<Self>, player: usize, history: &History) -> Option<Action> {
[INFO] [stdout]     |                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_player`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/state.rs:54:13
[INFO] [stdout]    |
[INFO] [stdout] 54 |         for i in 0..player_count {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ep`
[INFO] [stdout]   --> src/game.rs:57:13
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let ep = self.effect_phase(player, history);
[INFO] [stdout]    |             ^^ help: if this is intentional, prefix it with an underscore: `_ep`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player`
[INFO] [stdout]    --> src/cards.rs:107:30
[INFO] [stdout]     |
[INFO] [stdout] 107 |     fn play(self: Box<Self>, player: usize, history: &History) -> Option<Action> {
[INFO] [stdout]     |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_player`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `history`
[INFO] [stdout]    --> src/cards.rs:107:45
[INFO] [stdout]     |
[INFO] [stdout] 107 |     fn play(self: Box<Self>, player: usize, history: &History) -> Option<Action> {
[INFO] [stdout]     |                                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_history`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player`
[INFO] [stdout]    --> src/cards.rs:141:31
[INFO] [stdout]     |
[INFO] [stdout] 141 |     fn react(self: Box<Self>, player: usize, history: &History) -> Option<Action> {
[INFO] [stdout]     |                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_player`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player`
[INFO] [stdout]    --> src/cards.rs:163:31
[INFO] [stdout]     |
[INFO] [stdout] 163 |     fn react(self: Box<Self>, player: usize, history: &History) -> Option<Action> {
[INFO] [stdout]     |                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_player`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/state.rs:54:13
[INFO] [stdout]    |
[INFO] [stdout] 54 |         for i in 0..player_count {
[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/game.rs:151:13
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let mut react_node = Node::new(vec![], None, start_action.clone());
[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: `ep`
[INFO] [stdout]   --> src/game.rs:57:13
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let ep = self.effect_phase(player, history);
[INFO] [stdout]    |             ^^ help: if this is intentional, prefix it with an underscore: `_ep`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/game.rs:223:13
[INFO] [stdout]     |
[INFO] [stdout] 223 |         let result = game.effect_phase(0, &history);
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/game.rs:151:13
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let mut react_node = Node::new(vec![], None, start_action.clone());
[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: type `cards::CardType` is more private than the item `cards::Card::ctype`
[INFO] [stdout]   --> src/cards.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn ctype(&self) -> CardType;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `cards::Card::ctype` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `cards::CardType` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/cards.rs:14:1
[INFO] [stdout]    |
[INFO] [stdout] 14 | enum CardType {
[INFO] [stdout]    | ^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `cards::CardType` is more private than the item `<cards::NullCard as cards::Card>::ctype`
[INFO] [stdout]    --> src/cards.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout] 105 |     fn ctype(&self) -> CardType { CardType::Null }
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<cards::NullCard as cards::Card>::ctype` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `cards::CardType` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/cards.rs:14:1
[INFO] [stdout]     |
[INFO] [stdout] 14  | enum CardType {
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `cards::CardType` is more private than the item `<cards::BasicUnicorn as cards::Card>::ctype`
[INFO] [stdout]    --> src/cards.rs:117:5
[INFO] [stdout]     |
[INFO] [stdout] 117 |     fn ctype(&self) -> CardType { CardType::Instant }
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<cards::BasicUnicorn as cards::Card>::ctype` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `cards::CardType` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/cards.rs:14:1
[INFO] [stdout]     |
[INFO] [stdout] 14  | enum CardType {
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `cards::CardType` is more private than the item `<cards::SuperNeigh as cards::Card>::ctype`
[INFO] [stdout]    --> src/cards.rs:139:5
[INFO] [stdout]     |
[INFO] [stdout] 139 |     fn ctype(&self) -> CardType { CardType::Instant }
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<cards::SuperNeigh as cards::Card>::ctype` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `cards::CardType` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/cards.rs:14:1
[INFO] [stdout]     |
[INFO] [stdout] 14  | enum CardType {
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `cards::CardType` is more private than the item `<cards::Neigh as cards::Card>::ctype`
[INFO] [stdout]    --> src/cards.rs:161:5
[INFO] [stdout]     |
[INFO] [stdout] 161 |     fn ctype(&self) -> CardType { CardType::Instant }
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<cards::Neigh as cards::Card>::ctype` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `cards::CardType` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/cards.rs:14:1
[INFO] [stdout]     |
[INFO] [stdout] 14  | enum CardType {
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `count_card` is never used
[INFO] [stdout]   --> src/cards.rs:73:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub trait QueryCards {
[INFO] [stdout]    |           ---------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 73 |     fn count_card<T: 'static + Card>(&self) -> usize;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_count_card` is never used
[INFO] [stdout]    --> src/cards.rs:200:8
[INFO] [stdout]     |
[INFO] [stdout] 200 |     fn test_count_card() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_states`, and `play_phase` are never used
[INFO] [stdout]    --> src/game.rs:51:8
[INFO] [stdout]     |
[INFO] [stdout] 50  | impl Game {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] 51  |     fn new() -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 56  |     fn get_states(&self, player: usize, history: &History) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     fn play_phase(&self, player: usize, history: &History) -> Link<Node> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `CardTest` should have a snake case name
[INFO] [stdout]    --> src/cards.rs:186:5
[INFO] [stdout]     |
[INFO] [stdout] 186 | mod CardTest {
[INFO] [stdout]     |     ^^^^^^^^ help: convert the identifier to snake case: `card_test`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `StateTest` should have a snake case name
[INFO] [stdout]    --> src/state.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout] 137 | mod StateTest {
[INFO] [stdout]     |     ^^^^^^^^^ help: convert the identifier to snake case: `state_test`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `GameTest` should have a snake case name
[INFO] [stdout]    --> src/game.rs:190:5
[INFO] [stdout]     |
[INFO] [stdout] 190 | mod GameTest {
[INFO] [stdout]     |     ^^^^^^^^ help: convert the identifier to snake case: `game_test`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `CardType` is more private than the item `cards::Card::ctype`
[INFO] [stdout]   --> src/cards.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn ctype(&self) -> CardType;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `cards::Card::ctype` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `CardType` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/cards.rs:14:1
[INFO] [stdout]    |
[INFO] [stdout] 14 | enum CardType {
[INFO] [stdout]    | ^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `CardType` is more private than the item `<cards::NullCard as cards::Card>::ctype`
[INFO] [stdout]    --> src/cards.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout] 105 |     fn ctype(&self) -> CardType { CardType::Null }
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<cards::NullCard as cards::Card>::ctype` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `CardType` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/cards.rs:14:1
[INFO] [stdout]     |
[INFO] [stdout] 14  | enum CardType {
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `CardType` is more private than the item `<cards::BasicUnicorn as cards::Card>::ctype`
[INFO] [stdout]    --> src/cards.rs:117:5
[INFO] [stdout]     |
[INFO] [stdout] 117 |     fn ctype(&self) -> CardType { CardType::Instant }
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<cards::BasicUnicorn as cards::Card>::ctype` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `CardType` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/cards.rs:14:1
[INFO] [stdout]     |
[INFO] [stdout] 14  | enum CardType {
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `CardType` is more private than the item `<cards::SuperNeigh as cards::Card>::ctype`
[INFO] [stdout]    --> src/cards.rs:139:5
[INFO] [stdout]     |
[INFO] [stdout] 139 |     fn ctype(&self) -> CardType { CardType::Instant }
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<cards::SuperNeigh as cards::Card>::ctype` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `CardType` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/cards.rs:14:1
[INFO] [stdout]     |
[INFO] [stdout] 14  | enum CardType {
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `CardType` is more private than the item `<cards::Neigh as cards::Card>::ctype`
[INFO] [stdout]    --> src/cards.rs:161:5
[INFO] [stdout]     |
[INFO] [stdout] 161 |     fn ctype(&self) -> CardType { CardType::Instant }
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<cards::Neigh as cards::Card>::ctype` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `CardType` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/cards.rs:14:1
[INFO] [stdout]     |
[INFO] [stdout] 14  | enum CardType {
[INFO] [stdout]     | ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Magic`, `Downgrade`, `Upgrade`, `BasicUnicorn`, `MagicUnicorn`, and `BabyUnicorn` are never constructed
[INFO] [stdout]   --> src/cards.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | enum CardType {
[INFO] [stdout]    |      -------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 17 |     Magic,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 18 |     Downgrade,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 19 |     Upgrade,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 20 |     BasicUnicorn,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 21 |     MagicUnicorn,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 22 |     BabyUnicorn
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CardType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_unicorn` is never used
[INFO] [stdout]   --> src/cards.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl CardType {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] 26 |     fn is_unicorn(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `has_card` and `count_card` are never used
[INFO] [stdout]   --> src/cards.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub trait QueryCards {
[INFO] [stdout]    |           ---------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 70 |     fn has_card<T: 'static + Card>(&self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     fn count_card<T: 'static + Card>(&self) -> usize;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Actions` is never used
[INFO] [stdout]  --> src/state.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub type Actions = Vec<Action>;
[INFO] [stdout]   |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Link` is never used
[INFO] [stdout]  --> src/game.rs:6:6
[INFO] [stdout]   |
[INFO] [stdout] 6 | type Link<T> = Rc<RefCell<T>>;
[INFO] [stdout]   |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `WeakLink` is never used
[INFO] [stdout]  --> src/game.rs:7:6
[INFO] [stdout]   |
[INFO] [stdout] 7 | type WeakLink<T> = Weak<RefCell<T>>;
[INFO] [stdout]   |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Node` is never constructed
[INFO] [stdout]   --> src/game.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Node {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/game.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Node {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 17 |     fn new(children: Vec<Link<Node>>,
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GameTree` is never constructed
[INFO] [stdout]   --> src/game.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | struct GameTree {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/game.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl GameTree {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 37 |     fn new(action: Action) -> GameTree {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Game` is never constructed
[INFO] [stdout]   --> src/game.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | struct Game {}
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_states`, `effect_phase`, `draw_phase`, `react_phase`, and `play_phase` are never used
[INFO] [stdout]    --> src/game.rs:51:8
[INFO] [stdout]     |
[INFO] [stdout] 50  | impl Game {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] 51  |     fn new() -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 56  |     fn get_states(&self, player: usize, history: &History) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60  |     fn effect_phase(&self, player: usize, history: &History) -> Link<Node> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     fn draw_phase(&self, player: usize, history: &History) -> Link<Node> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     fn react_phase(&self, player: usize, history: &History) -> Link<Node> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     fn play_phase(&self, player: usize, history: &History) -> Link<Node> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `StateTest` should have a snake case name
[INFO] [stdout]    --> src/state.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout] 137 | mod StateTest {
[INFO] [stdout]     |     ^^^^^^^^^ help: convert the identifier to snake case: `state_test`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `GameTest` should have a snake case name
[INFO] [stdout]    --> src/game.rs:190:5
[INFO] [stdout]     |
[INFO] [stdout] 190 | mod GameTest {
[INFO] [stdout]     |     ^^^^^^^^ help: convert the identifier to snake case: `game_test`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 31 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 42 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.39s
[INFO] running `Command { std: "docker" "inspect" "57d4ef06e21962b39cbc3f617d12fa9b25707e59bf708349bb85f2155e47f29a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "57d4ef06e21962b39cbc3f617d12fa9b25707e59bf708349bb85f2155e47f29a", kill_on_drop: false }`
[INFO] [stdout] 57d4ef06e21962b39cbc3f617d12fa9b25707e59bf708349bb85f2155e47f29a
