[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] testing planet-s/redox-ssh against 1.60.0 for beta-1.61-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fplanet-s%2Fredox-ssh" "/workspace/builds/worker-25/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-25/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/planet-s/redox-ssh on toolchain 1.60.0 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.60.0" "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-25/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" "+1.60.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating git repository `https://github.com/rust-num/num` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-25/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-25/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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+1.60.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] e31404c3958757be5b96539f9d2aaa051e8446a4cbca8930feda1e5b09bbb865 [INFO] running `Command { std: "docker" "start" "-a" "e31404c3958757be5b96539f9d2aaa051e8446a4cbca8930feda1e5b09bbb865", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e31404c3958757be5b96539f9d2aaa051e8446a4cbca8930feda1e5b09bbb865", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e31404c3958757be5b96539f9d2aaa051e8446a4cbca8930feda1e5b09bbb865", kill_on_drop: false }` [INFO] [stdout] e31404c3958757be5b96539f9d2aaa051e8446a4cbca8930feda1e5b09bbb865 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-25/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-25/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=warn" "-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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+1.60.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] b66c9a85975df38066f885450e46fd94baacdb182d5cc1d6185b9b4ea3d55fa0 [INFO] running `Command { std: "docker" "start" "-a" "b66c9a85975df38066f885450e46fd94baacdb182d5cc1d6185b9b4ea3d55fa0", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.26 [INFO] [stderr] Compiling gcc v0.3.51 [INFO] [stderr] Compiling num-traits v0.1.39 (https://github.com/rust-num/num#d159ed63) [INFO] [stderr] Compiling rand v0.3.15 [INFO] [stderr] Compiling time v0.1.38 [INFO] [stderr] Compiling num-integer v0.1.34 (https://github.com/rust-num/num#d159ed63) [INFO] [stderr] Compiling rust-crypto v0.2.36 [INFO] [stderr] Compiling num-bigint v0.1.39 (https://github.com/rust-num/num#d159ed63) [INFO] [stderr] Compiling 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 [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 [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: 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: 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: 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] | ^^^^^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 44 - key_exchange: Option>, [INFO] [stdout] 44 + key_exchange: Option>, [INFO] [stdout] | [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] | ^^^^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 46 - encryption: Option<(Box, Box)>, [INFO] [stdout] 46 + encryption: Option<(Box, Box)>, [INFO] [stdout] | [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] | ^^^^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 46 - encryption: Option<(Box, Box)>, [INFO] [stdout] 46 + encryption: Option<(Box, Box)>, [INFO] [stdout] | [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] | ^^^^^^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 47 - mac: Option<(Box, Box)>, [INFO] [stdout] 47 + mac: Option<(Box, Box)>, [INFO] [stdout] | [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] | ^^^^^^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 47 - mac: Option<(Box, Box)>, [INFO] [stdout] 47 + mac: Option<(Box, Box)>, [INFO] [stdout] | [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] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 7 - cipher: Box, [INFO] [stdout] 7 + cipher: Box, [INFO] [stdout] | [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] | ^^^^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 13 - encryption: &'a mut Encryption, [INFO] [stdout] 13 + encryption: &'a mut dyn Encryption, [INFO] [stdout] | [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] | ^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 14 - stream: &'a mut Read, [INFO] [stdout] 14 + stream: &'a mut dyn Read, [INFO] [stdout] | [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] | ^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 24 - pub generate_key_pair: fn(bits: Option) -> Box, [INFO] [stdout] 24 + pub generate_key_pair: fn(bits: Option) -> Box, [INFO] [stdout] | [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] | ^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 25 - pub import: fn(r: &mut Read) -> io::Result>, [INFO] [stdout] 25 + pub import: fn(r: &mut Read) -> io::Result>, [INFO] [stdout] | [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] | ^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 25 - pub import: fn(r: &mut Read) -> io::Result>, [INFO] [stdout] 25 + pub import: fn(r: &mut dyn Read) -> io::Result>, [INFO] [stdout] | [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] | ^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 26 - pub read_public: fn(r: &mut Read) -> io::Result>, [INFO] [stdout] 26 + pub read_public: fn(r: &mut Read) -> io::Result>, [INFO] [stdout] | [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] | ^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 26 - pub read_public: fn(r: &mut Read) -> io::Result>, [INFO] [stdout] 26 + pub read_public: fn(r: &mut dyn Read) -> io::Result>, [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] | ^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 14 - pub key: Box, [INFO] [stdout] 14 + pub key: Box, [INFO] [stdout] | [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] | ^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 119 - fn recv(&mut self, mut stream: &mut Read) -> Result { [INFO] [stdout] 119 + fn recv(&mut self, mut stream: &mut dyn Read) -> Result { [INFO] [stdout] | [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] | ^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 148 - fn send(&mut self, mut stream: &mut Write, packet: Packet) [INFO] [stdout] 148 + fn send(&mut self, mut stream: &mut dyn Write, packet: Packet) [INFO] [stdout] | [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] | ^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 176 - fn send_id(&mut self, stream: &mut Write) -> io::Result<()> { [INFO] [stdout] 176 + fn send_id(&mut self, stream: &mut dyn Write) -> io::Result<()> { [INFO] [stdout] | [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] | ^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 189 - fn read_id(&mut self, stream: &mut Read) -> io::Result<()> { [INFO] [stdout] 189 + fn read_id(&mut self, stream: &mut dyn Read) -> io::Result<()> { [INFO] [stdout] | [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] | ^^^^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 18 - pub fn new(encryption: &'a mut Encryption, stream: &'a mut Read) [INFO] [stdout] 18 + pub fn new(encryption: &'a mut dyn Encryption, stream: &'a mut Read) [INFO] [stdout] | [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] | ^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 18 - pub fn new(encryption: &'a mut Encryption, stream: &'a mut Read) [INFO] [stdout] 18 + pub fn new(encryption: &'a mut Encryption, stream: &'a mut dyn Read) [INFO] [stdout] | [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] | ^^^^^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 60 - pub fn instance(&self) -> Option> { [INFO] [stdout] 60 + pub fn instance(&self) -> Option> { [INFO] [stdout] | [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] | ^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 18 - fn write_public(&self, w: &mut Write) -> io::Result<()>; [INFO] [stdout] 18 + fn write_public(&self, w: &mut dyn Write) -> io::Result<()>; [INFO] [stdout] | [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] | ^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 19 - fn export(&self, w: &mut Write) -> io::Result<()>; [INFO] [stdout] 19 + fn export(&self, w: &mut dyn Write) -> io::Result<()>; [INFO] [stdout] | [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] | ^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 21 - fn generate(_: Option) -> Box { [INFO] [stdout] 21 + fn generate(_: Option) -> Box { [INFO] [stdout] | [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] | ^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 33 - fn import(mut r: &mut Read) -> io::Result> { [INFO] [stdout] 33 + fn import(mut r: &mut Read) -> io::Result> { [INFO] [stdout] | [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] | ^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 33 - fn import(mut r: &mut Read) -> io::Result> { [INFO] [stdout] 33 + fn import(mut r: &mut dyn Read) -> io::Result> { [INFO] [stdout] | [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] | ^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 60 - fn read_public(mut r: &mut Read) -> io::Result> { [INFO] [stdout] 60 + fn read_public(mut r: &mut Read) -> io::Result> { [INFO] [stdout] | [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] | ^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 60 - fn read_public(mut r: &mut Read) -> io::Result> { [INFO] [stdout] 60 + fn read_public(mut r: &mut dyn Read) -> io::Result> { [INFO] [stdout] | [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] | ^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 115 - fn write_public(&self, w: &mut Write) -> io::Result<()> { [INFO] [stdout] 115 + fn write_public(&self, w: &mut dyn Write) -> io::Result<()> { [INFO] [stdout] | [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] | ^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 121 - fn export(&self, w: &mut Write) -> io::Result<()> { [INFO] [stdout] 121 + fn export(&self, w: &mut dyn Write) -> io::Result<()> { [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: 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] | ^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 20 - write!(f, "connection error: {}", (self as &Error).description()) [INFO] [stdout] 20 + write!(f, "connection error: {}", (self as &dyn Error).description()) [INFO] [stdout] | [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: 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: 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] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 55 warnings 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: 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] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 7.37s [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "b66c9a85975df38066f885450e46fd94baacdb182d5cc1d6185b9b4ea3d55fa0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b66c9a85975df38066f885450e46fd94baacdb182d5cc1d6185b9b4ea3d55fa0", kill_on_drop: false }` [INFO] [stdout] b66c9a85975df38066f885450e46fd94baacdb182d5cc1d6185b9b4ea3d55fa0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-25/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-25/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=warn" "-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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+1.60.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 3dfcd9d0738ac0d56c4cf7fab3f3b0074c63336d92189dd57206f4a943429a66 [INFO] running `Command { std: "docker" "start" "-a" "3dfcd9d0738ac0d56c4cf7fab3f3b0074c63336d92189dd57206f4a943429a66", kill_on_drop: false }` [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 [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 [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: 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: 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: 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] | ^^^^^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 44 - key_exchange: Option>, [INFO] [stdout] 44 + key_exchange: Option>, [INFO] [stdout] | [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] | ^^^^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 46 - encryption: Option<(Box, Box)>, [INFO] [stdout] 46 + encryption: Option<(Box, Box)>, [INFO] [stdout] | [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] | ^^^^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 46 - encryption: Option<(Box, Box)>, [INFO] [stdout] 46 + encryption: Option<(Box, Box)>, [INFO] [stdout] | [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] | ^^^^^^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 47 - mac: Option<(Box, Box)>, [INFO] [stdout] 47 + mac: Option<(Box, Box)>, [INFO] [stdout] | [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] | ^^^^^^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 47 - mac: Option<(Box, Box)>, [INFO] [stdout] 47 + mac: Option<(Box, Box)>, [INFO] [stdout] | [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] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 7 - cipher: Box, [INFO] [stdout] 7 + cipher: Box, [INFO] [stdout] | [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] | ^^^^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 13 - encryption: &'a mut Encryption, [INFO] [stdout] 13 + encryption: &'a mut dyn Encryption, [INFO] [stdout] | [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] | ^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 14 - stream: &'a mut Read, [INFO] [stdout] 14 + stream: &'a mut dyn Read, [INFO] [stdout] | [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] | ^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 24 - pub generate_key_pair: fn(bits: Option) -> Box, [INFO] [stdout] 24 + pub generate_key_pair: fn(bits: Option) -> Box, [INFO] [stdout] | [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] | ^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 25 - pub import: fn(r: &mut Read) -> io::Result>, [INFO] [stdout] 25 + pub import: fn(r: &mut Read) -> io::Result>, [INFO] [stdout] | [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] | ^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 25 - pub import: fn(r: &mut Read) -> io::Result>, [INFO] [stdout] 25 + pub import: fn(r: &mut dyn Read) -> io::Result>, [INFO] [stdout] | [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] | ^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 26 - pub read_public: fn(r: &mut Read) -> io::Result>, [INFO] [stdout] 26 + pub read_public: fn(r: &mut Read) -> io::Result>, [INFO] [stdout] | [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] | ^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 26 - pub read_public: fn(r: &mut Read) -> io::Result>, [INFO] [stdout] 26 + pub read_public: fn(r: &mut dyn Read) -> io::Result>, [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] | ^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 14 - pub key: Box, [INFO] [stdout] 14 + pub key: Box, [INFO] [stdout] | [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] | ^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 119 - fn recv(&mut self, mut stream: &mut Read) -> Result { [INFO] [stdout] 119 + fn recv(&mut self, mut stream: &mut dyn Read) -> Result { [INFO] [stdout] | [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] | ^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 148 - fn send(&mut self, mut stream: &mut Write, packet: Packet) [INFO] [stdout] 148 + fn send(&mut self, mut stream: &mut dyn Write, packet: Packet) [INFO] [stdout] | [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] | ^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 176 - fn send_id(&mut self, stream: &mut Write) -> io::Result<()> { [INFO] [stdout] 176 + fn send_id(&mut self, stream: &mut dyn Write) -> io::Result<()> { [INFO] [stdout] | [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] | ^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 189 - fn read_id(&mut self, stream: &mut Read) -> io::Result<()> { [INFO] [stdout] 189 + fn read_id(&mut self, stream: &mut dyn Read) -> io::Result<()> { [INFO] [stdout] | [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] | ^^^^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 18 - pub fn new(encryption: &'a mut Encryption, stream: &'a mut Read) [INFO] [stdout] 18 + pub fn new(encryption: &'a mut dyn Encryption, stream: &'a mut Read) [INFO] [stdout] | [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] | ^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 18 - pub fn new(encryption: &'a mut Encryption, stream: &'a mut Read) [INFO] [stdout] 18 + pub fn new(encryption: &'a mut Encryption, stream: &'a mut dyn Read) [INFO] [stdout] | [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] | ^^^^^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 60 - pub fn instance(&self) -> Option> { [INFO] [stdout] 60 + pub fn instance(&self) -> Option> { [INFO] [stdout] | [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] | ^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 18 - fn write_public(&self, w: &mut Write) -> io::Result<()>; [INFO] [stdout] 18 + fn write_public(&self, w: &mut dyn Write) -> io::Result<()>; [INFO] [stdout] | [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] | ^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 19 - fn export(&self, w: &mut Write) -> io::Result<()>; [INFO] [stdout] 19 + fn export(&self, w: &mut dyn Write) -> io::Result<()>; [INFO] [stdout] | [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] | ^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 21 - fn generate(_: Option) -> Box { [INFO] [stdout] 21 + fn generate(_: Option) -> Box { [INFO] [stdout] | [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] | ^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 33 - fn import(mut r: &mut Read) -> io::Result> { [INFO] [stdout] 33 + fn import(mut r: &mut Read) -> io::Result> { [INFO] [stdout] | [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] | ^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 33 - fn import(mut r: &mut Read) -> io::Result> { [INFO] [stdout] 33 + fn import(mut r: &mut dyn Read) -> io::Result> { [INFO] [stdout] | [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] | ^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 60 - fn read_public(mut r: &mut Read) -> io::Result> { [INFO] [stdout] 60 + fn read_public(mut r: &mut Read) -> io::Result> { [INFO] [stdout] | [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] | ^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 60 - fn read_public(mut r: &mut Read) -> io::Result> { [INFO] [stdout] 60 + fn read_public(mut r: &mut dyn Read) -> io::Result> { [INFO] [stdout] | [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] | ^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 115 - fn write_public(&self, w: &mut Write) -> io::Result<()> { [INFO] [stdout] 115 + fn write_public(&self, w: &mut dyn Write) -> io::Result<()> { [INFO] [stdout] | [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] | ^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 121 - fn export(&self, w: &mut Write) -> io::Result<()> { [INFO] [stdout] 121 + fn export(&self, w: &mut dyn Write) -> io::Result<()> { [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: 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] | ^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 20 - write!(f, "connection error: {}", (self as &Error).description()) [INFO] [stdout] 20 + write!(f, "connection error: {}", (self as &dyn Error).description()) [INFO] [stdout] | [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: 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] [stderr] Compiling redox-ssh v0.1.0 (/opt/rustwide/workdir) [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] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 55 warnings 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: 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: 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: 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] | ^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 9 - fn test_export_import(keypair: &Box) -> Box { [INFO] [stdout] 9 + fn test_export_import(keypair: &Box) -> Box { [INFO] [stdout] | [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] | ^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 9 - fn test_export_import(keypair: &Box) -> Box { [INFO] [stdout] 9 + fn test_export_import(keypair: &Box) -> Box { [INFO] [stdout] | [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 [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 [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: 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: 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: 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] | ^^^^^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 44 - key_exchange: Option>, [INFO] [stdout] 44 + key_exchange: Option>, [INFO] [stdout] | [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] | ^^^^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 46 - encryption: Option<(Box, Box)>, [INFO] [stdout] 46 + encryption: Option<(Box, Box)>, [INFO] [stdout] | [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] | ^^^^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 46 - encryption: Option<(Box, Box)>, [INFO] [stdout] 46 + encryption: Option<(Box, Box)>, [INFO] [stdout] | [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] | ^^^^^^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 47 - mac: Option<(Box, Box)>, [INFO] [stdout] 47 + mac: Option<(Box, Box)>, [INFO] [stdout] | [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] | ^^^^^^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 47 - mac: Option<(Box, Box)>, [INFO] [stdout] 47 + mac: Option<(Box, Box)>, [INFO] [stdout] | [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] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 7 - cipher: Box, [INFO] [stdout] 7 + cipher: Box, [INFO] [stdout] | [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] | ^^^^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 13 - encryption: &'a mut Encryption, [INFO] [stdout] 13 + encryption: &'a mut dyn Encryption, [INFO] [stdout] | [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] | ^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 14 - stream: &'a mut Read, [INFO] [stdout] 14 + stream: &'a mut dyn Read, [INFO] [stdout] | [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] | ^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 24 - pub generate_key_pair: fn(bits: Option) -> Box, [INFO] [stdout] 24 + pub generate_key_pair: fn(bits: Option) -> Box, [INFO] [stdout] | [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] | ^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 25 - pub import: fn(r: &mut Read) -> io::Result>, [INFO] [stdout] 25 + pub import: fn(r: &mut Read) -> io::Result>, [INFO] [stdout] | [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] | ^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 25 - pub import: fn(r: &mut Read) -> io::Result>, [INFO] [stdout] 25 + pub import: fn(r: &mut dyn Read) -> io::Result>, [INFO] [stdout] | [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] | ^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 26 - pub read_public: fn(r: &mut Read) -> io::Result>, [INFO] [stdout] 26 + pub read_public: fn(r: &mut Read) -> io::Result>, [INFO] [stdout] | [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] | ^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 26 - pub read_public: fn(r: &mut Read) -> io::Result>, [INFO] [stdout] 26 + pub read_public: fn(r: &mut dyn Read) -> io::Result>, [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] | ^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 14 - pub key: Box, [INFO] [stdout] 14 + pub key: Box, [INFO] [stdout] | [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] | ^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 119 - fn recv(&mut self, mut stream: &mut Read) -> Result { [INFO] [stdout] 119 + fn recv(&mut self, mut stream: &mut dyn Read) -> Result { [INFO] [stdout] | [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] | ^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 148 - fn send(&mut self, mut stream: &mut Write, packet: Packet) [INFO] [stdout] 148 + fn send(&mut self, mut stream: &mut dyn Write, packet: Packet) [INFO] [stdout] | [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] | ^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 176 - fn send_id(&mut self, stream: &mut Write) -> io::Result<()> { [INFO] [stdout] 176 + fn send_id(&mut self, stream: &mut dyn Write) -> io::Result<()> { [INFO] [stdout] | [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] | ^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 189 - fn read_id(&mut self, stream: &mut Read) -> io::Result<()> { [INFO] [stdout] 189 + fn read_id(&mut self, stream: &mut dyn Read) -> io::Result<()> { [INFO] [stdout] | [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] | ^^^^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 18 - pub fn new(encryption: &'a mut Encryption, stream: &'a mut Read) [INFO] [stdout] 18 + pub fn new(encryption: &'a mut dyn Encryption, stream: &'a mut Read) [INFO] [stdout] | [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] | ^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 18 - pub fn new(encryption: &'a mut Encryption, stream: &'a mut Read) [INFO] [stdout] 18 + pub fn new(encryption: &'a mut Encryption, stream: &'a mut dyn Read) [INFO] [stdout] | [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] | ^^^^^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 60 - pub fn instance(&self) -> Option> { [INFO] [stdout] 60 + pub fn instance(&self) -> Option> { [INFO] [stdout] | [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] | ^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 18 - fn write_public(&self, w: &mut Write) -> io::Result<()>; [INFO] [stdout] 18 + fn write_public(&self, w: &mut dyn Write) -> io::Result<()>; [INFO] [stdout] | [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] | ^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 19 - fn export(&self, w: &mut Write) -> io::Result<()>; [INFO] [stdout] 19 + fn export(&self, w: &mut dyn Write) -> io::Result<()>; [INFO] [stdout] | [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] | ^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 21 - fn generate(_: Option) -> Box { [INFO] [stdout] 21 + fn generate(_: Option) -> Box { [INFO] [stdout] | [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] | ^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 33 - fn import(mut r: &mut Read) -> io::Result> { [INFO] [stdout] 33 + fn import(mut r: &mut Read) -> io::Result> { [INFO] [stdout] | [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] | ^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 33 - fn import(mut r: &mut Read) -> io::Result> { [INFO] [stdout] 33 + fn import(mut r: &mut dyn Read) -> io::Result> { [INFO] [stdout] | [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] | ^^^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 60 - fn read_public(mut r: &mut Read) -> io::Result> { [INFO] [stdout] 60 + fn read_public(mut r: &mut Read) -> io::Result> { [INFO] [stdout] | [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] | ^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 60 - fn read_public(mut r: &mut Read) -> io::Result> { [INFO] [stdout] 60 + fn read_public(mut r: &mut dyn Read) -> io::Result> { [INFO] [stdout] | [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] | ^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 115 - fn write_public(&self, w: &mut Write) -> io::Result<()> { [INFO] [stdout] 115 + fn write_public(&self, w: &mut dyn Write) -> io::Result<()> { [INFO] [stdout] | [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] | ^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 121 - fn export(&self, w: &mut Write) -> io::Result<()> { [INFO] [stdout] 121 + fn export(&self, w: &mut dyn Write) -> io::Result<()> { [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: 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] | ^^^^^ [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 20 - write!(f, "connection error: {}", (self as &Error).description()) [INFO] [stdout] 20 + write!(f, "connection error: {}", (self as &dyn Error).description()) [INFO] [stdout] | [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: 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: 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] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 55 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 1.34s [INFO] running `Command { std: "docker" "inspect" "3dfcd9d0738ac0d56c4cf7fab3f3b0074c63336d92189dd57206f4a943429a66", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3dfcd9d0738ac0d56c4cf7fab3f3b0074c63336d92189dd57206f4a943429a66", kill_on_drop: false }` [INFO] [stdout] 3dfcd9d0738ac0d56c4cf7fab3f3b0074c63336d92189dd57206f4a943429a66 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-25/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-25/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=warn" "-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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+1.60.0" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 8d0ef03ac887c44f8ce938e0c135572cf8944d48e311bfb89d87359a1f34ef18 [INFO] running `Command { std: "docker" "start" "-a" "8d0ef03ac887c44f8ce938e0c135572cf8944d48e311bfb89d87359a1f34ef18", kill_on_drop: false }` [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/message.rs:47:15 [INFO] [stderr] | [INFO] [stderr] 47 | 30...49 => KeyExchange(id), [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/message.rs:52:15 [INFO] [stderr] | [INFO] [stderr] 52 | 60...79 => UserAuth(id), [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] [INFO] [stderr] warning: the item `rand` is imported redundantly [INFO] [stderr] --> src/connection.rs:444:20 [INFO] [stderr] | [INFO] [stderr] 444 | use rand::{self, Rng}; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/lib.rs:2:1 [INFO] [stderr] | [INFO] [stderr] 2 | extern crate rand; [INFO] [stderr] | ------------------ the item `rand` is already imported here [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::os::unix::io::AsRawFd` [INFO] [stderr] --> src/server.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::os::unix::io::AsRawFd; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ConnectionEvent` [INFO] [stderr] --> src/server.rs:7:30 [INFO] [stderr] | [INFO] [stderr] 7 | use connection::{Connection, ConnectionEvent, ConnectionType}; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `sys` [INFO] [stderr] --> src/server.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use sys; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::os::unix::io::RawFd` [INFO] [stderr] --> src/sys/linux/mod.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::os::unix::io::RawFd; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the item `libc` is imported redundantly [INFO] [stderr] --> src/sys/linux/mod.rs:8:9 [INFO] [stderr] | [INFO] [stderr] 8 | use libc; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/lib.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | extern crate libc; [INFO] [stderr] | ------------------ the item `libc` is already imported here [INFO] [stderr] [INFO] [stderr] warning: the item `libc` is imported redundantly [INFO] [stderr] --> src/sys/linux/mod.rs:17:9 [INFO] [stderr] | [INFO] [stderr] 17 | use libc; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/lib.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | extern crate libc; [INFO] [stderr] | ------------------ the item `libc` is already imported here [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/connection.rs:44:30 [INFO] [stderr] | [INFO] [stderr] 44 | key_exchange: Option>, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 44 - key_exchange: Option>, [INFO] [stderr] 44 + key_exchange: Option>, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/connection.rs:46:29 [INFO] [stderr] | [INFO] [stderr] 46 | encryption: Option<(Box, Box)>, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 46 - encryption: Option<(Box, Box)>, [INFO] [stderr] 46 + encryption: Option<(Box, Box)>, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/connection.rs:46:46 [INFO] [stderr] | [INFO] [stderr] 46 | encryption: Option<(Box, Box)>, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 46 - encryption: Option<(Box, Box)>, [INFO] [stderr] 46 + encryption: Option<(Box, Box)>, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/connection.rs:47:22 [INFO] [stderr] | [INFO] [stderr] 47 | mac: Option<(Box, Box)>, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 47 - mac: Option<(Box, Box)>, [INFO] [stderr] 47 + mac: Option<(Box, Box)>, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/connection.rs:47:41 [INFO] [stderr] | [INFO] [stderr] 47 | mac: Option<(Box, Box)>, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 47 - mac: Option<(Box, Box)>, [INFO] [stderr] 47 + mac: Option<(Box, Box)>, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/encryption/aes_ctr.rs:7:17 [INFO] [stderr] | [INFO] [stderr] 7 | cipher: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 7 - cipher: Box, [INFO] [stderr] 7 + cipher: Box, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/encryption/mod.rs:13:25 [INFO] [stderr] | [INFO] [stderr] 13 | encryption: &'a mut Encryption, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 13 - encryption: &'a mut Encryption, [INFO] [stderr] 13 + encryption: &'a mut dyn Encryption, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/encryption/mod.rs:14:21 [INFO] [stderr] | [INFO] [stderr] 14 | stream: &'a mut Read, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 14 - stream: &'a mut Read, [INFO] [stderr] 14 + stream: &'a mut dyn Read, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/public_key/mod.rs:24:57 [INFO] [stderr] | [INFO] [stderr] 24 | pub generate_key_pair: fn(bits: Option) -> Box, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 24 - pub generate_key_pair: fn(bits: Option) -> Box, [INFO] [stderr] 24 + pub generate_key_pair: fn(bits: Option) -> Box, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/public_key/mod.rs:25:52 [INFO] [stderr] | [INFO] [stderr] 25 | pub import: fn(r: &mut Read) -> io::Result>, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 25 - pub import: fn(r: &mut Read) -> io::Result>, [INFO] [stderr] 25 + pub import: fn(r: &mut Read) -> io::Result>, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/public_key/mod.rs:25:28 [INFO] [stderr] | [INFO] [stderr] 25 | pub import: fn(r: &mut Read) -> io::Result>, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 25 - pub import: fn(r: &mut Read) -> io::Result>, [INFO] [stderr] 25 + pub import: fn(r: &mut dyn Read) -> io::Result>, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/public_key/mod.rs:26:57 [INFO] [stderr] | [INFO] [stderr] 26 | pub read_public: fn(r: &mut Read) -> io::Result>, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 26 - pub read_public: fn(r: &mut Read) -> io::Result>, [INFO] [stderr] 26 + pub read_public: fn(r: &mut Read) -> io::Result>, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/public_key/mod.rs:26:33 [INFO] [stderr] | [INFO] [stderr] 26 | pub read_public: fn(r: &mut Read) -> io::Result>, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 26 - pub read_public: fn(r: &mut Read) -> io::Result>, [INFO] [stderr] 26 + pub read_public: fn(r: &mut dyn Read) -> io::Result>, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/server.rs:14:18 [INFO] [stderr] | [INFO] [stderr] 14 | pub key: Box, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 14 - pub key: Box, [INFO] [stderr] 14 + pub key: Box, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/connection.rs:119:41 [INFO] [stderr] | [INFO] [stderr] 119 | fn recv(&mut self, mut stream: &mut Read) -> Result { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 119 - fn recv(&mut self, mut stream: &mut Read) -> Result { [INFO] [stderr] 119 + fn recv(&mut self, mut stream: &mut dyn Read) -> Result { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/connection.rs:148:41 [INFO] [stderr] | [INFO] [stderr] 148 | fn send(&mut self, mut stream: &mut Write, packet: Packet) [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 148 - fn send(&mut self, mut stream: &mut Write, packet: Packet) [INFO] [stderr] 148 + fn send(&mut self, mut stream: &mut dyn Write, packet: Packet) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/connection.rs:176:40 [INFO] [stderr] | [INFO] [stderr] 176 | fn send_id(&mut self, stream: &mut Write) -> io::Result<()> { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 176 - fn send_id(&mut self, stream: &mut Write) -> io::Result<()> { [INFO] [stderr] 176 + fn send_id(&mut self, stream: &mut dyn Write) -> io::Result<()> { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/connection.rs:189:40 [INFO] [stderr] | [INFO] [stderr] 189 | fn read_id(&mut self, stream: &mut Read) -> io::Result<()> { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 189 - fn read_id(&mut self, stream: &mut Read) -> io::Result<()> { [INFO] [stderr] 189 + fn read_id(&mut self, stream: &mut dyn Read) -> io::Result<()> { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/encryption/mod.rs:18:36 [INFO] [stderr] | [INFO] [stderr] 18 | pub fn new(encryption: &'a mut Encryption, stream: &'a mut Read) [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 18 - pub fn new(encryption: &'a mut Encryption, stream: &'a mut Read) [INFO] [stderr] 18 + pub fn new(encryption: &'a mut dyn Encryption, stream: &'a mut Read) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/encryption/mod.rs:18:64 [INFO] [stderr] | [INFO] [stderr] 18 | pub fn new(encryption: &'a mut Encryption, stream: &'a mut Read) [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 18 - pub fn new(encryption: &'a mut Encryption, stream: &'a mut Read) [INFO] [stderr] 18 + pub fn new(encryption: &'a mut Encryption, stream: &'a mut dyn Read) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/algorithm.rs:60:42 [INFO] [stderr] | [INFO] [stderr] 60 | pub fn instance(&self) -> Option> { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 60 - pub fn instance(&self) -> Option> { [INFO] [stderr] 60 + pub fn instance(&self) -> Option> { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/public_key/mod.rs:18:36 [INFO] [stderr] | [INFO] [stderr] 18 | fn write_public(&self, w: &mut Write) -> io::Result<()>; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 18 - fn write_public(&self, w: &mut Write) -> io::Result<()>; [INFO] [stderr] 18 + fn write_public(&self, w: &mut dyn Write) -> io::Result<()>; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/public_key/mod.rs:19:30 [INFO] [stderr] | [INFO] [stderr] 19 | fn export(&self, w: &mut Write) -> io::Result<()>; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 19 - fn export(&self, w: &mut Write) -> io::Result<()>; [INFO] [stderr] 19 + fn export(&self, w: &mut dyn Write) -> io::Result<()>; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/public_key/ed25519.rs:21:40 [INFO] [stderr] | [INFO] [stderr] 21 | fn generate(_: Option) -> Box { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 21 - fn generate(_: Option) -> Box { [INFO] [stderr] 21 + fn generate(_: Option) -> Box { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/public_key/ed25519.rs:33:51 [INFO] [stderr] | [INFO] [stderr] 33 | fn import(mut r: &mut Read) -> io::Result> { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 33 - fn import(mut r: &mut Read) -> io::Result> { [INFO] [stderr] 33 + fn import(mut r: &mut Read) -> io::Result> { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/public_key/ed25519.rs:33:27 [INFO] [stderr] | [INFO] [stderr] 33 | fn import(mut r: &mut Read) -> io::Result> { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 33 - fn import(mut r: &mut Read) -> io::Result> { [INFO] [stderr] 33 + fn import(mut r: &mut dyn Read) -> io::Result> { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/public_key/ed25519.rs:60:56 [INFO] [stderr] | [INFO] [stderr] 60 | fn read_public(mut r: &mut Read) -> io::Result> { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 60 - fn read_public(mut r: &mut Read) -> io::Result> { [INFO] [stderr] 60 + fn read_public(mut r: &mut Read) -> io::Result> { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/public_key/ed25519.rs:60:32 [INFO] [stderr] | [INFO] [stderr] 60 | fn read_public(mut r: &mut Read) -> io::Result> { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 60 - fn read_public(mut r: &mut Read) -> io::Result> { [INFO] [stderr] 60 + fn read_public(mut r: &mut dyn Read) -> io::Result> { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/public_key/ed25519.rs:115:36 [INFO] [stderr] | [INFO] [stderr] 115 | fn write_public(&self, w: &mut Write) -> io::Result<()> { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 115 - fn write_public(&self, w: &mut Write) -> io::Result<()> { [INFO] [stderr] 115 + fn write_public(&self, w: &mut dyn Write) -> io::Result<()> { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/public_key/ed25519.rs:121:30 [INFO] [stderr] | [INFO] [stderr] 121 | fn export(&self, w: &mut Write) -> io::Result<()> { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 121 - fn export(&self, w: &mut Write) -> io::Result<()> { [INFO] [stderr] 121 + fn export(&self, w: &mut dyn Write) -> io::Result<()> { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `std::os::unix::process::CommandExt::before_exec`: should be unsafe, use `pre_exec` instead [INFO] [stderr] --> src/channel.rs:123:30 [INFO] [stderr] | [INFO] [stderr] 123 | ... .before_exec(|| sys::before_exec()) [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/error.rs:20:53 [INFO] [stderr] | [INFO] [stderr] 20 | write!(f, "connection error: {}", (self as &Error).description()) [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 20 - write!(f, "connection error: {}", (self as &Error).description()) [INFO] [stderr] 20 + write!(f, "connection error: {}", (self as &dyn Error).description()) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stderr] --> src/error.rs:20:60 [INFO] [stderr] | [INFO] [stderr] 20 | write!(f, "connection error: {}", (self as &Error).description()) [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/server.rs:48:9 [INFO] [stderr] | [INFO] [stderr] 30 | / loop { [INFO] [stderr] 31 | | let (mut stream, addr) = listener.accept()?; [INFO] [stderr] 32 | | let config = self.config.clone(); [INFO] [stderr] 33 | | [INFO] [stderr] ... | [INFO] [stderr] 45 | | }); [INFO] [stderr] 46 | | } [INFO] [stderr] | |_________- any code following this expression is unreachable [INFO] [stderr] 47 | [INFO] [stderr] 48 | Ok(()) [INFO] [stderr] | ^^^^^^ unreachable expression [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unreachable_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/key_exchange/curve25519.rs:59:21 [INFO] [stderr] | [INFO] [stderr] 59 | _ => return KexResult::Error, [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `len` [INFO] [stderr] --> src/connection.rs:209:43 [INFO] [stderr] | [INFO] [stderr] 209 | fn generate_key(&mut self, id: &[u8], len: usize) -> Result> { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_len` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `packet` [INFO] [stderr] --> src/connection.rs:249:28 [INFO] [stderr] | [INFO] [stderr] 249 | fn new_keys(&mut self, packet: Packet) -> Result> { [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_packet` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `channel_type` [INFO] [stderr] --> src/connection.rs:319:13 [INFO] [stderr] | [INFO] [stderr] 319 | let channel_type = reader.read_utf8()?; [INFO] [stderr] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_channel_type` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `chan` [INFO] [stderr] --> src/connection.rs:324:35 [INFO] [stderr] | [INFO] [stderr] 324 | let id = if let Some((id, chan)) = self.channels.iter().next_back() { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_chan` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `enc_algos_c2s` [INFO] [stderr] --> src/connection.rs:414:17 [INFO] [stderr] | [INFO] [stderr] 414 | let enc_algos_c2s = reader.read_enum_list::()?; [INFO] [stderr] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enc_algos_c2s` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `mac_algos_c2s` [INFO] [stderr] --> src/connection.rs:417:17 [INFO] [stderr] | [INFO] [stderr] 417 | let mac_algos_c2s = reader.read_enum_list::()?; [INFO] [stderr] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mac_algos_c2s` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `comp_algos_c2s` [INFO] [stderr] --> src/connection.rs:420:17 [INFO] [stderr] | [INFO] [stderr] 420 | let comp_algos_c2s = reader [INFO] [stderr] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_comp_algos_c2s` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/connection.rs:75:44 [INFO] [stderr] | [INFO] [stderr] 75 | pub fn run(&mut self, mut stream: &mut S) -> Result<()> { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/connection.rs:375:17 [INFO] [stderr] | [INFO] [stderr] 375 | let mut channel = self.channels.get_mut(&channel_id).unwrap(); [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/connection.rs:397:13 [INFO] [stderr] | [INFO] [stderr] 397 | let mut channel = self.channels.get_mut(&channel_id).unwrap(); [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: field is never read: `peer_window_size` [INFO] [stderr] --> src/channel.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | peer_window_size: u32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: `redox-ssh` (lib) generated 55 warnings [INFO] [stderr] warning: `redox-ssh` (lib test) generated 55 warnings (55 duplicates) [INFO] [stderr] warning: unused import: `std::error::Error` [INFO] [stderr] --> src/bin/sshd.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::error::Error; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/bin/ssh-keygen.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | keypair.export(&mut buffer); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> tests/public_key.rs:9:54 [INFO] [stderr] | [INFO] [stderr] 9 | fn test_export_import(keypair: &Box) -> Box { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 9 - fn test_export_import(keypair: &Box) -> Box { [INFO] [stderr] 9 + fn test_export_import(keypair: &Box) -> Box { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> tests/public_key.rs:9:37 [INFO] [stderr] | [INFO] [stderr] 9 | fn test_export_import(keypair: &Box) -> Box { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 9 - fn test_export_import(keypair: &Box) -> Box { [INFO] [stderr] 9 + fn test_export_import(keypair: &Box) -> Box { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `redox-ssh` (bin "sshd") generated 1 warning [INFO] [stderr] warning: `redox-ssh` (bin "ssh-keygen" test) generated 1 warning [INFO] [stderr] warning: `redox-ssh` (test "public_key") generated 2 warnings [INFO] [stderr] warning: `redox-ssh` (bin "sshd" test) generated 1 warning (1 duplicate) [INFO] [stderr] warning: `redox-ssh` (bin "ssh-keygen") generated 1 warning (1 duplicate) [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.31s [INFO] [stderr] Running unittests (/opt/rustwide/target/debug/deps/ssh-b9f59967a3604ac4) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests (/opt/rustwide/target/debug/deps/ssh-6a2f881e631b5f72) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests (/opt/rustwide/target/debug/deps/ssh_keygen-187170747eff8089) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests (/opt/rustwide/target/debug/deps/sshd-6b21556726f0da90) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/public_key.rs (/opt/rustwide/target/debug/deps/public_key-ecc045e747d15824) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test test_ed25519 ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests ssh [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> /opt/rustwide/workdir/src/message.rs:47:15 [INFO] [stderr] | [INFO] [stderr] 47 | 30...49 => KeyExchange(id), [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> /opt/rustwide/workdir/src/message.rs:52:15 [INFO] [stderr] | [INFO] [stderr] 52 | 60...79 => UserAuth(id), [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] [INFO] [stderr] warning: 2 warnings emitted [INFO] [stderr] [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "8d0ef03ac887c44f8ce938e0c135572cf8944d48e311bfb89d87359a1f34ef18", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8d0ef03ac887c44f8ce938e0c135572cf8944d48e311bfb89d87359a1f34ef18", kill_on_drop: false }` [INFO] [stdout] 8d0ef03ac887c44f8ce938e0c135572cf8944d48e311bfb89d87359a1f34ef18