[INFO] cloning repository https://github.com/unixpickle/squidtun
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/unixpickle/squidtun" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Funixpickle%2Fsquidtun", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Funixpickle%2Fsquidtun'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 69c8b05b86b62f30c7c396667c126132a15ab235
[INFO] checking unixpickle/squidtun against master#1b8f2e46e14b08208a53585570edd9206374aae8 for pr-155418-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Funixpickle%2Fsquidtun" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/unixpickle/squidtun
[INFO] finished tweaking git repo https://github.com/unixpickle/squidtun
[INFO] tweaked toml for git repo https://github.com/unixpickle/squidtun written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/unixpickle/squidtun on toolchain 1b8f2e46e14b08208a53585570edd9206374aae8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1b8f2e46e14b08208a53585570edd9206374aae8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/unixpickle/squidtun 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" "+1b8f2e46e14b08208a53585570edd9206374aae8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded cfg-if v0.1.2
[INFO] [stderr]   Downloaded log v0.4.1
[INFO] [stderr]   Downloaded futures v0.1.21
[INFO] [stderr]   Downloaded version_check v0.1.3
[INFO] [stderr]   Downloaded arrayvec v0.4.7
[INFO] [stderr]   Downloaded lazy_static v1.0.0
[INFO] [stderr]   Downloaded crossbeam-epoch v0.4.1
[INFO] [stderr]   Downloaded scoped-tls v0.1.1
[INFO] [stderr]   Downloaded tokio-core v0.1.16
[INFO] [stderr]   Downloaded tokio-service v0.1.0
[INFO] [stderr]   Downloaded slab v0.4.0
[INFO] [stderr]   Downloaded miow v0.2.1
[INFO] [stderr]   Downloaded tokio-timer v0.2.1
[INFO] [stderr]   Downloaded redox_termios v0.1.1
[INFO] [stderr]   Downloaded atty v0.2.8
[INFO] [stderr]   Downloaded take v0.1.0
[INFO] [stderr]   Downloaded simple_logger v0.5.0
[INFO] [stderr]   Downloaded nodrop v0.1.12
[INFO] [stderr]   Downloaded net2 v0.2.32
[INFO] [stderr]   Downloaded relay v0.1.1
[INFO] [stderr]   Downloaded slab v0.3.0
[INFO] [stderr]   Downloaded mio v0.6.14
[INFO] [stderr]   Downloaded strsim v0.7.0
[INFO] [stderr]   Downloaded textwrap v0.9.0
[INFO] [stderr]   Downloaded mime v0.3.5
[INFO] [stderr]   Downloaded scopeguard v0.3.3
[INFO] [stderr]   Downloaded vec_map v0.8.0
[INFO] [stderr]   Downloaded httparse v1.2.4
[INFO] [stderr]   Downloaded language-tags v0.2.2
[INFO] [stderr]   Downloaded smallvec v0.2.1
[INFO] [stderr]   Downloaded sha1 v0.6.0
[INFO] [stderr]   Downloaded tokio-udp v0.1.0
[INFO] [stderr]   Downloaded unicode-width v0.1.4
[INFO] [stderr]   Downloaded safemem v0.2.0
[INFO] [stderr]   Downloaded rand v0.3.22
[INFO] [stderr]   Downloaded crossbeam-utils v0.2.2
[INFO] [stderr]   Downloaded futures-cpupool v0.1.8
[INFO] [stderr]   Downloaded percent-encoding v1.0.1
[INFO] [stderr]   Downloaded log v0.3.9
[INFO] [stderr]   Downloaded crossbeam-utils v0.3.2
[INFO] [stderr]   Downloaded tokio-threadpool v0.1.2
[INFO] [stderr]   Downloaded termion v1.5.1
[INFO] [stderr]   Downloaded redox_syscall v0.1.37
[INFO] [stderr]   Downloaded time v0.1.39
[INFO] [stderr]   Downloaded base64 v0.9.0
[INFO] [stderr]   Downloaded tokio v0.1.5
[INFO] [stderr]   Downloaded rand v0.4.2
[INFO] [stderr]   Downloaded tokio-proto v0.1.1
[INFO] [stderr]   Downloaded hyper v0.11.25
[INFO] [stderr]   Downloaded unicase v2.1.0
[INFO] [stderr]   Downloaded clap v2.31.2
[INFO] [stderr]   Downloaded crossbeam-deque v0.3.0
[INFO] [stderr]   Downloaded tokio-reactor v0.1.1
[INFO] [stderr]   Downloaded bytes v0.4.6
[INFO] [stderr]   Downloaded lazycell v0.6.0
[INFO] [stderr]   Downloaded num_cpus v1.8.0
[INFO] [stderr]   Downloaded libc v0.2.40
[INFO] [stderr]   Downloaded tokio-executor v0.1.2
[INFO] [stderr]   Downloaded bitflags v1.0.1
[INFO] [stderr]   Downloaded byteorder v1.2.2
[INFO] [stderr]   Downloaded winapi v0.3.4
[INFO] [stderr]   Downloaded tokio-tcp v0.1.0
[INFO] [stderr]   Downloaded tokio-io v0.1.6
[INFO] [stderr]   Downloaded iovec v0.1.2
[INFO] [stderr]   Downloaded memoffset v0.2.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1b8f2e46e14b08208a53585570edd9206374aae8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a65a242d1d2453d323160f4378ab92cad834f142e4901d604e92d3fe57639071
[INFO] running `Command { std: "docker" "start" "-a" "a65a242d1d2453d323160f4378ab92cad834f142e4901d604e92d3fe57639071", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a65a242d1d2453d323160f4378ab92cad834f142e4901d604e92d3fe57639071", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a65a242d1d2453d323160f4378ab92cad834f142e4901d604e92d3fe57639071", kill_on_drop: false }`
[INFO] [stdout] a65a242d1d2453d323160f4378ab92cad834f142e4901d604e92d3fe57639071
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1b8f2e46e14b08208a53585570edd9206374aae8" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a9aaa8aca6b6c0ed60d4be9c84a5648c5fe6067b81cf39cf26a0b8bc07f63df9
[INFO] running `Command { std: "docker" "start" "-a" "a9aaa8aca6b6c0ed60d4be9c84a5648c5fe6067b81cf39cf26a0b8bc07f63df9", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr]     Checking libc v0.2.40
[INFO] [stderr]     Checking cfg-if v0.1.2
[INFO] [stderr]     Checking futures v0.1.21
[INFO] [stderr]     Checking byteorder v1.2.2
[INFO] [stderr]     Checking slab v0.4.0
[INFO] [stderr]     Checking lazycell v0.6.0
[INFO] [stderr]     Checking nodrop v0.1.12
[INFO] [stderr]     Checking memoffset v0.2.1
[INFO] [stderr]     Checking scopeguard v0.3.3
[INFO] [stderr]     Checking lazy_static v1.0.0
[INFO] [stderr]    Compiling version_check v0.1.3
[INFO] [stderr]     Checking scoped-tls v0.1.1
[INFO] [stderr]     Checking slab v0.3.0
[INFO] [stderr]     Checking unicode-width v0.1.4
[INFO] [stderr]     Checking take v0.1.0
[INFO] [stderr]     Checking safemem v0.2.0
[INFO] [stderr]     Checking smallvec v0.2.1
[INFO] [stderr]     Checking ansi_term v0.11.0
[INFO] [stderr]     Checking arrayvec v0.4.7
[INFO] [stderr]     Checking log v0.4.1
[INFO] [stderr]     Checking crossbeam-utils v0.3.2
[INFO] [stderr]     Checking crossbeam-utils v0.2.2
[INFO] [stderr]     Checking bitflags v1.0.1
[INFO] [stderr]     Checking httparse v1.2.4
[INFO] [stderr]     Checking percent-encoding v1.0.1
[INFO] [stderr]     Checking textwrap v0.9.0
[INFO] [stderr]     Checking strsim v0.7.0
[INFO] [stderr]     Checking language-tags v0.2.2
[INFO] [stderr]     Checking vec_map v0.8.0
[INFO] [stderr]     Checking sha1 v0.6.0
[INFO] [stderr]     Checking log v0.3.9
[INFO] [stderr]    Compiling unicase v2.1.0
[INFO] [stderr]     Checking crossbeam-epoch v0.4.1
[INFO] [stderr]     Checking base64 v0.9.0
[INFO] [stderr]     Checking iovec v0.1.2
[INFO] [stderr]     Checking net2 v0.2.32
[INFO] [stderr]     Checking num_cpus v1.8.0
[INFO] [stderr]     Checking rand v0.4.2
[INFO] [stderr]     Checking time v0.1.39
[INFO] [stderr]     Checking atty v0.2.8
[INFO] [stderr]     Checking bytes v0.4.6
[INFO] [stderr]     Checking crossbeam-deque v0.3.0
[INFO] [stderr]     Checking clap v2.31.2
[INFO] [stderr]     Checking mime v0.3.5
[INFO] [stderr]     Checking simple_logger v0.5.0
[INFO] [stderr]     Checking mio v0.6.14
[INFO] [stderr]     Checking rand v0.3.22
[INFO] [stderr]     Checking tokio-executor v0.1.2
[INFO] [stderr]     Checking tokio-io v0.1.6
[INFO] [stderr]     Checking tokio-service v0.1.0
[INFO] [stderr]     Checking futures-cpupool v0.1.8
[INFO] [stderr]     Checking relay v0.1.1
[INFO] [stderr]     Checking tokio-threadpool v0.1.2
[INFO] [stderr]     Checking tokio-timer v0.2.1
[INFO] [stderr]     Checking tokio-reactor v0.1.1
[INFO] [stderr]     Checking tokio-tcp v0.1.0
[INFO] [stderr]     Checking tokio-udp v0.1.0
[INFO] [stderr]     Checking tokio v0.1.5
[INFO] [stderr]     Checking tokio-core v0.1.16
[INFO] [stderr]     Checking tokio-proto v0.1.1
[INFO] [stderr]     Checking hyper v0.11.25
[INFO] [stderr]     Checking squidtun v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/server/server.rs:110:14
[INFO] [stdout]     |
[INFO] [stdout] 110 |     ) -> Box<Future<Item = R, Error = String>> where F: FnOnce(&mut Session) -> R {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 110 |     ) -> Box<dyn Future<Item = R, Error = String>> where F: FnOnce(&mut Session) -> R {
[INFO] [stdout]     |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/server/server.rs:130:23
[INFO] [stdout]     |
[INFO] [stdout] 130 |     type Future = Box<Future<Item = Self::Response, Error = Self::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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 130 |     type Future = Box<dyn Future<Item = Self::Response, Error = Self::Error>>;
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/server/main.rs:66:10
[INFO] [stdout]    |
[INFO] [stdout] 66 | ) -> Box<Future<Item = (), 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 66 | ) -> Box<dyn Future<Item = (), Error = ()>> {
[INFO] [stdout]    |          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/client/main.rs:102:10
[INFO] [stdout]     |
[INFO] [stdout] 102 | ) -> Box<Future<Item = (), Error = String>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 102 | ) -> Box<dyn Future<Item = (), Error = String>> {
[INFO] [stdout]     |          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/server/session.rs:34:14
[INFO] [stdout]    |
[INFO] [stdout] 34 |     ) -> Box<Future<Item = Session, 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     ) -> Box<dyn Future<Item = Session, Error = io::Error>> {
[INFO] [stdout]    |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/server/server.rs:37:43
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn connect(&self, proof: &str) -> Box<Future<Item = Vec<u8>, Error = String>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn connect(&self, proof: &str) -> Box<dyn Future<Item = Vec<u8>, Error = String>> {
[INFO] [stdout]    |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/server/server.rs:57:55
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn upload(&self, req: Request, id: String) -> Box<Future<Item = Vec<u8>, Error = String>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn upload(&self, req: Request, id: String) -> Box<dyn Future<Item = Vec<u8>, Error = String>> {
[INFO] [stdout]    |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/client/main.rs:126:10
[INFO] [stdout]     |
[INFO] [stdout] 126 | ) -> Box<Future<Item = String, Error = String>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 126 | ) -> Box<dyn Future<Item = String, Error = String>> {
[INFO] [stdout]     |          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/client/main.rs:134:59
[INFO] [stdout]     |
[INFO] [stdout] 134 | fn upload_chunk(info: SessionInfo, chunk: Vec<u8>) -> Box<Future<Item = (), Error = String>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 134 | fn upload_chunk(info: SessionInfo, chunk: Vec<u8>) -> Box<dyn Future<Item = (), Error = String>> {
[INFO] [stdout]     |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/server/server.rs:76:41
[INFO] [stdout]    |
[INFO] [stdout] 76 |     fn download(&self, id: &str) -> Box<Future<Item = Vec<u8>, Error = String>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 76 |     fn download(&self, id: &str) -> Box<dyn Future<Item = Vec<u8>, Error = String>> {
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/client/main.rs:154:40
[INFO] [stdout]     |
[INFO] [stdout] 154 | fn send_eof(info: &SessionInfo) -> Box<Future<Item = (), Error = String>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 154 | fn send_eof(info: &SessionInfo) -> Box<dyn Future<Item = (), Error = String>> {
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/server/server.rs:94:38
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn close(&self, id: &str) -> Box<Future<Item = Vec<u8>, Error = String>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn close(&self, id: &str) -> Box<dyn Future<Item = Vec<u8>, Error = String>> {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/client/main.rs:159:47
[INFO] [stdout]     |
[INFO] [stdout] 159 | fn download_stream(info: &SessionInfo) -> Box<Stream<Item = Vec<u8>, Error = String>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 159 | fn download_stream(info: &SessionInfo) -> Box<dyn Stream<Item = Vec<u8>, Error = String>> {
[INFO] [stdout]     |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/client/main.rs:186:10
[INFO] [stdout]     |
[INFO] [stdout] 186 | ) -> Box<Future<Item = Vec<u8>, Error = String>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 186 | ) -> Box<dyn Future<Item = Vec<u8>, Error = String>> {
[INFO] [stdout]     |          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/server/server.rs:102:30
[INFO] [stdout]     |
[INFO] [stdout] 102 |     fn invalid(&self) -> Box<Future<Item = Vec<u8>, Error = String>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 102 |     fn invalid(&self) -> Box<dyn Future<Item = Vec<u8>, Error = String>> {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/server/server.rs:110:14
[INFO] [stdout]     |
[INFO] [stdout] 110 |     ) -> Box<Future<Item = R, Error = String>> where F: FnOnce(&mut Session) -> R {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 110 |     ) -> Box<dyn Future<Item = R, Error = String>> where F: FnOnce(&mut Session) -> R {
[INFO] [stdout]     |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/server/server.rs:130:23
[INFO] [stdout]     |
[INFO] [stdout] 130 |     type Future = Box<Future<Item = Self::Response, Error = Self::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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 130 |     type Future = Box<dyn Future<Item = Self::Response, Error = Self::Error>>;
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/server/main.rs:66:10
[INFO] [stdout]    |
[INFO] [stdout] 66 | ) -> Box<Future<Item = (), 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 66 | ) -> Box<dyn Future<Item = (), Error = ()>> {
[INFO] [stdout]    |          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/server/session.rs:34:14
[INFO] [stdout]    |
[INFO] [stdout] 34 |     ) -> Box<Future<Item = Session, 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     ) -> Box<dyn Future<Item = Session, Error = io::Error>> {
[INFO] [stdout]    |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/server/server.rs:37:43
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn connect(&self, proof: &str) -> Box<Future<Item = Vec<u8>, Error = String>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn connect(&self, proof: &str) -> Box<dyn Future<Item = Vec<u8>, Error = String>> {
[INFO] [stdout]    |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/server/server.rs:57:55
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn upload(&self, req: Request, id: String) -> Box<Future<Item = Vec<u8>, Error = String>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn upload(&self, req: Request, id: String) -> Box<dyn Future<Item = Vec<u8>, Error = String>> {
[INFO] [stdout]    |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/client/main.rs:108:30
[INFO] [stdout]     |
[INFO] [stdout] 108 |         let read_future: Box<Future<Item = (), Error = String>> = Box::new(
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 108 |         let read_future: Box<dyn Future<Item = (), Error = String>> = Box::new(
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/server/server.rs:76:41
[INFO] [stdout]    |
[INFO] [stdout] 76 |     fn download(&self, id: &str) -> Box<Future<Item = Vec<u8>, Error = String>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 76 |     fn download(&self, id: &str) -> Box<dyn Future<Item = Vec<u8>, Error = String>> {
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/server/server.rs:94:38
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn close(&self, id: &str) -> Box<Future<Item = Vec<u8>, Error = String>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn close(&self, id: &str) -> Box<dyn Future<Item = Vec<u8>, Error = String>> {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/server/server.rs:102:30
[INFO] [stdout]     |
[INFO] [stdout] 102 |     fn invalid(&self) -> Box<Future<Item = Vec<u8>, Error = String>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 102 |     fn invalid(&self) -> Box<dyn Future<Item = Vec<u8>, Error = String>> {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/client/main.rs:113:31
[INFO] [stdout]     |
[INFO] [stdout] 113 |         let write_future: Box<Future<Item = (), Error = String>> = Box::new(
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 113 |         let write_future: Box<dyn Future<Item = (), Error = String>> = Box::new(
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/server/server.rs:179:38
[INFO] [stdout]     |
[INFO] [stdout] 179 |         let prefixes: Vec<(&str, Box<Fn(String) -> RequestInfo>)> = vec![
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 179 |         let prefixes: Vec<(&str, Box<dyn Fn(String) -> RequestInfo>)> = vec![
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/server/server.rs:179:38
[INFO] [stdout]     |
[INFO] [stdout] 179 |         let prefixes: Vec<(&str, Box<Fn(String) -> RequestInfo>)> = vec![
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 179 |         let prefixes: Vec<(&str, Box<dyn Fn(String) -> RequestInfo>)> = vec![
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/client/main.rs:102:10
[INFO] [stdout]     |
[INFO] [stdout] 102 | ) -> Box<Future<Item = (), Error = String>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 102 | ) -> Box<dyn Future<Item = (), Error = String>> {
[INFO] [stdout]     |          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/client/main.rs:126:10
[INFO] [stdout]     |
[INFO] [stdout] 126 | ) -> Box<Future<Item = String, Error = String>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 126 | ) -> Box<dyn Future<Item = String, Error = String>> {
[INFO] [stdout]     |          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/client/main.rs:134:59
[INFO] [stdout]     |
[INFO] [stdout] 134 | fn upload_chunk(info: SessionInfo, chunk: Vec<u8>) -> Box<Future<Item = (), Error = String>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 134 | fn upload_chunk(info: SessionInfo, chunk: Vec<u8>) -> Box<dyn Future<Item = (), Error = String>> {
[INFO] [stdout]     |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/client/main.rs:154:40
[INFO] [stdout]     |
[INFO] [stdout] 154 | fn send_eof(info: &SessionInfo) -> Box<Future<Item = (), Error = String>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 154 | fn send_eof(info: &SessionInfo) -> Box<dyn Future<Item = (), Error = String>> {
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/client/main.rs:159:47
[INFO] [stdout]     |
[INFO] [stdout] 159 | fn download_stream(info: &SessionInfo) -> Box<Stream<Item = Vec<u8>, Error = String>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 159 | fn download_stream(info: &SessionInfo) -> Box<dyn Stream<Item = Vec<u8>, Error = String>> {
[INFO] [stdout]     |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/client/main.rs:186:10
[INFO] [stdout]     |
[INFO] [stdout] 186 | ) -> Box<Future<Item = Vec<u8>, Error = String>> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 186 | ) -> Box<dyn Future<Item = Vec<u8>, Error = String>> {
[INFO] [stdout]     |          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/client/main.rs:108:30
[INFO] [stdout]     |
[INFO] [stdout] 108 |         let read_future: Box<Future<Item = (), Error = String>> = Box::new(
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 108 |         let read_future: Box<dyn Future<Item = (), Error = String>> = Box::new(
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/client/main.rs:113:31
[INFO] [stdout]     |
[INFO] [stdout] 113 |         let write_future: Box<Future<Item = (), Error = String>> = Box::new(
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 113 |         let write_future: Box<dyn Future<Item = (), Error = String>> = Box::new(
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 10.23s
[INFO] running `Command { std: "docker" "inspect" "a9aaa8aca6b6c0ed60d4be9c84a5648c5fe6067b81cf39cf26a0b8bc07f63df9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a9aaa8aca6b6c0ed60d4be9c84a5648c5fe6067b81cf39cf26a0b8bc07f63df9", kill_on_drop: false }`
[INFO] [stdout] a9aaa8aca6b6c0ed60d4be9c84a5648c5fe6067b81cf39cf26a0b8bc07f63df9
