[INFO] cloning repository https://github.com/planet-s/redox-ssh [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/planet-s/redox-ssh" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fplanet-s%2Fredox-ssh", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fplanet-s%2Fredox-ssh'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 9480693a10abb6bfae909f5bdf374a3cc4375108 [INFO] checking planet-s/redox-ssh against try#3e59a8c2f14152ccc92a6c079f592dc2dc6fa93f for pr-87248 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fplanet-s%2Fredox-ssh" "/workspace/builds/worker-7/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/planet-s/redox-ssh on toolchain 3e59a8c2f14152ccc92a6c079f592dc2dc6fa93f [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+3e59a8c2f14152ccc92a6c079f592dc2dc6fa93f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/planet-s/redox-ssh [INFO] finished tweaking git repo https://github.com/planet-s/redox-ssh [INFO] tweaked toml for git repo https://github.com/planet-s/redox-ssh written to /workspace/builds/worker-7/source/Cargo.toml [INFO] crate git repo https://github.com/planet-s/redox-ssh already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+3e59a8c2f14152ccc92a6c079f592dc2dc6fa93f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating git repository `https://github.com/rust-num/num` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+3e59a8c2f14152ccc92a6c079f592dc2dc6fa93f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] f7718c9e61afd4c5a3cdc08fbb13a106853d0ca8e5325bb4f042f182737a01b2 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "f7718c9e61afd4c5a3cdc08fbb13a106853d0ca8e5325bb4f042f182737a01b2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "f7718c9e61afd4c5a3cdc08fbb13a106853d0ca8e5325bb4f042f182737a01b2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f7718c9e61afd4c5a3cdc08fbb13a106853d0ca8e5325bb4f042f182737a01b2", kill_on_drop: false }` [INFO] [stdout] f7718c9e61afd4c5a3cdc08fbb13a106853d0ca8e5325bb4f042f182737a01b2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/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" "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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+3e59a8c2f14152ccc92a6c079f592dc2dc6fa93f" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 53361f05a9e53f891c86f3b7d697d3968b356026df137b6a8b16c7b070614dae [INFO] running `Command { std: "docker" "start" "-a" "53361f05a9e53f891c86f3b7d697d3968b356026df137b6a8b16c7b070614dae", kill_on_drop: false }` [INFO] [stderr] Checking libc v0.2.26 [INFO] [stderr] Compiling gcc v0.3.51 [INFO] [stderr] Checking num-traits v0.1.39 (https://github.com/rust-num/num#d159ed63) [INFO] [stderr] Checking log v0.3.8 [INFO] [stderr] Checking byteorder v1.1.0 [INFO] [stderr] Checking num-integer v0.1.34 (https://github.com/rust-num/num#d159ed63) [INFO] [stderr] Checking rand v0.3.15 [INFO] [stderr] Checking time v0.1.38 [INFO] [stderr] Compiling rust-crypto v0.2.36 [INFO] [stderr] Checking num-bigint v0.1.39 (https://github.com/rust-num/num#d159ed63) [INFO] [stderr] Checking redox-ssh v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/message.rs:47:15 [INFO] [stdout] | [INFO] [stdout] 47 | 30...49 => KeyExchange(id), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/message.rs:52:15 [INFO] [stdout] | [INFO] [stdout] 52 | 60...79 => UserAuth(id), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/connection.rs:44:30 [INFO] [stdout] | [INFO] [stdout] 44 | key_exchange: Option>, [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn KeyExchange` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/connection.rs:46:29 [INFO] [stdout] | [INFO] [stdout] 46 | encryption: Option<(Box, Box)>, [INFO] [stdout] | ^^^^^^^^^^ help: use `dyn`: `dyn Encryption` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/connection.rs:46:46 [INFO] [stdout] | [INFO] [stdout] 46 | encryption: Option<(Box, Box)>, [INFO] [stdout] | ^^^^^^^^^^ help: use `dyn`: `dyn Encryption` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/connection.rs:47:22 [INFO] [stdout] | [INFO] [stdout] 47 | mac: Option<(Box, Box)>, [INFO] [stdout] | ^^^^^^^^^^^^ help: use `dyn`: `dyn MacAlgorithm` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/connection.rs:47:41 [INFO] [stdout] | [INFO] [stdout] 47 | mac: Option<(Box, Box)>, [INFO] [stdout] | ^^^^^^^^^^^^ help: use `dyn`: `dyn MacAlgorithm` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/connection.rs:119:41 [INFO] [stdout] | [INFO] [stdout] 119 | fn recv(&mut self, mut stream: &mut Read) -> Result { [INFO] [stdout] | ^^^^ help: use `dyn`: `dyn Read` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/connection.rs:148:41 [INFO] [stdout] | [INFO] [stdout] 148 | fn send(&mut self, mut stream: &mut Write, packet: Packet) [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn Write` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/connection.rs:176:40 [INFO] [stdout] | [INFO] [stdout] 176 | fn send_id(&mut self, stream: &mut Write) -> io::Result<()> { [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn Write` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/connection.rs:189:40 [INFO] [stdout] | [INFO] [stdout] 189 | fn read_id(&mut self, stream: &mut Read) -> io::Result<()> { [INFO] [stdout] | ^^^^ help: use `dyn`: `dyn Read` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `rand` is imported redundantly [INFO] [stdout] --> src/connection.rs:444:20 [INFO] [stdout] | [INFO] [stdout] 444 | use rand::{self, Rng}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/lib.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | extern crate rand; [INFO] [stdout] | ------------------ the item `rand` is already imported here [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/encryption/aes_ctr.rs:7:17 [INFO] [stdout] | [INFO] [stdout] 7 | cipher: Box, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn SynchronousStreamCipher + 'static` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/encryption/mod.rs:13:25 [INFO] [stdout] | [INFO] [stdout] 13 | encryption: &'a mut Encryption, [INFO] [stdout] | ^^^^^^^^^^ help: use `dyn`: `dyn Encryption` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/encryption/mod.rs:14:21 [INFO] [stdout] | [INFO] [stdout] 14 | stream: &'a mut Read, [INFO] [stdout] | ^^^^ help: use `dyn`: `dyn Read` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/encryption/mod.rs:18:36 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn new(encryption: &'a mut Encryption, stream: &'a mut Read) [INFO] [stdout] | ^^^^^^^^^^ help: use `dyn`: `dyn Encryption` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/encryption/mod.rs:18:64 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn new(encryption: &'a mut Encryption, stream: &'a mut Read) [INFO] [stdout] | ^^^^ help: use `dyn`: `dyn Read` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/error.rs:20:53 [INFO] [stdout] | [INFO] [stdout] 20 | write!(f, "connection error: {}", (self as &Error).description()) [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn Error` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/algorithm.rs:60:42 [INFO] [stdout] | [INFO] [stdout] 60 | pub fn instance(&self) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn KeyExchange` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/public_key/ed25519.rs:21:40 [INFO] [stdout] | [INFO] [stdout] 21 | fn generate(_: Option) -> Box { [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn KeyPair` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/public_key/ed25519.rs:33:27 [INFO] [stdout] | [INFO] [stdout] 33 | fn import(mut r: &mut Read) -> io::Result> { [INFO] [stdout] | ^^^^ help: use `dyn`: `dyn Read` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/public_key/ed25519.rs:33:51 [INFO] [stdout] | [INFO] [stdout] 33 | fn import(mut r: &mut Read) -> io::Result> { [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn KeyPair` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/public_key/ed25519.rs:60:32 [INFO] [stdout] | [INFO] [stdout] 60 | fn read_public(mut r: &mut Read) -> io::Result> { [INFO] [stdout] | ^^^^ help: use `dyn`: `dyn Read` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/public_key/ed25519.rs:60:56 [INFO] [stdout] | [INFO] [stdout] 60 | fn read_public(mut r: &mut Read) -> io::Result> { [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn KeyPair` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/public_key/ed25519.rs:115:36 [INFO] [stdout] | [INFO] [stdout] 115 | fn write_public(&self, w: &mut Write) -> io::Result<()> { [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn Write` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/public_key/ed25519.rs:121:30 [INFO] [stdout] | [INFO] [stdout] 121 | fn export(&self, w: &mut Write) -> io::Result<()> { [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn Write` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/public_key/mod.rs:18:36 [INFO] [stdout] | [INFO] [stdout] 18 | fn write_public(&self, w: &mut Write) -> io::Result<()>; [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn Write` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/public_key/mod.rs:19:30 [INFO] [stdout] | [INFO] [stdout] 19 | fn export(&self, w: &mut Write) -> io::Result<()>; [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn Write` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/public_key/mod.rs:24:57 [INFO] [stdout] | [INFO] [stdout] 24 | pub generate_key_pair: fn(bits: Option) -> Box, [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn KeyPair` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/public_key/mod.rs:25:28 [INFO] [stdout] | [INFO] [stdout] 25 | pub import: fn(r: &mut Read) -> io::Result>, [INFO] [stdout] | ^^^^ help: use `dyn`: `dyn Read` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/public_key/mod.rs:25:52 [INFO] [stdout] | [INFO] [stdout] 25 | pub import: fn(r: &mut Read) -> io::Result>, [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn KeyPair` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/public_key/mod.rs:26:33 [INFO] [stdout] | [INFO] [stdout] 26 | pub read_public: fn(r: &mut Read) -> io::Result>, [INFO] [stdout] | ^^^^ help: use `dyn`: `dyn Read` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/public_key/mod.rs:26:57 [INFO] [stdout] | [INFO] [stdout] 26 | pub read_public: fn(r: &mut Read) -> io::Result>, [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn KeyPair` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::os::unix::io::AsRawFd` [INFO] [stdout] --> src/server.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::os::unix::io::AsRawFd; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ConnectionEvent` [INFO] [stdout] --> src/server.rs:7:30 [INFO] [stdout] | [INFO] [stdout] 7 | use connection::{Connection, ConnectionEvent, ConnectionType}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sys` [INFO] [stdout] --> src/server.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use sys; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/server.rs:14:18 [INFO] [stdout] | [INFO] [stdout] 14 | pub key: Box, [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn KeyPair` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::os::unix::io::RawFd` [INFO] [stdout] --> src/sys/linux/mod.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::os::unix::io::RawFd; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `libc` is imported redundantly [INFO] [stdout] --> src/sys/linux/mod.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | use libc; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/lib.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | extern crate libc; [INFO] [stdout] | ------------------ the item `libc` is already imported here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `libc` is imported redundantly [INFO] [stdout] --> src/sys/linux/mod.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | use libc; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/lib.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | extern crate libc; [INFO] [stdout] | ------------------ the item `libc` is already imported here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/message.rs:47:15 [INFO] [stdout] | [INFO] [stdout] 47 | 30...49 => KeyExchange(id), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/message.rs:52:15 [INFO] [stdout] | [INFO] [stdout] 52 | 60...79 => UserAuth(id), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/connection.rs:44:30 [INFO] [stdout] | [INFO] [stdout] 44 | key_exchange: Option>, [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn KeyExchange` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/connection.rs:46:29 [INFO] [stdout] | [INFO] [stdout] 46 | encryption: Option<(Box, Box)>, [INFO] [stdout] | ^^^^^^^^^^ help: use `dyn`: `dyn Encryption` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/connection.rs:46:46 [INFO] [stdout] | [INFO] [stdout] 46 | encryption: Option<(Box, Box)>, [INFO] [stdout] | ^^^^^^^^^^ help: use `dyn`: `dyn Encryption` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/connection.rs:47:22 [INFO] [stdout] | [INFO] [stdout] 47 | mac: Option<(Box, Box)>, [INFO] [stdout] | ^^^^^^^^^^^^ help: use `dyn`: `dyn MacAlgorithm` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/connection.rs:47:41 [INFO] [stdout] | [INFO] [stdout] 47 | mac: Option<(Box, Box)>, [INFO] [stdout] | ^^^^^^^^^^^^ help: use `dyn`: `dyn MacAlgorithm` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/connection.rs:119:41 [INFO] [stdout] | [INFO] [stdout] 119 | fn recv(&mut self, mut stream: &mut Read) -> Result { [INFO] [stdout] | ^^^^ help: use `dyn`: `dyn Read` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/connection.rs:148:41 [INFO] [stdout] | [INFO] [stdout] 148 | fn send(&mut self, mut stream: &mut Write, packet: Packet) [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn Write` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/connection.rs:176:40 [INFO] [stdout] | [INFO] [stdout] 176 | fn send_id(&mut self, stream: &mut Write) -> io::Result<()> { [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn Write` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/connection.rs:189:40 [INFO] [stdout] | [INFO] [stdout] 189 | fn read_id(&mut self, stream: &mut Read) -> io::Result<()> { [INFO] [stdout] | ^^^^ help: use `dyn`: `dyn Read` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `rand` is imported redundantly [INFO] [stdout] --> src/connection.rs:444:20 [INFO] [stdout] | [INFO] [stdout] 444 | use rand::{self, Rng}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/lib.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | extern crate rand; [INFO] [stdout] | ------------------ the item `rand` is already imported here [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/encryption/aes_ctr.rs:7:17 [INFO] [stdout] | [INFO] [stdout] 7 | cipher: Box, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn SynchronousStreamCipher + 'static` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/encryption/mod.rs:13:25 [INFO] [stdout] | [INFO] [stdout] 13 | encryption: &'a mut Encryption, [INFO] [stdout] | ^^^^^^^^^^ help: use `dyn`: `dyn Encryption` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/encryption/mod.rs:14:21 [INFO] [stdout] | [INFO] [stdout] 14 | stream: &'a mut Read, [INFO] [stdout] | ^^^^ help: use `dyn`: `dyn Read` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/encryption/mod.rs:18:36 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn new(encryption: &'a mut Encryption, stream: &'a mut Read) [INFO] [stdout] | ^^^^^^^^^^ help: use `dyn`: `dyn Encryption` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/encryption/mod.rs:18:64 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn new(encryption: &'a mut Encryption, stream: &'a mut Read) [INFO] [stdout] | ^^^^ help: use `dyn`: `dyn Read` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/error.rs:20:53 [INFO] [stdout] | [INFO] [stdout] 20 | write!(f, "connection error: {}", (self as &Error).description()) [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn Error` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/algorithm.rs:60:42 [INFO] [stdout] | [INFO] [stdout] 60 | pub fn instance(&self) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn KeyExchange` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/public_key/ed25519.rs:21:40 [INFO] [stdout] | [INFO] [stdout] 21 | fn generate(_: Option) -> Box { [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn KeyPair` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/public_key/ed25519.rs:33:27 [INFO] [stdout] | [INFO] [stdout] 33 | fn import(mut r: &mut Read) -> io::Result> { [INFO] [stdout] | ^^^^ help: use `dyn`: `dyn Read` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/public_key/ed25519.rs:33:51 [INFO] [stdout] | [INFO] [stdout] 33 | fn import(mut r: &mut Read) -> io::Result> { [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn KeyPair` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/public_key/ed25519.rs:60:32 [INFO] [stdout] | [INFO] [stdout] 60 | fn read_public(mut r: &mut Read) -> io::Result> { [INFO] [stdout] | ^^^^ help: use `dyn`: `dyn Read` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/public_key/ed25519.rs:60:56 [INFO] [stdout] | [INFO] [stdout] 60 | fn read_public(mut r: &mut Read) -> io::Result> { [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn KeyPair` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/public_key/ed25519.rs:115:36 [INFO] [stdout] | [INFO] [stdout] 115 | fn write_public(&self, w: &mut Write) -> io::Result<()> { [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn Write` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/public_key/ed25519.rs:121:30 [INFO] [stdout] | [INFO] [stdout] 121 | fn export(&self, w: &mut Write) -> io::Result<()> { [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn Write` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/public_key/mod.rs:18:36 [INFO] [stdout] | [INFO] [stdout] 18 | fn write_public(&self, w: &mut Write) -> io::Result<()>; [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn Write` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/public_key/mod.rs:19:30 [INFO] [stdout] | [INFO] [stdout] 19 | fn export(&self, w: &mut Write) -> io::Result<()>; [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn Write` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/public_key/mod.rs:24:57 [INFO] [stdout] | [INFO] [stdout] 24 | pub generate_key_pair: fn(bits: Option) -> Box, [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn KeyPair` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/public_key/mod.rs:25:28 [INFO] [stdout] | [INFO] [stdout] 25 | pub import: fn(r: &mut Read) -> io::Result>, [INFO] [stdout] | ^^^^ help: use `dyn`: `dyn Read` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/public_key/mod.rs:25:52 [INFO] [stdout] | [INFO] [stdout] 25 | pub import: fn(r: &mut Read) -> io::Result>, [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn KeyPair` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/public_key/mod.rs:26:33 [INFO] [stdout] | [INFO] [stdout] 26 | pub read_public: fn(r: &mut Read) -> io::Result>, [INFO] [stdout] | ^^^^ help: use `dyn`: `dyn Read` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/public_key/mod.rs:26:57 [INFO] [stdout] | [INFO] [stdout] 26 | pub read_public: fn(r: &mut Read) -> io::Result>, [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn KeyPair` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::os::unix::io::AsRawFd` [INFO] [stdout] --> src/server.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::os::unix::io::AsRawFd; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ConnectionEvent` [INFO] [stdout] --> src/server.rs:7:30 [INFO] [stdout] | [INFO] [stdout] 7 | use connection::{Connection, ConnectionEvent, ConnectionType}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sys` [INFO] [stdout] --> src/server.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use sys; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/server.rs:14:18 [INFO] [stdout] | [INFO] [stdout] 14 | pub key: Box, [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn KeyPair` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::os::unix::io::RawFd` [INFO] [stdout] --> src/sys/linux/mod.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::os::unix::io::RawFd; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `libc` is imported redundantly [INFO] [stdout] --> src/sys/linux/mod.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | use libc; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/lib.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | extern crate libc; [INFO] [stdout] | ------------------ the item `libc` is already imported here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `libc` is imported redundantly [INFO] [stdout] --> src/sys/linux/mod.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | use libc; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/lib.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | extern crate libc; [INFO] [stdout] | ------------------ the item `libc` is already imported here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::os::unix::process::CommandExt::before_exec`: should be unsafe, use `pre_exec` instead [INFO] [stdout] --> src/channel.rs:123:30 [INFO] [stdout] | [INFO] [stdout] 123 | ... .before_exec(|| sys::before_exec()) [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/error.rs:20:60 [INFO] [stdout] | [INFO] [stdout] 20 | write!(f, "connection error: {}", (self as &Error).description()) [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::os::unix::process::CommandExt::before_exec`: should be unsafe, use `pre_exec` instead [INFO] [stdout] --> src/channel.rs:123:30 [INFO] [stdout] | [INFO] [stdout] 123 | ... .before_exec(|| sys::before_exec()) [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/error.rs:20:60 [INFO] [stdout] | [INFO] [stdout] 20 | write!(f, "connection error: {}", (self as &Error).description()) [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/server.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 30 | / loop { [INFO] [stdout] 31 | | let (mut stream, addr) = listener.accept()?; [INFO] [stdout] 32 | | let config = self.config.clone(); [INFO] [stdout] 33 | | [INFO] [stdout] ... | [INFO] [stdout] 45 | | }); [INFO] [stdout] 46 | | } [INFO] [stdout] | |_________- any code following this expression is unreachable [INFO] [stdout] 47 | [INFO] [stdout] 48 | Ok(()) [INFO] [stdout] | ^^^^^^ unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/key_exchange/curve25519.rs:59:21 [INFO] [stdout] | [INFO] [stdout] 59 | _ => return KexResult::Error, [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `len` [INFO] [stdout] --> src/connection.rs:209:43 [INFO] [stdout] | [INFO] [stdout] 209 | fn generate_key(&mut self, id: &[u8], len: usize) -> Result> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_len` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `packet` [INFO] [stdout] --> src/connection.rs:249:28 [INFO] [stdout] | [INFO] [stdout] 249 | fn new_keys(&mut self, packet: Packet) -> Result> { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_packet` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `channel_type` [INFO] [stdout] --> src/connection.rs:319:13 [INFO] [stdout] | [INFO] [stdout] 319 | let channel_type = reader.read_utf8()?; [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_channel_type` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `chan` [INFO] [stdout] --> src/connection.rs:324:35 [INFO] [stdout] | [INFO] [stdout] 324 | let id = if let Some((id, chan)) = self.channels.iter().next_back() { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_chan` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `enc_algos_c2s` [INFO] [stdout] --> src/connection.rs:414:17 [INFO] [stdout] | [INFO] [stdout] 414 | let enc_algos_c2s = reader.read_enum_list::()?; [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enc_algos_c2s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mac_algos_c2s` [INFO] [stdout] --> src/connection.rs:417:17 [INFO] [stdout] | [INFO] [stdout] 417 | let mac_algos_c2s = reader.read_enum_list::()?; [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mac_algos_c2s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `comp_algos_c2s` [INFO] [stdout] --> src/connection.rs:420:17 [INFO] [stdout] | [INFO] [stdout] 420 | let comp_algos_c2s = reader [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_comp_algos_c2s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/server.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 30 | / loop { [INFO] [stdout] 31 | | let (mut stream, addr) = listener.accept()?; [INFO] [stdout] 32 | | let config = self.config.clone(); [INFO] [stdout] 33 | | [INFO] [stdout] ... | [INFO] [stdout] 45 | | }); [INFO] [stdout] 46 | | } [INFO] [stdout] | |_________- any code following this expression is unreachable [INFO] [stdout] 47 | [INFO] [stdout] 48 | Ok(()) [INFO] [stdout] | ^^^^^^ unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/key_exchange/curve25519.rs:59:21 [INFO] [stdout] | [INFO] [stdout] 59 | _ => return KexResult::Error, [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `len` [INFO] [stdout] --> src/connection.rs:209:43 [INFO] [stdout] | [INFO] [stdout] 209 | fn generate_key(&mut self, id: &[u8], len: usize) -> Result> { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_len` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `packet` [INFO] [stdout] --> src/connection.rs:249:28 [INFO] [stdout] | [INFO] [stdout] 249 | fn new_keys(&mut self, packet: Packet) -> Result> { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_packet` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `channel_type` [INFO] [stdout] --> src/connection.rs:319:13 [INFO] [stdout] | [INFO] [stdout] 319 | let channel_type = reader.read_utf8()?; [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_channel_type` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `chan` [INFO] [stdout] --> src/connection.rs:324:35 [INFO] [stdout] | [INFO] [stdout] 324 | let id = if let Some((id, chan)) = self.channels.iter().next_back() { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_chan` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `enc_algos_c2s` [INFO] [stdout] --> src/connection.rs:414:17 [INFO] [stdout] | [INFO] [stdout] 414 | let enc_algos_c2s = reader.read_enum_list::()?; [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enc_algos_c2s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mac_algos_c2s` [INFO] [stdout] --> src/connection.rs:417:17 [INFO] [stdout] | [INFO] [stdout] 417 | let mac_algos_c2s = reader.read_enum_list::()?; [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mac_algos_c2s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `comp_algos_c2s` [INFO] [stdout] --> src/connection.rs:420:17 [INFO] [stdout] | [INFO] [stdout] 420 | let comp_algos_c2s = reader [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_comp_algos_c2s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/connection.rs:75:44 [INFO] [stdout] | [INFO] [stdout] 75 | pub fn run(&mut self, mut stream: &mut S) -> Result<()> { [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/connection.rs:75:44 [INFO] [stdout] | [INFO] [stdout] 75 | pub fn run(&mut self, mut stream: &mut S) -> Result<()> { [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/connection.rs:375:17 [INFO] [stdout] | [INFO] [stdout] 375 | let mut channel = self.channels.get_mut(&channel_id).unwrap(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/connection.rs:397:13 [INFO] [stdout] | [INFO] [stdout] 397 | let mut channel = self.channels.get_mut(&channel_id).unwrap(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/connection.rs:375:17 [INFO] [stdout] | [INFO] [stdout] 375 | let mut channel = self.channels.get_mut(&channel_id).unwrap(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/connection.rs:397:13 [INFO] [stdout] | [INFO] [stdout] 397 | let mut channel = self.channels.get_mut(&channel_id).unwrap(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `state` [INFO] [stdout] --> src/connection.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | state: ConnectionState, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `peer_window_size` [INFO] [stdout] --> src/channel.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | peer_window_size: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `sub_thread` [INFO] [stdout] --> src/sys/linux/pty.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | sub_thread: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `state` [INFO] [stdout] --> src/connection.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | state: ConnectionState, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `peer_window_size` [INFO] [stdout] --> src/channel.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | peer_window_size: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `sub_thread` [INFO] [stdout] --> src/sys/linux/pty.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | sub_thread: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 57 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 57 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/bin/ssh-keygen.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | keypair.export(&mut buffer); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/bin/ssh-keygen.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | keypair.export(&mut buffer); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::error::Error` [INFO] [stdout] --> src/bin/sshd.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> tests/public_key.rs:9:37 [INFO] [stdout] | [INFO] [stdout] 9 | fn test_export_import(keypair: &Box) -> Box { [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn KeyPair` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> tests/public_key.rs:9:54 [INFO] [stdout] | [INFO] [stdout] 9 | fn test_export_import(keypair: &Box) -> Box { [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn KeyPair` [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 issue #80165 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::error::Error` [INFO] [stdout] --> src/bin/sshd.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 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 8.62s [INFO] running `Command { std: "docker" "inspect" "53361f05a9e53f891c86f3b7d697d3968b356026df137b6a8b16c7b070614dae", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "53361f05a9e53f891c86f3b7d697d3968b356026df137b6a8b16c7b070614dae", kill_on_drop: false }` [INFO] [stdout] 53361f05a9e53f891c86f3b7d697d3968b356026df137b6a8b16c7b070614dae