[INFO] cloning repository https://github.com/ArtemFrantsiian/telnet_chat
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ArtemFrantsiian/telnet_chat" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FArtemFrantsiian%2Ftelnet_chat", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FArtemFrantsiian%2Ftelnet_chat'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c6ab6d6b618650938f7a495d28fe965227297335
[INFO] testing ArtemFrantsiian/telnet_chat against master#d98a5da813da67eb189387b8ccfb73cf481275d8+rustflags=-Copt-level=3 for pr-138759
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FArtemFrantsiian%2Ftelnet_chat" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ArtemFrantsiian/telnet_chat
[INFO] finished tweaking git repo https://github.com/ArtemFrantsiian/telnet_chat
[INFO] tweaked toml for git repo https://github.com/ArtemFrantsiian/telnet_chat written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ArtemFrantsiian/telnet_chat on toolchain d98a5da813da67eb189387b8ccfb73cf481275d8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ArtemFrantsiian/telnet_chat 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" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded bitflags v1.0.3
[INFO] [stderr]   Downloaded rand_core v0.2.1
[INFO] [stderr]   Downloaded quote v0.6.3
[INFO] [stderr]   Downloaded memchr v2.0.1
[INFO] [stderr]   Downloaded ucd-util v0.1.1
[INFO] [stderr]   Downloaded aho-corasick v0.6.4
[INFO] [stderr]   Downloaded proc-macro2 v0.4.6
[INFO] [stderr]   Downloaded lazy_static v1.0.1
[INFO] [stderr]   Downloaded syn v0.14.2
[INFO] [stderr]   Downloaded utf8-ranges v1.0.0
[INFO] [stderr]   Downloaded thread_local v0.3.5
[INFO] [stderr]   Downloaded regex v1.0.1
[INFO] [stderr]   Downloaded regex-syntax v0.6.1
[INFO] [stderr]   Downloaded libc v0.2.42
[INFO] [stderr]   Downloaded winapi v0.3.5
[INFO] [stderr]   Downloaded serde_derive v1.0.67
[INFO] [stderr]   Downloaded rand v0.5.2
[INFO] [stderr]   Downloaded serde v1.0.67
[INFO] [stderr]   Downloaded docopt v1.0.0
[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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] dcf7504ec7f929fb087369e8a842b50896f75e56fe704a656fe4c4138768d62b
[INFO] running `Command { std: "docker" "start" "-a" "dcf7504ec7f929fb087369e8a842b50896f75e56fe704a656fe4c4138768d62b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "dcf7504ec7f929fb087369e8a842b50896f75e56fe704a656fe4c4138768d62b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dcf7504ec7f929fb087369e8a842b50896f75e56fe704a656fe4c4138768d62b", kill_on_drop: false }`
[INFO] [stdout] dcf7504ec7f929fb087369e8a842b50896f75e56fe704a656fe4c4138768d62b
[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 -Copt-level=3" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4eb72089397961fbd132d6e9bae7ee7ed6afedb6c858bef0809338f67381cfac
[INFO] running `Command { std: "docker" "start" "-a" "4eb72089397961fbd132d6e9bae7ee7ed6afedb6c858bef0809338f67381cfac", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]    Compiling libc v0.2.42
[INFO] [stderr]    Compiling proc-macro2 v0.4.6
[INFO] [stderr]    Compiling serde v1.0.67
[INFO] [stderr]    Compiling lazy_static v1.0.1
[INFO] [stderr]    Compiling regex v1.0.1
[INFO] [stderr]    Compiling ucd-util v0.1.1
[INFO] [stderr]    Compiling utf8-ranges v1.0.0
[INFO] [stderr]    Compiling rand_core v0.2.1
[INFO] [stderr]    Compiling strsim v0.7.0
[INFO] [stderr]    Compiling unreachable v1.0.0
[INFO] [stderr]    Compiling thread_local v0.3.5
[INFO] [stderr]    Compiling regex-syntax v0.6.1
[INFO] [stderr]    Compiling memchr v2.0.1
[INFO] [stderr]    Compiling rand v0.5.2
[INFO] [stderr]    Compiling quote v0.6.3
[INFO] [stderr]    Compiling aho-corasick v0.6.4
[INFO] [stderr]    Compiling syn v0.14.2
[INFO] [stderr]    Compiling serde_derive v1.0.67
[INFO] [stderr]    Compiling docopt v1.0.0
[INFO] [stderr]    Compiling telnet-chat v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     try!(req_tx.send(Request { addr: cli_addr, body: req_body }));
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     try!(req_tx.send(Request { addr: cli_addr, body: req_body }));
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:10:20
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let cli_addr = try!(stream.peer_addr());
[INFO] [stdout]    |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:17:22
[INFO] [stdout]    |
[INFO] [stdout] 17 |         let stream = try!(stream.try_clone());
[INFO] [stdout]    |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 |     try!(writeln!(writer, "Welcome to telnet chat!"));
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     try!(writer.flush());
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:42:26
[INFO] [stdout]    |
[INFO] [stdout] 42 |         finished = match try!(ntf_rx.recv()) {
[INFO] [stdout]    |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:43:40
[INFO] [stdout]    |
[INFO] [stdout] 43 |             Notify::Broadcast(bntf) => try!(handle_broadcast(&mut writer, bntf)),
[INFO] [stdout]    |                                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:44:38
[INFO] [stdout]    |
[INFO] [stdout] 44 |             Notify::Unicast(untf) => try!(handle_unicast(&mut writer, untf))
[INFO] [stdout]    |                                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:54:13
[INFO] [stdout]    |
[INFO] [stdout] 54 |             try!(writeln!(writer, "Rename: {} => {}", old_name, new_name));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:55:13
[INFO] [stdout]    |
[INFO] [stdout] 55 |             try!(writer.flush());
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:58:13
[INFO] [stdout]    |
[INFO] [stdout] 58 |             try!(writeln!(writer, "User {} protect his name", name));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:59:13
[INFO] [stdout]    |
[INFO] [stdout] 59 |             try!(writer.flush());
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:62:13
[INFO] [stdout]    |
[INFO] [stdout] 62 |             try!(writeln!(writer, "Join: {} from {}", name, addr));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:63:13
[INFO] [stdout]    |
[INFO] [stdout] 63 |             try!(writer.flush());
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:66:13
[INFO] [stdout]    |
[INFO] [stdout] 66 |             try!(writeln!(writer, "Leave: {}", name));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             try!(writer.flush());
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |             try!(writeln!(writer, "{}: {}", name, message));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:71:13
[INFO] [stdout]    |
[INFO] [stdout] 71 |             try!(writer.flush());
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:80:13
[INFO] [stdout]    |
[INFO] [stdout] 80 |             try!(writeln!(writer, "Hello! Your name is {}! Enjoy!", name));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |             try!(writer.flush());
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:87:13
[INFO] [stdout]    |
[INFO] [stdout] 87 |             try!(writeln!(writer, "Members online:"));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:91:13
[INFO] [stdout]    |
[INFO] [stdout] 91 |             try!(writer.flush());
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:89:17
[INFO] [stdout]    |
[INFO] [stdout] 89 |                 try!(writeln!(writer, "  {} from {}", mem.name, mem.addr));
[INFO] [stdout]    |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:95:17
[INFO] [stdout]    |
[INFO] [stdout] 95 |                 try!(writeln!(writer, "=> rename failed"));
[INFO] [stdout]    |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:96:17
[INFO] [stdout]    |
[INFO] [stdout] 96 |                 try!(writer.flush());
[INFO] [stdout]    |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/client.rs:101:17
[INFO] [stdout]     |
[INFO] [stdout] 101 |                 try!(writeln!(writer, "=> register failed"));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/client.rs:102:17
[INFO] [stdout]     |
[INFO] [stdout] 102 |                 try!(writer.flush());
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/client.rs:107:17
[INFO] [stdout]     |
[INFO] [stdout] 107 |                 try!(writeln!(writer, "=> submitting message failed"));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/client.rs:108:17
[INFO] [stdout]     |
[INFO] [stdout] 108 |                 try!(writer.flush());
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/client.rs:112:13
[INFO] [stdout]     |
[INFO] [stdout] 112 |             try!(writeln!(writer, "=> {}", message));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/client.rs:113:13
[INFO] [stdout]     |
[INFO] [stdout] 113 |             try!(writer.flush());
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/client.rs:120:20
[INFO] [stdout]     |
[INFO] [stdout] 120 |     let cli_addr = try!(stream.peer_addr());
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/client.rs:121:37
[INFO] [stdout]     |
[INFO] [stdout] 121 |     let mut reader = BufReader::new(try!(stream.try_clone()));
[INFO] [stdout]     |                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/client.rs:179:9
[INFO] [stdout]     |
[INFO] [stdout] 179 |         try!(req_tx.send(Request { addr: cli_addr, body: req_body }));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/client.rs:126:17
[INFO] [stdout]     |
[INFO] [stdout] 126 |         let _ = try!(reader.read_line(&mut buf));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/server.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/server.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |         try!(self.send_message(ntf));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/server.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |         try!(self.send_rename(true));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/server.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 75 |         try!(self.tx.send(Notify::Unicast(message)));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/server.rs:93:20
[INFO] [stdout]    |
[INFO] [stdout] 93 |     let listener = try!(TcpListener::bind((addr, port)));
[INFO] [stdout]    |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/server.rs:94:22
[INFO] [stdout]    |
[INFO] [stdout] 94 |     let local_addr = try!(listener.local_addr());
[INFO] [stdout]    |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/server.rs:108:32
[INFO] [stdout]     |
[INFO] [stdout] 108 |                 let cli_addr = try!(stream.peer_addr());
[INFO] [stdout]     |                                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/server.rs:181:13
[INFO] [stdout]     |
[INFO] [stdout] 181 |             try!(cli.join(list));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/server.rs:209:17
[INFO] [stdout]     |
[INFO] [stdout] 209 |                 try!(cli.list(list));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/server.rs:215:21
[INFO] [stdout]     |
[INFO] [stdout] 215 |                     try!(val.rename_failure());
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/server.rs:225:44
[INFO] [stdout]     |
[INFO] [stdout] 225 | ...                   let old_name = try!(cli.rename_success(name.clone()));
[INFO] [stdout]     |                                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/server.rs:233:48
[INFO] [stdout]     |
[INFO] [stdout] 233 | ...                   let old_name = try!(cli.rename_success(name.clone()));
[INFO] [stdout]     |                                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/server.rs:240:33
[INFO] [stdout]     |
[INFO] [stdout] 240 | ...                   try!(cli.rename_failure());
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/server.rs:245:40
[INFO] [stdout]     |
[INFO] [stdout] 245 |                         let old_name = try!(cli.rename_success(name.clone()));
[INFO] [stdout]     |                                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/server.rs:267:21
[INFO] [stdout]     |
[INFO] [stdout] 267 |                     try!(cli.register_failure());
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/server.rs:273:17
[INFO] [stdout]     |
[INFO] [stdout] 273 |                 try!(cli.submit_success());
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/server.rs:284:17
[INFO] [stdout]     |
[INFO] [stdout] 284 |                 try!(cli.message(message));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/message.rs:37:14
[INFO] [stdout]    |
[INFO] [stdout] 37 |     List(Vec<(Member)>),
[INFO] [stdout]    |              ^      ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 37 -     List(Vec<(Member)>),
[INFO] [stdout] 37 +     List(Vec<Member>),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/error.rs:40:32
[INFO] [stdout]    |
[INFO] [stdout] 40 |     fn cause(&self) -> Option<&Error> {
[INFO] [stdout]    |                                ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 40 |     fn cause(&self) -> Option<&dyn Error> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/error.rs:33:42
[INFO] [stdout]    |
[INFO] [stdout] 33 |             AppError::Io(ref err) => err.description(),
[INFO] [stdout]    |                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/error.rs:34:51
[INFO] [stdout]    |
[INFO] [stdout] 34 |             AppError::MpscReqSend(ref err) => err.description(),
[INFO] [stdout]    |                                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/error.rs:35:51
[INFO] [stdout]    |
[INFO] [stdout] 35 |             AppError::MpscNtfSend(ref err) => err.description(),
[INFO] [stdout]    |                                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/error.rs:36:48
[INFO] [stdout]    |
[INFO] [stdout] 36 |             AppError::MpscRecv(ref err) => err.description()
[INFO] [stdout]    |                                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `addr` is never read
[INFO] [stdout]   --> src/message.rs:47:27
[INFO] [stdout]    |
[INFO] [stdout] 47 |     Leave { name: String, addr: Address },
[INFO] [stdout]    |     -----                 ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BroadcastNotify` 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: field `addr` is never read
[INFO] [stdout]   --> src/message.rs:48:50
[INFO] [stdout]    |
[INFO] [stdout] 48 |     Rename { old_name: String, new_name: String, addr: Address },
[INFO] [stdout]    |     ------ field in this variant                 ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BroadcastNotify` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `addr` is never read
[INFO] [stdout]   --> src/message.rs:49:30
[INFO] [stdout]    |
[INFO] [stdout] 49 |     Register { name: String, addr: Address },
[INFO] [stdout]    |     --------                 ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BroadcastNotify` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `addr` is never read
[INFO] [stdout]   --> src/message.rs:50:28
[INFO] [stdout]    |
[INFO] [stdout] 50 |     Submit { name: String, addr: Address, message: String },
[INFO] [stdout]    |     ------                 ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BroadcastNotify` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |         writeln!(io::stderr(), "{}", err);
[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] 39 |         let _ = writeln!(io::stderr(), "{}", err);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/server.rs:104:17
[INFO] [stdout]     |
[INFO] [stdout] 104 |                 writeln!(io::stderr(), "{}", err);
[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] 104 |                 let _ = writeln!(io::stderr(), "{}", err);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/server.rs:114:25
[INFO] [stdout]     |
[INFO] [stdout] 114 |                         writeln!(io::stderr(), "Client {} aborted: {}", cli_addr, err);
[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] 114 |                         let _ = writeln!(io::stderr(), "Client {} aborted: {}", cli_addr, err);
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/server.rs:134:17
[INFO] [stdout]     |
[INFO] [stdout] 134 |                 writeln!(io::stderr(), "Request recv error: {}", err);
[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] 134 |                 let _ = writeln!(io::stderr(), "Request recv error: {}", err);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/server.rs:139:21
[INFO] [stdout]     |
[INFO] [stdout] 139 |                     writeln!(io::stderr(), "Response send Rrror: {}", err);
[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] 139 |                     let _ = writeln!(io::stderr(), "Response send Rrror: {}", err);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/server.rs:141:25
[INFO] [stdout]     |
[INFO] [stdout] 141 |                         cli.leave();
[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] 141 |                         let _ = cli.leave();
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/server.rs:149:17
[INFO] [stdout]     |
[INFO] [stdout] 149 |                 cli.tx.send(Notify::Broadcast(ntf.clone()));
[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] 149 |                 let _ = cli.tx.send(Notify::Broadcast(ntf.clone()));
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 49.54s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: syn v0.14.2
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
[INFO] running `Command { std: "docker" "inspect" "4eb72089397961fbd132d6e9bae7ee7ed6afedb6c858bef0809338f67381cfac", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4eb72089397961fbd132d6e9bae7ee7ed6afedb6c858bef0809338f67381cfac", kill_on_drop: false }`
[INFO] [stdout] 4eb72089397961fbd132d6e9bae7ee7ed6afedb6c858bef0809338f67381cfac
[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 -Copt-level=3" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7a8dd4a559b4de446d7d1ffbbbdbb3024b6450db88a518da5dae061337a11ed4
[INFO] running `Command { std: "docker" "start" "-a" "7a8dd4a559b4de446d7d1ffbbbdbb3024b6450db88a518da5dae061337a11ed4", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]    Compiling telnet-chat v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     try!(req_tx.send(Request { addr: cli_addr, body: req_body }));
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     try!(req_tx.send(Request { addr: cli_addr, body: req_body }));
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:10:20
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let cli_addr = try!(stream.peer_addr());
[INFO] [stdout]    |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:17:22
[INFO] [stdout]    |
[INFO] [stdout] 17 |         let stream = try!(stream.try_clone());
[INFO] [stdout]    |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 |     try!(writeln!(writer, "Welcome to telnet chat!"));
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     try!(writer.flush());
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:42:26
[INFO] [stdout]    |
[INFO] [stdout] 42 |         finished = match try!(ntf_rx.recv()) {
[INFO] [stdout]    |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:43:40
[INFO] [stdout]    |
[INFO] [stdout] 43 |             Notify::Broadcast(bntf) => try!(handle_broadcast(&mut writer, bntf)),
[INFO] [stdout]    |                                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:44:38
[INFO] [stdout]    |
[INFO] [stdout] 44 |             Notify::Unicast(untf) => try!(handle_unicast(&mut writer, untf))
[INFO] [stdout]    |                                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:54:13
[INFO] [stdout]    |
[INFO] [stdout] 54 |             try!(writeln!(writer, "Rename: {} => {}", old_name, new_name));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:55:13
[INFO] [stdout]    |
[INFO] [stdout] 55 |             try!(writer.flush());
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:58:13
[INFO] [stdout]    |
[INFO] [stdout] 58 |             try!(writeln!(writer, "User {} protect his name", name));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:59:13
[INFO] [stdout]    |
[INFO] [stdout] 59 |             try!(writer.flush());
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:62:13
[INFO] [stdout]    |
[INFO] [stdout] 62 |             try!(writeln!(writer, "Join: {} from {}", name, addr));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:63:13
[INFO] [stdout]    |
[INFO] [stdout] 63 |             try!(writer.flush());
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:66:13
[INFO] [stdout]    |
[INFO] [stdout] 66 |             try!(writeln!(writer, "Leave: {}", name));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             try!(writer.flush());
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |             try!(writeln!(writer, "{}: {}", name, message));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:71:13
[INFO] [stdout]    |
[INFO] [stdout] 71 |             try!(writer.flush());
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:80:13
[INFO] [stdout]    |
[INFO] [stdout] 80 |             try!(writeln!(writer, "Hello! Your name is {}! Enjoy!", name));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |             try!(writer.flush());
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:87:13
[INFO] [stdout]    |
[INFO] [stdout] 87 |             try!(writeln!(writer, "Members online:"));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:91:13
[INFO] [stdout]    |
[INFO] [stdout] 91 |             try!(writer.flush());
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:89:17
[INFO] [stdout]    |
[INFO] [stdout] 89 |                 try!(writeln!(writer, "  {} from {}", mem.name, mem.addr));
[INFO] [stdout]    |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:95:17
[INFO] [stdout]    |
[INFO] [stdout] 95 |                 try!(writeln!(writer, "=> rename failed"));
[INFO] [stdout]    |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/client.rs:96:17
[INFO] [stdout]    |
[INFO] [stdout] 96 |                 try!(writer.flush());
[INFO] [stdout]    |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/client.rs:101:17
[INFO] [stdout]     |
[INFO] [stdout] 101 |                 try!(writeln!(writer, "=> register failed"));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/client.rs:102:17
[INFO] [stdout]     |
[INFO] [stdout] 102 |                 try!(writer.flush());
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/client.rs:107:17
[INFO] [stdout]     |
[INFO] [stdout] 107 |                 try!(writeln!(writer, "=> submitting message failed"));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/client.rs:108:17
[INFO] [stdout]     |
[INFO] [stdout] 108 |                 try!(writer.flush());
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/client.rs:112:13
[INFO] [stdout]     |
[INFO] [stdout] 112 |             try!(writeln!(writer, "=> {}", message));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/client.rs:113:13
[INFO] [stdout]     |
[INFO] [stdout] 113 |             try!(writer.flush());
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/client.rs:120:20
[INFO] [stdout]     |
[INFO] [stdout] 120 |     let cli_addr = try!(stream.peer_addr());
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/client.rs:121:37
[INFO] [stdout]     |
[INFO] [stdout] 121 |     let mut reader = BufReader::new(try!(stream.try_clone()));
[INFO] [stdout]     |                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/client.rs:179:9
[INFO] [stdout]     |
[INFO] [stdout] 179 |         try!(req_tx.send(Request { addr: cli_addr, body: req_body }));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/client.rs:126:17
[INFO] [stdout]     |
[INFO] [stdout] 126 |         let _ = try!(reader.read_line(&mut buf));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/server.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/server.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |         try!(self.send_message(ntf));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/server.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |         try!(self.send_rename(true));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/server.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 75 |         try!(self.tx.send(Notify::Unicast(message)));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/server.rs:93:20
[INFO] [stdout]    |
[INFO] [stdout] 93 |     let listener = try!(TcpListener::bind((addr, port)));
[INFO] [stdout]    |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/server.rs:94:22
[INFO] [stdout]    |
[INFO] [stdout] 94 |     let local_addr = try!(listener.local_addr());
[INFO] [stdout]    |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/server.rs:108:32
[INFO] [stdout]     |
[INFO] [stdout] 108 |                 let cli_addr = try!(stream.peer_addr());
[INFO] [stdout]     |                                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/server.rs:181:13
[INFO] [stdout]     |
[INFO] [stdout] 181 |             try!(cli.join(list));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/server.rs:209:17
[INFO] [stdout]     |
[INFO] [stdout] 209 |                 try!(cli.list(list));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/server.rs:215:21
[INFO] [stdout]     |
[INFO] [stdout] 215 |                     try!(val.rename_failure());
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/server.rs:225:44
[INFO] [stdout]     |
[INFO] [stdout] 225 | ...                   let old_name = try!(cli.rename_success(name.clone()));
[INFO] [stdout]     |                                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/server.rs:233:48
[INFO] [stdout]     |
[INFO] [stdout] 233 | ...                   let old_name = try!(cli.rename_success(name.clone()));
[INFO] [stdout]     |                                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/server.rs:240:33
[INFO] [stdout]     |
[INFO] [stdout] 240 | ...                   try!(cli.rename_failure());
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/server.rs:245:40
[INFO] [stdout]     |
[INFO] [stdout] 245 |                         let old_name = try!(cli.rename_success(name.clone()));
[INFO] [stdout]     |                                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/server.rs:267:21
[INFO] [stdout]     |
[INFO] [stdout] 267 |                     try!(cli.register_failure());
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/server.rs:273:17
[INFO] [stdout]     |
[INFO] [stdout] 273 |                 try!(cli.submit_success());
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/server.rs:284:17
[INFO] [stdout]     |
[INFO] [stdout] 284 |                 try!(cli.message(message));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/message.rs:37:14
[INFO] [stdout]    |
[INFO] [stdout] 37 |     List(Vec<(Member)>),
[INFO] [stdout]    |              ^      ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 37 -     List(Vec<(Member)>),
[INFO] [stdout] 37 +     List(Vec<Member>),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/error.rs:40:32
[INFO] [stdout]    |
[INFO] [stdout] 40 |     fn cause(&self) -> Option<&Error> {
[INFO] [stdout]    |                                ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 40 |     fn cause(&self) -> Option<&dyn Error> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/error.rs:33:42
[INFO] [stdout]    |
[INFO] [stdout] 33 |             AppError::Io(ref err) => err.description(),
[INFO] [stdout]    |                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/error.rs:34:51
[INFO] [stdout]    |
[INFO] [stdout] 34 |             AppError::MpscReqSend(ref err) => err.description(),
[INFO] [stdout]    |                                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/error.rs:35:51
[INFO] [stdout]    |
[INFO] [stdout] 35 |             AppError::MpscNtfSend(ref err) => err.description(),
[INFO] [stdout]    |                                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/error.rs:36:48
[INFO] [stdout]    |
[INFO] [stdout] 36 |             AppError::MpscRecv(ref err) => err.description()
[INFO] [stdout]    |                                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `addr` is never read
[INFO] [stdout]   --> src/message.rs:47:27
[INFO] [stdout]    |
[INFO] [stdout] 47 |     Leave { name: String, addr: Address },
[INFO] [stdout]    |     -----                 ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BroadcastNotify` 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: field `addr` is never read
[INFO] [stdout]   --> src/message.rs:48:50
[INFO] [stdout]    |
[INFO] [stdout] 48 |     Rename { old_name: String, new_name: String, addr: Address },
[INFO] [stdout]    |     ------ field in this variant                 ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BroadcastNotify` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `addr` is never read
[INFO] [stdout]   --> src/message.rs:49:30
[INFO] [stdout]    |
[INFO] [stdout] 49 |     Register { name: String, addr: Address },
[INFO] [stdout]    |     --------                 ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BroadcastNotify` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `addr` is never read
[INFO] [stdout]   --> src/message.rs:50:28
[INFO] [stdout]    |
[INFO] [stdout] 50 |     Submit { name: String, addr: Address, message: String },
[INFO] [stdout]    |     ------                 ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BroadcastNotify` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |         writeln!(io::stderr(), "{}", err);
[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] 39 |         let _ = writeln!(io::stderr(), "{}", err);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/server.rs:104:17
[INFO] [stdout]     |
[INFO] [stdout] 104 |                 writeln!(io::stderr(), "{}", err);
[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] 104 |                 let _ = writeln!(io::stderr(), "{}", err);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/server.rs:114:25
[INFO] [stdout]     |
[INFO] [stdout] 114 |                         writeln!(io::stderr(), "Client {} aborted: {}", cli_addr, err);
[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] 114 |                         let _ = writeln!(io::stderr(), "Client {} aborted: {}", cli_addr, err);
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/server.rs:134:17
[INFO] [stdout]     |
[INFO] [stdout] 134 |                 writeln!(io::stderr(), "Request recv error: {}", err);
[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] 134 |                 let _ = writeln!(io::stderr(), "Request recv error: {}", err);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/server.rs:139:21
[INFO] [stdout]     |
[INFO] [stdout] 139 |                     writeln!(io::stderr(), "Response send Rrror: {}", err);
[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] 139 |                     let _ = writeln!(io::stderr(), "Response send Rrror: {}", err);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/server.rs:141:25
[INFO] [stdout]     |
[INFO] [stdout] 141 |                         cli.leave();
[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] 141 |                         let _ = cli.leave();
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/server.rs:149:17
[INFO] [stdout]     |
[INFO] [stdout] 149 |                 cli.tx.send(Notify::Broadcast(ntf.clone()));
[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] 149 |                 let _ = cli.tx.send(Notify::Broadcast(ntf.clone()));
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.47s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: syn v0.14.2
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
[INFO] running `Command { std: "docker" "inspect" "7a8dd4a559b4de446d7d1ffbbbdbb3024b6450db88a518da5dae061337a11ed4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7a8dd4a559b4de446d7d1ffbbbdbb3024b6450db88a518da5dae061337a11ed4", kill_on_drop: false }`
[INFO] [stdout] 7a8dd4a559b4de446d7d1ffbbbdbb3024b6450db88a518da5dae061337a11ed4
[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 -Copt-level=3" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 37e14512498a0fa112ffbbfc585232638c6cb94d8ebf31230d30dc568041cf2f
[INFO] running `Command { std: "docker" "start" "-a" "37e14512498a0fa112ffbbfc585232638c6cb94d8ebf31230d30dc568041cf2f", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/client.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 14 |     try!(req_tx.send(Request { addr: cli_addr, body: req_body }));
[INFO] [stderr]    |     ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/client.rs:28:5
[INFO] [stderr]    |
[INFO] [stderr] 28 |     try!(req_tx.send(Request { addr: cli_addr, body: req_body }));
[INFO] [stderr]    |     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/client.rs:10:20
[INFO] [stderr]    |
[INFO] [stderr] 10 |     let cli_addr = try!(stream.peer_addr());
[INFO] [stderr]    |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/client.rs:17:22
[INFO] [stderr]    |
[INFO] [stderr] 17 |         let stream = try!(stream.try_clone());
[INFO] [stderr]    |                      ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/client.rs:37:5
[INFO] [stderr]    |
[INFO] [stderr] 37 |     try!(writeln!(writer, "Welcome to telnet chat!"));
[INFO] [stderr]    |     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/client.rs:38:5
[INFO] [stderr]    |
[INFO] [stderr] 38 |     try!(writer.flush());
[INFO] [stderr]    |     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/client.rs:42:26
[INFO] [stderr]    |
[INFO] [stderr] 42 |         finished = match try!(ntf_rx.recv()) {
[INFO] [stderr]    |                          ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/client.rs:43:40
[INFO] [stderr]    |
[INFO] [stderr] 43 |             Notify::Broadcast(bntf) => try!(handle_broadcast(&mut writer, bntf)),
[INFO] [stderr]    |                                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/client.rs:44:38
[INFO] [stderr]    |
[INFO] [stderr] 44 |             Notify::Unicast(untf) => try!(handle_unicast(&mut writer, untf))
[INFO] [stderr]    |                                      ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/client.rs:54:13
[INFO] [stderr]    |
[INFO] [stderr] 54 |             try!(writeln!(writer, "Rename: {} => {}", old_name, new_name));
[INFO] [stderr]    |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/client.rs:55:13
[INFO] [stderr]    |
[INFO] [stderr] 55 |             try!(writer.flush());
[INFO] [stderr]    |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/client.rs:58:13
[INFO] [stderr]    |
[INFO] [stderr] 58 |             try!(writeln!(writer, "User {} protect his name", name));
[INFO] [stderr]    |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/client.rs:59:13
[INFO] [stderr]    |
[INFO] [stderr] 59 |             try!(writer.flush());
[INFO] [stderr]    |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/client.rs:62:13
[INFO] [stderr]    |
[INFO] [stderr] 62 |             try!(writeln!(writer, "Join: {} from {}", name, addr));
[INFO] [stderr]    |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/client.rs:63:13
[INFO] [stderr]    |
[INFO] [stderr] 63 |             try!(writer.flush());
[INFO] [stderr]    |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/client.rs:66:13
[INFO] [stderr]    |
[INFO] [stderr] 66 |             try!(writeln!(writer, "Leave: {}", name));
[INFO] [stderr]    |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/client.rs:67:13
[INFO] [stderr]    |
[INFO] [stderr] 67 |             try!(writer.flush());
[INFO] [stderr]    |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/client.rs:70:13
[INFO] [stderr]    |
[INFO] [stderr] 70 |             try!(writeln!(writer, "{}: {}", name, message));
[INFO] [stderr]    |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/client.rs:71:13
[INFO] [stderr]    |
[INFO] [stderr] 71 |             try!(writer.flush());
[INFO] [stderr]    |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/client.rs:80:13
[INFO] [stderr]    |
[INFO] [stderr] 80 |             try!(writeln!(writer, "Hello! Your name is {}! Enjoy!", name));
[INFO] [stderr]    |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/client.rs:81:13
[INFO] [stderr]    |
[INFO] [stderr] 81 |             try!(writer.flush());
[INFO] [stderr]    |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/client.rs:87:13
[INFO] [stderr]    |
[INFO] [stderr] 87 |             try!(writeln!(writer, "Members online:"));
[INFO] [stderr]    |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/client.rs:91:13
[INFO] [stderr]    |
[INFO] [stderr] 91 |             try!(writer.flush());
[INFO] [stderr]    |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/client.rs:89:17
[INFO] [stderr]    |
[INFO] [stderr] 89 |                 try!(writeln!(writer, "  {} from {}", mem.name, mem.addr));
[INFO] [stderr]    |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/client.rs:95:17
[INFO] [stderr]    |
[INFO] [stderr] 95 |                 try!(writeln!(writer, "=> rename failed"));
[INFO] [stderr]    |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/client.rs:96:17
[INFO] [stderr]    |
[INFO] [stderr] 96 |                 try!(writer.flush());
[INFO] [stderr]    |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/client.rs:101:17
[INFO] [stderr]     |
[INFO] [stderr] 101 |                 try!(writeln!(writer, "=> register failed"));
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/client.rs:102:17
[INFO] [stderr]     |
[INFO] [stderr] 102 |                 try!(writer.flush());
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/client.rs:107:17
[INFO] [stderr]     |
[INFO] [stderr] 107 |                 try!(writeln!(writer, "=> submitting message failed"));
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/client.rs:108:17
[INFO] [stderr]     |
[INFO] [stderr] 108 |                 try!(writer.flush());
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/client.rs:112:13
[INFO] [stderr]     |
[INFO] [stderr] 112 |             try!(writeln!(writer, "=> {}", message));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/client.rs:113:13
[INFO] [stderr]     |
[INFO] [stderr] 113 |             try!(writer.flush());
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/client.rs:120:20
[INFO] [stderr]     |
[INFO] [stderr] 120 |     let cli_addr = try!(stream.peer_addr());
[INFO] [stderr]     |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/client.rs:121:37
[INFO] [stderr]     |
[INFO] [stderr] 121 |     let mut reader = BufReader::new(try!(stream.try_clone()));
[INFO] [stderr]     |                                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/client.rs:179:9
[INFO] [stderr]     |
[INFO] [stderr] 179 |         try!(req_tx.send(Request { addr: cli_addr, body: req_body }));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/client.rs:126:17
[INFO] [stderr]     |
[INFO] [stderr] 126 |         let _ = try!(reader.read_line(&mut buf));
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `HashSet`
[INFO] [stderr]  --> src/server.rs:1:33
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::collections::{HashMap, HashSet};
[INFO] [stderr]   |                                 ^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/server.rs:23:9
[INFO] [stderr]    |
[INFO] [stderr] 23 |         try!(self.send_message(ntf));
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/server.rs:43:9
[INFO] [stderr]    |
[INFO] [stderr] 43 |         try!(self.send_rename(true));
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/server.rs:75:9
[INFO] [stderr]    |
[INFO] [stderr] 75 |         try!(self.tx.send(Notify::Unicast(message)));
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/server.rs:93:20
[INFO] [stderr]    |
[INFO] [stderr] 93 |     let listener = try!(TcpListener::bind((addr, port)));
[INFO] [stderr]    |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/server.rs:94:22
[INFO] [stderr]    |
[INFO] [stderr] 94 |     let local_addr = try!(listener.local_addr());
[INFO] [stderr]    |                      ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/server.rs:108:32
[INFO] [stderr]     |
[INFO] [stderr] 108 |                 let cli_addr = try!(stream.peer_addr());
[INFO] [stderr]     |                                ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/server.rs:181:13
[INFO] [stderr]     |
[INFO] [stderr] 181 |             try!(cli.join(list));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/server.rs:209:17
[INFO] [stderr]     |
[INFO] [stderr] 209 |                 try!(cli.list(list));
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/server.rs:215:21
[INFO] [stderr]     |
[INFO] [stderr] 215 |                     try!(val.rename_failure());
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/server.rs:225:44
[INFO] [stderr]     |
[INFO] [stderr] 225 | ...                   let old_name = try!(cli.rename_success(name.clone()));
[INFO] [stderr]     |                                      ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/server.rs:233:48
[INFO] [stderr]     |
[INFO] [stderr] 233 | ...                   let old_name = try!(cli.rename_success(name.clone()));
[INFO] [stderr]     |                                      ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/server.rs:240:33
[INFO] [stderr]     |
[INFO] [stderr] 240 | ...                   try!(cli.rename_failure());
[INFO] [stderr]     |                       ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/server.rs:245:40
[INFO] [stderr]     |
[INFO] [stderr] 245 |                         let old_name = try!(cli.rename_success(name.clone()));
[INFO] [stderr]     |                                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/server.rs:267:21
[INFO] [stderr]     |
[INFO] [stderr] 267 |                     try!(cli.register_failure());
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/server.rs:273:17
[INFO] [stderr]     |
[INFO] [stderr] 273 |                 try!(cli.submit_success());
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/server.rs:284:17
[INFO] [stderr]     |
[INFO] [stderr] 284 |                 try!(cli.message(message));
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/message.rs:37:14
[INFO] [stderr]    |
[INFO] [stderr] 37 |     List(Vec<(Member)>),
[INFO] [stderr]    |              ^      ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 37 -     List(Vec<(Member)>),
[INFO] [stderr] 37 +     List(Vec<Member>),
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/error.rs:40:32
[INFO] [stderr]    |
[INFO] [stderr] 40 |     fn cause(&self) -> Option<&Error> {
[INFO] [stderr]    |                                ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 40 |     fn cause(&self) -> Option<&dyn Error> {
[INFO] [stderr]    |                                +++
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]   --> src/error.rs:33:42
[INFO] [stderr]    |
[INFO] [stderr] 33 |             AppError::Io(ref err) => err.description(),
[INFO] [stderr]    |                                          ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]   --> src/error.rs:34:51
[INFO] [stderr]    |
[INFO] [stderr] 34 |             AppError::MpscReqSend(ref err) => err.description(),
[INFO] [stderr]    |                                                   ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]   --> src/error.rs:35:51
[INFO] [stderr]    |
[INFO] [stderr] 35 |             AppError::MpscNtfSend(ref err) => err.description(),
[INFO] [stderr]    |                                                   ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]   --> src/error.rs:36:48
[INFO] [stderr]    |
[INFO] [stderr] 36 |             AppError::MpscRecv(ref err) => err.description()
[INFO] [stderr]    |                                                ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `addr` is never read
[INFO] [stderr]   --> src/message.rs:47:27
[INFO] [stderr]    |
[INFO] [stderr] 47 |     Leave { name: String, addr: Address },
[INFO] [stderr]    |     -----                 ^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `BroadcastNotify` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `addr` is never read
[INFO] [stderr]   --> src/message.rs:48:50
[INFO] [stderr]    |
[INFO] [stderr] 48 |     Rename { old_name: String, new_name: String, addr: Address },
[INFO] [stderr]    |     ------ field in this variant                 ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `BroadcastNotify` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `addr` is never read
[INFO] [stderr]   --> src/message.rs:49:30
[INFO] [stderr]    |
[INFO] [stderr] 49 |     Register { name: String, addr: Address },
[INFO] [stderr]    |     --------                 ^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `BroadcastNotify` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `addr` is never read
[INFO] [stderr]   --> src/message.rs:50:28
[INFO] [stderr]    |
[INFO] [stderr] 50 |     Submit { name: String, addr: Address, message: String },
[INFO] [stderr]    |     ------                 ^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `BroadcastNotify` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/main.rs:39:9
[INFO] [stderr]    |
[INFO] [stderr] 39 |         writeln!(io::stderr(), "{}", err);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 39 |         let _ = writeln!(io::stderr(), "{}", err);
[INFO] [stderr]    |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/server.rs:104:17
[INFO] [stderr]     |
[INFO] [stderr] 104 |                 writeln!(io::stderr(), "{}", err);
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 104 |                 let _ = writeln!(io::stderr(), "{}", err);
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/server.rs:114:25
[INFO] [stderr]     |
[INFO] [stderr] 114 |                         writeln!(io::stderr(), "Client {} aborted: {}", cli_addr, err);
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 114 |                         let _ = writeln!(io::stderr(), "Client {} aborted: {}", cli_addr, err);
[INFO] [stderr]     |                         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/server.rs:134:17
[INFO] [stderr]     |
[INFO] [stderr] 134 |                 writeln!(io::stderr(), "Request recv error: {}", err);
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 134 |                 let _ = writeln!(io::stderr(), "Request recv error: {}", err);
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/server.rs:139:21
[INFO] [stderr]     |
[INFO] [stderr] 139 |                     writeln!(io::stderr(), "Response send Rrror: {}", err);
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 139 |                     let _ = writeln!(io::stderr(), "Response send Rrror: {}", err);
[INFO] [stderr]     |                     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/server.rs:141:25
[INFO] [stderr]     |
[INFO] [stderr] 141 |                         cli.leave();
[INFO] [stderr]     |                         ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 141 |                         let _ = cli.leave();
[INFO] [stderr]     |                         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/server.rs:149:17
[INFO] [stderr]     |
[INFO] [stderr] 149 |                 cli.tx.send(Notify::Broadcast(ntf.clone()));
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 149 |                 let _ = cli.tx.send(Notify::Broadcast(ntf.clone()));
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: `telnet-chat` (bin "telnet-chat" test) generated 70 warnings (run `cargo fix --bin "telnet-chat" --tests` to apply 3 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.10s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: syn v0.14.2
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/telnet_chat-66298108edee15ba)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "37e14512498a0fa112ffbbfc585232638c6cb94d8ebf31230d30dc568041cf2f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "37e14512498a0fa112ffbbfc585232638c6cb94d8ebf31230d30dc568041cf2f", kill_on_drop: false }`
[INFO] [stdout] 37e14512498a0fa112ffbbfc585232638c6cb94d8ebf31230d30dc568041cf2f
