[INFO] cloning repository https://github.com/mrlukasbos/catan-client
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mrlukasbos/catan-client" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmrlukasbos%2Fcatan-client", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmrlukasbos%2Fcatan-client'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 672c657c9967a92d0bd30dce3b9b4ad3b3efcf82
[INFO] checking mrlukasbos/catan-client against master#5518eaa946291f00471af8b254b2a1715f234882 for pr-120393
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmrlukasbos%2Fcatan-client" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/mrlukasbos/catan-client on toolchain 5518eaa946291f00471af8b254b2a1715f234882
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/mrlukasbos/catan-client
[INFO] finished tweaking git repo https://github.com/mrlukasbos/catan-client
[INFO] tweaked toml for git repo https://github.com/mrlukasbos/catan-client written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/mrlukasbos/catan-client 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" "+5518eaa946291f00471af8b254b2a1715f234882" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded num-derive v0.3.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "+5518eaa946291f00471af8b254b2a1715f234882" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a7fbd4a7bb0ba646f2bceded844d2731648fae6fcdb4ae169aa4b30da3ee0c10
[INFO] running `Command { std: "docker" "start" "-a" "a7fbd4a7bb0ba646f2bceded844d2731648fae6fcdb4ae169aa4b30da3ee0c10", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a7fbd4a7bb0ba646f2bceded844d2731648fae6fcdb4ae169aa4b30da3ee0c10", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a7fbd4a7bb0ba646f2bceded844d2731648fae6fcdb4ae169aa4b30da3ee0c10", kill_on_drop: false }`
[INFO] [stdout] a7fbd4a7bb0ba646f2bceded844d2731648fae6fcdb4ae169aa4b30da3ee0c10
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "+5518eaa946291f00471af8b254b2a1715f234882" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0d8f0e8078e5205ead9d39ccb63d685da0fc23b8a8bf74e7f0f80c9481522066
[INFO] running `Command { std: "docker" "start" "-a" "0d8f0e8078e5205ead9d39ccb63d685da0fc23b8a8bf74e7f0f80c9481522066", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.4
[INFO] [stderr]    Compiling syn v1.0.5
[INFO] [stderr]    Compiling libc v0.2.66
[INFO] [stderr]    Compiling getrandom v0.1.13
[INFO] [stderr]     Checking cfg-if v0.1.10
[INFO] [stderr]    Compiling autocfg v0.1.7
[INFO] [stderr]    Compiling serde v1.0.101
[INFO] [stderr]     Checking ppv-lite86 v0.2.6
[INFO] [stderr]    Compiling ryu v1.0.0
[INFO] [stderr]     Checking itoa v0.4.4
[INFO] [stderr]    Compiling num-traits v0.2.10
[INFO] [stderr]     Checking bufstream v0.1.4
[INFO] [stderr]     Checking c2-chacha v0.2.3
[INFO] [stderr]    Compiling quote v1.0.2
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking rand_chacha v0.2.1
[INFO] [stderr]     Checking rand v0.7.2
[INFO] [stderr]    Compiling serde_derive v1.0.101
[INFO] [stderr]    Compiling num-derive v0.3.0
[INFO] [stderr]     Checking serde_json v1.0.40
[INFO] [stderr]     Checking catan-client v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/board.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/board.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/main.rs:291:5
[INFO] [stdout]     |
[INFO] [stdout] 286 | /     loop {
[INFO] [stdout] 287 | |         if let Ok(_buffer_size) = buf_stream.read_line(&mut buffer) {
[INFO] [stdout] 288 | |             return Some(buffer)
[INFO] [stdout] 289 | |         }
[INFO] [stdout] 290 | |     }
[INFO] [stdout]     | |_____- any code following this expression is unreachable
[INFO] [stdout] 291 |       None
[INFO] [stdout]     |       ^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/main.rs:291:5
[INFO] [stdout]     |
[INFO] [stdout] 286 | /     loop {
[INFO] [stdout] 287 | |         if let Ok(_buffer_size) = buf_stream.read_line(&mut buffer) {
[INFO] [stdout] 288 | |             return Some(buffer)
[INFO] [stdout] 289 | |         }
[INFO] [stdout] 290 | |     }
[INFO] [stdout]     | |_____- any code following this expression is unreachable
[INFO] [stdout] 291 |       None
[INFO] [stdout]     |       ^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player`
[INFO] [stdout]    --> src/board.rs:111:41
[INFO] [stdout]     |
[INFO] [stdout] 111 |     pub fn get_edges_from_player(&self, player: &Player) -> Vec<&Edge> {
[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: `player`
[INFO] [stdout]    --> src/board.rs:111:41
[INFO] [stdout]     |
[INFO] [stdout] 111 |     pub fn get_edges_from_player(&self, player: &Player) -> Vec<&Edge> {
[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: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:80:9
[INFO] [stdout]    |
[INFO] [stdout] 80 |     let mut stream;
[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:93:13
[INFO] [stdout]    |
[INFO] [stdout] 93 |         let mut join_message = ServerInput {
[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:80:9
[INFO] [stdout]    |
[INFO] [stdout] 80 |     let mut stream;
[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:93:13
[INFO] [stdout]    |
[INFO] [stdout] 93 |         let mut join_message = ServerInput {
[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:176:9
[INFO] [stdout]     |
[INFO] [stdout] 176 |     let mut client_response = ServerInput {
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `game`
[INFO] [stdout]    --> src/main.rs:184:87
[INFO] [stdout]     |
[INFO] [stdout] 184 | fn send_trade_command(stream: &TcpStream, mut buf_stream: &mut BufStream<&TcpStream>, game: &Game) -> Result<(), &'static str> {
[INFO] [stdout]     |                                                                                       ^^^^ help: if this is intentional, prefix it with an underscore: `_game`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:176:9
[INFO] [stdout]     |
[INFO] [stdout] 176 |     let mut client_response = ServerInput {
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `game`
[INFO] [stdout]    --> src/main.rs:184:87
[INFO] [stdout]     |
[INFO] [stdout] 184 | fn send_trade_command(stream: &TcpStream, mut buf_stream: &mut BufStream<&TcpStream>, game: &Game) -> Result<(), &'static str> {
[INFO] [stdout]     |                                                                                       ^^^^ help: if this is intentional, prefix it with an underscore: `_game`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_node_by_key`, `get_nodes_from_player`, `get_cities_from_player`, and `get_villages_from_player` are never used
[INFO] [stdout]    --> src/board.rs:41:12
[INFO] [stdout]     |
[INFO] [stdout] 24  | impl Board {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 41  |     pub fn get_node_by_key(&self, key: &str) -> Option<&Node> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88  |     pub fn get_nodes_from_player(&self, player: &Player) -> Vec<&Node> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97  |     pub fn get_cities_from_player(&self, player: &Player) -> Vec<&Node> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn get_villages_from_player(&self, player: &Player) -> Vec<&Node> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_node_by_key`, `get_nodes_from_player`, `get_cities_from_player`, and `get_villages_from_player` are never used
[INFO] [stdout]    --> src/board.rs:41:12
[INFO] [stdout]     |
[INFO] [stdout] 24  | impl Board {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 41  |     pub fn get_node_by_key(&self, key: &str) -> Option<&Node> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88  |     pub fn get_nodes_from_player(&self, player: &Player) -> Vec<&Node> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97  |     pub fn get_cities_from_player(&self, player: &Player) -> Vec<&Node> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn get_villages_from_player(&self, player: &Player) -> Vec<&Node> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:97:9
[INFO] [stdout]    |
[INFO] [stdout] 97 |         transmit(&mut buf_stream, &stream, &join_message);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let _ = transmit(&mut buf_stream, &stream, &join_message);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:97:9
[INFO] [stdout]    |
[INFO] [stdout] 97 |         transmit(&mut buf_stream, &stream, &join_message);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let _ = transmit(&mut buf_stream, &stream, &join_message);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/main.rs:188:82
[INFO] [stdout]     |
[INFO] [stdout] 188 |         from: String::from(all_resources.choose(&mut rand::thread_rng()).unwrap().clone()),
[INFO] [stdout]     |                                                                                  ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/main.rs:188:82
[INFO] [stdout]     |
[INFO] [stdout] 188 |         from: String::from(all_resources.choose(&mut rand::thread_rng()).unwrap().clone()),
[INFO] [stdout]     |                                                                                  ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/main.rs:189:83
[INFO] [stdout]     |
[INFO] [stdout] 189 |         to: String::from(wanted_resources.choose(&mut rand::thread_rng()).unwrap().clone()),
[INFO] [stdout]     |                                                                                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/main.rs:189:83
[INFO] [stdout]     |
[INFO] [stdout] 189 |         to: String::from(wanted_resources.choose(&mut rand::thread_rng()).unwrap().clone()),
[INFO] [stdout]     |                                                                                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 11 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 11 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 5.68s
[INFO] running `Command { std: "docker" "inspect" "0d8f0e8078e5205ead9d39ccb63d685da0fc23b8a8bf74e7f0f80c9481522066", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0d8f0e8078e5205ead9d39ccb63d685da0fc23b8a8bf74e7f0f80c9481522066", kill_on_drop: false }`
[INFO] [stdout] 0d8f0e8078e5205ead9d39ccb63d685da0fc23b8a8bf74e7f0f80c9481522066
