[INFO] fetching crate i2p_snow 0.5.1...
[INFO] testing i2p_snow-0.5.1 against 1.69.0 for beta-1.70-1
[INFO] extracting crate i2p_snow 0.5.1 into /workspace/builds/worker-0-tc1/source
[INFO] validating manifest of crates.io crate i2p_snow 0.5.1 on toolchain 1.69.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.69.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate i2p_snow 0.5.1
[INFO] finished tweaking crates.io crate i2p_snow 0.5.1
[INFO] tweaked toml for crates.io crate i2p_snow 0.5.1 written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" __CARGO_TEST_CHANNEL_OVERRIDE_DO_NOT_USE_THIS="nightly" "/workspace/cargo-home/bin/cargo" "+1.69.0" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.69.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded hacl-star-sys v0.0.7
[INFO] [stderr]   Downloaded static_slice v0.0.3
[INFO] [stderr]   Downloaded rand_core v0.2.2
[INFO] [stderr]   Downloaded x25519-dalek v0.4.5
[INFO] [stderr]   Downloaded curve25519-dalek v1.2.6
[INFO] [stderr]   Downloaded chacha20-poly1305-aead v0.1.2
[INFO] [stderr]   Downloaded hacl-star v0.0.13
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+1.69.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 1ade113decf0770d550949e9a27d2c011d9b7e4531abb2b524e27dc5baac82ec
[INFO] running `Command { std: "docker" "start" "-a" "1ade113decf0770d550949e9a27d2c011d9b7e4531abb2b524e27dc5baac82ec", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1ade113decf0770d550949e9a27d2c011d9b7e4531abb2b524e27dc5baac82ec", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1ade113decf0770d550949e9a27d2c011d9b7e4531abb2b524e27dc5baac82ec", kill_on_drop: false }`
[INFO] [stdout] 1ade113decf0770d550949e9a27d2c011d9b7e4531abb2b524e27dc5baac82ec
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--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:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+1.69.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1b01a8b1e8b188c66eccacd7a8e7aa21531eedbbb803141edca9af1bac96e953
[INFO] running `Command { std: "docker" "start" "-a" "1b01a8b1e8b188c66eccacd7a8e7aa21531eedbbb803141edca9af1bac96e953", kill_on_drop: false }`
[INFO] [stderr]    Compiling rand_core v0.4.2
[INFO] [stderr]    Compiling libc v0.2.142
[INFO] [stderr]    Compiling typenum v1.16.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.56
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling subtle v2.5.0
[INFO] [stderr]    Compiling byteorder v1.4.3
[INFO] [stderr]    Compiling semver-parser v0.7.0
[INFO] [stderr]    Compiling gimli v0.27.2
[INFO] [stderr]    Compiling maybe-uninit v2.0.0
[INFO] [stderr]    Compiling failure_derive v0.1.8
[INFO] [stderr]    Compiling autocfg v0.1.8
[INFO] [stderr]    Compiling clear_on_drop v0.2.5
[INFO] [stderr]    Compiling backtrace v0.3.67
[INFO] [stderr]    Compiling arrayvec v0.4.12
[INFO] [stderr]    Compiling gcc v0.3.55
[INFO] [stderr]    Compiling rand_chacha v0.1.1
[INFO] [stderr]    Compiling rand_core v0.3.1
[INFO] [stderr]    Compiling semver v0.9.0
[INFO] [stderr]    Compiling rand_pcg v0.1.2
[INFO] [stderr]    Compiling unicode-xid v0.2.4
[INFO] [stderr]    Compiling adler v1.0.2
[INFO] [stderr]    Compiling rustc_version v0.2.3
[INFO] [stderr]    Compiling rand v0.6.5
[INFO] [stderr]    Compiling object v0.30.3
[INFO] [stderr]    Compiling rustc-demangle v0.1.23
[INFO] [stderr]    Compiling miniz_oxide v0.6.2
[INFO] [stderr]    Compiling constant_time_eq v0.1.5
[INFO] [stderr]    Compiling nodrop v0.1.14
[INFO] [stderr]    Compiling rand_isaac v0.1.1
[INFO] [stderr]    Compiling rand_hc v0.1.0
[INFO] [stderr]    Compiling rand_xorshift v0.1.1
[INFO] [stderr]    Compiling i2p_snow v0.5.1 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling rand_jitter v0.1.4
[INFO] [stderr]    Compiling rustc-serialize v0.3.24
[INFO] [stderr]    Compiling smallvec v0.6.14
[INFO] [stderr]    Compiling chacha20-poly1305-aead v0.1.2
[INFO] [stderr]    Compiling blake2-rfc v0.2.18
[INFO] [stderr]    Compiling static_slice v0.0.3
[INFO] [stderr]    Compiling rust-crypto v0.2.36
[INFO] [stderr]    Compiling arrayref v0.3.7
[INFO] [stderr]    Compiling quote v1.0.26
[INFO] [stderr]    Compiling rand v0.4.6
[INFO] [stderr]    Compiling rand_os v0.1.3
[INFO] [stderr]    Compiling time v0.1.45
[INFO] [stderr]    Compiling rand v0.3.23
[INFO] [stderr]    Compiling generic-array v0.12.4
[INFO] [stderr]    Compiling digest v0.8.1
[INFO] [stderr]    Compiling curve25519-dalek v1.2.6
[INFO] [stderr]    Compiling addr2line v0.19.0
[INFO] [stderr]    Compiling x25519-dalek v0.4.5
[INFO] [stderr]    Compiling synstructure v0.12.6
[INFO] [stderr]    Compiling failure v0.1.8
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/symmetricstate.rs:189:13
[INFO] [stdout]     |
[INFO] [stdout] 189 |             bail!(StateProblem::ASKMasterKeyNotReady)
[INFO] [stdout]     |             ----------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stdout]     = note: `#[warn(semicolon_in_expressions_from_macros)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/symmetricstate.rs:211:31
[INFO] [stdout]     |
[INFO] [stdout] 211 |                 Some(None) => bail!(StateProblem::ASKChainFinalized),
[INFO] [stdout]     |                               -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/symmetricstate.rs:212:25
[INFO] [stdout]     |
[INFO] [stdout] 212 |                 None => bail!(SnowError::Input),
[INFO] [stdout]     |                         ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/symmetricstate.rs:215:13
[INFO] [stdout]     |
[INFO] [stdout] 215 |             bail!(StateProblem::ASKNotInitialized)
[INFO] [stdout]     |             -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/symmetricstate.rs:237:29
[INFO] [stdout]     |
[INFO] [stdout] 237 |                     None => bail!(StateProblem::ASKChainFinalized),
[INFO] [stdout]     |                             -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/symmetricstate.rs:242:17
[INFO] [stdout]     |
[INFO] [stdout] 242 |                 bail!(SnowError::Input)
[INFO] [stdout]     |                 ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/symmetricstate.rs:245:13
[INFO] [stdout]     |
[INFO] [stdout] 245 |             bail!(StateProblem::ASKNotInitialized)
[INFO] [stdout]     |             -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/handshakestate.rs:182:25
[INFO] [stdout]     |
[INFO] [stdout] 182 |                         bail!(SnowError::Input)
[INFO] [stdout]     |                         ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/handshakestate.rs:207:25
[INFO] [stdout]     |
[INFO] [stdout] 207 |                         bail!(SnowError::Input)
[INFO] [stdout]     |                         ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/error.rs:13:32
[INFO] [stdout]    |
[INFO] [stdout] 13 |         return Err(($e).into());
[INFO] [stdout]    |                                ^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/session.rs:97:50
[INFO] [stdout]    |
[INFO] [stdout] 97 |             Session::StatelessTransport(_)    => bail!(StateProblem::StatelessTransportMode),
[INFO] [stdout]    |                                                  ------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:116:55
[INFO] [stdout]     |
[INFO] [stdout] 116 |             _                                      => bail!(StateProblem::StatelessTransportMode),
[INFO] [stdout]     |                                                       ------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:137:50
[INFO] [stdout]     |
[INFO] [stdout] 137 |             Session::StatelessTransport(_)    => bail!(StateProblem::StatelessTransportMode),
[INFO] [stdout]     |                                                  ------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:156:55
[INFO] [stdout]     |
[INFO] [stdout] 156 |             _                                      => bail!(StateProblem::StatelessTransportMode),
[INFO] [stdout]     |                                                       ------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:171:38
[INFO] [stdout]     |
[INFO] [stdout] 171 |             Session::Handshake(_) => bail!(StateProblem::HandshakeNotFinished),
[INFO] [stdout]     |                                      ----------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:194:38
[INFO] [stdout]     |
[INFO] [stdout] 194 |             Session::Handshake(_) => bail!(StateProblem::HandshakeNotFinished),
[INFO] [stdout]     |                                      ----------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:214:38
[INFO] [stdout]     |
[INFO] [stdout] 214 |             Session::Handshake(_) => bail!(StateProblem::HandshakeNotFinished),
[INFO] [stdout]     |                                      ----------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:243:47
[INFO] [stdout]     |
[INFO] [stdout] 243 |             Session::Handshake(_)          => bail!(StateProblem::HandshakeNotFinished),
[INFO] [stdout]     |                                               ----------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:245:47
[INFO] [stdout]     |
[INFO] [stdout] 245 |             Session::StatelessTransport(_) => bail!(StateProblem::StatelessTransportMode),
[INFO] [stdout]     |                                               ------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:256:47
[INFO] [stdout]     |
[INFO] [stdout] 256 |             Session::Handshake(_)          => bail!(StateProblem::HandshakeNotFinished),
[INFO] [stdout]     |                                               ----------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:258:47
[INFO] [stdout]     |
[INFO] [stdout] 258 |             Session::StatelessTransport(_) => bail!(StateProblem::StatelessTransportMode),
[INFO] [stdout]     |                                               ------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:279:46
[INFO] [stdout]     |
[INFO] [stdout] 279 |             _                             => bail!(StateProblem::HandshakeAlreadyFinished),
[INFO] [stdout]     |                                              --------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:295:50
[INFO] [stdout]     |
[INFO] [stdout] 295 |             _                                 => bail!(StateProblem::HandshakeAlreadyFinished)
[INFO] [stdout]     |                                                  --------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:310:50
[INFO] [stdout]     |
[INFO] [stdout] 310 |             _                                 => bail!(StateProblem::HandshakeAlreadyFinished),
[INFO] [stdout]     |                                                  --------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:322:50
[INFO] [stdout]     |
[INFO] [stdout] 322 |             _                                 => bail!(StateProblem::HandshakeAlreadyFinished),
[INFO] [stdout]     |                                                  --------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:336:50
[INFO] [stdout]     |
[INFO] [stdout] 336 |             _                                 => bail!(StateProblem::HandshakeAlreadyFinished),
[INFO] [stdout]     |                                                  --------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:350:50
[INFO] [stdout]     |
[INFO] [stdout] 350 |             _                                 => bail!(StateProblem::HandshakeAlreadyFinished),
[INFO] [stdout]     |                                                  --------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:379:21
[INFO] [stdout]     |
[INFO] [stdout] 379 |                     bail!(StateProblem::HandshakeNotFinished)
[INFO] [stdout]     |                     ----------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:414:21
[INFO] [stdout]     |
[INFO] [stdout] 414 |                     bail!(StateProblem::HandshakeNotFinished)
[INFO] [stdout]     |                     ----------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/error.rs:13:32
[INFO] [stdout]    |
[INFO] [stdout] 13 |           return Err(($e).into());
[INFO] [stdout]    |                                  ^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/params/patterns.rs:84:1
[INFO] [stdout]    |
[INFO] [stdout] 84 | / pattern_enum! {
[INFO] [stdout] 85 | |     HandshakePattern {
[INFO] [stdout] 86 | |         // 7.4. One-way handshake patterns
[INFO] [stdout] 87 | |         N, X, K,
[INFO] [stdout] ...  |
[INFO] [stdout] 95 | |     }
[INFO] [stdout] 96 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `bail` which comes from the expansion of the macro `pattern_enum` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/params/patterns.rs:498:26
[INFO] [stdout]     |
[INFO] [stdout] 498 |                     0 => bail!(InitStage::ValidateHsPosition),
[INFO] [stdout]     |                          ------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/error.rs:13:32
[INFO] [stdout]    |
[INFO] [stdout] 13 |         return Err(($e).into());
[INFO] [stdout]    |                                ^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/params/mod.rs:42:24
[INFO] [stdout]    |
[INFO] [stdout] 42 |             _       => bail!(PatternProblem::UnsupportedBaseType)
[INFO] [stdout]    |                        ------------------------------------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/error.rs:13:32
[INFO] [stdout]    |
[INFO] [stdout] 13 |         return Err(($e).into());
[INFO] [stdout]    |                                ^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/params/mod.rs:62:24
[INFO] [stdout]    |
[INFO] [stdout] 62 |             _       => bail!(PatternProblem::UnsupportedDhType)
[INFO] [stdout]    |                        ---------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/error.rs:13:32
[INFO] [stdout]    |
[INFO] [stdout] 13 |         return Err(($e).into());
[INFO] [stdout]    |                                ^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/params/mod.rs:82:29
[INFO] [stdout]    |
[INFO] [stdout] 82 |             _            => bail!(PatternProblem::UnsupportedCipherType)
[INFO] [stdout]    |                             -------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/params/mod.rs:106:26
[INFO] [stdout]     |
[INFO] [stdout] 106 |             _         => bail!(PatternProblem::UnsupportedHashType)
[INFO] [stdout]     |                          ------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/cipherstate.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 |     cipher : Box<Cipher>,
[INFO] [stdout]   |                  ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]   = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 6 |     cipher : Box<dyn Cipher>,
[INFO] [stdout]   |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cipherstate.rs:102:18
[INFO] [stdout]     |
[INFO] [stdout] 102 |     cipher : Box<Cipher>,
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 102 |     cipher : Box<dyn Cipher>,
[INFO] [stdout]     |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/handshakestate.rs:19:39
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub(crate) rng              : Box<Random>,
[INFO] [stdout]    |                                       ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub(crate) rng              : Box<dyn Random>,
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/handshakestate.rs:22:46
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub(crate) s                : Toggle<Box<Dh>>,
[INFO] [stdout]    |                                              ^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub(crate) s                : Toggle<Box<dyn Dh>>,
[INFO] [stdout]    |                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/handshakestate.rs:23:46
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub(crate) e                : Toggle<Box<Dh>>,
[INFO] [stdout]    |                                              ^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub(crate) e                : Toggle<Box<dyn Dh>>,
[INFO] [stdout]    |                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/handshakestate.rs:30:46
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub(crate) obfse            : Option<Box<Obfusc + Send>>,
[INFO] [stdout]    |                                              ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub(crate) obfse            : Option<Box<dyn Obfusc + Send>>,
[INFO] [stdout]    |                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/builder.rs:39:19
[INFO] [stdout]    |
[INFO] [stdout] 39 |     resolver: Box<CryptoResolver>,
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 39 |     resolver: Box<dyn CryptoResolver>,
[INFO] [stdout]    |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:40:20
[INFO] [stdout]    |
[INFO] [stdout] 40 |     preferred: Box<CryptoResolver>,
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 40 |     preferred: Box<dyn CryptoResolver>,
[INFO] [stdout]    |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:41:19
[INFO] [stdout]    |
[INFO] [stdout] 41 |     fallback: Box<CryptoResolver>,
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 41 |     fallback: Box<dyn CryptoResolver>,
[INFO] [stdout]    |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/cipherstate.rs:12:28
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn new(cipher: Box<Cipher>) -> Self {
[INFO] [stdout]    |                            ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn new(cipher: Box<dyn Cipher>) -> Self {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cipherstate.rs:107:28
[INFO] [stdout]     |
[INFO] [stdout] 107 |     pub fn new(cipher: Box<Cipher>) -> Self {
[INFO] [stdout]     |                            ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 107 |     pub fn new(cipher: Box<dyn Cipher>) -> Self {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/symmetricstate.rs:37:54
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn new(cipherstate: CipherState, hasher: Box<Hash>, enable_ask: bool) -> SymmetricState {
[INFO] [stdout]    |                                                      ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn new(cipherstate: CipherState, hasher: Box<dyn Hash>, enable_ask: bool) -> SymmetricState {
[INFO] [stdout]    |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/handshakestate.rs:40:31
[INFO] [stdout]    |
[INFO] [stdout] 40 |         rng             : Box<Random>,
[INFO] [stdout]    |                               ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 40 |         rng             : Box<dyn Random>,
[INFO] [stdout]    |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/handshakestate.rs:42:31
[INFO] [stdout]    |
[INFO] [stdout] 42 |         hasher          : Box<Hash>,
[INFO] [stdout]    |                               ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 42 |         hasher          : Box<dyn Hash>,
[INFO] [stdout]    |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/handshakestate.rs:43:38
[INFO] [stdout]    |
[INFO] [stdout] 43 |         s               : Toggle<Box<Dh>>,
[INFO] [stdout]    |                                      ^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 43 |         s               : Toggle<Box<dyn Dh>>,
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/handshakestate.rs:44:38
[INFO] [stdout]    |
[INFO] [stdout] 44 |         e               : Toggle<Box<Dh>>,
[INFO] [stdout]    |                                      ^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 |         e               : Toggle<Box<dyn Dh>>,
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/handshakestate.rs:52:38
[INFO] [stdout]    |
[INFO] [stdout] 52 |         obfse           : Option<Box<Obfusc + Send>>,
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 52 |         obfse           : Option<Box<dyn Obfusc + Send>>,
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/builder.rs:75:61
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub fn with_resolver(params: NoiseParams, resolver: Box<CryptoResolver>) -> Self {
[INFO] [stdout]    |                                                             ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub fn with_resolver(params: NoiseParams, resolver: Box<dyn CryptoResolver>) -> Self {
[INFO] [stdout]    |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/types.rs:24:38
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn generate(&mut self, rng: &mut Random);
[INFO] [stdout]    |                                      ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn generate(&mut self, rng: &mut dyn Random);
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:21:41
[INFO] [stdout]    |
[INFO] [stdout] 21 |     fn resolve_rng(&self) -> Option<Box<Random>>;
[INFO] [stdout]    |                                         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 21 |     fn resolve_rng(&self) -> Option<Box<dyn Random>>;
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:24:59
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn resolve_dh(&self, choice: &DHChoice) -> Option<Box<Dh>>;
[INFO] [stdout]    |                                                           ^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn resolve_dh(&self, choice: &DHChoice) -> Option<Box<dyn Dh>>;
[INFO] [stdout]    |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:27:63
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn resolve_hash(&self, choice: &HashChoice) -> Option<Box<Hash>>;
[INFO] [stdout]    |                                                               ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn resolve_hash(&self, choice: &HashChoice) -> Option<Box<dyn Hash>>;
[INFO] [stdout]    |                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:30:67
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn resolve_cipher(&self, choice: &CipherChoice) -> Option<Box<Cipher>>;
[INFO] [stdout]    |                                                                   ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn resolve_cipher(&self, choice: &CipherChoice) -> Option<Box<dyn Cipher>>;
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:33:67
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn resolve_obfusc(&self, choice: &ObfuscChoice) -> Option<Box<Obfusc + Send>>;
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn resolve_obfusc(&self, choice: &ObfuscChoice) -> Option<Box<dyn Obfusc + Send>>;
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:46:31
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn new(preferred: Box<CryptoResolver>, fallback: Box<CryptoResolver>) -> Self {
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn new(preferred: Box<dyn CryptoResolver>, fallback: Box<CryptoResolver>) -> Self {
[INFO] [stdout]    |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:46:62
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn new(preferred: Box<CryptoResolver>, fallback: Box<CryptoResolver>) -> Self {
[INFO] [stdout]    |                                                              ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn new(preferred: Box<CryptoResolver>, fallback: Box<dyn CryptoResolver>) -> Self {
[INFO] [stdout]    |                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:52:41
[INFO] [stdout]    |
[INFO] [stdout] 52 |     fn resolve_rng(&self) -> Option<Box<Random>> {
[INFO] [stdout]    |                                         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 52 |     fn resolve_rng(&self) -> Option<Box<dyn Random>> {
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:56:59
[INFO] [stdout]    |
[INFO] [stdout] 56 |     fn resolve_dh(&self, choice: &DHChoice) -> Option<Box<Dh>> {
[INFO] [stdout]    |                                                           ^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 56 |     fn resolve_dh(&self, choice: &DHChoice) -> Option<Box<dyn Dh>> {
[INFO] [stdout]    |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:60:63
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn resolve_hash(&self, choice: &HashChoice) -> Option<Box<Hash>> {
[INFO] [stdout]    |                                                               ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn resolve_hash(&self, choice: &HashChoice) -> Option<Box<dyn Hash>> {
[INFO] [stdout]    |                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:64:67
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn resolve_cipher(&self, choice: &CipherChoice) -> Option<Box<Cipher>> {
[INFO] [stdout]    |                                                                   ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn resolve_cipher(&self, choice: &CipherChoice) -> Option<Box<dyn Cipher>> {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:68:67
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn resolve_obfusc(&self, choice: &ObfuscChoice) -> Option<Box<Obfusc + Send>> {
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn resolve_obfusc(&self, choice: &ObfuscChoice) -> Option<Box<dyn Obfusc + Send>> {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/default.rs:34:41
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn resolve_rng(&self) -> Option<Box<Random>> {
[INFO] [stdout]    |                                         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn resolve_rng(&self) -> Option<Box<dyn Random>> {
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/default.rs:41:59
[INFO] [stdout]    |
[INFO] [stdout] 41 |     fn resolve_dh(&self, choice: &DHChoice) -> Option<Box<Dh>> {
[INFO] [stdout]    |                                                           ^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 41 |     fn resolve_dh(&self, choice: &DHChoice) -> Option<Box<dyn Dh>> {
[INFO] [stdout]    |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/default.rs:48:63
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn resolve_hash(&self, choice: &HashChoice) -> Option<Box<Hash>> {
[INFO] [stdout]    |                                                               ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn resolve_hash(&self, choice: &HashChoice) -> Option<Box<dyn Hash>> {
[INFO] [stdout]    |                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/default.rs:57:67
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn resolve_cipher(&self, choice: &CipherChoice) -> Option<Box<Cipher>> {
[INFO] [stdout]    |                                                                   ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn resolve_cipher(&self, choice: &CipherChoice) -> Option<Box<dyn Cipher>> {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/default.rs:64:67
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn resolve_obfusc(&self, choice: &ObfuscChoice) -> Option<Box<Obfusc + Send>> {
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn resolve_obfusc(&self, choice: &ObfuscChoice) -> Option<Box<dyn Obfusc + Send>> {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/resolvers/default.rs:138:38
[INFO] [stdout]     |
[INFO] [stdout] 138 |     fn generate(&mut self, rng: &mut Random) {
[INFO] [stdout]     |                                      ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 138 |     fn generate(&mut self, rng: &mut dyn Random) {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 71 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 12.47s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: i2p_snow v0.5.1 (/opt/rustwide/workdir), rustc-serialize v0.3.24
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "1b01a8b1e8b188c66eccacd7a8e7aa21531eedbbb803141edca9af1bac96e953", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1b01a8b1e8b188c66eccacd7a8e7aa21531eedbbb803141edca9af1bac96e953", kill_on_drop: false }`
[INFO] [stdout] 1b01a8b1e8b188c66eccacd7a8e7aa21531eedbbb803141edca9af1bac96e953
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--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:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+1.69.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 11863c99ebf418cc7d32ba094b6c654597c64810104e615cd33d257ef086f434
[INFO] running `Command { std: "docker" "start" "-a" "11863c99ebf418cc7d32ba094b6c654597c64810104e615cd33d257ef086f434", kill_on_drop: false }`
[INFO] [stderr]    Compiling semver v1.0.17
[INFO] [stderr]    Compiling crossbeam-utils v0.8.15
[INFO] [stderr]    Compiling memoffset v0.8.0
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.14
[INFO] [stderr]    Compiling serde v1.0.160
[INFO] [stderr]    Compiling rayon-core v1.11.0
[INFO] [stderr]    Compiling either v1.8.1
[INFO] [stderr]    Compiling serde_json v1.0.96
[INFO] [stderr]    Compiling num_cpus v1.15.0
[INFO] [stderr]    Compiling num-traits v0.2.15
[INFO] [stderr]    Compiling unicode-width v0.1.10
[INFO] [stderr]    Compiling serde_derive v1.0.160
[INFO] [stderr]    Compiling syn v2.0.15
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling csv-core v0.1.10
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]    Compiling textwrap v0.11.0
[INFO] [stderr]    Compiling ansi_term v0.12.1
[INFO] [stderr]    Compiling itertools v0.8.2
[INFO] [stderr]    Compiling strsim v0.8.0
[INFO] [stderr]    Compiling vec_map v0.8.2
[INFO] [stderr]    Compiling rand_xoshiro v0.1.0
[INFO] [stderr]    Compiling clap v2.34.0
[INFO] [stderr]    Compiling lazy_static v1.4.0
[INFO] [stderr]    Compiling hex v0.3.2
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/symmetricstate.rs:189:13
[INFO] [stdout]     |
[INFO] [stdout] 189 |             bail!(StateProblem::ASKMasterKeyNotReady)
[INFO] [stdout]     |             ----------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stdout]     = note: `#[warn(semicolon_in_expressions_from_macros)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/symmetricstate.rs:211:31
[INFO] [stdout]     |
[INFO] [stdout] 211 |                 Some(None) => bail!(StateProblem::ASKChainFinalized),
[INFO] [stdout]     |                               -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/symmetricstate.rs:212:25
[INFO] [stdout]     |
[INFO] [stdout] 212 |                 None => bail!(SnowError::Input),
[INFO] [stdout]     |                         ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/symmetricstate.rs:215:13
[INFO] [stdout]     |
[INFO] [stdout] 215 |             bail!(StateProblem::ASKNotInitialized)
[INFO] [stdout]     |             -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/symmetricstate.rs:237:29
[INFO] [stdout]     |
[INFO] [stdout] 237 |                     None => bail!(StateProblem::ASKChainFinalized),
[INFO] [stdout]     |                             -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/symmetricstate.rs:242:17
[INFO] [stdout]     |
[INFO] [stdout] 242 |                 bail!(SnowError::Input)
[INFO] [stdout]     |                 ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/symmetricstate.rs:245:13
[INFO] [stdout]     |
[INFO] [stdout] 245 |             bail!(StateProblem::ASKNotInitialized)
[INFO] [stdout]     |             -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/handshakestate.rs:182:25
[INFO] [stdout]     |
[INFO] [stdout] 182 |                         bail!(SnowError::Input)
[INFO] [stdout]     |                         ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/handshakestate.rs:207:25
[INFO] [stdout]     |
[INFO] [stdout] 207 |                         bail!(SnowError::Input)
[INFO] [stdout]     |                         ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/error.rs:13:32
[INFO] [stdout]    |
[INFO] [stdout] 13 |         return Err(($e).into());
[INFO] [stdout]    |                                ^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/session.rs:97:50
[INFO] [stdout]    |
[INFO] [stdout] 97 |             Session::StatelessTransport(_)    => bail!(StateProblem::StatelessTransportMode),
[INFO] [stdout]    |                                                  ------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:116:55
[INFO] [stdout]     |
[INFO] [stdout] 116 |             _                                      => bail!(StateProblem::StatelessTransportMode),
[INFO] [stdout]     |                                                       ------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:137:50
[INFO] [stdout]     |
[INFO] [stdout] 137 |             Session::StatelessTransport(_)    => bail!(StateProblem::StatelessTransportMode),
[INFO] [stdout]     |                                                  ------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:156:55
[INFO] [stdout]     |
[INFO] [stdout] 156 |             _                                      => bail!(StateProblem::StatelessTransportMode),
[INFO] [stdout]     |                                                       ------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:171:38
[INFO] [stdout]     |
[INFO] [stdout] 171 |             Session::Handshake(_) => bail!(StateProblem::HandshakeNotFinished),
[INFO] [stdout]     |                                      ----------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:194:38
[INFO] [stdout]     |
[INFO] [stdout] 194 |             Session::Handshake(_) => bail!(StateProblem::HandshakeNotFinished),
[INFO] [stdout]     |                                      ----------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:214:38
[INFO] [stdout]     |
[INFO] [stdout] 214 |             Session::Handshake(_) => bail!(StateProblem::HandshakeNotFinished),
[INFO] [stdout]     |                                      ----------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:243:47
[INFO] [stdout]     |
[INFO] [stdout] 243 |             Session::Handshake(_)          => bail!(StateProblem::HandshakeNotFinished),
[INFO] [stdout]     |                                               ----------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:245:47
[INFO] [stdout]     |
[INFO] [stdout] 245 |             Session::StatelessTransport(_) => bail!(StateProblem::StatelessTransportMode),
[INFO] [stdout]     |                                               ------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:256:47
[INFO] [stdout]     |
[INFO] [stdout] 256 |             Session::Handshake(_)          => bail!(StateProblem::HandshakeNotFinished),
[INFO] [stdout]     |                                               ----------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:258:47
[INFO] [stdout]     |
[INFO] [stdout] 258 |             Session::StatelessTransport(_) => bail!(StateProblem::StatelessTransportMode),
[INFO] [stdout]     |                                               ------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:279:46
[INFO] [stdout]     |
[INFO] [stdout] 279 |             _                             => bail!(StateProblem::HandshakeAlreadyFinished),
[INFO] [stdout]     |                                              --------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:295:50
[INFO] [stdout]     |
[INFO] [stdout] 295 |             _                                 => bail!(StateProblem::HandshakeAlreadyFinished)
[INFO] [stdout]     |                                                  --------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:310:50
[INFO] [stdout]     |
[INFO] [stdout] 310 |             _                                 => bail!(StateProblem::HandshakeAlreadyFinished),
[INFO] [stdout]     |                                                  --------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:322:50
[INFO] [stdout]     |
[INFO] [stdout] 322 |             _                                 => bail!(StateProblem::HandshakeAlreadyFinished),
[INFO] [stdout]     |                                                  --------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:336:50
[INFO] [stdout]     |
[INFO] [stdout] 336 |             _                                 => bail!(StateProblem::HandshakeAlreadyFinished),
[INFO] [stdout]     |                                                  --------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:350:50
[INFO] [stdout]     |
[INFO] [stdout] 350 |             _                                 => bail!(StateProblem::HandshakeAlreadyFinished),
[INFO] [stdout]     |                                                  --------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:379:21
[INFO] [stdout]     |
[INFO] [stdout] 379 |                     bail!(StateProblem::HandshakeNotFinished)
[INFO] [stdout]     |                     ----------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:414:21
[INFO] [stdout]     |
[INFO] [stdout] 414 |                     bail!(StateProblem::HandshakeNotFinished)
[INFO] [stdout]     |                     ----------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/error.rs:13:32
[INFO] [stdout]    |
[INFO] [stdout] 13 |           return Err(($e).into());
[INFO] [stdout]    |                                  ^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/params/patterns.rs:84:1
[INFO] [stdout]    |
[INFO] [stdout] 84 | / pattern_enum! {
[INFO] [stdout] 85 | |     HandshakePattern {
[INFO] [stdout] 86 | |         // 7.4. One-way handshake patterns
[INFO] [stdout] 87 | |         N, X, K,
[INFO] [stdout] ...  |
[INFO] [stdout] 95 | |     }
[INFO] [stdout] 96 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `bail` which comes from the expansion of the macro `pattern_enum` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/params/patterns.rs:498:26
[INFO] [stdout]     |
[INFO] [stdout] 498 |                     0 => bail!(InitStage::ValidateHsPosition),
[INFO] [stdout]     |                          ------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/error.rs:13:32
[INFO] [stdout]    |
[INFO] [stdout] 13 |         return Err(($e).into());
[INFO] [stdout]    |                                ^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/params/mod.rs:42:24
[INFO] [stdout]    |
[INFO] [stdout] 42 |             _       => bail!(PatternProblem::UnsupportedBaseType)
[INFO] [stdout]    |                        ------------------------------------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/error.rs:13:32
[INFO] [stdout]    |
[INFO] [stdout] 13 |         return Err(($e).into());
[INFO] [stdout]    |                                ^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/params/mod.rs:62:24
[INFO] [stdout]    |
[INFO] [stdout] 62 |             _       => bail!(PatternProblem::UnsupportedDhType)
[INFO] [stdout]    |                        ---------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/error.rs:13:32
[INFO] [stdout]    |
[INFO] [stdout] 13 |         return Err(($e).into());
[INFO] [stdout]    |                                ^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/params/mod.rs:82:29
[INFO] [stdout]    |
[INFO] [stdout] 82 |             _            => bail!(PatternProblem::UnsupportedCipherType)
[INFO] [stdout]    |                             -------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/params/mod.rs:106:26
[INFO] [stdout]     |
[INFO] [stdout] 106 |             _         => bail!(PatternProblem::UnsupportedHashType)
[INFO] [stdout]     |                          ------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/cipherstate.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 |     cipher : Box<Cipher>,
[INFO] [stdout]   |                  ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]   = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 6 |     cipher : Box<dyn Cipher>,
[INFO] [stdout]   |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cipherstate.rs:102:18
[INFO] [stdout]     |
[INFO] [stdout] 102 |     cipher : Box<Cipher>,
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 102 |     cipher : Box<dyn Cipher>,
[INFO] [stdout]     |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/handshakestate.rs:19:39
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub(crate) rng              : Box<Random>,
[INFO] [stdout]    |                                       ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub(crate) rng              : Box<dyn Random>,
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/handshakestate.rs:22:46
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub(crate) s                : Toggle<Box<Dh>>,
[INFO] [stdout]    |                                              ^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub(crate) s                : Toggle<Box<dyn Dh>>,
[INFO] [stdout]    |                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/handshakestate.rs:23:46
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub(crate) e                : Toggle<Box<Dh>>,
[INFO] [stdout]    |                                              ^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub(crate) e                : Toggle<Box<dyn Dh>>,
[INFO] [stdout]    |                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/handshakestate.rs:30:46
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub(crate) obfse            : Option<Box<Obfusc + Send>>,
[INFO] [stdout]    |                                              ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub(crate) obfse            : Option<Box<dyn Obfusc + Send>>,
[INFO] [stdout]    |                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/builder.rs:39:19
[INFO] [stdout]    |
[INFO] [stdout] 39 |     resolver: Box<CryptoResolver>,
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 39 |     resolver: Box<dyn CryptoResolver>,
[INFO] [stdout]    |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:40:20
[INFO] [stdout]    |
[INFO] [stdout] 40 |     preferred: Box<CryptoResolver>,
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 40 |     preferred: Box<dyn CryptoResolver>,
[INFO] [stdout]    |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:41:19
[INFO] [stdout]    |
[INFO] [stdout] 41 |     fallback: Box<CryptoResolver>,
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 41 |     fallback: Box<dyn CryptoResolver>,
[INFO] [stdout]    |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/cipherstate.rs:12:28
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn new(cipher: Box<Cipher>) -> Self {
[INFO] [stdout]    |                            ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn new(cipher: Box<dyn Cipher>) -> Self {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cipherstate.rs:107:28
[INFO] [stdout]     |
[INFO] [stdout] 107 |     pub fn new(cipher: Box<Cipher>) -> Self {
[INFO] [stdout]     |                            ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 107 |     pub fn new(cipher: Box<dyn Cipher>) -> Self {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/symmetricstate.rs:37:54
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn new(cipherstate: CipherState, hasher: Box<Hash>, enable_ask: bool) -> SymmetricState {
[INFO] [stdout]    |                                                      ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn new(cipherstate: CipherState, hasher: Box<dyn Hash>, enable_ask: bool) -> SymmetricState {
[INFO] [stdout]    |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/handshakestate.rs:40:31
[INFO] [stdout]    |
[INFO] [stdout] 40 |         rng             : Box<Random>,
[INFO] [stdout]    |                               ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 40 |         rng             : Box<dyn Random>,
[INFO] [stdout]    |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/handshakestate.rs:42:31
[INFO] [stdout]    |
[INFO] [stdout] 42 |         hasher          : Box<Hash>,
[INFO] [stdout]    |                               ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 42 |         hasher          : Box<dyn Hash>,
[INFO] [stdout]    |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/handshakestate.rs:43:38
[INFO] [stdout]    |
[INFO] [stdout] 43 |         s               : Toggle<Box<Dh>>,
[INFO] [stdout]    |                                      ^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 43 |         s               : Toggle<Box<dyn Dh>>,
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/handshakestate.rs:44:38
[INFO] [stdout]    |
[INFO] [stdout] 44 |         e               : Toggle<Box<Dh>>,
[INFO] [stdout]    |                                      ^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 |         e               : Toggle<Box<dyn Dh>>,
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/handshakestate.rs:52:38
[INFO] [stdout]    |
[INFO] [stdout] 52 |         obfse           : Option<Box<Obfusc + Send>>,
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 52 |         obfse           : Option<Box<dyn Obfusc + Send>>,
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/builder.rs:75:61
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub fn with_resolver(params: NoiseParams, resolver: Box<CryptoResolver>) -> Self {
[INFO] [stdout]    |                                                             ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub fn with_resolver(params: NoiseParams, resolver: Box<dyn CryptoResolver>) -> Self {
[INFO] [stdout]    |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/types.rs:24:38
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn generate(&mut self, rng: &mut Random);
[INFO] [stdout]    |                                      ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn generate(&mut self, rng: &mut dyn Random);
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:21:41
[INFO] [stdout]    |
[INFO] [stdout] 21 |     fn resolve_rng(&self) -> Option<Box<Random>>;
[INFO] [stdout]    |                                         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 21 |     fn resolve_rng(&self) -> Option<Box<dyn Random>>;
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:24:59
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn resolve_dh(&self, choice: &DHChoice) -> Option<Box<Dh>>;
[INFO] [stdout]    |                                                           ^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn resolve_dh(&self, choice: &DHChoice) -> Option<Box<dyn Dh>>;
[INFO] [stdout]    |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:27:63
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn resolve_hash(&self, choice: &HashChoice) -> Option<Box<Hash>>;
[INFO] [stdout]    |                                                               ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn resolve_hash(&self, choice: &HashChoice) -> Option<Box<dyn Hash>>;
[INFO] [stdout]    |                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:30:67
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn resolve_cipher(&self, choice: &CipherChoice) -> Option<Box<Cipher>>;
[INFO] [stdout]    |                                                                   ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn resolve_cipher(&self, choice: &CipherChoice) -> Option<Box<dyn Cipher>>;
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:33:67
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn resolve_obfusc(&self, choice: &ObfuscChoice) -> Option<Box<Obfusc + Send>>;
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn resolve_obfusc(&self, choice: &ObfuscChoice) -> Option<Box<dyn Obfusc + Send>>;
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:46:31
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn new(preferred: Box<CryptoResolver>, fallback: Box<CryptoResolver>) -> Self {
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn new(preferred: Box<dyn CryptoResolver>, fallback: Box<CryptoResolver>) -> Self {
[INFO] [stdout]    |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:46:62
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn new(preferred: Box<CryptoResolver>, fallback: Box<CryptoResolver>) -> Self {
[INFO] [stdout]    |                                                              ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn new(preferred: Box<CryptoResolver>, fallback: Box<dyn CryptoResolver>) -> Self {
[INFO] [stdout]    |                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:52:41
[INFO] [stdout]    |
[INFO] [stdout] 52 |     fn resolve_rng(&self) -> Option<Box<Random>> {
[INFO] [stdout]    |                                         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 52 |     fn resolve_rng(&self) -> Option<Box<dyn Random>> {
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:56:59
[INFO] [stdout]    |
[INFO] [stdout] 56 |     fn resolve_dh(&self, choice: &DHChoice) -> Option<Box<Dh>> {
[INFO] [stdout]    |                                                           ^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 56 |     fn resolve_dh(&self, choice: &DHChoice) -> Option<Box<dyn Dh>> {
[INFO] [stdout]    |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:60:63
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn resolve_hash(&self, choice: &HashChoice) -> Option<Box<Hash>> {
[INFO] [stdout]    |                                                               ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn resolve_hash(&self, choice: &HashChoice) -> Option<Box<dyn Hash>> {
[INFO] [stdout]    |                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:64:67
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn resolve_cipher(&self, choice: &CipherChoice) -> Option<Box<Cipher>> {
[INFO] [stdout]    |                                                                   ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn resolve_cipher(&self, choice: &CipherChoice) -> Option<Box<dyn Cipher>> {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:68:67
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn resolve_obfusc(&self, choice: &ObfuscChoice) -> Option<Box<Obfusc + Send>> {
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn resolve_obfusc(&self, choice: &ObfuscChoice) -> Option<Box<dyn Obfusc + Send>> {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/default.rs:34:41
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn resolve_rng(&self) -> Option<Box<Random>> {
[INFO] [stdout]    |                                         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn resolve_rng(&self) -> Option<Box<dyn Random>> {
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/default.rs:41:59
[INFO] [stdout]    |
[INFO] [stdout] 41 |     fn resolve_dh(&self, choice: &DHChoice) -> Option<Box<Dh>> {
[INFO] [stdout]    |                                                           ^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 41 |     fn resolve_dh(&self, choice: &DHChoice) -> Option<Box<dyn Dh>> {
[INFO] [stdout]    |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/default.rs:48:63
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn resolve_hash(&self, choice: &HashChoice) -> Option<Box<Hash>> {
[INFO] [stdout]    |                                                               ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn resolve_hash(&self, choice: &HashChoice) -> Option<Box<dyn Hash>> {
[INFO] [stdout]    |                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/default.rs:57:67
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn resolve_cipher(&self, choice: &CipherChoice) -> Option<Box<Cipher>> {
[INFO] [stdout]    |                                                                   ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn resolve_cipher(&self, choice: &CipherChoice) -> Option<Box<dyn Cipher>> {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/default.rs:64:67
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn resolve_obfusc(&self, choice: &ObfuscChoice) -> Option<Box<Obfusc + Send>> {
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn resolve_obfusc(&self, choice: &ObfuscChoice) -> Option<Box<dyn Obfusc + Send>> {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/resolvers/default.rs:138:38
[INFO] [stdout]     |
[INFO] [stdout] 138 |     fn generate(&mut self, rng: &mut Random) {
[INFO] [stdout]     |                                      ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 138 |     fn generate(&mut self, rng: &mut dyn Random) {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 71 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling rustc_version v0.4.0
[INFO] [stderr]    Compiling crossbeam-channel v0.5.8
[INFO] [stderr]    Compiling cast v0.2.7
[INFO] [stderr]    Compiling crossbeam-deque v0.8.3
[INFO] [stderr]    Compiling criterion-plot v0.3.1
[INFO] [stderr]    Compiling rayon v1.7.0
[INFO] [stderr]    Compiling csv v1.2.1
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling criterion v0.2.11
[INFO] [stderr]    Compiling i2p_snow v0.5.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/symmetricstate.rs:189:13
[INFO] [stdout]     |
[INFO] [stdout] 189 |             bail!(StateProblem::ASKMasterKeyNotReady)
[INFO] [stdout]     |             ----------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stdout]     = note: `#[warn(semicolon_in_expressions_from_macros)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/symmetricstate.rs:211:31
[INFO] [stdout]     |
[INFO] [stdout] 211 |                 Some(None) => bail!(StateProblem::ASKChainFinalized),
[INFO] [stdout]     |                               -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/symmetricstate.rs:212:25
[INFO] [stdout]     |
[INFO] [stdout] 212 |                 None => bail!(SnowError::Input),
[INFO] [stdout]     |                         ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/symmetricstate.rs:215:13
[INFO] [stdout]     |
[INFO] [stdout] 215 |             bail!(StateProblem::ASKNotInitialized)
[INFO] [stdout]     |             -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/symmetricstate.rs:237:29
[INFO] [stdout]     |
[INFO] [stdout] 237 |                     None => bail!(StateProblem::ASKChainFinalized),
[INFO] [stdout]     |                             -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/symmetricstate.rs:242:17
[INFO] [stdout]     |
[INFO] [stdout] 242 |                 bail!(SnowError::Input)
[INFO] [stdout]     |                 ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/symmetricstate.rs:245:13
[INFO] [stdout]     |
[INFO] [stdout] 245 |             bail!(StateProblem::ASKNotInitialized)
[INFO] [stdout]     |             -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/handshakestate.rs:182:25
[INFO] [stdout]     |
[INFO] [stdout] 182 |                         bail!(SnowError::Input)
[INFO] [stdout]     |                         ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> tests/general.rs:67:41
[INFO] [stdout]    |
[INFO] [stdout] 67 |     fn resolve_rng(&self) -> Option<Box<Random>> {
[INFO] [stdout]    |                                         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 67 |     fn resolve_rng(&self) -> Option<Box<dyn Random>> {
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/handshakestate.rs:207:25
[INFO] [stdout]     |
[INFO] [stdout] 207 |                         bail!(SnowError::Input)
[INFO] [stdout]     |                         ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/error.rs:13:32
[INFO] [stdout]    |
[INFO] [stdout] 13 |         return Err(($e).into());
[INFO] [stdout]    |                                ^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/session.rs:97:50
[INFO] [stdout]    |
[INFO] [stdout] 97 |             Session::StatelessTransport(_)    => bail!(StateProblem::StatelessTransportMode),
[INFO] [stdout]    |                                                  ------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> tests/general.rs:72:59
[INFO] [stdout]    |
[INFO] [stdout] 72 |     fn resolve_dh(&self, choice: &DHChoice) -> Option<Box<Dh>> {
[INFO] [stdout]    |                                                           ^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 72 |     fn resolve_dh(&self, choice: &DHChoice) -> Option<Box<dyn Dh>> {
[INFO] [stdout]    |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:116:55
[INFO] [stdout]     |
[INFO] [stdout] 116 |             _                                      => bail!(StateProblem::StatelessTransportMode),
[INFO] [stdout]     |                                                       ------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> tests/general.rs:76:63
[INFO] [stdout]    |
[INFO] [stdout] 76 |     fn resolve_hash(&self, choice: &HashChoice) -> Option<Box<Hash>> {
[INFO] [stdout]    |                                                               ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 76 |     fn resolve_hash(&self, choice: &HashChoice) -> Option<Box<dyn Hash>> {
[INFO] [stdout]    |                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:137:50
[INFO] [stdout]     |
[INFO] [stdout] 137 |             Session::StatelessTransport(_)    => bail!(StateProblem::StatelessTransportMode),
[INFO] [stdout]     |                                                  ------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:156:55
[INFO] [stdout]     |
[INFO] [stdout] 156 |             _                                      => bail!(StateProblem::StatelessTransportMode),
[INFO] [stdout]     |                                                       ------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> tests/general.rs:80:67
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn resolve_cipher(&self, choice: &CipherChoice) -> Option<Box<Cipher>> {
[INFO] [stdout]    |                                                                   ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn resolve_cipher(&self, choice: &CipherChoice) -> Option<Box<dyn Cipher>> {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:171:38
[INFO] [stdout]     |
[INFO] [stdout] 171 |             Session::Handshake(_) => bail!(StateProblem::HandshakeNotFinished),
[INFO] [stdout]     |                                      ----------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:194:38
[INFO] [stdout]     |
[INFO] [stdout] 194 |             Session::Handshake(_) => bail!(StateProblem::HandshakeNotFinished),
[INFO] [stdout]     |                                      ----------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> tests/general.rs:84:67
[INFO] [stdout]    |
[INFO] [stdout] 84 |     fn resolve_obfusc(&self, choice: &ObfuscChoice) -> Option<Box<Obfusc + Send>> {
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 84 |     fn resolve_obfusc(&self, choice: &ObfuscChoice) -> Option<Box<dyn Obfusc + Send>> {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:214:38
[INFO] [stdout]     |
[INFO] [stdout] 214 |             Session::Handshake(_) => bail!(StateProblem::HandshakeNotFinished),
[INFO] [stdout]     |                                      ----------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:243:47
[INFO] [stdout]     |
[INFO] [stdout] 243 |             Session::Handshake(_)          => bail!(StateProblem::HandshakeNotFinished),
[INFO] [stdout]     |                                               ----------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:245:47
[INFO] [stdout]     |
[INFO] [stdout] 245 |             Session::StatelessTransport(_) => bail!(StateProblem::StatelessTransportMode),
[INFO] [stdout]     |                                               ------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:256:47
[INFO] [stdout]     |
[INFO] [stdout] 256 |             Session::Handshake(_)          => bail!(StateProblem::HandshakeNotFinished),
[INFO] [stdout]     |                                               ----------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:258:47
[INFO] [stdout]     |
[INFO] [stdout] 258 |             Session::StatelessTransport(_) => bail!(StateProblem::StatelessTransportMode),
[INFO] [stdout]     |                                               ------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:279:46
[INFO] [stdout]     |
[INFO] [stdout] 279 |             _                             => bail!(StateProblem::HandshakeAlreadyFinished),
[INFO] [stdout]     |                                              --------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:295:50
[INFO] [stdout]     |
[INFO] [stdout] 295 |             _                                 => bail!(StateProblem::HandshakeAlreadyFinished)
[INFO] [stdout]     |                                                  --------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:310:50
[INFO] [stdout]     |
[INFO] [stdout] 310 |             _                                 => bail!(StateProblem::HandshakeAlreadyFinished),
[INFO] [stdout]     |                                                  --------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:322:50
[INFO] [stdout]     |
[INFO] [stdout] 322 |             _                                 => bail!(StateProblem::HandshakeAlreadyFinished),
[INFO] [stdout]     |                                                  --------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:336:50
[INFO] [stdout]     |
[INFO] [stdout] 336 |             _                                 => bail!(StateProblem::HandshakeAlreadyFinished),
[INFO] [stdout]     |                                                  --------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:350:50
[INFO] [stdout]     |
[INFO] [stdout] 350 |             _                                 => bail!(StateProblem::HandshakeAlreadyFinished),
[INFO] [stdout]     |                                                  --------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:379:21
[INFO] [stdout]     |
[INFO] [stdout] 379 |                     bail!(StateProblem::HandshakeNotFinished)
[INFO] [stdout]     |                     ----------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/session.rs:414:21
[INFO] [stdout]     |
[INFO] [stdout] 414 |                     bail!(StateProblem::HandshakeNotFinished)
[INFO] [stdout]     |                     ----------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/error.rs:13:32
[INFO] [stdout]    |
[INFO] [stdout] 13 |           return Err(($e).into());
[INFO] [stdout]    |                                  ^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/params/patterns.rs:84:1
[INFO] [stdout]    |
[INFO] [stdout] 84 | / pattern_enum! {
[INFO] [stdout] 85 | |     HandshakePattern {
[INFO] [stdout] 86 | |         // 7.4. One-way handshake patterns
[INFO] [stdout] 87 | |         N, X, K,
[INFO] [stdout] ...  |
[INFO] [stdout] 95 | |     }
[INFO] [stdout] 96 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `bail` which comes from the expansion of the macro `pattern_enum` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/params/patterns.rs:498:26
[INFO] [stdout]     |
[INFO] [stdout] 498 |                     0 => bail!(InitStage::ValidateHsPosition),
[INFO] [stdout]     |                          ------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/error.rs:13:32
[INFO] [stdout]    |
[INFO] [stdout] 13 |         return Err(($e).into());
[INFO] [stdout]    |                                ^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/params/mod.rs:42:24
[INFO] [stdout]    |
[INFO] [stdout] 42 |             _       => bail!(PatternProblem::UnsupportedBaseType)
[INFO] [stdout]    |                        ------------------------------------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/error.rs:13:32
[INFO] [stdout]    |
[INFO] [stdout] 13 |         return Err(($e).into());
[INFO] [stdout]    |                                ^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/params/mod.rs:62:24
[INFO] [stdout]    |
[INFO] [stdout] 62 |             _       => bail!(PatternProblem::UnsupportedDhType)
[INFO] [stdout]    |                        ---------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/error.rs:13:32
[INFO] [stdout]    |
[INFO] [stdout] 13 |         return Err(($e).into());
[INFO] [stdout]    |                                ^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/params/mod.rs:82:29
[INFO] [stdout]    |
[INFO] [stdout] 82 |             _            => bail!(PatternProblem::UnsupportedCipherType)
[INFO] [stdout]    |                             -------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/error.rs:13:32
[INFO] [stdout]     |
[INFO] [stdout] 13  |         return Err(($e).into());
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/params/mod.rs:106:26
[INFO] [stdout]     |
[INFO] [stdout] 106 |             _         => bail!(PatternProblem::UnsupportedHashType)
[INFO] [stdout]     |                          ------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/cipherstate.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 |     cipher : Box<Cipher>,
[INFO] [stdout]   |                  ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]   = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 6 |     cipher : Box<dyn Cipher>,
[INFO] [stdout]   |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cipherstate.rs:102:18
[INFO] [stdout]     |
[INFO] [stdout] 102 |     cipher : Box<Cipher>,
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 102 |     cipher : Box<dyn Cipher>,
[INFO] [stdout]     |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/handshakestate.rs:19:39
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub(crate) rng              : Box<Random>,
[INFO] [stdout]    |                                       ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub(crate) rng              : Box<dyn Random>,
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/handshakestate.rs:22:46
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub(crate) s                : Toggle<Box<Dh>>,
[INFO] [stdout]    |                                              ^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub(crate) s                : Toggle<Box<dyn Dh>>,
[INFO] [stdout]    |                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/handshakestate.rs:23:46
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub(crate) e                : Toggle<Box<Dh>>,
[INFO] [stdout]    |                                              ^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub(crate) e                : Toggle<Box<dyn Dh>>,
[INFO] [stdout]    |                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/handshakestate.rs:30:46
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub(crate) obfse            : Option<Box<Obfusc + Send>>,
[INFO] [stdout]    |                                              ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub(crate) obfse            : Option<Box<dyn Obfusc + Send>>,
[INFO] [stdout]    |                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/builder.rs:39:19
[INFO] [stdout]    |
[INFO] [stdout] 39 |     resolver: Box<CryptoResolver>,
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 39 |     resolver: Box<dyn CryptoResolver>,
[INFO] [stdout]    |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:40:20
[INFO] [stdout]    |
[INFO] [stdout] 40 |     preferred: Box<CryptoResolver>,
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 40 |     preferred: Box<dyn CryptoResolver>,
[INFO] [stdout]    |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:41:19
[INFO] [stdout]    |
[INFO] [stdout] 41 |     fallback: Box<CryptoResolver>,
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 41 |     fallback: Box<dyn CryptoResolver>,
[INFO] [stdout]    |                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/cipherstate.rs:12:28
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn new(cipher: Box<Cipher>) -> Self {
[INFO] [stdout]    |                            ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn new(cipher: Box<dyn Cipher>) -> Self {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cipherstate.rs:107:28
[INFO] [stdout]     |
[INFO] [stdout] 107 |     pub fn new(cipher: Box<Cipher>) -> Self {
[INFO] [stdout]     |                            ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 107 |     pub fn new(cipher: Box<dyn Cipher>) -> Self {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/symmetricstate.rs:37:54
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn new(cipherstate: CipherState, hasher: Box<Hash>, enable_ask: bool) -> SymmetricState {
[INFO] [stdout]    |                                                      ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn new(cipherstate: CipherState, hasher: Box<dyn Hash>, enable_ask: bool) -> SymmetricState {
[INFO] [stdout]    |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/handshakestate.rs:40:31
[INFO] [stdout]    |
[INFO] [stdout] 40 |         rng             : Box<Random>,
[INFO] [stdout]    |                               ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 40 |         rng             : Box<dyn Random>,
[INFO] [stdout]    |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/handshakestate.rs:42:31
[INFO] [stdout]    |
[INFO] [stdout] 42 |         hasher          : Box<Hash>,
[INFO] [stdout]    |                               ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 42 |         hasher          : Box<dyn Hash>,
[INFO] [stdout]    |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/handshakestate.rs:43:38
[INFO] [stdout]    |
[INFO] [stdout] 43 |         s               : Toggle<Box<Dh>>,
[INFO] [stdout]    |                                      ^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 43 |         s               : Toggle<Box<dyn Dh>>,
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/handshakestate.rs:44:38
[INFO] [stdout]    |
[INFO] [stdout] 44 |         e               : Toggle<Box<Dh>>,
[INFO] [stdout]    |                                      ^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 |         e               : Toggle<Box<dyn Dh>>,
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/handshakestate.rs:52:38
[INFO] [stdout]    |
[INFO] [stdout] 52 |         obfse           : Option<Box<Obfusc + Send>>,
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 52 |         obfse           : Option<Box<dyn Obfusc + Send>>,
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/builder.rs:75:61
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub fn with_resolver(params: NoiseParams, resolver: Box<CryptoResolver>) -> Self {
[INFO] [stdout]    |                                                             ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub fn with_resolver(params: NoiseParams, resolver: Box<dyn CryptoResolver>) -> Self {
[INFO] [stdout]    |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/types.rs:24:38
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn generate(&mut self, rng: &mut Random);
[INFO] [stdout]    |                                      ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn generate(&mut self, rng: &mut dyn Random);
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:21:41
[INFO] [stdout]    |
[INFO] [stdout] 21 |     fn resolve_rng(&self) -> Option<Box<Random>>;
[INFO] [stdout]    |                                         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 21 |     fn resolve_rng(&self) -> Option<Box<dyn Random>>;
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:24:59
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn resolve_dh(&self, choice: &DHChoice) -> Option<Box<Dh>>;
[INFO] [stdout]    |                                                           ^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn resolve_dh(&self, choice: &DHChoice) -> Option<Box<dyn Dh>>;
[INFO] [stdout]    |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:27:63
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn resolve_hash(&self, choice: &HashChoice) -> Option<Box<Hash>>;
[INFO] [stdout]    |                                                               ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn resolve_hash(&self, choice: &HashChoice) -> Option<Box<dyn Hash>>;
[INFO] [stdout]    |                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:30:67
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn resolve_cipher(&self, choice: &CipherChoice) -> Option<Box<Cipher>>;
[INFO] [stdout]    |                                                                   ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn resolve_cipher(&self, choice: &CipherChoice) -> Option<Box<dyn Cipher>>;
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:33:67
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn resolve_obfusc(&self, choice: &ObfuscChoice) -> Option<Box<Obfusc + Send>>;
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn resolve_obfusc(&self, choice: &ObfuscChoice) -> Option<Box<dyn Obfusc + Send>>;
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:46:31
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn new(preferred: Box<CryptoResolver>, fallback: Box<CryptoResolver>) -> Self {
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn new(preferred: Box<dyn CryptoResolver>, fallback: Box<CryptoResolver>) -> Self {
[INFO] [stdout]    |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:46:62
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn new(preferred: Box<CryptoResolver>, fallback: Box<CryptoResolver>) -> Self {
[INFO] [stdout]    |                                                              ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn new(preferred: Box<CryptoResolver>, fallback: Box<dyn CryptoResolver>) -> Self {
[INFO] [stdout]    |                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:52:41
[INFO] [stdout]    |
[INFO] [stdout] 52 |     fn resolve_rng(&self) -> Option<Box<Random>> {
[INFO] [stdout]    |                                         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 52 |     fn resolve_rng(&self) -> Option<Box<dyn Random>> {
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:56:59
[INFO] [stdout]    |
[INFO] [stdout] 56 |     fn resolve_dh(&self, choice: &DHChoice) -> Option<Box<Dh>> {
[INFO] [stdout]    |                                                           ^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 56 |     fn resolve_dh(&self, choice: &DHChoice) -> Option<Box<dyn Dh>> {
[INFO] [stdout]    |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:60:63
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn resolve_hash(&self, choice: &HashChoice) -> Option<Box<Hash>> {
[INFO] [stdout]    |                                                               ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn resolve_hash(&self, choice: &HashChoice) -> Option<Box<dyn Hash>> {
[INFO] [stdout]    |                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:64:67
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn resolve_cipher(&self, choice: &CipherChoice) -> Option<Box<Cipher>> {
[INFO] [stdout]    |                                                                   ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn resolve_cipher(&self, choice: &CipherChoice) -> Option<Box<dyn Cipher>> {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/mod.rs:68:67
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn resolve_obfusc(&self, choice: &ObfuscChoice) -> Option<Box<Obfusc + Send>> {
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn resolve_obfusc(&self, choice: &ObfuscChoice) -> Option<Box<dyn Obfusc + Send>> {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/default.rs:34:41
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn resolve_rng(&self) -> Option<Box<Random>> {
[INFO] [stdout]    |                                         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn resolve_rng(&self) -> Option<Box<dyn Random>> {
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/default.rs:41:59
[INFO] [stdout]    |
[INFO] [stdout] 41 |     fn resolve_dh(&self, choice: &DHChoice) -> Option<Box<Dh>> {
[INFO] [stdout]    |                                                           ^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 41 |     fn resolve_dh(&self, choice: &DHChoice) -> Option<Box<dyn Dh>> {
[INFO] [stdout]    |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/default.rs:48:63
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn resolve_hash(&self, choice: &HashChoice) -> Option<Box<Hash>> {
[INFO] [stdout]    |                                                               ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn resolve_hash(&self, choice: &HashChoice) -> Option<Box<dyn Hash>> {
[INFO] [stdout]    |                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/default.rs:57:67
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn resolve_cipher(&self, choice: &CipherChoice) -> Option<Box<Cipher>> {
[INFO] [stdout]    |                                                                   ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 57 |     fn resolve_cipher(&self, choice: &CipherChoice) -> Option<Box<dyn Cipher>> {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/resolvers/default.rs:64:67
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn resolve_obfusc(&self, choice: &ObfuscChoice) -> Option<Box<Obfusc + Send>> {
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn resolve_obfusc(&self, choice: &ObfuscChoice) -> Option<Box<dyn Obfusc + Send>> {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/resolvers/default.rs:138:38
[INFO] [stdout]     |
[INFO] [stdout] 138 |     fn generate(&mut self, rng: &mut Random) {
[INFO] [stdout]     |                                      ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 138 |     fn generate(&mut self, rng: &mut dyn Random) {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 5 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 71 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 13.06s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: criterion v0.2.11, i2p_snow v0.5.1 (/opt/rustwide/workdir), rustc-serialize v0.3.24
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
[INFO] running `Command { std: "docker" "inspect" "11863c99ebf418cc7d32ba094b6c654597c64810104e615cd33d257ef086f434", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "11863c99ebf418cc7d32ba094b6c654597c64810104e615cd33d257ef086f434", kill_on_drop: false }`
[INFO] [stdout] 11863c99ebf418cc7d32ba094b6c654597c64810104e615cd33d257ef086f434
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--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:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+1.69.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 7d8527f00666688d72040e6aa513e4fe803bd415f927a63e234be3483b49429a
[INFO] running `Command { std: "docker" "start" "-a" "7d8527f00666688d72040e6aa513e4fe803bd415f927a63e234be3483b49429a", kill_on_drop: false }`
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]    --> src/error.rs:13:32
[INFO] [stderr]     |
[INFO] [stderr] 13  |         return Err(($e).into());
[INFO] [stderr]     |                                ^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/symmetricstate.rs:189:13
[INFO] [stderr]     |
[INFO] [stderr] 189 |             bail!(StateProblem::ASKMasterKeyNotReady)
[INFO] [stderr]     |             ----------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stderr]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stderr]     = note: `#[warn(semicolon_in_expressions_from_macros)]` on by default
[INFO] [stderr]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]    --> src/error.rs:13:32
[INFO] [stderr]     |
[INFO] [stderr] 13  |         return Err(($e).into());
[INFO] [stderr]     |                                ^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/symmetricstate.rs:211:31
[INFO] [stderr]     |
[INFO] [stderr] 211 |                 Some(None) => bail!(StateProblem::ASKChainFinalized),
[INFO] [stderr]     |                               -------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]    --> src/error.rs:13:32
[INFO] [stderr]     |
[INFO] [stderr] 13  |         return Err(($e).into());
[INFO] [stderr]     |                                ^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/symmetricstate.rs:212:25
[INFO] [stderr]     |
[INFO] [stderr] 212 |                 None => bail!(SnowError::Input),
[INFO] [stderr]     |                         ----------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]    --> src/error.rs:13:32
[INFO] [stderr]     |
[INFO] [stderr] 13  |         return Err(($e).into());
[INFO] [stderr]     |                                ^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/symmetricstate.rs:215:13
[INFO] [stderr]     |
[INFO] [stderr] 215 |             bail!(StateProblem::ASKNotInitialized)
[INFO] [stderr]     |             -------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stderr]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stderr]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]    --> src/error.rs:13:32
[INFO] [stderr]     |
[INFO] [stderr] 13  |         return Err(($e).into());
[INFO] [stderr]     |                                ^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/symmetricstate.rs:237:29
[INFO] [stderr]     |
[INFO] [stderr] 237 |                     None => bail!(StateProblem::ASKChainFinalized),
[INFO] [stderr]     |                             -------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]    --> src/error.rs:13:32
[INFO] [stderr]     |
[INFO] [stderr] 13  |         return Err(($e).into());
[INFO] [stderr]     |                                ^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/symmetricstate.rs:242:17
[INFO] [stderr]     |
[INFO] [stderr] 242 |                 bail!(SnowError::Input)
[INFO] [stderr]     |                 ----------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stderr]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stderr]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]    --> src/error.rs:13:32
[INFO] [stderr]     |
[INFO] [stderr] 13  |         return Err(($e).into());
[INFO] [stderr]     |                                ^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/symmetricstate.rs:245:13
[INFO] [stderr]     |
[INFO] [stderr] 245 |             bail!(StateProblem::ASKNotInitialized)
[INFO] [stderr]     |             -------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stderr]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stderr]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]    --> src/error.rs:13:32
[INFO] [stderr]     |
[INFO] [stderr] 13  |         return Err(($e).into());
[INFO] [stderr]     |                                ^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/handshakestate.rs:182:25
[INFO] [stderr]     |
[INFO] [stderr] 182 |                         bail!(SnowError::Input)
[INFO] [stderr]     |                         ----------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stderr]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stderr]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]    --> src/error.rs:13:32
[INFO] [stderr]     |
[INFO] [stderr] 13  |         return Err(($e).into());
[INFO] [stderr]     |                                ^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/handshakestate.rs:207:25
[INFO] [stderr]     |
[INFO] [stderr] 207 |                         bail!(SnowError::Input)
[INFO] [stderr]     |                         ----------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stderr]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stderr]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]   --> src/error.rs:13:32
[INFO] [stderr]    |
[INFO] [stderr] 13 |         return Err(($e).into());
[INFO] [stderr]    |                                ^
[INFO] [stderr]    |
[INFO] [stderr]   ::: src/session.rs:97:50
[INFO] [stderr]    |
[INFO] [stderr] 97 |             Session::StatelessTransport(_)    => bail!(StateProblem::StatelessTransportMode),
[INFO] [stderr]    |                                                  ------------------------------------------- in this macro invocation
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]    = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]    --> src/error.rs:13:32
[INFO] [stderr]     |
[INFO] [stderr] 13  |         return Err(($e).into());
[INFO] [stderr]     |                                ^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/session.rs:116:55
[INFO] [stderr]     |
[INFO] [stderr] 116 |             _                                      => bail!(StateProblem::StatelessTransportMode),
[INFO] [stderr]     |                                                       ------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]    --> src/error.rs:13:32
[INFO] [stderr]     |
[INFO] [stderr] 13  |         return Err(($e).into());
[INFO] [stderr]     |                                ^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/session.rs:137:50
[INFO] [stderr]     |
[INFO] [stderr] 137 |             Session::StatelessTransport(_)    => bail!(StateProblem::StatelessTransportMode),
[INFO] [stderr]     |                                                  ------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]    --> src/error.rs:13:32
[INFO] [stderr]     |
[INFO] [stderr] 13  |         return Err(($e).into());
[INFO] [stderr]     |                                ^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/session.rs:156:55
[INFO] [stderr]     |
[INFO] [stderr] 156 |             _                                      => bail!(StateProblem::StatelessTransportMode),
[INFO] [stderr]     |                                                       ------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]    --> src/error.rs:13:32
[INFO] [stderr]     |
[INFO] [stderr] 13  |         return Err(($e).into());
[INFO] [stderr]     |                                ^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/session.rs:171:38
[INFO] [stderr]     |
[INFO] [stderr] 171 |             Session::Handshake(_) => bail!(StateProblem::HandshakeNotFinished),
[INFO] [stderr]     |                                      ----------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]    --> src/error.rs:13:32
[INFO] [stderr]     |
[INFO] [stderr] 13  |         return Err(($e).into());
[INFO] [stderr]     |                                ^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/session.rs:194:38
[INFO] [stderr]     |
[INFO] [stderr] 194 |             Session::Handshake(_) => bail!(StateProblem::HandshakeNotFinished),
[INFO] [stderr]     |                                      ----------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]    --> src/error.rs:13:32
[INFO] [stderr]     |
[INFO] [stderr] 13  |         return Err(($e).into());
[INFO] [stderr]     |                                ^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/session.rs:214:38
[INFO] [stderr]     |
[INFO] [stderr] 214 |             Session::Handshake(_) => bail!(StateProblem::HandshakeNotFinished),
[INFO] [stderr]     |                                      ----------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]    --> src/error.rs:13:32
[INFO] [stderr]     |
[INFO] [stderr] 13  |         return Err(($e).into());
[INFO] [stderr]     |                                ^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/session.rs:243:47
[INFO] [stderr]     |
[INFO] [stderr] 243 |             Session::Handshake(_)          => bail!(StateProblem::HandshakeNotFinished),
[INFO] [stderr]     |                                               ----------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]    --> src/error.rs:13:32
[INFO] [stderr]     |
[INFO] [stderr] 13  |         return Err(($e).into());
[INFO] [stderr]     |                                ^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/session.rs:245:47
[INFO] [stderr]     |
[INFO] [stderr] 245 |             Session::StatelessTransport(_) => bail!(StateProblem::StatelessTransportMode),
[INFO] [stderr]     |                                               ------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]    --> src/error.rs:13:32
[INFO] [stderr]     |
[INFO] [stderr] 13  |         return Err(($e).into());
[INFO] [stderr]     |                                ^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/session.rs:256:47
[INFO] [stderr]     |
[INFO] [stderr] 256 |             Session::Handshake(_)          => bail!(StateProblem::HandshakeNotFinished),
[INFO] [stderr]     |                                               ----------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]    --> src/error.rs:13:32
[INFO] [stderr]     |
[INFO] [stderr] 13  |         return Err(($e).into());
[INFO] [stderr]     |                                ^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/session.rs:258:47
[INFO] [stderr]     |
[INFO] [stderr] 258 |             Session::StatelessTransport(_) => bail!(StateProblem::StatelessTransportMode),
[INFO] [stderr]     |                                               ------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]    --> src/error.rs:13:32
[INFO] [stderr]     |
[INFO] [stderr] 13  |         return Err(($e).into());
[INFO] [stderr]     |                                ^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/session.rs:279:46
[INFO] [stderr]     |
[INFO] [stderr] 279 |             _                             => bail!(StateProblem::HandshakeAlreadyFinished),
[INFO] [stderr]     |                                              --------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]    --> src/error.rs:13:32
[INFO] [stderr]     |
[INFO] [stderr] 13  |         return Err(($e).into());
[INFO] [stderr]     |                                ^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/session.rs:295:50
[INFO] [stderr]     |
[INFO] [stderr] 295 |             _                                 => bail!(StateProblem::HandshakeAlreadyFinished)
[INFO] [stderr]     |                                                  --------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]    --> src/error.rs:13:32
[INFO] [stderr]     |
[INFO] [stderr] 13  |         return Err(($e).into());
[INFO] [stderr]     |                                ^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/session.rs:310:50
[INFO] [stderr]     |
[INFO] [stderr] 310 |             _                                 => bail!(StateProblem::HandshakeAlreadyFinished),
[INFO] [stderr]     |                                                  --------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]    --> src/error.rs:13:32
[INFO] [stderr]     |
[INFO] [stderr] 13  |         return Err(($e).into());
[INFO] [stderr]     |                                ^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/session.rs:322:50
[INFO] [stderr]     |
[INFO] [stderr] 322 |             _                                 => bail!(StateProblem::HandshakeAlreadyFinished),
[INFO] [stderr]     |                                                  --------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]    --> src/error.rs:13:32
[INFO] [stderr]     |
[INFO] [stderr] 13  |         return Err(($e).into());
[INFO] [stderr]     |                                ^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/session.rs:336:50
[INFO] [stderr]     |
[INFO] [stderr] 336 |             _                                 => bail!(StateProblem::HandshakeAlreadyFinished),
[INFO] [stderr]     |                                                  --------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]    --> src/error.rs:13:32
[INFO] [stderr]     |
[INFO] [stderr] 13  |         return Err(($e).into());
[INFO] [stderr]     |                                ^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/session.rs:350:50
[INFO] [stderr]     |
[INFO] [stderr] 350 |             _                                 => bail!(StateProblem::HandshakeAlreadyFinished),
[INFO] [stderr]     |                                                  --------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]    --> src/error.rs:13:32
[INFO] [stderr]     |
[INFO] [stderr] 13  |         return Err(($e).into());
[INFO] [stderr]     |                                ^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/session.rs:379:21
[INFO] [stderr]     |
[INFO] [stderr] 379 |                     bail!(StateProblem::HandshakeNotFinished)
[INFO] [stderr]     |                     ----------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stderr]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stderr]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]    --> src/error.rs:13:32
[INFO] [stderr]     |
[INFO] [stderr] 13  |         return Err(($e).into());
[INFO] [stderr]     |                                ^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/session.rs:414:21
[INFO] [stderr]     |
[INFO] [stderr] 414 |                     bail!(StateProblem::HandshakeNotFinished)
[INFO] [stderr]     |                     ----------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stderr]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stderr]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]   --> src/error.rs:13:32
[INFO] [stderr]    |
[INFO] [stderr] 13 |           return Err(($e).into());
[INFO] [stderr]    |                                  ^
[INFO] [stderr]    |
[INFO] [stderr]   ::: src/params/patterns.rs:84:1
[INFO] [stderr]    |
[INFO] [stderr] 84 | / pattern_enum! {
[INFO] [stderr] 85 | |     HandshakePattern {
[INFO] [stderr] 86 | |         // 7.4. One-way handshake patterns
[INFO] [stderr] 87 | |         N, X, K,
[INFO] [stderr] ...  |
[INFO] [stderr] 95 | |     }
[INFO] [stderr] 96 | | }
[INFO] [stderr]    | |_- in this macro invocation
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]    = note: this warning originates in the macro `bail` which comes from the expansion of the macro `pattern_enum` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]    --> src/error.rs:13:32
[INFO] [stderr]     |
[INFO] [stderr] 13  |         return Err(($e).into());
[INFO] [stderr]     |                                ^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/params/patterns.rs:498:26
[INFO] [stderr]     |
[INFO] [stderr] 498 |                     0 => bail!(InitStage::ValidateHsPosition),
[INFO] [stderr]     |                          ------------------------------------ in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]   --> src/error.rs:13:32
[INFO] [stderr]    |
[INFO] [stderr] 13 |         return Err(($e).into());
[INFO] [stderr]    |                                ^
[INFO] [stderr]    |
[INFO] [stderr]   ::: src/params/mod.rs:42:24
[INFO] [stderr]    |
[INFO] [stderr] 42 |             _       => bail!(PatternProblem::UnsupportedBaseType)
[INFO] [stderr]    |                        ------------------------------------------ in this macro invocation
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]    = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]   --> src/error.rs:13:32
[INFO] [stderr]    |
[INFO] [stderr] 13 |         return Err(($e).into());
[INFO] [stderr]    |                                ^
[INFO] [stderr]    |
[INFO] [stderr]   ::: src/params/mod.rs:62:24
[INFO] [stderr]    |
[INFO] [stderr] 62 |             _       => bail!(PatternProblem::UnsupportedDhType)
[INFO] [stderr]    |                        ---------------------------------------- in this macro invocation
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]    = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]   --> src/error.rs:13:32
[INFO] [stderr]    |
[INFO] [stderr] 13 |         return Err(($e).into());
[INFO] [stderr]    |                                ^
[INFO] [stderr]    |
[INFO] [stderr]   ::: src/params/mod.rs:82:29
[INFO] [stderr]    |
[INFO] [stderr] 82 |             _            => bail!(PatternProblem::UnsupportedCipherType)
[INFO] [stderr]    |                             -------------------------------------------- in this macro invocation
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]    = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]    --> src/error.rs:13:32
[INFO] [stderr]     |
[INFO] [stderr] 13  |         return Err(($e).into());
[INFO] [stderr]     |                                ^
[INFO] [stderr]     |
[INFO] [stderr]    ::: src/params/mod.rs:106:26
[INFO] [stderr]     |
[INFO] [stderr] 106 |             _         => bail!(PatternProblem::UnsupportedHashType)
[INFO] [stderr]     |                          ------------------------------------------ in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]     = note: this warning originates in the macro `bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/cipherstate.rs:6:18
[INFO] [stderr]   |
[INFO] [stderr] 6 |     cipher : Box<Cipher>,
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]   = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]   |
[INFO] [stderr] 6 |     cipher : Box<dyn Cipher>,
[INFO] [stderr]   |                  +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/cipherstate.rs:102:18
[INFO] [stderr]     |
[INFO] [stderr] 102 |     cipher : Box<Cipher>,
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 102 |     cipher : Box<dyn Cipher>,
[INFO] [stderr]     |                  +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/handshakestate.rs:19:39
[INFO] [stderr]    |
[INFO] [stderr] 19 |     pub(crate) rng              : Box<Random>,
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 19 |     pub(crate) rng              : Box<dyn Random>,
[INFO] [stderr]    |                                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/handshakestate.rs:22:46
[INFO] [stderr]    |
[INFO] [stderr] 22 |     pub(crate) s                : Toggle<Box<Dh>>,
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 22 |     pub(crate) s                : Toggle<Box<dyn Dh>>,
[INFO] [stderr]    |                                              +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/handshakestate.rs:23:46
[INFO] [stderr]    |
[INFO] [stderr] 23 |     pub(crate) e                : Toggle<Box<Dh>>,
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 23 |     pub(crate) e                : Toggle<Box<dyn Dh>>,
[INFO] [stderr]    |                                              +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/handshakestate.rs:30:46
[INFO] [stderr]    |
[INFO] [stderr] 30 |     pub(crate) obfse            : Option<Box<Obfusc + Send>>,
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 30 |     pub(crate) obfse            : Option<Box<dyn Obfusc + Send>>,
[INFO] [stderr]    |                                              +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/builder.rs:39:19
[INFO] [stderr]    |
[INFO] [stderr] 39 |     resolver: Box<CryptoResolver>,
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 39 |     resolver: Box<dyn CryptoResolver>,
[INFO] [stderr]    |                   +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/resolvers/mod.rs:40:20
[INFO] [stderr]    |
[INFO] [stderr] 40 |     preferred: Box<CryptoResolver>,
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 40 |     preferred: Box<dyn CryptoResolver>,
[INFO] [stderr]    |                    +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/resolvers/mod.rs:41:19
[INFO] [stderr]    |
[INFO] [stderr] 41 |     fallback: Box<CryptoResolver>,
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 41 |     fallback: Box<dyn CryptoResolver>,
[INFO] [stderr]    |                   +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/cipherstate.rs:12:28
[INFO] [stderr]    |
[INFO] [stderr] 12 |     pub fn new(cipher: Box<Cipher>) -> Self {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 12 |     pub fn new(cipher: Box<dyn Cipher>) -> Self {
[INFO] [stderr]    |                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/cipherstate.rs:107:28
[INFO] [stderr]     |
[INFO] [stderr] 107 |     pub fn new(cipher: Box<Cipher>) -> Self {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 107 |     pub fn new(cipher: Box<dyn Cipher>) -> Self {
[INFO] [stderr]     |                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/symmetricstate.rs:37:54
[INFO] [stderr]    |
[INFO] [stderr] 37 |     pub fn new(cipherstate: CipherState, hasher: Box<Hash>, enable_ask: bool) -> SymmetricState {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 37 |     pub fn new(cipherstate: CipherState, hasher: Box<dyn Hash>, enable_ask: bool) -> SymmetricState {
[INFO] [stderr]    |                                                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/handshakestate.rs:40:31
[INFO] [stderr]    |
[INFO] [stderr] 40 |         rng             : Box<Random>,
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 40 |         rng             : Box<dyn Random>,
[INFO] [stderr]    |                               +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/handshakestate.rs:42:31
[INFO] [stderr]    |
[INFO] [stderr] 42 |         hasher          : Box<Hash>,
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 42 |         hasher          : Box<dyn Hash>,
[INFO] [stderr]    |                               +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/handshakestate.rs:43:38
[INFO] [stderr]    |
[INFO] [stderr] 43 |         s               : Toggle<Box<Dh>>,
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 43 |         s               : Toggle<Box<dyn Dh>>,
[INFO] [stderr]    |                                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/handshakestate.rs:44:38
[INFO] [stderr]    |
[INFO] [stderr] 44 |         e               : Toggle<Box<Dh>>,
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 44 |         e               : Toggle<Box<dyn Dh>>,
[INFO] [stderr]    |                                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/handshakestate.rs:52:38
[INFO] [stderr]    |
[INFO] [stderr] 52 |         obfse           : Option<Box<Obfusc + Send>>,
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 52 |         obfse           : Option<Box<dyn Obfusc + Send>>,
[INFO] [stderr]    |                                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/builder.rs:75:61
[INFO] [stderr]    |
[INFO] [stderr] 75 |     pub fn with_resolver(params: NoiseParams, resolver: Box<CryptoResolver>) -> Self {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 75 |     pub fn with_resolver(params: NoiseParams, resolver: Box<dyn CryptoResolver>) -> Self {
[INFO] [stderr]    |                                                             +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/types.rs:24:38
[INFO] [stderr]    |
[INFO] [stderr] 24 |     fn generate(&mut self, rng: &mut Random);
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 24 |     fn generate(&mut self, rng: &mut dyn Random);
[INFO] [stderr]    |                                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/resolvers/mod.rs:21:41
[INFO] [stderr]    |
[INFO] [stderr] 21 |     fn resolve_rng(&self) -> Option<Box<Random>>;
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 21 |     fn resolve_rng(&self) -> Option<Box<dyn Random>>;
[INFO] [stderr]    |                                         +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/resolvers/mod.rs:24:59
[INFO] [stderr]    |
[INFO] [stderr] 24 |     fn resolve_dh(&self, choice: &DHChoice) -> Option<Box<Dh>>;
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 24 |     fn resolve_dh(&self, choice: &DHChoice) -> Option<Box<dyn Dh>>;
[INFO] [stderr]    |                                                           +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/resolvers/mod.rs:27:63
[INFO] [stderr]    |
[INFO] [stderr] 27 |     fn resolve_hash(&self, choice: &HashChoice) -> Option<Box<Hash>>;
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 27 |     fn resolve_hash(&self, choice: &HashChoice) -> Option<Box<dyn Hash>>;
[INFO] [stderr]    |                                                               +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/resolvers/mod.rs:30:67
[INFO] [stderr]    |
[INFO] [stderr] 30 |     fn resolve_cipher(&self, choice: &CipherChoice) -> Option<Box<Cipher>>;
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 30 |     fn resolve_cipher(&self, choice: &CipherChoice) -> Option<Box<dyn Cipher>>;
[INFO] [stderr]    |                                                                   +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/resolvers/mod.rs:33:67
[INFO] [stderr]    |
[INFO] [stderr] 33 |     fn resolve_obfusc(&self, choice: &ObfuscChoice) -> Option<Box<Obfusc + Send>>;
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 33 |     fn resolve_obfusc(&self, choice: &ObfuscChoice) -> Option<Box<dyn Obfusc + Send>>;
[INFO] [stderr]    |                                                                   +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/resolvers/mod.rs:46:31
[INFO] [stderr]    |
[INFO] [stderr] 46 |     pub fn new(preferred: Box<CryptoResolver>, fallback: Box<CryptoResolver>) -> Self {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 46 |     pub fn new(preferred: Box<dyn CryptoResolver>, fallback: Box<CryptoResolver>) -> Self {
[INFO] [stderr]    |                               +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/resolvers/mod.rs:46:62
[INFO] [stderr]    |
[INFO] [stderr] 46 |     pub fn new(preferred: Box<CryptoResolver>, fallback: Box<CryptoResolver>) -> Self {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 46 |     pub fn new(preferred: Box<CryptoResolver>, fallback: Box<dyn CryptoResolver>) -> Self {
[INFO] [stderr]    |                                                              +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/resolvers/mod.rs:52:41
[INFO] [stderr]    |
[INFO] [stderr] 52 |     fn resolve_rng(&self) -> Option<Box<Random>> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 52 |     fn resolve_rng(&self) -> Option<Box<dyn Random>> {
[INFO] [stderr]    |                                         +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/resolvers/mod.rs:56:59
[INFO] [stderr]    |
[INFO] [stderr] 56 |     fn resolve_dh(&self, choice: &DHChoice) -> Option<Box<Dh>> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 56 |     fn resolve_dh(&self, choice: &DHChoice) -> Option<Box<dyn Dh>> {
[INFO] [stderr]    |                                                           +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/resolvers/mod.rs:60:63
[INFO] [stderr]    |
[INFO] [stderr] 60 |     fn resolve_hash(&self, choice: &HashChoice) -> Option<Box<Hash>> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 60 |     fn resolve_hash(&self, choice: &HashChoice) -> Option<Box<dyn Hash>> {
[INFO] [stderr]    |                                                               +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/resolvers/mod.rs:64:67
[INFO] [stderr]    |
[INFO] [stderr] 64 |     fn resolve_cipher(&self, choice: &CipherChoice) -> Option<Box<Cipher>> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 64 |     fn resolve_cipher(&self, choice: &CipherChoice) -> Option<Box<dyn Cipher>> {
[INFO] [stderr]    |                                                                   +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/resolvers/mod.rs:68:67
[INFO] [stderr]    |
[INFO] [stderr] 68 |     fn resolve_obfusc(&self, choice: &ObfuscChoice) -> Option<Box<Obfusc + Send>> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 68 |     fn resolve_obfusc(&self, choice: &ObfuscChoice) -> Option<Box<dyn Obfusc + Send>> {
[INFO] [stderr]    |                                                                   +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/resolvers/default.rs:34:41
[INFO] [stderr]    |
[INFO] [stderr] 34 |     fn resolve_rng(&self) -> Option<Box<Random>> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 34 |     fn resolve_rng(&self) -> Option<Box<dyn Random>> {
[INFO] [stderr]    |                                         +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/resolvers/default.rs:41:59
[INFO] [stderr]    |
[INFO] [stderr] 41 |     fn resolve_dh(&self, choice: &DHChoice) -> Option<Box<Dh>> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 41 |     fn resolve_dh(&self, choice: &DHChoice) -> Option<Box<dyn Dh>> {
[INFO] [stderr]    |                                                           +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/resolvers/default.rs:48:63
[INFO] [stderr]    |
[INFO] [stderr] 48 |     fn resolve_hash(&self, choice: &HashChoice) -> Option<Box<Hash>> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 48 |     fn resolve_hash(&self, choice: &HashChoice) -> Option<Box<dyn Hash>> {
[INFO] [stderr]    |                                                               +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/resolvers/default.rs:57:67
[INFO] [stderr]    |
[INFO] [stderr] 57 |     fn resolve_cipher(&self, choice: &CipherChoice) -> Option<Box<Cipher>> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 57 |     fn resolve_cipher(&self, choice: &CipherChoice) -> Option<Box<dyn Cipher>> {
[INFO] [stderr]    |                                                                   +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/resolvers/default.rs:64:67
[INFO] [stderr]    |
[INFO] [stderr] 64 |     fn resolve_obfusc(&self, choice: &ObfuscChoice) -> Option<Box<Obfusc + Send>> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 64 |     fn resolve_obfusc(&self, choice: &ObfuscChoice) -> Option<Box<dyn Obfusc + Send>> {
[INFO] [stderr]    |                                                                   +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/resolvers/default.rs:138:38
[INFO] [stderr]     |
[INFO] [stderr] 138 |     fn generate(&mut self, rng: &mut Random) {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 138 |     fn generate(&mut self, rng: &mut dyn Random) {
[INFO] [stderr]     |                                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: `i2p_snow` (lib) generated 71 warnings (run `cargo fix --lib -p i2p_snow` to apply 37 suggestions)
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> tests/general.rs:67:41
[INFO] [stderr]    |
[INFO] [stderr] 67 |     fn resolve_rng(&self) -> Option<Box<Random>> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 67 |     fn resolve_rng(&self) -> Option<Box<dyn Random>> {
[INFO] [stderr]    |                                         +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> tests/general.rs:72:59
[INFO] [stderr]    |
[INFO] [stderr] 72 |     fn resolve_dh(&self, choice: &DHChoice) -> Option<Box<Dh>> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 72 |     fn resolve_dh(&self, choice: &DHChoice) -> Option<Box<dyn Dh>> {
[INFO] [stderr]    |                                                           +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> tests/general.rs:76:63
[INFO] [stderr]    |
[INFO] [stderr] 76 |     fn resolve_hash(&self, choice: &HashChoice) -> Option<Box<Hash>> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 76 |     fn resolve_hash(&self, choice: &HashChoice) -> Option<Box<dyn Hash>> {
[INFO] [stderr]    |                                                               +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> tests/general.rs:80:67
[INFO] [stderr]    |
[INFO] [stderr] 80 |     fn resolve_cipher(&self, choice: &CipherChoice) -> Option<Box<Cipher>> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 80 |     fn resolve_cipher(&self, choice: &CipherChoice) -> Option<Box<dyn Cipher>> {
[INFO] [stderr]    |                                                                   +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> tests/general.rs:84:67
[INFO] [stderr]    |
[INFO] [stderr] 84 |     fn resolve_obfusc(&self, choice: &ObfuscChoice) -> Option<Box<Obfusc + Send>> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 84 |     fn resolve_obfusc(&self, choice: &ObfuscChoice) -> Option<Box<dyn Obfusc + Send>> {
[INFO] [stderr]    |                                                                   +++
[INFO] [stderr] 
[INFO] [stderr] warning: `i2p_snow` (lib test) generated 71 warnings (71 duplicates)
[INFO] [stderr] warning: `i2p_snow` (test "general") generated 5 warnings (run `cargo fix --test "general"` to apply 5 suggestions)
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.07s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: criterion v0.2.11, i2p_snow v0.5.1 (/opt/rustwide/workdir), rustc-serialize v0.3.24
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/i2p_snow-3d960283922f1f5e)
[INFO] [stdout] 
[INFO] [stdout] running 24 tests
[INFO] [stdout] test builder::tests::test_builder_bad_spec ... ok
[INFO] [stdout] test builder::tests::test_builder_missing_prereqs ... ok
[INFO] [stdout] test params::tests::test_aesobfse_mod ... ok
[INFO] [stdout] test params::tests::test_basic ... ok
[INFO] [stdout] test params::tests::test_basic_deferred ... ok
[INFO] [stdout] test params::tests::test_fallback_mod ... ok
[INFO] [stdout] test params::tests::test_modified_multi_psk_handshake ... ok
[INFO] [stdout] test params::tests::test_modified_psk_handshake ... ok
[INFO] [stdout] test params::tests::test_multi_psk_mod ... ok
[INFO] [stdout] test builder::tests::test_builder ... ok
[INFO] [stdout] test params::tests::test_simple_handshake ... ok
[INFO] [stdout] test params::tests::test_psk_fallback_mod ... ok
[INFO] [stdout] test params::tests::test_single_psk_mod ... ok
[INFO] [stdout] test builder::tests::test_builder_keygen ... ok
[INFO] [stdout] test resolvers::default::tests::test_chachapoly_empty ... ok
[INFO] [stdout] test resolvers::default::tests::test_chachapoly_nonempty ... ok
[INFO] [stdout] test resolvers::default::tests::test_hmac_sha256_sha512 ... ok
[INFO] [stdout] test resolvers::default::tests::test_poly1305 ... ok
[INFO] [stdout] test resolvers::default::tests::test_aes256_gcm ... ok
[INFO] [stdout] test resolvers::default::tests::test_chachapoly_known_answer ... ok
[INFO] [stdout] test resolvers::default::tests::test_blake2s ... ok
[INFO] [stdout] test resolvers::default::tests::test_sha256 ... ok
[INFO] [stdout] test resolvers::default::tests::test_curve25519 ... ok
[INFO] [stdout] test resolvers::default::tests::test_blake2b ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 24 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/general.rs (/opt/rustwide/target/debug/deps/general-7246a0f09e3e230e)
[INFO] [stdout] 
[INFO] [stdout] running 26 tests
[INFO] [stdout] test test_buffer_issues ... ok
[INFO] [stdout] test test_Npsk0_expected_value ... ok
[INFO] [stdout] test test_handshake_message_undersized_output_buffer ... ok
[INFO] [stdout] test test_protocol_name ... ok
[INFO] [stdout] test test_Xpsk0_expected_value ... ok
[INFO] [stdout] test test_NNpsk0_sanity_session ... ok
[INFO] [stdout] test test_noise_session_transition_change ... ok
[INFO] [stdout] test test_buffer_issues_encrypted_handshake ... ok
[INFO] [stdout] test test_checkpointing ... ok
[INFO] [stdout] test test_XXpsk0_expected_value ... ok
[INFO] [stdout] test test_XXpsk3_sanity_session ... ok
[INFO] [stdout] test test_ask ... ok
[INFO] [stdout] test test_get_remote_static ... ok
[INFO] [stdout] test test_oneway_initiator_enforcements ... ok
[INFO] [stdout] test test_rekey_manually ... ok
[INFO] [stdout] test test_rekey ... ok
[INFO] [stdout] test test_stateless_sanity_session ... ok
[INFO] [stdout] test test_transport_message_exceeds_max_len ... ok
[INFO] [stdout] test test_stateless_seperation ... ok
[INFO] [stdout] test test_sanity_session ... ok
[INFO] [stdout] test test_send_trait ... ok
[INFO] [stdout] test test_oneway_responder_enforcements ... ok
[INFO] [stdout] test test_transport_message_undersized_output_buffer ... ok
[INFO] [stdout] test test_handshake_message_exceeds_max_len ... ok
[INFO] [stdout] test test_read_buffer_issues ... ok
[INFO] [stdout] test test_set_psk ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 26 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/vectors.rs (/opt/rustwide/target/debug/deps/vectors-d9fe1bf21dff30bd)
[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]    Doc-tests i2p_snow
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test src/error.rs - error::bail (line 8) ... ignored
[INFO] [stdout] test src/session.rs - session::Session::into_stateless_transport_mode (line 401) ... ignored
[INFO] [stdout] test src/session.rs - session::Session::into_transport_mode (line 366) ... ignored
[INFO] [stdout] test src/session.rs - session::Session::is_handshake_finished (line 56) ... ignored
[INFO] [stdout] test src/session.rs - session::Session::was_write_payload_encrypted (line 35) ... ignored
[INFO] [stdout] test src/params/mod.rs - params::NoiseParams (line 126) ... ok
[INFO] [stdout] test src/builder.rs - builder::Builder (line 26) ... ok
[INFO] [stdout] test src/lib.rs - (line 12) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 5 ignored; 0 measured; 0 filtered out; finished in 0.67s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "7d8527f00666688d72040e6aa513e4fe803bd415f927a63e234be3483b49429a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7d8527f00666688d72040e6aa513e4fe803bd415f927a63e234be3483b49429a", kill_on_drop: false }`
[INFO] [stdout] 7d8527f00666688d72040e6aa513e4fe803bd415f927a63e234be3483b49429a
