[INFO] fetching crate cocaine 0.9.2...
[INFO] checking cocaine-0.9.2 against try#8d0c454bea9d9cc2cc7e288388f3b7d1da19c04f for pr-114559
[INFO] extracting crate cocaine 0.9.2 into /workspace/builds/worker-5-tc2/source
[INFO] validating manifest of crates.io crate cocaine 0.9.2 on toolchain 8d0c454bea9d9cc2cc7e288388f3b7d1da19c04f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8d0c454bea9d9cc2cc7e288388f3b7d1da19c04f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate cocaine 0.9.2
[INFO] finished tweaking crates.io crate cocaine 0.9.2
[INFO] tweaked toml for crates.io crate cocaine 0.9.2 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8d0c454bea9d9cc2cc7e288388f3b7d1da19c04f" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8d0c454bea9d9cc2cc7e288388f3b7d1da19c04f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:5c16f4e6c37141f9fef0bc86f7a492d732943053e42aab8461035881e3f53823" "/opt/rustwide/cargo-home/bin/cargo" "+8d0c454bea9d9cc2cc7e288388f3b7d1da19c04f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 0724e39488f66a157e19d37387306a8219fa2813e8f0fc3682500eaa7015b5b0
[INFO] running `Command { std: "docker" "start" "-a" "0724e39488f66a157e19d37387306a8219fa2813e8f0fc3682500eaa7015b5b0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0724e39488f66a157e19d37387306a8219fa2813e8f0fc3682500eaa7015b5b0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0724e39488f66a157e19d37387306a8219fa2813e8f0fc3682500eaa7015b5b0", kill_on_drop: false }`
[INFO] [stdout] 0724e39488f66a157e19d37387306a8219fa2813e8f0fc3682500eaa7015b5b0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:5c16f4e6c37141f9fef0bc86f7a492d732943053e42aab8461035881e3f53823" "/opt/rustwide/cargo-home/bin/cargo" "+8d0c454bea9d9cc2cc7e288388f3b7d1da19c04f" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] eab623718b045236b1ccd5d42d5bcede1925e0aaacab33af8d965e2fa98cfd2c
[INFO] running `Command { std: "docker" "start" "-a" "eab623718b045236b1ccd5d42d5bcede1925e0aaacab33af8d965e2fa98cfd2c", kill_on_drop: false }`
[INFO] [stderr]    Compiling crossbeam-utils v0.7.2
[INFO] [stderr]    Compiling memoffset v0.5.6
[INFO] [stderr]    Compiling crossbeam-epoch v0.8.2
[INFO] [stderr]     Checking lock_api v0.3.4
[INFO] [stderr]     Checking tokio-sync v0.1.8
[INFO] [stderr]     Checking thread_local v0.3.6
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]    Compiling parking_lot_core v0.6.3
[INFO] [stderr]     Checking net2 v0.2.39
[INFO] [stderr]    Compiling parking_lot v0.9.0
[INFO] [stderr]     Checking slog v1.7.1
[INFO] [stderr]     Checking num v0.1.42
[INFO] [stderr]     Checking rmp v0.8.12
[INFO] [stderr]     Checking isatty v0.1.9
[INFO] [stderr]     Checking serde_bytes v0.11.12
[INFO] [stderr]     Checking scoped-tls v0.1.2
[INFO] [stderr]     Checking chrono v0.2.25
[INFO] [stderr]     Checking crossbeam v0.2.12
[INFO] [stderr]     Checking bytes v0.4.12
[INFO] [stderr]     Checking slog-extra v0.1.2
[INFO] [stderr]     Checking mio v0.6.23
[INFO] [stderr]     Checking slog-stream v1.2.1
[INFO] [stderr]     Checking rmp-serde v0.13.7
[INFO] [stderr]     Checking rmpv v0.4.7
[INFO] [stderr]     Checking tokio-io v0.1.13
[INFO] [stderr]     Checking tokio-executor v0.1.10
[INFO] [stderr]     Checking crossbeam-queue v0.2.3
[INFO] [stderr]     Checking slog-term v1.5.0
[INFO] [stderr]     Checking tokio-codec v0.1.2
[INFO] [stderr]     Checking mio-uds v0.6.8
[INFO] [stderr]     Checking tokio-reactor v0.1.12
[INFO] [stderr]     Checking tokio-current-thread v0.1.7
[INFO] [stderr]     Checking tokio-timer v0.2.13
[INFO] [stderr]     Checking slog-stdlog v1.1.0
[INFO] [stderr]     Checking crossbeam-deque v0.7.4
[INFO] [stderr]     Checking slog-envlogger v0.5.0
[INFO] [stderr]     Checking tokio-threadpool v0.1.18
[INFO] [stderr]     Checking tokio-tcp v0.1.4
[INFO] [stderr]     Checking tokio-uds v0.2.7
[INFO] [stderr]     Checking tokio-udp v0.1.6
[INFO] [stderr]     Checking tokio-fs v0.1.7
[INFO] [stderr]     Checking tokio v0.1.22
[INFO] [stderr]     Checking tokio-core v0.1.18
[INFO] [stderr]     Checking cocaine v0.9.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:387:1
[INFO] [stdout]     |
[INFO] [stdout] 387 | / bitflags! {
[INFO] [stdout] 388 | |     flags Shutdown: u8 {
[INFO] [stdout] 389 | |         const CLOSE_SEND = 0b0001,
[INFO] [stdout] 390 | |         const CLOSE_RECV = 0b0010,
[INFO] [stdout] 391 | |         const CLOSE_USER = 0b0100,
[INFO] [stdout] 392 | |     }
[INFO] [stdout] 393 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:387:1
[INFO] [stdout]     |
[INFO] [stdout] 387 | / bitflags! {
[INFO] [stdout] 388 | |     flags Shutdown: u8 {
[INFO] [stdout] 389 | |         const CLOSE_SEND = 0b0001,
[INFO] [stdout] 390 | |         const CLOSE_RECV = 0b0010,
[INFO] [stdout] 391 | |         const CLOSE_USER = 0b0100,
[INFO] [stdout] 392 | |     }
[INFO] [stdout] 393 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:387:1
[INFO] [stdout]     |
[INFO] [stdout] 387 | / bitflags! {
[INFO] [stdout] 388 | |     flags Shutdown: u8 {
[INFO] [stdout] 389 | |         const CLOSE_SEND = 0b0001,
[INFO] [stdout] 390 | |         const CLOSE_RECV = 0b0010,
[INFO] [stdout] 391 | |         const CLOSE_USER = 0b0100,
[INFO] [stdout] 392 | |     }
[INFO] [stdout] 393 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:387:1
[INFO] [stdout]     |
[INFO] [stdout] 387 | / bitflags! {
[INFO] [stdout] 388 | |     flags Shutdown: u8 {
[INFO] [stdout] 389 | |         const CLOSE_SEND = 0b0001,
[INFO] [stdout] 390 | |         const CLOSE_RECV = 0b0010,
[INFO] [stdout] 391 | |         const CLOSE_USER = 0b0100,
[INFO] [stdout] 392 | |     }
[INFO] [stdout] 393 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info)
[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/lib.rs:411:77
[INFO] [stdout]     |
[INFO] [stdout] 411 |                 MultiplexError::Io(io::Error::new(err.kind(), error::Error::description(err)))
[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/lib.rs:414:90
[INFO] [stdout]     |
[INFO] [stdout] 414 |                 MultiplexError::InvalidProtocol(io::Error::new(err.kind(), error::Error::description(err)))
[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/lib.rs:803:68
[INFO] [stdout]     |
[INFO] [stdout] 803 |                 Error::Io(io::Error::new(err.kind(), error::Error::description(err)))
[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/lib.rs:806:81
[INFO] [stdout]     |
[INFO] [stdout] 806 |                 Error::InvalidProtocol(io::Error::new(err.kind(), error::Error::description(err)))
[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/logging.rs:115:37
[INFO] [stdout]     |
[INFO] [stdout] 115 |         fmt.write_str(error::Error::description(self))
[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/lib.rs:411:77
[INFO] [stdout]     |
[INFO] [stdout] 411 |                 MultiplexError::Io(io::Error::new(err.kind(), error::Error::description(err)))
[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/lib.rs:414:90
[INFO] [stdout]     |
[INFO] [stdout] 414 |                 MultiplexError::InvalidProtocol(io::Error::new(err.kind(), error::Error::description(err)))
[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/lib.rs:803:68
[INFO] [stdout]     |
[INFO] [stdout] 803 |                 Error::Io(io::Error::new(err.kind(), error::Error::description(err)))
[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/lib.rs:806:81
[INFO] [stdout]     |
[INFO] [stdout] 806 |                 Error::InvalidProtocol(io::Error::new(err.kind(), error::Error::description(err)))
[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/logging.rs:115:37
[INFO] [stdout]     |
[INFO] [stdout] 115 |         fmt.write_str(error::Error::description(self))
[INFO] [stdout]     |                                     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:212:19
[INFO] [stdout]     |
[INFO] [stdout] 212 |     dispatch: Box<Dispatch>,
[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: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 212 |     dispatch: Box<dyn Dispatch>,
[INFO] [stdout]     |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:462:34
[INFO] [stdout]     |
[INFO] [stdout] 462 |     dispatches: HashMap<u64, Box<Dispatch>>,
[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] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 462 |     dispatches: HashMap<u64, Box<dyn Dispatch>>,
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:896:20
[INFO] [stdout]     |
[INFO] [stdout] 896 |     Connecting(Box<Future<Item=TcpStream, Error=io::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] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 896 |     Connecting(Box<dyn Future<Item=TcpStream, Error=io::Error>>),
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:188:68
[INFO] [stdout]     |
[INFO] [stdout] 188 |     fn process(self: Box<Self>, response: &Response) -> Option<Box<Dispatch>>;
[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] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 188 |     fn process(self: Box<Self>, response: &Response) -> Option<Box<dyn Dispatch>>;
[INFO] [stdout]     |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:212:19
[INFO] [stdout]     |
[INFO] [stdout] 212 |     dispatch: Box<Dispatch>,
[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: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 212 |     dispatch: Box<dyn Dispatch>,
[INFO] [stdout]     |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:462:34
[INFO] [stdout]     |
[INFO] [stdout] 462 |     dispatches: HashMap<u64, Box<Dispatch>>,
[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] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 462 |     dispatches: HashMap<u64, Box<dyn Dispatch>>,
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:896:20
[INFO] [stdout]     |
[INFO] [stdout] 896 |     Connecting(Box<Future<Item=TcpStream, Error=io::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] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 896 |     Connecting(Box<dyn Future<Item=TcpStream, Error=io::Error>>),
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:875:32
[INFO] [stdout]     |
[INFO] [stdout] 875 |     fn cause(&self) -> Option<&error::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] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 875 |     fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/dispatch.rs:42:68
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn process(self: Box<Self>, response: &Response) -> Option<Box<Dispatch>> {
[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] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn process(self: Box<Self>, response: &Response) -> Option<Box<dyn Dispatch>> {
[INFO] [stdout]    |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:188:68
[INFO] [stdout]     |
[INFO] [stdout] 188 |     fn process(self: Box<Self>, response: &Response) -> Option<Box<Dispatch>>;
[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] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 188 |     fn process(self: Box<Self>, response: &Response) -> Option<Box<dyn Dispatch>>;
[INFO] [stdout]     |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/dispatch.rs:68:70
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn send(self: Box<Self>, result: Result<T, Error>) -> Option<Box<Dispatch>>
[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] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn send(self: Box<Self>, result: Result<T, Error>) -> Option<Box<dyn Dispatch>>
[INFO] [stdout]    |                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/dispatch.rs:80:68
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn process(self: Box<Self>, response: &Response) -> Option<Box<Dispatch>> {
[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] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn process(self: Box<Self>, response: &Response) -> Option<Box<dyn Dispatch>> {
[INFO] [stdout]    |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/frame.rs:28:32
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn cause(&self) -> Option<&error::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] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:875:32
[INFO] [stdout]     |
[INFO] [stdout] 875 |     fn cause(&self) -> Option<&error::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] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 875 |     fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/dispatch.rs:42:68
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn process(self: Box<Self>, response: &Response) -> Option<Box<Dispatch>> {
[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] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn process(self: Box<Self>, response: &Response) -> Option<Box<dyn Dispatch>> {
[INFO] [stdout]    |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/dispatch.rs:68:70
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn send(self: Box<Self>, result: Result<T, Error>) -> Option<Box<Dispatch>>
[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] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn send(self: Box<Self>, result: Result<T, Error>) -> Option<Box<dyn Dispatch>>
[INFO] [stdout]    |                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/dispatch.rs:80:68
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn process(self: Box<Self>, response: &Response) -> Option<Box<Dispatch>> {
[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] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn process(self: Box<Self>, response: &Response) -> Option<Box<dyn Dispatch>> {
[INFO] [stdout]    |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/frame.rs:28:32
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn cause(&self) -> Option<&error::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] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/resolve.rs:145:23
[INFO] [stdout]     |
[INFO] [stdout] 145 |     type Future = Box<Future<Item = ResolveInfo<SocketAddr>, Error = 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] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 145 |     type Future = Box<dyn Future<Item = ResolveInfo<SocketAddr>, Error = Error>>;
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/resolve.rs:145:23
[INFO] [stdout]     |
[INFO] [stdout] 145 |     type Future = Box<Future<Item = ResolveInfo<SocketAddr>, Error = 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] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 145 |     type Future = Box<dyn Future<Item = ResolveInfo<SocketAddr>, Error = Error>>;
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/service/unicorn.rs:258:38
[INFO] [stdout]     |
[INFO] [stdout] 258 |         impl Future<Item=(Close, Box<Stream<Item=(Option<T>, Version), Error=Error> + Send + 'a>), Error=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] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 258 |         impl Future<Item=(Close, Box<dyn Stream<Item=(Option<T>, Version), Error=Error> + Send + 'a>), Error=Error>
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/service/unicorn.rs:290:38
[INFO] [stdout]     |
[INFO] [stdout] 290 |         impl Future<Item=(Close, Box<Stream<Item=(Version, Vec<String>), Error=Error> + Send>), Error=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] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 290 |         impl Future<Item=(Close, Box<dyn Stream<Item=(Version, Vec<String>), Error=Error> + Send>), Error=Error>
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/service/unicorn.rs:258:38
[INFO] [stdout]     |
[INFO] [stdout] 258 |         impl Future<Item=(Close, Box<Stream<Item=(Option<T>, Version), Error=Error> + Send + 'a>), Error=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] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 258 |         impl Future<Item=(Close, Box<dyn Stream<Item=(Option<T>, Version), Error=Error> + Send + 'a>), Error=Error>
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/service/unicorn.rs:290:38
[INFO] [stdout]     |
[INFO] [stdout] 290 |         impl Future<Item=(Close, Box<Stream<Item=(Version, Vec<String>), Error=Error> + Send>), Error=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] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 290 |         impl Future<Item=(Close, Box<dyn Stream<Item=(Version, Vec<String>), Error=Error> + Send>), Error=Error>
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/service/unicorn.rs:278:50
[INFO] [stdout]     |
[INFO] [stdout] 278 |             let stream = Box::new(stream) as Box<Stream<Item=(Option<T>, Version), Error=Error> + Send>;
[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] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 278 |             let stream = Box::new(stream) as Box<dyn Stream<Item=(Option<T>, Version), Error=Error> + Send>;
[INFO] [stdout]     |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/service/unicorn.rs:278:50
[INFO] [stdout]     |
[INFO] [stdout] 278 |             let stream = Box::new(stream) as Box<Stream<Item=(Option<T>, Version), Error=Error> + Send>;
[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] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 278 |             let stream = Box::new(stream) as Box<dyn Stream<Item=(Option<T>, Version), Error=Error> + Send>;
[INFO] [stdout]     |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/service/unicorn.rs:305:50
[INFO] [stdout]     |
[INFO] [stdout] 305 |             let stream = Box::new(stream) as Box<Stream<Item=(Version, Vec<String>), Error=Error> + Send>;
[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] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 305 |             let stream = Box::new(stream) as Box<dyn Stream<Item=(Version, Vec<String>), Error=Error> + Send>;
[INFO] [stdout]     |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/service/unicorn.rs:305:50
[INFO] [stdout]     |
[INFO] [stdout] 305 |             let stream = Box::new(stream) as Box<Stream<Item=(Version, Vec<String>), Error=Error> + Send>;
[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] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 305 |             let stream = Box::new(stream) as Box<dyn Stream<Item=(Version, Vec<String>), Error=Error> + Send>;
[INFO] [stdout]     |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `inner` is never read
[INFO] [stdout]    --> src/logging.rs:162:5
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub struct LoggerContext {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 162 |     inner: Arc<Inner>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LoggerContext` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `futures::Future` that must be used
[INFO] [stdout]   --> src/logging.rs:48:25
[INFO] [stdout]    |
[INFO] [stdout] 48 |                         service.call_mute(Request::from_buf(0, buf));
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: futures do nothing unless polled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing
[INFO] [stdout]   --> src/logging.rs:57:13
[INFO] [stdout]    |
[INFO] [stdout] 57 |             drop(core.run(future.fold(0, |acc, _v| future::ok(acc))));
[INFO] [stdout]    |             ^^^^^---------------------------------------------------^
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  argument has type `Result<i32, ()>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]    = note: `#[warn(dropping_copy_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `futures::Future` that must be used
[INFO] [stdout]   --> src/service/app.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |         self.inner.send(Request::new(0, &[data]).unwrap());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: futures do nothing unless polled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `futures::Future` that must be used
[INFO] [stdout]   --> src/service/app.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |         self.inner.send(Request::new(1, &((0, id), description)).unwrap());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: futures do nothing unless polled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `futures::Future` that must be used
[INFO] [stdout]   --> src/service/app.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |         self.inner.send(Request::new(2, &[0; 0]).unwrap());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: futures do nothing unless polled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `futures::Future` that must be used
[INFO] [stdout]   --> src/service/locator.rs:61:9
[INFO] [stdout]    |
[INFO] [stdout] 61 |         self.service.call(Request::new(Method::Resolve.into(), &[name]).unwrap(), dispatch);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: futures do nothing unless polled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `futures::Future` that must be used
[INFO] [stdout]   --> src/service/locator.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 82 |         self.service.call(Request::new(Method::Routing.into(), &[uuid]).unwrap(), dispatch);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: futures do nothing unless polled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `futures::Future` that must be used
[INFO] [stdout]   --> src/service/tvm.rs:67:17
[INFO] [stdout]    |
[INFO] [stdout] 67 |                 self.service.call(Request::new(method, &(id, secret, ty, args)).unwrap(), dispatch);
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: futures do nothing unless polled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `futures::Future` that must be used
[INFO] [stdout]   --> src/service/unicorn.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |         self.sender.send(Request::new(0, &[0; 0]).unwrap());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: futures do nothing unless polled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `futures::Future` that must be used
[INFO] [stdout]    --> src/service/unicorn.rs:123:9
[INFO] [stdout]     |
[INFO] [stdout] 123 |         self.service.call(request, dispatch);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless polled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `futures::Future` that must be used
[INFO] [stdout]    --> src/service/unicorn.rs:161:9
[INFO] [stdout]     |
[INFO] [stdout] 161 |         self.service.call(request, dispatch);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless polled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `futures::Future` that must be used
[INFO] [stdout]    --> src/service/unicorn.rs:197:9
[INFO] [stdout]     |
[INFO] [stdout] 197 |         self.service.call(request, dispatch);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless polled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `futures::Future` that must be used
[INFO] [stdout]    --> src/service/unicorn.rs:235:9
[INFO] [stdout]     |
[INFO] [stdout] 235 |         self.service.call(request, dispatch);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless polled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `inner` is never read
[INFO] [stdout]    --> src/logging.rs:162:5
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub struct LoggerContext {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 162 |     inner: Arc<Inner>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LoggerContext` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 35 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `futures::Future` that must be used
[INFO] [stdout]   --> src/logging.rs:48:25
[INFO] [stdout]    |
[INFO] [stdout] 48 |                         service.call_mute(Request::from_buf(0, buf));
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: futures do nothing unless polled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing
[INFO] [stdout]   --> src/logging.rs:57:13
[INFO] [stdout]    |
[INFO] [stdout] 57 |             drop(core.run(future.fold(0, |acc, _v| future::ok(acc))));
[INFO] [stdout]    |             ^^^^^---------------------------------------------------^
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  argument has type `Result<i32, ()>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]    = note: `#[warn(dropping_copy_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `futures::Future` that must be used
[INFO] [stdout]   --> src/service/app.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |         self.inner.send(Request::new(0, &[data]).unwrap());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: futures do nothing unless polled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `futures::Future` that must be used
[INFO] [stdout]   --> src/service/app.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |         self.inner.send(Request::new(1, &((0, id), description)).unwrap());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: futures do nothing unless polled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `futures::Future` that must be used
[INFO] [stdout]   --> src/service/app.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |         self.inner.send(Request::new(2, &[0; 0]).unwrap());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: futures do nothing unless polled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `futures::Future` that must be used
[INFO] [stdout]   --> src/service/locator.rs:61:9
[INFO] [stdout]    |
[INFO] [stdout] 61 |         self.service.call(Request::new(Method::Resolve.into(), &[name]).unwrap(), dispatch);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: futures do nothing unless polled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `futures::Future` that must be used
[INFO] [stdout]   --> src/service/locator.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 82 |         self.service.call(Request::new(Method::Routing.into(), &[uuid]).unwrap(), dispatch);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: futures do nothing unless polled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `futures::Future` that must be used
[INFO] [stdout]   --> src/service/tvm.rs:67:17
[INFO] [stdout]    |
[INFO] [stdout] 67 |                 self.service.call(Request::new(method, &(id, secret, ty, args)).unwrap(), dispatch);
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: futures do nothing unless polled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `futures::Future` that must be used
[INFO] [stdout]   --> src/service/unicorn.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |         self.sender.send(Request::new(0, &[0; 0]).unwrap());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: futures do nothing unless polled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `futures::Future` that must be used
[INFO] [stdout]    --> src/service/unicorn.rs:123:9
[INFO] [stdout]     |
[INFO] [stdout] 123 |         self.service.call(request, dispatch);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless polled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `futures::Future` that must be used
[INFO] [stdout]    --> src/service/unicorn.rs:161:9
[INFO] [stdout]     |
[INFO] [stdout] 161 |         self.service.call(request, dispatch);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless polled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `futures::Future` that must be used
[INFO] [stdout]    --> src/service/unicorn.rs:197:9
[INFO] [stdout]     |
[INFO] [stdout] 197 |         self.service.call(request, dispatch);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless polled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `futures::Future` that must be used
[INFO] [stdout]    --> src/service/unicorn.rs:235:9
[INFO] [stdout]     |
[INFO] [stdout] 235 |         self.service.call(request, dispatch);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless polled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 35 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> examples/service.rs:24:68
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn process(self: Box<Self>, response: &Response) -> Option<Box<Dispatch>> {
[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: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn process(self: Box<Self>, response: &Response) -> Option<Box<dyn Dispatch>> {
[INFO] [stdout]    |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> tests/service.rs:128:73
[INFO] [stdout]     |
[INFO] [stdout] 128 |         fn process(self: Box<Self>, _response: &Response) -> Option<Box<Dispatch>> {
[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: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 128 |         fn process(self: Box<Self>, _response: &Response) -> Option<Box<dyn Dispatch>> {
[INFO] [stdout]     |                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: a method with this name may be added to the standard library in the future
[INFO] [stdout]   --> tests/service.rs:73:14
[INFO] [stdout]    |
[INFO] [stdout] 73 |         sock.set_linger(None).unwrap();
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
[INFO] [stdout]    = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
[INFO] [stdout]    = help: call with fully qualified syntax `net2::TcpStreamExt::set_linger(...)` to keep using the current method
[INFO] [stdout]    = help: add `#![feature(tcp_linger)]` to the crate attributes to enable `std::net::TcpStream::set_linger`
[INFO] [stdout]    = note: `#[warn(unstable_name_collisions)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: a method with this name may be added to the standard library in the future
[INFO] [stdout]    --> tests/service.rs:106:14
[INFO] [stdout]     |
[INFO] [stdout] 106 |         sock.set_linger(None).unwrap();
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
[INFO] [stdout]     = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
[INFO] [stdout]     = help: call with fully qualified syntax `net2::TcpStreamExt::set_linger(...)` to keep using the current method
[INFO] [stdout]     = help: add `#![feature(tcp_linger)]` to the crate attributes to enable `std::net::TcpStream::set_linger`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing
[INFO] [stdout]   --> tests/service.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |         drop(tx.send(()));
[INFO] [stdout]    |         ^^^^^-----------^
[INFO] [stdout]    |              |
[INFO] [stdout]    |              argument has type `Result<(), ()>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]    = note: `#[warn(dropping_copy_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing
[INFO] [stdout]    --> tests/service.rs:139:21
[INFO] [stdout]     |
[INFO] [stdout] 139 |                     drop(self.tx.send(()));
[INFO] [stdout]     |                     ^^^^^----------------^
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          argument has type `Result<(), ()>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: use `let _ = ...` to ignore the expression or result
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `cpu`, `mem`, and `net` are never read
[INFO] [stdout]   --> examples/unicorn.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct Resource {
[INFO] [stdout]    |        -------- fields in this struct
[INFO] [stdout] 13 |     cpu: i64,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 14 |     mem: i64,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 15 |     net: i64,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Resource` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 5 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 2.09s
[INFO] running `Command { std: "docker" "inspect" "eab623718b045236b1ccd5d42d5bcede1925e0aaacab33af8d965e2fa98cfd2c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "eab623718b045236b1ccd5d42d5bcede1925e0aaacab33af8d965e2fa98cfd2c", kill_on_drop: false }`
[INFO] [stdout] eab623718b045236b1ccd5d42d5bcede1925e0aaacab33af8d965e2fa98cfd2c
