[INFO] updating cached repository redox-os/redox-ssh [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/redox-os/redox-ssh [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/redox-os/redox-ssh" "work/ex/pr-63376/sources/master#60960a260f7b5c695fd0717311d72ce62dd4eb43/gh/redox-os/redox-ssh"` [INFO] [stderr] Cloning into 'work/ex/pr-63376/sources/master#60960a260f7b5c695fd0717311d72ce62dd4eb43/gh/redox-os/redox-ssh'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/redox-os/redox-ssh" "work/ex/pr-63376/sources/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7/gh/redox-os/redox-ssh"` [INFO] [stderr] Cloning into 'work/ex/pr-63376/sources/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7/gh/redox-os/redox-ssh'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 8cf8b6073ff9aeb9a6c82b7b3a1427fbaa7c2fbc [INFO] sha for GitHub repo redox-os/redox-ssh: 8cf8b6073ff9aeb9a6c82b7b3a1427fbaa7c2fbc [INFO] validating manifest of redox-os/redox-ssh on toolchain master#60960a260f7b5c695fd0717311d72ce62dd4eb43 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+60960a260f7b5c695fd0717311d72ce62dd4eb43-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of redox-os/redox-ssh on toolchain try#266783e4e09e4e9d5307c1c8e695659c58bbcac7 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+266783e4e09e4e9d5307c1c8e695659c58bbcac7-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing redox-os/redox-ssh [INFO] finished frobbing redox-os/redox-ssh [INFO] frobbed toml for redox-os/redox-ssh written to work/ex/pr-63376/sources/master#60960a260f7b5c695fd0717311d72ce62dd4eb43/gh/redox-os/redox-ssh/Cargo.toml [INFO] started frobbing redox-os/redox-ssh [INFO] finished frobbing redox-os/redox-ssh [INFO] frobbed toml for redox-os/redox-ssh written to work/ex/pr-63376/sources/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7/gh/redox-os/redox-ssh/Cargo.toml [INFO] crate redox-os/redox-ssh already has a lockfile, it will not be regenerated [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+60960a260f7b5c695fd0717311d72ce62dd4eb43-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+266783e4e09e4e9d5307c1c8e695659c58bbcac7-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] checking redox-os/redox-ssh against master#60960a260f7b5c695fd0717311d72ce62dd4eb43 for pr-63376 [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-63376/worker-0/master#60960a260f7b5c695fd0717311d72ce62dd4eb43:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/pr-63376/sources/master#60960a260f7b5c695fd0717311d72ce62dd4eb43/gh/redox-os/redox-ssh:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+60960a260f7b5c695fd0717311d72ce62dd4eb43-alt" "check" "--frozen" "--all" "--all-targets"` [INFO] [stdout] bd17506ab59ae53b556f3bf221a5d027babcd553852bae2125afbb2b4bc16fc3 [INFO] running `"docker" "start" "-a" "bd17506ab59ae53b556f3bf221a5d027babcd553852bae2125afbb2b4bc16fc3"` [INFO] [stderr] Checking num-traits v0.1.39 (https://github.com/rust-num/num#d159ed63) [INFO] [stderr] Checking rust-crypto v0.2.36 [INFO] [stderr] Checking num-integer v0.1.34 (https://github.com/rust-num/num#d159ed63) [INFO] [stderr] Checking num-bigint v0.1.39 (https://github.com/rust-num/num#d159ed63) [INFO] [stderr] Checking redox-ssh v0.1.0 (/opt/crater/workdir) [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] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [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] | ^^^^^^^^^^^ help: use `dyn`: `dyn KeyExchange` [INFO] [stderr] [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] [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: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/connection.rs:38:30 [INFO] [stderr] | [INFO] [stderr] 38 | key_exchange: Option>, [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn KeyExchange` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/connection.rs:40:29 [INFO] [stderr] | [INFO] [stderr] 40 | encryption: Option<(Box, Box)>, [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn Encryption` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/connection.rs:40:46 [INFO] [stderr] | [INFO] [stderr] 40 | encryption: Option<(Box, Box)>, [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn Encryption` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/connection.rs:41:22 [INFO] [stderr] | [INFO] [stderr] 41 | mac: Option<(Box, Box)>, [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn MacAlgorithm` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/connection.rs:41:41 [INFO] [stderr] | [INFO] [stderr] 41 | mac: Option<(Box, Box)>, [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn MacAlgorithm` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/connection.rs:87:41 [INFO] [stderr] | [INFO] [stderr] 87 | fn recv(&mut self, mut stream: &mut Read) -> Result { [INFO] [stderr] | ^^^^ help: use `dyn`: `dyn Read` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/connection.rs:116:41 [INFO] [stderr] | [INFO] [stderr] 116 | fn send(&mut self, mut stream: &mut Write, packet: Packet) [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn Write` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/connection.rs:144:40 [INFO] [stderr] | [INFO] [stderr] 144 | fn send_id(&mut self, stream: &mut Write) -> io::Result<()> { [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn Write` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/connection.rs:157:40 [INFO] [stderr] | [INFO] [stderr] 157 | fn read_id(&mut self, stream: &mut Read) -> io::Result<()> { [INFO] [stderr] | ^^^^ help: use `dyn`: `dyn Read` [INFO] [stderr] [INFO] [stderr] warning: the item `rand` is imported redundantly [INFO] [stderr] --> src/connection.rs:406:20 [INFO] [stderr] | [INFO] [stderr] 406 | 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: 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] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn SynchronousStreamCipher + 'static` [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] | ^^^^^^^^^^ help: use `dyn`: `dyn Encryption` [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] | ^^^^ help: use `dyn`: `dyn Read` [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] | ^^^^^^^^^^ help: use `dyn`: `dyn Encryption` [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] | ^^^^ help: use `dyn`: `dyn Read` [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] | ^^^^^^^ help: use `dyn`: `dyn KeyPair` [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] | ^^^^ help: use `dyn`: `dyn Read` [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] | ^^^^^^^ help: use `dyn`: `dyn KeyPair` [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] | ^^^^ help: use `dyn`: `dyn Read` [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] | ^^^^^^^ help: use `dyn`: `dyn KeyPair` [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] | ^^^^^ help: use `dyn`: `dyn Write` [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] | ^^^^^ help: use `dyn`: `dyn Write` [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] | ^^^^^ help: use `dyn`: `dyn Write` [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] | ^^^^^ help: use `dyn`: `dyn Write` [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] | ^^^^^^^ help: use `dyn`: `dyn KeyPair` [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] | ^^^^ help: use `dyn`: `dyn Read` [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] | ^^^^^^^ help: use `dyn`: `dyn KeyPair` [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] | ^^^^ help: use `dyn`: `dyn Read` [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] | ^^^^^^^ help: use `dyn`: `dyn KeyPair` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/server.rs:12:18 [INFO] [stderr] | [INFO] [stderr] 12 | pub key: Box, [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn KeyPair` [INFO] [stderr] [INFO] [stderr] warning: the item `libc` is imported redundantly [INFO] [stderr] --> src/sys/unix.rs:6:9 [INFO] [stderr] | [INFO] [stderr] 6 | 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/unix.rs:15:9 [INFO] [stderr] | [INFO] [stderr] 15 | 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/unix.rs:20:9 [INFO] [stderr] | [INFO] [stderr] 20 | 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/unix.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | 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/error.rs:20:53 [INFO] [stderr] | [INFO] [stderr] 20 | write!(f, "connection error: {}", (self as &Error).description()) [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [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] | ^^^^^^^^^^^ help: use `dyn`: `dyn KeyExchange` [INFO] [stderr] [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] [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: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/connection.rs:38:30 [INFO] [stderr] | [INFO] [stderr] 38 | key_exchange: Option>, [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn KeyExchange` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/connection.rs:40:29 [INFO] [stderr] | [INFO] [stderr] 40 | encryption: Option<(Box, Box)>, [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn Encryption` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/connection.rs:40:46 [INFO] [stderr] | [INFO] [stderr] 40 | encryption: Option<(Box, Box)>, [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn Encryption` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/connection.rs:41:22 [INFO] [stderr] | [INFO] [stderr] 41 | mac: Option<(Box, Box)>, [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn MacAlgorithm` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/connection.rs:41:41 [INFO] [stderr] | [INFO] [stderr] 41 | mac: Option<(Box, Box)>, [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn MacAlgorithm` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/connection.rs:87:41 [INFO] [stderr] | [INFO] [stderr] 87 | fn recv(&mut self, mut stream: &mut Read) -> Result { [INFO] [stderr] | ^^^^ help: use `dyn`: `dyn Read` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/connection.rs:116:41 [INFO] [stderr] | [INFO] [stderr] 116 | fn send(&mut self, mut stream: &mut Write, packet: Packet) [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn Write` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/connection.rs:144:40 [INFO] [stderr] | [INFO] [stderr] 144 | fn send_id(&mut self, stream: &mut Write) -> io::Result<()> { [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn Write` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/connection.rs:157:40 [INFO] [stderr] | [INFO] [stderr] 157 | fn read_id(&mut self, stream: &mut Read) -> io::Result<()> { [INFO] [stderr] | ^^^^ help: use `dyn`: `dyn Read` [INFO] [stderr] [INFO] [stderr] warning: the item `rand` is imported redundantly [INFO] [stderr] --> src/connection.rs:406:20 [INFO] [stderr] | [INFO] [stderr] 406 | 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: 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] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn SynchronousStreamCipher + 'static` [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] | ^^^^^^^^^^ help: use `dyn`: `dyn Encryption` [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] | ^^^^ help: use `dyn`: `dyn Read` [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] | ^^^^^^^^^^ help: use `dyn`: `dyn Encryption` [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] | ^^^^ help: use `dyn`: `dyn Read` [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] | ^^^^^^^ help: use `dyn`: `dyn KeyPair` [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] | ^^^^ help: use `dyn`: `dyn Read` [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] | ^^^^^^^ help: use `dyn`: `dyn KeyPair` [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] | ^^^^ help: use `dyn`: `dyn Read` [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] | ^^^^^^^ help: use `dyn`: `dyn KeyPair` [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] | ^^^^^ help: use `dyn`: `dyn Write` [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] | ^^^^^ help: use `dyn`: `dyn Write` [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] | ^^^^^ help: use `dyn`: `dyn Write` [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] | ^^^^^ help: use `dyn`: `dyn Write` [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] | ^^^^^^^ help: use `dyn`: `dyn KeyPair` [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] | ^^^^ help: use `dyn`: `dyn Read` [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] | ^^^^^^^ help: use `dyn`: `dyn KeyPair` [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] | ^^^^ help: use `dyn`: `dyn Read` [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] | ^^^^^^^ help: use `dyn`: `dyn KeyPair` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/server.rs:12:18 [INFO] [stderr] | [INFO] [stderr] 12 | pub key: Box, [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn KeyPair` [INFO] [stderr] [INFO] [stderr] warning: the item `libc` is imported redundantly [INFO] [stderr] --> src/sys/unix.rs:6:9 [INFO] [stderr] | [INFO] [stderr] 6 | 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/unix.rs:15:9 [INFO] [stderr] | [INFO] [stderr] 15 | 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/unix.rs:20:9 [INFO] [stderr] | [INFO] [stderr] 20 | 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/unix.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | 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: use of deprecated item 'std::os::unix::process::CommandExt::before_exec': should be unsafe, use `pre_exec` instead [INFO] [stderr] --> src/channel.rs:146:26 [INFO] [stderr] | [INFO] [stderr] 146 | .before_exec(|| sys::before_exec()) [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/server.rs:46:9 [INFO] [stderr] | [INFO] [stderr] 46 | Ok(()) [INFO] [stderr] | ^^^^^^ [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:177:43 [INFO] [stderr] | [INFO] [stderr] 177 | fn generate_key(&mut self, id: &[u8], len: usize) -> Result> { [INFO] [stderr] | ^^^ help: consider prefixing 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:217:28 [INFO] [stderr] | [INFO] [stderr] 217 | fn new_keys(&mut self, packet: Packet) -> Result> { [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_packet` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `channel_type` [INFO] [stderr] --> src/connection.rs:287:13 [INFO] [stderr] | [INFO] [stderr] 287 | let channel_type = reader.read_utf8()?; [INFO] [stderr] | ^^^^^^^^^^^^ help: consider prefixing with an underscore: `_channel_type` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `chan` [INFO] [stderr] --> src/connection.rs:292:35 [INFO] [stderr] | [INFO] [stderr] 292 | let id = if let Some((id, chan)) = self.channels.iter().next_back() { [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_chan` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `enc_algos_c2s` [INFO] [stderr] --> src/connection.rs:376:17 [INFO] [stderr] | [INFO] [stderr] 376 | let enc_algos_c2s = reader.read_enum_list::()?; [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider prefixing with an underscore: `_enc_algos_c2s` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `mac_algos_c2s` [INFO] [stderr] --> src/connection.rs:379:17 [INFO] [stderr] | [INFO] [stderr] 379 | let mac_algos_c2s = reader.read_enum_list::()?; [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider prefixing with an underscore: `_mac_algos_c2s` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `comp_algos_c2s` [INFO] [stderr] --> src/connection.rs:382:17 [INFO] [stderr] | [INFO] [stderr] 382 | let comp_algos_c2s = reader [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider prefixing with an underscore: `_comp_algos_c2s` [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::os::unix::process::CommandExt::before_exec': should be unsafe, use `pre_exec` instead [INFO] [stderr] --> src/channel.rs:146:26 [INFO] [stderr] | [INFO] [stderr] 146 | .before_exec(|| sys::before_exec()) [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/server.rs:46:9 [INFO] [stderr] | [INFO] [stderr] 46 | Ok(()) [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unreachable_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/connection.rs:63:44 [INFO] [stderr] | [INFO] [stderr] 63 | 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: 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:177:43 [INFO] [stderr] | [INFO] [stderr] 177 | fn generate_key(&mut self, id: &[u8], len: usize) -> Result> { [INFO] [stderr] | ^^^ help: consider prefixing 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:217:28 [INFO] [stderr] | [INFO] [stderr] 217 | fn new_keys(&mut self, packet: Packet) -> Result> { [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_packet` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `channel_type` [INFO] [stderr] --> src/connection.rs:287:13 [INFO] [stderr] | [INFO] [stderr] 287 | let channel_type = reader.read_utf8()?; [INFO] [stderr] | ^^^^^^^^^^^^ help: consider prefixing with an underscore: `_channel_type` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `chan` [INFO] [stderr] --> src/connection.rs:292:35 [INFO] [stderr] | [INFO] [stderr] 292 | let id = if let Some((id, chan)) = self.channels.iter().next_back() { [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_chan` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `enc_algos_c2s` [INFO] [stderr] --> src/connection.rs:376:17 [INFO] [stderr] | [INFO] [stderr] 376 | let enc_algos_c2s = reader.read_enum_list::()?; [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider prefixing with an underscore: `_enc_algos_c2s` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `mac_algos_c2s` [INFO] [stderr] --> src/connection.rs:379:17 [INFO] [stderr] | [INFO] [stderr] 379 | let mac_algos_c2s = reader.read_enum_list::()?; [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider prefixing with an underscore: `_mac_algos_c2s` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `comp_algos_c2s` [INFO] [stderr] --> src/connection.rs:382:17 [INFO] [stderr] | [INFO] [stderr] 382 | let comp_algos_c2s = reader [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider prefixing with an underscore: `_comp_algos_c2s` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/connection.rs:337:17 [INFO] [stderr] | [INFO] [stderr] 337 | 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:359:13 [INFO] [stderr] | [INFO] [stderr] 359 | 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:63:44 [INFO] [stderr] | [INFO] [stderr] 63 | 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: variant is never constructed: `Ok` [INFO] [stderr] --> src/key_exchange/mod.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | Ok(Packet), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/connection.rs:337:17 [INFO] [stderr] | [INFO] [stderr] 337 | 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:359:13 [INFO] [stderr] | [INFO] [stderr] 359 | 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: variant is never constructed: `Ok` [INFO] [stderr] --> src/key_exchange/mod.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | Ok(Packet), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::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: unused `std::result::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:37 [INFO] [stderr] | [INFO] [stderr] 9 | fn test_export_import(keypair: &Box) -> Box { [INFO] [stderr] | ^^^^^^^ help: use `dyn`: `dyn KeyPair` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [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] | ^^^^^^^ help: use `dyn`: `dyn KeyPair` [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 8.48s [INFO] running `"docker" "inspect" "bd17506ab59ae53b556f3bf221a5d027babcd553852bae2125afbb2b4bc16fc3"` [INFO] running `"docker" "rm" "-f" "bd17506ab59ae53b556f3bf221a5d027babcd553852bae2125afbb2b4bc16fc3"` [INFO] [stdout] bd17506ab59ae53b556f3bf221a5d027babcd553852bae2125afbb2b4bc16fc3