[INFO] cloning repository https://github.com/fvkramer/kv-client
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/fvkramer/kv-client" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffvkramer%2Fkv-client", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffvkramer%2Fkv-client'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 038cf5dd959dee4bdd09b6689ed978daa9552199
[INFO] checking fvkramer/kv-client against master#5518eaa946291f00471af8b254b2a1715f234882 for pr-120393
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffvkramer%2Fkv-client" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/fvkramer/kv-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/fvkramer/kv-client
[INFO] finished tweaking git repo https://github.com/fvkramer/kv-client
[INFO] tweaked toml for git repo https://github.com/fvkramer/kv-client written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/fvkramer/kv-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 slog-async v2.3.0
[INFO] [stderr]   Downloaded slog-term v2.4.2
[INFO] [stderr]   Downloaded blake2b_simd v0.5.9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] 03efc0e711dbdb00b7c5f0279bdd1534e67390f4207c5e64cf60384236c20607
[INFO] running `Command { std: "docker" "start" "-a" "03efc0e711dbdb00b7c5f0279bdd1534e67390f4207c5e64cf60384236c20607", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "03efc0e711dbdb00b7c5f0279bdd1534e67390f4207c5e64cf60384236c20607", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "03efc0e711dbdb00b7c5f0279bdd1534e67390f4207c5e64cf60384236c20607", kill_on_drop: false }`
[INFO] [stdout] 03efc0e711dbdb00b7c5f0279bdd1534e67390f4207c5e64cf60384236c20607
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] cf52ffe9c07ab3abb3122e99c707041a87c0e14a616ff98344ad12cd1c774247
[INFO] running `Command { std: "docker" "start" "-a" "cf52ffe9c07ab3abb3122e99c707041a87c0e14a616ff98344ad12cd1c774247", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v0.1.7
[INFO] [stderr]    Compiling libc v0.2.58
[INFO] [stderr]     Checking cfg-if v0.1.9
[INFO] [stderr]     Checking lazy_static v1.3.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.7
[INFO] [stderr]    Compiling unicode-xid v0.2.0
[INFO] [stderr]    Compiling semver-parser v0.7.0
[INFO] [stderr]    Compiling syn v1.0.13
[INFO] [stderr]    Compiling serde v1.0.104
[INFO] [stderr]     Checking rand_core v0.4.0
[INFO] [stderr]    Compiling ryu v1.0.2
[INFO] [stderr]    Compiling semver v0.9.0
[INFO] [stderr]    Compiling num-traits v0.2.8
[INFO] [stderr]    Compiling memchr v2.2.0
[INFO] [stderr]    Compiling proc-macro2 v0.4.30
[INFO] [stderr]    Compiling rustc_version v0.2.3
[INFO] [stderr]     Checking itoa v0.4.4
[INFO] [stderr]    Compiling unicode-xid v0.1.0
[INFO] [stderr]    Compiling crossbeam-utils v0.7.0
[INFO] [stderr]     Checking rand_core v0.3.1
[INFO] [stderr]     Checking thread_local v0.3.6
[INFO] [stderr]    Compiling syn v0.15.35
[INFO] [stderr]    Compiling byteorder v1.3.2
[INFO] [stderr]    Compiling quote v1.0.2
[INFO] [stderr]    Compiling cc v1.0.37
[INFO] [stderr]    Compiling memoffset v0.5.3
[INFO] [stderr]    Compiling num-integer v0.1.41
[INFO] [stderr]    Compiling bitflags v1.1.0
[INFO] [stderr]    Compiling quote v0.6.12
[INFO] [stderr]    Compiling slog v2.5.2
[INFO] [stderr]     Checking dirs-sys v0.3.4
[INFO] [stderr]     Checking atty v0.2.11
[INFO] [stderr]    Compiling crossbeam-epoch v0.8.0
[INFO] [stderr]    Compiling backtrace v0.3.30
[INFO] [stderr]    Compiling failure_derive v0.1.5
[INFO] [stderr]     Checking unicode-width v0.1.5
[INFO] [stderr]     Checking textwrap v0.11.0
[INFO] [stderr]     Checking dirs v2.0.2
[INFO] [stderr]     Checking time v0.1.42
[INFO] [stderr]     Checking ansi_term v0.11.0
[INFO] [stderr]     Checking strsim v0.8.0
[INFO] [stderr]    Compiling backtrace-sys v0.1.28
[INFO] [stderr]     Checking rustc-demangle v0.1.15
[INFO] [stderr]     Checking scopeguard v1.0.0
[INFO] [stderr]     Checking vec_map v0.8.1
[INFO] [stderr]     Checking term v0.6.1
[INFO] [stderr]     Checking clap v2.33.0
[INFO] [stderr]     Checking chrono v0.4.10
[INFO] [stderr]    Compiling cast v0.2.3
[INFO] [stderr]    Compiling rand_chacha v0.1.1
[INFO] [stderr]    Compiling rand_pcg v0.1.2
[INFO] [stderr]    Compiling regex v1.1.7
[INFO] [stderr]    Compiling rayon-core v1.7.0
[INFO] [stderr]     Checking ucd-util v0.1.3
[INFO] [stderr]     Checking either v1.5.3
[INFO] [stderr]     Checking take_mut v0.2.2
[INFO] [stderr]     Checking regex-syntax v0.6.7
[INFO] [stderr]     Checking slog-async v2.3.0
[INFO] [stderr]     Checking slog-term v2.4.2
[INFO] [stderr]     Checking crossbeam-deque v0.7.2
[INFO] [stderr]     Checking crossbeam-queue v0.2.1
[INFO] [stderr]     Checking regex-automata v0.1.8
[INFO] [stderr]     Checking aho-corasick v0.7.3
[INFO] [stderr]     Checking num_cpus v1.11.1
[INFO] [stderr]     Checking rand_os v0.1.3
[INFO] [stderr]    Compiling rand v0.6.5
[INFO] [stderr]    Compiling synstructure v0.10.2
[INFO] [stderr]    Compiling escargot v0.4.0
[INFO] [stderr]     Checking utf8-ranges v1.0.3
[INFO] [stderr]    Compiling serde_derive v1.0.104
[INFO] [stderr]     Checking predicates-core v1.0.0
[INFO] [stderr]     Checking itertools v0.8.2
[INFO] [stderr]     Checking csv-core v0.1.6
[INFO] [stderr]     Checking float-cmp v0.4.0
[INFO] [stderr]     Checking rand_xorshift v0.1.1
[INFO] [stderr]     Checking rand_isaac v0.1.1
[INFO] [stderr]     Checking rand_hc v0.1.0
[INFO] [stderr]     Checking rand_jitter v0.1.4
[INFO] [stderr]     Checking log v0.4.6
[INFO] [stderr]     Checking treeline v0.1.0
[INFO] [stderr]     Checking normalize-line-endings v0.2.2
[INFO] [stderr]     Checking difference v2.0.0
[INFO] [stderr]     Checking same-file v1.0.4
[INFO] [stderr]     Checking predicates-tree v1.0.0
[INFO] [stderr]     Checking rayon v1.3.0
[INFO] [stderr]     Checking walkdir v2.2.8
[INFO] [stderr]     Checking rand_xoshiro v0.1.0
[INFO] [stderr]     Checking remove_dir_all v0.5.1
[INFO] [stderr]     Checking criterion-plot v0.3.1
[INFO] [stderr]     Checking tempfile v3.0.8
[INFO] [stderr]     Checking failure v0.1.5
[INFO] [stderr]     Checking predicates v1.0.1
[INFO] [stderr]     Checking serde_json v1.0.44
[INFO] [stderr]     Checking bstr v0.2.8
[INFO] [stderr]     Checking csv v1.1.1
[INFO] [stderr]     Checking tinytemplate v1.0.3
[INFO] [stderr]     Checking kvs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/kv.rs:16:23
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn set(&mut self, key: String, value: String) -> Result<()> {
[INFO] [stdout]    |                       ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/kv.rs:16:36
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn set(&mut self, key: String, value: String) -> Result<()> {
[INFO] [stdout]    |                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/kv.rs:20:23
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn get(&mut self, key: String) -> Result<Option<String>> {
[INFO] [stdout]    |                       ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/kv.rs:24:26
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn remove(&mut self, key: String) -> Result<()> {
[INFO] [stdout]    |                          ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 4 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::BufReader`
[INFO] [stdout]  --> src/bin/kvs-server.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::io::BufReader;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/bin/kvs-server.rs:17:16
[INFO] [stdout]    |
[INFO] [stdout] 17 |             if (size > 0) {
[INFO] [stdout]    |                ^        ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 17 -             if (size > 0) {
[INFO] [stdout] 17 +             if size > 0 {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Shutdown`
[INFO] [stdout]  --> src/bin/kvs-client.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::net::{Ipv4Addr, Shutdown, SocketAddr, SocketAddrV4, TcpStream};
[INFO] [stdout]   |                          ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/bin/kvs-client.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/bin/kvs-client.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     panic!("no args");
[INFO] [stdout]    |     ----------------- any code following this expression is unreachable
[INFO] [stdout] 23 |     Ok(())
[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/bin/kvs-client.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | /     loop {
[INFO] [stdout] 28 | |         let mut input = String::new();
[INFO] [stdout] 29 | |         print!("> ");
[INFO] [stdout] 30 | |         io::stdout().flush();
[INFO] [stdout] ...  |
[INFO] [stdout] 33 | |         transmit_client_input(stream, input.trim());
[INFO] [stdout] 34 | |     }
[INFO] [stdout]    | |_____- any code following this expression is unreachable
[INFO] [stdout] 35 |       Ok(())
[INFO] [stdout]    |       ^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bin/kvs-client.rs:11:15
[INFO] [stdout]    |
[INFO] [stdout] 11 |     if let Ok(mut stream) = TcpStream::connect(&addr) {
[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: function `run_command_prompt` is never used
[INFO] [stdout]   --> src/bin/kvs-client.rs:26:4
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn run_command_prompt(stream: &mut TcpStream) -> Result<()> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `transmit_client_input` is never used
[INFO] [stdout]   --> src/bin/kvs-client.rs:38:4
[INFO] [stdout]    |
[INFO] [stdout] 38 | fn transmit_client_input(stream: &mut TcpStream, input: &str) -> Result<usize> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking criterion v0.2.11
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]  --> src/bin/kvs-client.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     Command::new("clear").spawn()?.wait();
[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] 9 |     let _ = Command::new("clear").spawn()?.wait();
[INFO] [stdout]   |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/bin/kvs-client.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |         io::stdout().flush();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let _ = io::stdout().flush();
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/bin/kvs-client.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |         transmit_client_input(stream, input.trim());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 33 |         let _ = transmit_client_input(stream, input.trim());
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/bin/kvs-server.rs:77:13
[INFO] [stdout]    |
[INFO] [stdout] 77 |             handle_client(stream.unwrap());
[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] 77 |             let _ = handle_client(stream.unwrap());
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/bin/kvs-server.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 85 |             handle_client(stream.unwrap());
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 85 |             let _ = handle_client(stream.unwrap());
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 10 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 4 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking assert_cmd v0.11.1
[INFO] [stdout] warning: unused import: `Shutdown`
[INFO] [stdout]  --> src/bin/kvs-client.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::net::{Ipv4Addr, Shutdown, SocketAddr, SocketAddrV4, TcpStream};
[INFO] [stdout]   |                          ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/bin/kvs-client.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `KvsEngine`
[INFO] [stdout]  --> tests/kv_store.rs:1:20
[INFO] [stdout]   |
[INFO] [stdout] 1 | use kvs::{KvStore, KvsEngine, Result};
[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/bin/kvs-client.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     panic!("no args");
[INFO] [stdout]    |     ----------------- any code following this expression is unreachable
[INFO] [stdout] 23 |     Ok(())
[INFO] [stdout]    |     ^^^^^^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::BufReader`
[INFO] [stdout]  --> src/bin/kvs-server.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::io::BufReader;
[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/bin/kvs-client.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | /     loop {
[INFO] [stdout] 28 | |         let mut input = String::new();
[INFO] [stdout] 29 | |         print!("> ");
[INFO] [stdout] 30 | |         io::stdout().flush();
[INFO] [stdout] ...  |
[INFO] [stdout] 33 | |         transmit_client_input(stream, input.trim());
[INFO] [stdout] 34 | |     }
[INFO] [stdout]    | |_____- any code following this expression is unreachable
[INFO] [stdout] 35 |       Ok(())
[INFO] [stdout]    |       ^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/bin/kvs-server.rs:17:16
[INFO] [stdout]    |
[INFO] [stdout] 17 |             if (size > 0) {
[INFO] [stdout]    |                ^        ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 17 -             if (size > 0) {
[INFO] [stdout] 17 +             if size > 0 {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bin/kvs-client.rs:11:15
[INFO] [stdout]    |
[INFO] [stdout] 11 |     if let Ok(mut stream) = TcpStream::connect(&addr) {
[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: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_command_prompt` is never used
[INFO] [stdout]   --> src/bin/kvs-client.rs:26:4
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn run_command_prompt(stream: &mut TcpStream) -> Result<()> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `transmit_client_input` is never used
[INFO] [stdout]   --> src/bin/kvs-client.rs:38:4
[INFO] [stdout]    |
[INFO] [stdout] 38 | fn transmit_client_input(stream: &mut TcpStream, input: &str) -> Result<usize> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]  --> src/bin/kvs-client.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     Command::new("clear").spawn()?.wait();
[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] 9 |     let _ = Command::new("clear").spawn()?.wait();
[INFO] [stdout]   |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/bin/kvs-client.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |         io::stdout().flush();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let _ = io::stdout().flush();
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/bin/kvs-client.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |         transmit_client_input(stream, input.trim());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 33 |         let _ = transmit_client_input(stream, input.trim());
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 10 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/bin/kvs-server.rs:77:13
[INFO] [stdout]    |
[INFO] [stdout] 77 |             handle_client(stream.unwrap());
[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] 77 |             let _ = handle_client(stream.unwrap());
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/bin/kvs-server.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 85 |             handle_client(stream.unwrap());
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 85 |             let _ = handle_client(stream.unwrap());
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 4 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/kv.rs:16:23
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn set(&mut self, key: String, value: String) -> Result<()> {
[INFO] [stdout]    |                       ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/kv.rs:16:36
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn set(&mut self, key: String, value: String) -> Result<()> {
[INFO] [stdout]    |                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/kv.rs:20:23
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn get(&mut self, key: String) -> Result<Option<String>> {
[INFO] [stdout]    |                       ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/kv.rs:24:26
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn remove(&mut self, key: String) -> Result<()> {
[INFO] [stdout]    |                          ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 4 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 15.30s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: criterion v0.2.11
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "cf52ffe9c07ab3abb3122e99c707041a87c0e14a616ff98344ad12cd1c774247", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cf52ffe9c07ab3abb3122e99c707041a87c0e14a616ff98344ad12cd1c774247", kill_on_drop: false }`
[INFO] [stdout] cf52ffe9c07ab3abb3122e99c707041a87c0e14a616ff98344ad12cd1c774247
