[INFO] cloning repository https://github.com/weixinZhang12/ddz
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/weixinZhang12/ddz" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FweixinZhang12%2Fddz", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FweixinZhang12%2Fddz'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 5afb492748ad7cb0691c10fbc7655ced770634e6
[INFO] checking weixinZhang12/ddz against master#8a65ee08296b36342bf7c3cdc15312ccbc357227 for pr-142704
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FweixinZhang12%2Fddz" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/weixinZhang12/ddz on toolchain 8a65ee08296b36342bf7c3cdc15312ccbc357227
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8a65ee08296b36342bf7c3cdc15312ccbc357227" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/weixinZhang12/ddz
[INFO] finished tweaking git repo https://github.com/weixinZhang12/ddz
[INFO] tweaked toml for git repo https://github.com/weixinZhang12/ddz written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/weixinZhang12/ddz 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" "+8a65ee08296b36342bf7c3cdc15312ccbc357227" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8a65ee08296b36342bf7c3cdc15312ccbc357227" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 4d0398f343d296231956a8dfa82e328aea09c3d2a10023f7eca729bc4a41c45d
[INFO] running `Command { std: "docker" "start" "-a" "4d0398f343d296231956a8dfa82e328aea09c3d2a10023f7eca729bc4a41c45d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4d0398f343d296231956a8dfa82e328aea09c3d2a10023f7eca729bc4a41c45d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4d0398f343d296231956a8dfa82e328aea09c3d2a10023f7eca729bc4a41c45d", kill_on_drop: false }`
[INFO] [stdout] 4d0398f343d296231956a8dfa82e328aea09c3d2a10023f7eca729bc4a41c45d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8a65ee08296b36342bf7c3cdc15312ccbc357227" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] fa8292d7e7dcc08c191b05093086114ea4a4931b4ee74ecedc8998c82bd34390
[INFO] running `Command { std: "docker" "start" "-a" "fa8292d7e7dcc08c191b05093086114ea4a4931b4ee74ecedc8998c82bd34390", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.92
[INFO] [stderr]    Compiling unicode-ident v1.0.14
[INFO] [stderr]    Compiling libc v0.2.169
[INFO] [stderr]     Checking cfg-if v1.0.0
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]    Compiling quote v1.0.38
[INFO] [stderr]    Compiling syn v2.0.95
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]     Checking zerocopy v0.7.35
[INFO] [stderr]     Checking ppv-lite86 v0.2.20
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking ddz v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `player::normal::Player`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use player::normal::Player;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/control_system.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 |         player::{self, normal::Player},
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Pai`
[INFO] [stdout]  --> src/player.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 |         normal_version::{Pai, PaiVec},
[INFO] [stdout]   |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error::Error`
[INFO] [stdout]  --> src/player.rs:6:52
[INFO] [stdout]   |
[INFO] [stdout] 6 |     use std::{cmp::Ordering, collections::HashMap, error::Error};
[INFO] [stdout]   |                                                    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `player::normal::Player`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use player::normal::Player;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/control_system.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 |         player::{self, normal::Player},
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Pai`
[INFO] [stdout]  --> src/player.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 |         normal_version::{Pai, PaiVec},
[INFO] [stdout]   |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error::Error`
[INFO] [stdout]  --> src/player.rs:6:52
[INFO] [stdout]   |
[INFO] [stdout] 6 |     use std::{cmp::Ordering, collections::HashMap, error::Error};
[INFO] [stdout]   |                                                    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/pai.rs:143:25
[INFO] [stdout]     |
[INFO] [stdout] 143 |                     for i in 0..m {
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `temp2`
[INFO] [stdout]    --> src/player.rs:215:25
[INFO] [stdout]     |
[INFO] [stdout] 215 |                 let mut temp2: String = String::new();
[INFO] [stdout]     |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_temp2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]    --> src/player.rs:216:21
[INFO] [stdout]     |
[INFO] [stdout] 216 |                 for j in 0..*i.1 {
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/player.rs:215:21
[INFO] [stdout]     |
[INFO] [stdout] 215 |                 let mut temp2: String = String::new();
[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/player.rs:266:17
[INFO] [stdout]     |
[INFO] [stdout] 266 |             let mut three = self.have_three();
[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/player.rs:267:17
[INFO] [stdout]     |
[INFO] [stdout] 267 |             let mut one = self.have_one();
[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/player.rs:281:17
[INFO] [stdout]     |
[INFO] [stdout] 281 |             let mut three = self.have_three();
[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/player.rs:282:17
[INFO] [stdout]     |
[INFO] [stdout] 282 |             let mut one = self.have_double();
[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/player.rs:296:17
[INFO] [stdout]     |
[INFO] [stdout] 296 |             let mut three = self.have_three();
[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/player.rs:297:17
[INFO] [stdout]     |
[INFO] [stdout] 297 |             let mut one = self.have_three();
[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/player.rs:317:17
[INFO] [stdout]     |
[INFO] [stdout] 317 |             let mut three = self.have_three();
[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/player.rs:318:17
[INFO] [stdout]     |
[INFO] [stdout] 318 |             let mut three2 = self.have_three();
[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/player.rs:319:17
[INFO] [stdout]     |
[INFO] [stdout] 319 |             let mut three3 = self.have_three();
[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/player.rs:346:17
[INFO] [stdout]     |
[INFO] [stdout] 346 |             let mut three = self.have_three();
[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/player.rs:347:17
[INFO] [stdout]     |
[INFO] [stdout] 347 |             let mut three2 = self.have_three();
[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/player.rs:348:17
[INFO] [stdout]     |
[INFO] [stdout] 348 |             let mut three3 = self.have_three();
[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/player.rs:349:17
[INFO] [stdout]     |
[INFO] [stdout] 349 |             let mut three4 = self.have_three();
[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/player.rs:380:17
[INFO] [stdout]     |
[INFO] [stdout] 380 |             let mut three = self.have_three();
[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/player.rs:381:17
[INFO] [stdout]     |
[INFO] [stdout] 381 |             let mut three2 = self.have_three();
[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/player.rs:382:17
[INFO] [stdout]     |
[INFO] [stdout] 382 |             let mut three3 = self.have_three();
[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/player.rs:383:17
[INFO] [stdout]     |
[INFO] [stdout] 383 |             let mut three4 = self.have_three();
[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/player.rs:384:17
[INFO] [stdout]     |
[INFO] [stdout] 384 |             let mut three5 = self.have_three();
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `one`
[INFO] [stdout]    --> src/player.rs:432:17
[INFO] [stdout]     |
[INFO] [stdout] 432 |             let one: Vec<String> = self.have_one();
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_one`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `three_head`
[INFO] [stdout]    --> src/player.rs:433:21
[INFO] [stdout]     |
[INFO] [stdout] 433 |             let mut three_head: Vec<&str> = vec![];
[INFO] [stdout]     |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_three_head`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/player.rs:436:21
[INFO] [stdout]     |
[INFO] [stdout] 436 |                 let t = remove_duplicates(Some(i.clone()));
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/player.rs:433:17
[INFO] [stdout]     |
[INFO] [stdout] 433 |             let mut three_head: Vec<&str> = vec![];
[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/player.rs:434:17
[INFO] [stdout]     |
[INFO] [stdout] 434 |             let mut temp: Vec<String> = vec![];
[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:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let mut p = Pai::new(1);
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `last_pai` is never read
[INFO] [stdout]   --> src/control_system.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub struct System<'a> {
[INFO] [stdout]    |                ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |         last_pai: (Option<String>, Option<&'a Player>),
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `System` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/pai.rs:143:25
[INFO] [stdout]     |
[INFO] [stdout] 143 |                     for i in 0..m {
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `temp2`
[INFO] [stdout]    --> src/player.rs:215:25
[INFO] [stdout]     |
[INFO] [stdout] 215 |                 let mut temp2: String = String::new();
[INFO] [stdout]     |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_temp2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]    --> src/player.rs:216:21
[INFO] [stdout]     |
[INFO] [stdout] 216 |                 for j in 0..*i.1 {
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/player.rs:215:21
[INFO] [stdout]     |
[INFO] [stdout] 215 |                 let mut temp2: String = String::new();
[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/player.rs:266:17
[INFO] [stdout]     |
[INFO] [stdout] 266 |             let mut three = self.have_three();
[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/player.rs:267:17
[INFO] [stdout]     |
[INFO] [stdout] 267 |             let mut one = self.have_one();
[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/player.rs:281:17
[INFO] [stdout]     |
[INFO] [stdout] 281 |             let mut three = self.have_three();
[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/player.rs:282:17
[INFO] [stdout]     |
[INFO] [stdout] 282 |             let mut one = self.have_double();
[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/player.rs:296:17
[INFO] [stdout]     |
[INFO] [stdout] 296 |             let mut three = self.have_three();
[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/player.rs:297:17
[INFO] [stdout]     |
[INFO] [stdout] 297 |             let mut one = self.have_three();
[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/player.rs:317:17
[INFO] [stdout]     |
[INFO] [stdout] 317 |             let mut three = self.have_three();
[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/player.rs:318:17
[INFO] [stdout]     |
[INFO] [stdout] 318 |             let mut three2 = self.have_three();
[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/player.rs:319:17
[INFO] [stdout]     |
[INFO] [stdout] 319 |             let mut three3 = self.have_three();
[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/player.rs:346:17
[INFO] [stdout]     |
[INFO] [stdout] 346 |             let mut three = self.have_three();
[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/player.rs:347:17
[INFO] [stdout]     |
[INFO] [stdout] 347 |             let mut three2 = self.have_three();
[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/player.rs:348:17
[INFO] [stdout]     |
[INFO] [stdout] 348 |             let mut three3 = self.have_three();
[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/player.rs:349:17
[INFO] [stdout]     |
[INFO] [stdout] 349 |             let mut three4 = self.have_three();
[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/player.rs:380:17
[INFO] [stdout]     |
[INFO] [stdout] 380 |             let mut three = self.have_three();
[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/player.rs:381:17
[INFO] [stdout]     |
[INFO] [stdout] 381 |             let mut three2 = self.have_three();
[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/player.rs:382:17
[INFO] [stdout]     |
[INFO] [stdout] 382 |             let mut three3 = self.have_three();
[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/player.rs:383:17
[INFO] [stdout]     |
[INFO] [stdout] 383 |             let mut three4 = self.have_three();
[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/player.rs:384:17
[INFO] [stdout]     |
[INFO] [stdout] 384 |             let mut three5 = self.have_three();
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `one`
[INFO] [stdout]    --> src/player.rs:432:17
[INFO] [stdout]     |
[INFO] [stdout] 432 |             let one: Vec<String> = self.have_one();
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_one`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `three_head`
[INFO] [stdout]    --> src/player.rs:433:21
[INFO] [stdout]     |
[INFO] [stdout] 433 |             let mut three_head: Vec<&str> = vec![];
[INFO] [stdout]     |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_three_head`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/player.rs:436:21
[INFO] [stdout]     |
[INFO] [stdout] 436 |                 let t = remove_duplicates(Some(i.clone()));
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/player.rs:433:17
[INFO] [stdout]     |
[INFO] [stdout] 433 |             let mut three_head: Vec<&str> = vec![];
[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/player.rs:434:17
[INFO] [stdout]     |
[INFO] [stdout] 434 |             let mut temp: Vec<String> = vec![];
[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:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let mut p = Pai::new(1);
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `last_pai` is never read
[INFO] [stdout]   --> src/control_system.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub struct System<'a> {
[INFO] [stdout]    |                ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |         last_pai: (Option<String>, Option<&'a Player>),
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `System` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.97s
[INFO] running `Command { std: "docker" "inspect" "fa8292d7e7dcc08c191b05093086114ea4a4931b4ee74ecedc8998c82bd34390", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fa8292d7e7dcc08c191b05093086114ea4a4931b4ee74ecedc8998c82bd34390", kill_on_drop: false }`
[INFO] [stdout] fa8292d7e7dcc08c191b05093086114ea4a4931b4ee74ecedc8998c82bd34390
