[INFO] cloning repository https://github.com/stratum-mining/stratum
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/stratum-mining/stratum" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fstratum-mining%2Fstratum", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fstratum-mining%2Fstratum'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 31f80744907c6e21f4ae491ca6a0d86797bce8b0
[INFO] checking stratum-mining/stratum against a5689b034ad287112f709693384a37f1377eb9cc for pr-129249-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fstratum-mining%2Fstratum" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-1-tc2/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/stratum-mining/stratum
[INFO] finished tweaking git repo https://github.com/stratum-mining/stratum
[INFO] tweaked toml for git repo https://github.com/stratum-mining/stratum written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/stratum-mining/stratum on toolchain a5689b034ad287112f709693384a37f1377eb9cc
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/stratum-mining/stratum already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
[INFO] [stderr] package:   /workspace/builds/worker-1-tc2/source/sv2/noise-sv2/Cargo.toml
[INFO] [stderr] workspace: /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 0be97374545652b0dfd1fc81717d1a13c51ebbe87cba94a302c7b964e2ced1c7
[INFO] running `Command { std: "docker" "start" "0be97374545652b0dfd1fc81717d1a13c51ebbe87cba94a302c7b964e2ced1c7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0be97374545652b0dfd1fc81717d1a13c51ebbe87cba94a302c7b964e2ced1c7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "0be97374545652b0dfd1fc81717d1a13c51ebbe87cba94a302c7b964e2ced1c7" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0be97374545652b0dfd1fc81717d1a13c51ebbe87cba94a302c7b964e2ced1c7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "0be97374545652b0dfd1fc81717d1a13c51ebbe87cba94a302c7b964e2ced1c7" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
[INFO] [stderr] package:   /opt/rustwide/workdir/sv2/noise-sv2/Cargo.toml
[INFO] [stderr] workspace: /opt/rustwide/workdir/Cargo.toml
[INFO] [stderr]     Checking zeroize v1.8.2
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling zerocopy v0.8.47
[INFO] [stderr]    Compiling derive_codec_sv2 v2.0.0 (/opt/rustwide/workdir/sv2/binary-sv2/derive_codec)
[INFO] [stderr]     Checking memchr v2.8.0
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking inout v0.1.4
[INFO] [stderr]    Compiling cc v1.2.57
[INFO] [stderr]     Checking universal-hash v0.5.1
[INFO] [stderr]     Checking aead v0.5.2
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking polyval v0.6.2
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking ghash v0.5.1
[INFO] [stderr]     Checking regex-syntax v0.8.10
[INFO] [stderr]     Checking aes v0.8.4
[INFO] [stderr]     Checking ctr v0.9.2
[INFO] [stderr]     Checking textwrap v0.11.0
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]     Checking aes-gcm v0.10.3
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]     Checking buffer_sv2 v3.0.1 (/opt/rustwide/workdir/sv2/buffer-sv2)
[INFO] [stdout] warning: use of deprecated method `core::sync::atomic::Atomic::<u8>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]    --> sv2/buffer-sv2/src/slice.rs:374:14
[INFO] [stdout]     |
[INFO] [stdout] 374 |             .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |mut shared_state| {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 374 -             .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |mut shared_state| {
[INFO] [stdout] 374 +             .try_update(Ordering::Relaxed, Ordering::Relaxed, |mut shared_state| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking binary_sv2 v7.0.1 (/opt/rustwide/workdir/sv2/binary-sv2)
[INFO] [stderr]     Checking csv-core v0.1.13
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking half v1.8.3
[INFO] [stderr]     Checking csv v1.4.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking serde_cbor v0.11.2
[INFO] [stderr]     Checking clap v2.34.0
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking plotters v0.3.7
[INFO] [stderr]    Compiling bitcoin-internals v0.2.0
[INFO] [stderr]    Compiling secp256k1-sys v0.9.2
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking criterion-plot v0.4.5
[INFO] [stderr]     Checking hex-conservative v0.1.2
[INFO] [stderr]     Checking chacha20 v0.9.1
[INFO] [stderr]     Checking bitcoin_hashes v0.13.0
[INFO] [stderr]     Checking poly1305 v0.8.0
[INFO] [stderr]     Checking chacha20poly1305 v0.10.1
[INFO] [stderr]     Checking framing_sv2 v8.0.0 (/opt/rustwide/workdir/sv2/framing-sv2)
[INFO] [stderr]    Compiling bitcoin-io v0.1.4
[INFO] [stderr]    Compiling bitcoin-internals v0.3.0
[INFO] [stderr]     Checking hex-conservative v0.2.2
[INFO] [stderr]    Compiling secp256k1-sys v0.10.1
[INFO] [stderr]     Checking digest v0.9.0
[INFO] [stderr]     Checking bitcoin_hashes v0.14.1
[INFO] [stderr]     Checking sha2 v0.9.9
[INFO] [stderr]    Compiling hex_lit v0.1.1
[INFO] [stderr]     Checking bs58 v0.4.0
[INFO] [stderr]    Compiling bitcoin v0.32.8
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking bitcoin-units v0.1.2
[INFO] [stderr]     Checking template_distribution_sv2 v8.0.0 (/opt/rustwide/workdir/sv2/subprotocols/template-distribution)
[INFO] [stderr]     Checking mining_sv2 v13.0.0 (/opt/rustwide/workdir/sv2/subprotocols/mining)
[INFO] [stderr]     Checking base58ck v0.1.0
[INFO] [stderr]     Checking criterion v0.3.6
[INFO] [stderr]     Checking env_logger v0.8.4
[INFO] [stderr]    Compiling crunchy v0.2.4
[INFO] [stderr]     Checking bech32 v0.11.1
[INFO] [stderr]     Checking extensions_sv2 v0.3.0 (/opt/rustwide/workdir/sv2/extensions-sv2)
[INFO] [stderr]     Checking hex v0.4.3
[INFO] [stderr]     Checking iai v0.1.1
[INFO] [stderr]     Checking job_declaration_sv2 v10.0.0 (/opt/rustwide/workdir/sv2/subprotocols/job-declaration)
[INFO] [stderr]     Checking uint v0.10.0
[INFO] [stderr]     Checking common_messages_sv2 v9.0.0 (/opt/rustwide/workdir/sv2/subprotocols/common-messages)
[INFO] [stderr]    Compiling trait-variant v0.1.2
[INFO] [stderr]     Checking parsers_sv2 v0.7.0 (/opt/rustwide/workdir/sv2/parsers-sv2)
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking handlers_sv2 v0.7.0 (/opt/rustwide/workdir/sv2/handlers-sv2)
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling quickcheck_macros v1.0.0
[INFO] [stderr]     Checking quickcheck v1.0.3
[INFO] [stderr]     Checking secp256k1 v0.28.2
[INFO] [stderr]     Checking fixed-hash v0.8.0
[INFO] [stderr]     Checking primitive-types v0.13.1
[INFO] [stdout] warning: use of deprecated method `core::sync::atomic::Atomic::<u8>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]    --> sv2/buffer-sv2/src/slice.rs:374:14
[INFO] [stdout]     |
[INFO] [stdout] 374 |             .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |mut shared_state| {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 374 -             .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |mut shared_state| {
[INFO] [stdout] 374 +             .try_update(Ordering::Relaxed, Ordering::Relaxed, |mut shared_state| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking secp256k1 v0.29.1
[INFO] [stderr]     Checking noise_sv2 v2.0.0 (/opt/rustwide/workdir/sv2/noise-sv2)
[INFO] [stderr]     Checking key-utils v1.2.0
[INFO] [stderr]     Checking codec_sv2 v7.0.0 (/opt/rustwide/workdir/sv2/codec-sv2)
[INFO] [stdout] warning: value assigned to `dec_state` is never read
[INFO] [stdout]   --> sv2/codec-sv2/benches/noise_roundtrip.rs:73:25
[INFO] [stdout]    |
[INFO] [stdout] 73 |                         dec_state = state;
[INFO] [stdout]    |                         ^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 77 |                         dec_state = state;
[INFO] [stdout]    |                         --------- `dec_state` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `channel_id`, `merkle_root`, and `coinbase_suffix` are never read
[INFO] [stdout]   --> sv2/codec-sv2/benches/common.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct OwnedMsg {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 30 |     pub channel_id: u32,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 31 |     pub merkle_root: [u8; 32],
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 32 |     pub coinbase_suffix: Vec<u8>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OwnedMsg` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `channel_id`, `merkle_root`, and `coinbase_suffix` are never read
[INFO] [stdout]   --> sv2/codec-sv2/benches/common.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct OwnedMsg {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 30 |     pub channel_id: u32,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 31 |     pub merkle_root: [u8; 32],
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 32 |     pub coinbase_suffix: Vec<u8>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OwnedMsg` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `channel_id`, `merkle_root`, and `coinbase_suffix` are never read
[INFO] [stdout]   --> sv2/codec-sv2/benches/common.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct OwnedMsg {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 30 |     pub channel_id: u32,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 31 |     pub merkle_root: [u8; 32],
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 32 |     pub coinbase_suffix: Vec<u8>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OwnedMsg` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `channel_id`, `merkle_root`, and `coinbase_suffix` are never read
[INFO] [stdout]   --> sv2/codec-sv2/benches/common.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct OwnedMsg {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 30 |     pub channel_id: u32,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 31 |     pub merkle_root: [u8; 32],
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 32 |     pub coinbase_suffix: Vec<u8>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OwnedMsg` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `channel_id`, `merkle_root`, and `coinbase_suffix` are never read
[INFO] [stdout]   --> sv2/codec-sv2/benches/common.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct OwnedMsg {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 30 |     pub channel_id: u32,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 31 |     pub merkle_root: [u8; 32],
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 32 |     pub coinbase_suffix: Vec<u8>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OwnedMsg` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Slice` is never used
[INFO] [stdout]   --> sv2/codec-sv2/src/test_utils.rs:22:17
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub(crate) type Slice = <Buffer as IsBuffer>::Slice;
[INFO] [stdout]    |                 ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `channel_id`, `merkle_root`, and `coinbase_suffix` are never read
[INFO] [stdout]   --> sv2/codec-sv2/benches/common.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct OwnedMsg {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 30 |     pub channel_id: u32,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 31 |     pub merkle_root: [u8; 32],
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 32 |     pub coinbase_suffix: Vec<u8>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OwnedMsg` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> sv2/subprotocols/mining/src/new_mining_job.rs:301:38
[INFO] [stdout]     |
[INFO] [stdout] 301 |         pub fn u256_sequence(arrays: &[[u8; 32]]) -> Seq0255<U256> {
[INFO] [stdout]     |                                      ^^^^^^^^^^^     ^^^^^^^^^^^^^
[INFO] [stdout]     |                                      |               |       |
[INFO] [stdout]     |                                      |               |       the same lifetime is hidden here
[INFO] [stdout]     |                                      |               the same lifetime is hidden here
[INFO] [stdout]     |                                      the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 301 |         pub fn u256_sequence(arrays: &[[u8; 32]]) -> Seq0255<'_, U256<'_>> {
[INFO] [stdout]     |                                                              +++     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> sv2/subprotocols/mining/src/new_mining_job.rs:306:38
[INFO] [stdout]     |
[INFO] [stdout] 306 |         pub fn bytes_to_b064k(bytes: &[u8]) -> B064K {
[INFO] [stdout]     |                                      ^^^^^     ^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 306 |         pub fn bytes_to_b064k(bytes: &[u8]) -> B064K<'_> {
[INFO] [stdout]     |                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking channels_sv2 v9.0.0 (/opt/rustwide/workdir/sv2/channels-sv2)
[INFO] [stderr]     Checking sv1_api v6.0.1 (/opt/rustwide/workdir/sv1)
[INFO] [stdout] warning: unreachable call
[INFO] [stdout]   --> sv1/src/error.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |         Error::Infallible(e)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ - any code following this expression is unreachable
[INFO] [stdout]    |         |
[INFO] [stdout]    |         unreachable call
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable call
[INFO] [stdout]   --> sv1/src/error.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |         Error::Infallible(e)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ - any code following this expression is unreachable
[INFO] [stdout]    |         |
[INFO] [stdout]    |         unreachable call
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking stratum-core v0.7.0 (/opt/rustwide/workdir/stratum-core)
[INFO] [stderr]     Checking stratum_translation v0.6.0 (/opt/rustwide/workdir/stratum-core/stratum-translation)
[INFO] [stdout] error: useless conversion to the same type: `Target`
[INFO] [stdout]    --> sv2/channels-sv2/src/vardiff/test/classic.rs:98:18
[INFO] [stdout]     |
[INFO] [stdout]  98 |       let target = hash_rate_to_target(hashrate.into(), TEST_SHARES_PER_MINUTE.into())
[INFO] [stdout]     |  __________________^
[INFO] [stdout]  99 | |         .unwrap()
[INFO] [stdout] 100 | |         .into();
[INFO] [stdout]     | |_______________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout]  99 -         .unwrap()
[INFO] [stdout] 100 -         .into();
[INFO] [stdout]  99 +         .unwrap();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout]  98 ~     let target = <Target as Into<_>>::into(hash_rate_to_target(hashrate.into(), TEST_SHARES_PER_MINUTE.into())
[INFO] [stdout]  99 ~         .unwrap());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Target`
[INFO] [stdout]   --> sv2/channels-sv2/src/vardiff/test/mod.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 | /         hash_rate_to_target(initial_hashrate.into(), TEST_SHARES_PER_MINUTE.into())
[INFO] [stdout] 93 | |             .unwrap()
[INFO] [stdout] 94 | |             .into();
[INFO] [stdout]    | |___________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 93 -             .unwrap()
[INFO] [stdout] 94 -             .into();
[INFO] [stdout] 93 +             .unwrap();
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 92 ~         <Target as Into<_>>::into(hash_rate_to_target(initial_hashrate.into(), TEST_SHARES_PER_MINUTE.into())
[INFO] [stdout] 93 ~             .unwrap());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Target`
[INFO] [stdout]    --> sv2/channels-sv2/src/vardiff/test/mod.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 128 | /         hash_rate_to_target(initial_hashrate.into(), TEST_SHARES_PER_MINUTE.into())
[INFO] [stdout] 129 | |             .unwrap()
[INFO] [stdout] 130 | |             .into();
[INFO] [stdout]     | |___________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 129 -             .unwrap()
[INFO] [stdout] 130 -             .into();
[INFO] [stdout] 129 +             .unwrap();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 128 ~         <Target as Into<_>>::into(hash_rate_to_target(initial_hashrate.into(), TEST_SHARES_PER_MINUTE.into())
[INFO] [stdout] 129 ~             .unwrap());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Target`
[INFO] [stdout]    --> sv2/channels-sv2/src/vardiff/test/mod.rs:148:26
[INFO] [stdout]     |
[INFO] [stdout] 148 |       let target: Target = hash_rate_to_target(new_hashrate.into(), TEST_SHARES_PER_MINUTE.into())
[INFO] [stdout]     |  __________________________^
[INFO] [stdout] 149 | |         .unwrap()
[INFO] [stdout] 150 | |         .into();
[INFO] [stdout]     | |_______________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 149 -         .unwrap()
[INFO] [stdout] 150 -         .into();
[INFO] [stdout] 149 +         .unwrap();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 148 ~     let target: Target = <Target as Into<_>>::into(hash_rate_to_target(new_hashrate.into(), TEST_SHARES_PER_MINUTE.into())
[INFO] [stdout] 149 ~         .unwrap());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Target`
[INFO] [stdout]    --> sv2/channels-sv2/src/vardiff/test/mod.rs:163:9
[INFO] [stdout]     |
[INFO] [stdout] 163 | /         hash_rate_to_target(initial_hashrate.into(), TEST_SHARES_PER_MINUTE.into())
[INFO] [stdout] 164 | |             .unwrap()
[INFO] [stdout] 165 | |             .into();
[INFO] [stdout]     | |___________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 164 -             .unwrap()
[INFO] [stdout] 165 -             .into();
[INFO] [stdout] 164 +             .unwrap();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 163 ~         <Target as Into<_>>::into(hash_rate_to_target(initial_hashrate.into(), TEST_SHARES_PER_MINUTE.into())
[INFO] [stdout] 164 ~             .unwrap());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Target`
[INFO] [stdout]    --> sv2/channels-sv2/src/vardiff/test/mod.rs:182:26
[INFO] [stdout]     |
[INFO] [stdout] 182 |       let target: Target = hash_rate_to_target(new_hashrate.into(), TEST_SHARES_PER_MINUTE.into())
[INFO] [stdout]     |  __________________________^
[INFO] [stdout] 183 | |         .unwrap()
[INFO] [stdout] 184 | |         .into();
[INFO] [stdout]     | |_______________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 183 -         .unwrap()
[INFO] [stdout] 184 -         .into();
[INFO] [stdout] 183 +         .unwrap();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 182 ~     let target: Target = <Target as Into<_>>::into(hash_rate_to_target(new_hashrate.into(), TEST_SHARES_PER_MINUTE.into())
[INFO] [stdout] 183 ~         .unwrap());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Target`
[INFO] [stdout]    --> sv2/channels-sv2/src/vardiff/test/mod.rs:196:9
[INFO] [stdout]     |
[INFO] [stdout] 196 | /         hash_rate_to_target(initial_hashrate.into(), TEST_SHARES_PER_MINUTE.into())
[INFO] [stdout] 197 | |             .unwrap()
[INFO] [stdout] 198 | |             .into();
[INFO] [stdout]     | |___________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 197 -             .unwrap()
[INFO] [stdout] 198 -             .into();
[INFO] [stdout] 197 +             .unwrap();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 196 ~         <Target as Into<_>>::into(hash_rate_to_target(initial_hashrate.into(), TEST_SHARES_PER_MINUTE.into())
[INFO] [stdout] 197 ~             .unwrap());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Target`
[INFO] [stdout]    --> sv2/channels-sv2/src/vardiff/test/mod.rs:214:26
[INFO] [stdout]     |
[INFO] [stdout] 214 |       let target: Target = hash_rate_to_target(new_hashrate.into(), TEST_SHARES_PER_MINUTE.into())
[INFO] [stdout]     |  __________________________^
[INFO] [stdout] 215 | |         .unwrap()
[INFO] [stdout] 216 | |         .into();
[INFO] [stdout]     | |_______________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 215 -         .unwrap()
[INFO] [stdout] 216 -         .into();
[INFO] [stdout] 215 +         .unwrap();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 214 ~     let target: Target = <Target as Into<_>>::into(hash_rate_to_target(new_hashrate.into(), TEST_SHARES_PER_MINUTE.into())
[INFO] [stdout] 215 ~         .unwrap());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Target`
[INFO] [stdout]    --> sv2/channels-sv2/src/vardiff/test/mod.rs:228:9
[INFO] [stdout]     |
[INFO] [stdout] 228 | /         hash_rate_to_target(initial_hashrate.into(), TEST_SHARES_PER_MINUTE.into())
[INFO] [stdout] 229 | |             .unwrap()
[INFO] [stdout] 230 | |             .into();
[INFO] [stdout]     | |___________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 229 -             .unwrap()
[INFO] [stdout] 230 -             .into();
[INFO] [stdout] 229 +             .unwrap();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 228 ~         <Target as Into<_>>::into(hash_rate_to_target(initial_hashrate.into(), TEST_SHARES_PER_MINUTE.into())
[INFO] [stdout] 229 ~             .unwrap());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Target`
[INFO] [stdout]    --> sv2/channels-sv2/src/vardiff/test/mod.rs:246:26
[INFO] [stdout]     |
[INFO] [stdout] 246 |       let target: Target = hash_rate_to_target(new_hashrate.into(), TEST_SHARES_PER_MINUTE.into())
[INFO] [stdout]     |  __________________________^
[INFO] [stdout] 247 | |         .unwrap()
[INFO] [stdout] 248 | |         .into();
[INFO] [stdout]     | |_______________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 247 -         .unwrap()
[INFO] [stdout] 248 -         .into();
[INFO] [stdout] 247 +         .unwrap();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 246 ~     let target: Target = <Target as Into<_>>::into(hash_rate_to_target(new_hashrate.into(), TEST_SHARES_PER_MINUTE.into())
[INFO] [stdout] 247 ~         .unwrap());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Target`
[INFO] [stdout]    --> sv2/channels-sv2/src/vardiff/test/mod.rs:260:9
[INFO] [stdout]     |
[INFO] [stdout] 260 | /         hash_rate_to_target(initial_hashrate.into(), TEST_SHARES_PER_MINUTE.into())
[INFO] [stdout] 261 | |             .unwrap()
[INFO] [stdout] 262 | |             .into();
[INFO] [stdout]     | |___________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 261 -             .unwrap()
[INFO] [stdout] 262 -             .into();
[INFO] [stdout] 261 +             .unwrap();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 260 ~         <Target as Into<_>>::into(hash_rate_to_target(initial_hashrate.into(), TEST_SHARES_PER_MINUTE.into())
[INFO] [stdout] 261 ~             .unwrap());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Target`
[INFO] [stdout]    --> sv2/channels-sv2/src/vardiff/test/mod.rs:288:9
[INFO] [stdout]     |
[INFO] [stdout] 288 | /         hash_rate_to_target(initial_hashrate.into(), TEST_SHARES_PER_MINUTE.into())
[INFO] [stdout] 289 | |             .unwrap()
[INFO] [stdout] 290 | |             .into();
[INFO] [stdout]     | |___________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 289 -             .unwrap()
[INFO] [stdout] 290 -             .into();
[INFO] [stdout] 289 +             .unwrap();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 288 ~         <Target as Into<_>>::into(hash_rate_to_target(initial_hashrate.into(), TEST_SHARES_PER_MINUTE.into())
[INFO] [stdout] 289 ~             .unwrap());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Target`
[INFO] [stdout]    --> sv2/channels-sv2/src/vardiff/test/mod.rs:315:9
[INFO] [stdout]     |
[INFO] [stdout] 315 | /         hash_rate_to_target(initial_hashrate.into(), TEST_SHARES_PER_MINUTE.into())
[INFO] [stdout] 316 | |             .unwrap()
[INFO] [stdout] 317 | |             .into();
[INFO] [stdout]     | |___________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 316 -             .unwrap()
[INFO] [stdout] 317 -             .into();
[INFO] [stdout] 316 +             .unwrap();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 315 ~         <Target as Into<_>>::into(hash_rate_to_target(initial_hashrate.into(), TEST_SHARES_PER_MINUTE.into())
[INFO] [stdout] 316 ~             .unwrap());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Target`
[INFO] [stdout]    --> sv2/channels-sv2/src/vardiff/test/mod.rs:341:9
[INFO] [stdout]     |
[INFO] [stdout] 341 | /         hash_rate_to_target(initial_hashrate.into(), TEST_SHARES_PER_MINUTE.into())
[INFO] [stdout] 342 | |             .unwrap()
[INFO] [stdout] 343 | |             .into();
[INFO] [stdout]     | |___________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 342 -             .unwrap()
[INFO] [stdout] 343 -             .into();
[INFO] [stdout] 342 +             .unwrap();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 341 ~         <Target as Into<_>>::into(hash_rate_to_target(initial_hashrate.into(), TEST_SHARES_PER_MINUTE.into())
[INFO] [stdout] 342 ~             .unwrap());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Target`
[INFO] [stdout]    --> sv2/channels-sv2/src/vardiff/test/mod.rs:356:9
[INFO] [stdout]     |
[INFO] [stdout] 356 | /         hash_rate_to_target(hashrate_after_60s.into(), TEST_SHARES_PER_MINUTE.into())
[INFO] [stdout] 357 | |             .unwrap()
[INFO] [stdout] 358 | |             .into();
[INFO] [stdout]     | |___________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 357 -             .unwrap()
[INFO] [stdout] 358 -             .into();
[INFO] [stdout] 357 +             .unwrap();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 356 ~         <Target as Into<_>>::into(hash_rate_to_target(hashrate_after_60s.into(), TEST_SHARES_PER_MINUTE.into())
[INFO] [stdout] 357 ~             .unwrap());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Target`
[INFO] [stdout]    --> sv2/channels-sv2/src/vardiff/test/mod.rs:375:9
[INFO] [stdout]     |
[INFO] [stdout] 375 | /         hash_rate_to_target(hashrate_after_120s.into(), TEST_SHARES_PER_MINUTE.into())
[INFO] [stdout] 376 | |             .unwrap()
[INFO] [stdout] 377 | |             .into();
[INFO] [stdout]     | |___________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 376 -             .unwrap()
[INFO] [stdout] 377 -             .into();
[INFO] [stdout] 376 +             .unwrap();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 375 ~         <Target as Into<_>>::into(hash_rate_to_target(hashrate_after_120s.into(), TEST_SHARES_PER_MINUTE.into())
[INFO] [stdout] 376 ~             .unwrap());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Target`
[INFO] [stdout]    --> sv2/channels-sv2/src/vardiff/test/mod.rs:394:9
[INFO] [stdout]     |
[INFO] [stdout] 394 | /         hash_rate_to_target(hashrate_after_180s.into(), TEST_SHARES_PER_MINUTE.into())
[INFO] [stdout] 395 | |             .unwrap()
[INFO] [stdout] 396 | |             .into();
[INFO] [stdout]     | |___________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 395 -             .unwrap()
[INFO] [stdout] 396 -             .into();
[INFO] [stdout] 395 +             .unwrap();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 394 ~         <Target as Into<_>>::into(hash_rate_to_target(hashrate_after_180s.into(), TEST_SHARES_PER_MINUTE.into())
[INFO] [stdout] 395 ~             .unwrap());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Target`
[INFO] [stdout]    --> sv2/channels-sv2/src/vardiff/test/mod.rs:413:9
[INFO] [stdout]     |
[INFO] [stdout] 413 | /         hash_rate_to_target(hashrate_after_240s.into(), TEST_SHARES_PER_MINUTE.into())
[INFO] [stdout] 414 | |             .unwrap()
[INFO] [stdout] 415 | |             .into();
[INFO] [stdout]     | |___________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 414 -             .unwrap()
[INFO] [stdout] 415 -             .into();
[INFO] [stdout] 414 +             .unwrap();
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 413 ~         <Target as Into<_>>::into(hash_rate_to_target(hashrate_after_240s.into(), TEST_SHARES_PER_MINUTE.into())
[INFO] [stdout] 414 ~             .unwrap());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `channels_sv2` (lib test) due to 18 previous errors
[INFO] running `Command { std: "docker" "inspect" "0be97374545652b0dfd1fc81717d1a13c51ebbe87cba94a302c7b964e2ced1c7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0be97374545652b0dfd1fc81717d1a13c51ebbe87cba94a302c7b964e2ced1c7", kill_on_drop: false }`
[INFO] [stdout] 0be97374545652b0dfd1fc81717d1a13c51ebbe87cba94a302c7b964e2ced1c7
