[INFO] fetching crate satsnet_slices 0.9.15...
[INFO] testing satsnet_slices-0.9.15 against master#d98a5da813da67eb189387b8ccfb73cf481275d8+rustflags=-Copt-level=3 for pr-138759
[INFO] extracting crate satsnet_slices 0.9.15 into /workspace/builds/worker-5-tc1/source
[INFO] started tweaking crates.io crate satsnet_slices 0.9.15
[INFO] finished tweaking crates.io crate satsnet_slices 0.9.15
[INFO] tweaked toml for crates.io crate satsnet_slices 0.9.15 written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate satsnet_slices 0.9.15 on toolchain d98a5da813da67eb189387b8ccfb73cf481275d8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 118 packages to latest compatible versions
[INFO] [stderr]       Adding bitcoin_hashes v0.14.0 (available: v0.16.0)
[INFO] [stderr]       Adding criterion v0.3.6 (available: v0.7.0)
[INFO] [stderr]       Adding hashbrown v0.14.5 (available: v0.16.0)
[INFO] [stderr]       Adding prometheus v0.13.4 (available: v0.14.0)
[INFO] [stderr]       Adding redb v1.5.2 (available: v3.1.0)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded hex_lit v0.1.1
[INFO] [stderr]   Downloaded rustc-std-workspace-alloc v1.0.1
[INFO] [stderr]   Downloaded hex-conservative v0.2.1
[INFO] [stderr]   Downloaded base58ck v0.1.0
[INFO] [stderr]   Downloaded bitcoin-io v0.1.3
[INFO] [stderr]   Downloaded bitcoin-internals v0.3.0
[INFO] [stderr]   Downloaded bitcoin-units v0.1.2
[INFO] [stderr]   Downloaded bitcoin_hashes v0.14.0
[INFO] [stderr]   Downloaded bech32 v0.11.0
[INFO] [stderr]   Downloaded secp256k1 v0.29.1
[INFO] [stderr]   Downloaded redb v1.5.2
[INFO] [stderr]   Downloaded satsnet v0.32.17
[INFO] [stderr]   Downloaded bitcoin-test-data v0.2.0
[INFO] [stderr]   Downloaded secp256k1-sys v0.10.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 3dba79a20a85225d2cbd8ad832e63a29b530275aeff79e9c5a7816f904c03d94
[INFO] running `Command { std: "docker" "start" "-a" "3dba79a20a85225d2cbd8ad832e63a29b530275aeff79e9c5a7816f904c03d94", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3dba79a20a85225d2cbd8ad832e63a29b530275aeff79e9c5a7816f904c03d94", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3dba79a20a85225d2cbd8ad832e63a29b530275aeff79e9c5a7816f904c03d94", kill_on_drop: false }`
[INFO] [stdout] 3dba79a20a85225d2cbd8ad832e63a29b530275aeff79e9c5a7816f904c03d94
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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=forbid -Copt-level=3" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b3cf573bd5a7339fd935a8e16791b2a533541ddcba703c150e3da6fe3b150105
[INFO] running `Command { std: "docker" "start" "-a" "b3cf573bd5a7339fd935a8e16791b2a533541ddcba703c150e3da6fe3b150105", kill_on_drop: false }`
[INFO] [stderr]    Compiling satsnet_slices v0.9.15 (/opt/rustwide/workdir)
[INFO] [stdout] warning: struct `VarInt` is never constructed
[INFO] [stdout]   --> src/bsl/len.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct VarInt<'a> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_var_int` is never used
[INFO] [stdout]   --> src/bsl/len.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn parse_var_int(slice: &[u8]) -> Result<VarInt, Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/bsl/block.rs:61:19
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub fn header(&self) -> &BlockHeader {
[INFO] [stdout]    |                   ^^^^^     ------------
[INFO] [stdout]    |                   |         ||
[INFO] [stdout]    |                   |         |the lifetimes get resolved as `'_`
[INFO] [stdout]    |                   |         the lifetimes get resolved as `'_`
[INFO] [stdout]    |                   this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub fn header(&self) -> &BlockHeader<'_> {
[INFO] [stdout]    |                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/bsl/len.rs:37:29
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn parse_var_int(slice: &[u8]) -> Result<VarInt, Error> {
[INFO] [stdout]    |                             ^^^^^            ------ the lifetime gets resolved as `'_`
[INFO] [stdout]    |                             |
[INFO] [stdout]    |                             this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn parse_var_int(slice: &[u8]) -> Result<VarInt<'_>, Error> {
[INFO] [stdout]    |                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/bsl/out_point.rs:17:22
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn parse(slice: &'a [u8]) -> SResult<Self> {
[INFO] [stdout]    |                      ^^          ------------- the lifetime gets resolved as `'a`
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn parse(slice: &'a [u8]) -> SResult<'a, Self> {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/bsl/script.rs:18:22
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn parse(slice: &'a [u8]) -> SResult<Self> {
[INFO] [stdout]    |                      ^^          ------------- the lifetime gets resolved as `'a`
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn parse(slice: &'a [u8]) -> SResult<'a, Self> {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/bsl/var_string.rs:22:22
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn parse(slice: &'a [u8]) -> SResult<Self> {
[INFO] [stdout]    |                      ^^          ------------- the lifetime gets resolved as `'a`
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn parse(slice: &'a [u8]) -> SResult<'a, Self> {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/bsl/tx_in.rs:17:22
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn parse(slice: &'a [u8]) -> SResult<Self> {
[INFO] [stdout]    |                      ^^          ------------- the lifetime gets resolved as `'a`
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn parse(slice: &'a [u8]) -> SResult<'a, Self> {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/bsl/tx_in.rs:33:20
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn prevout(&self) -> &OutPoint {
[INFO] [stdout]    |                    ^^^^^     ---------
[INFO] [stdout]    |                    |         ||
[INFO] [stdout]    |                    |         |the lifetimes get resolved as `'_`
[INFO] [stdout]    |                    |         the lifetimes get resolved as `'_`
[INFO] [stdout]    |                    this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn prevout(&self) -> &OutPoint<'_> {
[INFO] [stdout]    |                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/bsl/tx_out.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn parse(slice: &'a [u8]) -> SResult<Self> {
[INFO] [stdout]    |                      ^^          ------------- the lifetime gets resolved as `'a`
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn parse(slice: &'a [u8]) -> SResult<'a, Self> {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/bsl/witnesses.rs:20:26
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn parse(slice: &'a [u8], total_inputs: usize) -> SResult<Self> {
[INFO] [stdout]    |                          ^^                               ------------- the lifetime gets resolved as `'a`
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn parse(slice: &'a [u8], total_inputs: usize) -> SResult<'a, Self> {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]  --> src/slice.rs:4:25
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn read_slice(from: &[u8], len: usize) -> SResult<&[u8]> {
[INFO] [stdout]   |                         ^^^^^                 --------------
[INFO] [stdout]   |                         |                     |       |
[INFO] [stdout]   |                         |                     |       the lifetimes get resolved as `'_`
[INFO] [stdout]   |                         |                     the lifetimes get resolved as `'_`
[INFO] [stdout]   |                         this lifetime flows to the output
[INFO] [stdout]   |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn read_slice(from: &[u8], len: usize) -> SResult<'_, &[u8]> {
[INFO] [stdout]   |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.56s
[INFO] running `Command { std: "docker" "inspect" "b3cf573bd5a7339fd935a8e16791b2a533541ddcba703c150e3da6fe3b150105", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b3cf573bd5a7339fd935a8e16791b2a533541ddcba703c150e3da6fe3b150105", kill_on_drop: false }`
[INFO] [stdout] b3cf573bd5a7339fd935a8e16791b2a533541ddcba703c150e3da6fe3b150105
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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=forbid -Copt-level=3" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 04d00bc244f279a41084bb1d1b17630cb7d315ba5c070c281d28969624504452
[INFO] running `Command { std: "docker" "start" "-a" "04d00bc244f279a41084bb1d1b17630cb7d315ba5c070c281d28969624504452", kill_on_drop: false }`
[INFO] [stderr]    Compiling bitcoin-io v0.1.3
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling find-msvc-tools v0.1.4
[INFO] [stderr]    Compiling bitcoin-internals v0.3.0
[INFO] [stderr]    Compiling arrayvec v0.7.6
[INFO] [stderr]    Compiling quote v1.0.41
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]    Compiling hex_lit v0.1.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling cc v1.2.41
[INFO] [stderr]    Compiling hex-conservative v0.2.1
[INFO] [stderr]    Compiling textwrap v0.11.0
[INFO] [stderr]    Compiling csv-core v0.1.12
[INFO] [stderr]    Compiling bitflags v2.9.4
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling bitcoin_hashes v0.14.0
[INFO] [stderr]    Compiling satsnet v0.32.17
[INFO] [stderr]    Compiling half v1.8.3
[INFO] [stderr]    Compiling clap v2.34.0
[INFO] [stderr]    Compiling csv v1.3.1
[INFO] [stderr]    Compiling criterion-plot v0.4.5
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]    Compiling base58ck v0.1.0
[INFO] [stderr]    Compiling serde_cbor v0.11.2
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling bitcoin-units v0.1.2
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling bech32 v0.11.0
[INFO] [stderr]    Compiling bitcoin-test-data v0.2.0
[INFO] [stdout] warning: struct `VarInt` is never constructed
[INFO] [stdout]   --> src/bsl/len.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct VarInt<'a> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_var_int` is never used
[INFO] [stdout]   --> src/bsl/len.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn parse_var_int(slice: &[u8]) -> Result<VarInt, Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/bsl/block.rs:61:19
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub fn header(&self) -> &BlockHeader {
[INFO] [stdout]    |                   ^^^^^     ------------
[INFO] [stdout]    |                   |         ||
[INFO] [stdout]    |                   |         |the lifetimes get resolved as `'_`
[INFO] [stdout]    |                   |         the lifetimes get resolved as `'_`
[INFO] [stdout]    |                   this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub fn header(&self) -> &BlockHeader<'_> {
[INFO] [stdout]    |                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/bsl/len.rs:37:29
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn parse_var_int(slice: &[u8]) -> Result<VarInt, Error> {
[INFO] [stdout]    |                             ^^^^^            ------ the lifetime gets resolved as `'_`
[INFO] [stdout]    |                             |
[INFO] [stdout]    |                             this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn parse_var_int(slice: &[u8]) -> Result<VarInt<'_>, Error> {
[INFO] [stdout]    |                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/bsl/out_point.rs:17:22
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn parse(slice: &'a [u8]) -> SResult<Self> {
[INFO] [stdout]    |                      ^^          ------------- the lifetime gets resolved as `'a`
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn parse(slice: &'a [u8]) -> SResult<'a, Self> {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/bsl/script.rs:18:22
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn parse(slice: &'a [u8]) -> SResult<Self> {
[INFO] [stdout]    |                      ^^          ------------- the lifetime gets resolved as `'a`
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn parse(slice: &'a [u8]) -> SResult<'a, Self> {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/bsl/var_string.rs:22:22
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn parse(slice: &'a [u8]) -> SResult<Self> {
[INFO] [stdout]    |                      ^^          ------------- the lifetime gets resolved as `'a`
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn parse(slice: &'a [u8]) -> SResult<'a, Self> {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/bsl/tx_in.rs:17:22
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn parse(slice: &'a [u8]) -> SResult<Self> {
[INFO] [stdout]    |                      ^^          ------------- the lifetime gets resolved as `'a`
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn parse(slice: &'a [u8]) -> SResult<'a, Self> {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/bsl/tx_in.rs:33:20
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn prevout(&self) -> &OutPoint {
[INFO] [stdout]    |                    ^^^^^     ---------
[INFO] [stdout]    |                    |         ||
[INFO] [stdout]    |                    |         |the lifetimes get resolved as `'_`
[INFO] [stdout]    |                    |         the lifetimes get resolved as `'_`
[INFO] [stdout]    |                    this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn prevout(&self) -> &OutPoint<'_> {
[INFO] [stdout]    |                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/bsl/tx_out.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn parse(slice: &'a [u8]) -> SResult<Self> {
[INFO] [stdout]    |                      ^^          ------------- the lifetime gets resolved as `'a`
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn parse(slice: &'a [u8]) -> SResult<'a, Self> {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/bsl/witnesses.rs:20:26
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn parse(slice: &'a [u8], total_inputs: usize) -> SResult<Self> {
[INFO] [stdout]    |                          ^^                               ------------- the lifetime gets resolved as `'a`
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn parse(slice: &'a [u8], total_inputs: usize) -> SResult<'a, Self> {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]  --> src/slice.rs:4:25
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn read_slice(from: &[u8], len: usize) -> SResult<&[u8]> {
[INFO] [stdout]   |                         ^^^^^                 --------------
[INFO] [stdout]   |                         |                     |       |
[INFO] [stdout]   |                         |                     |       the lifetimes get resolved as `'_`
[INFO] [stdout]   |                         |                     the lifetimes get resolved as `'_`
[INFO] [stdout]   |                         this lifetime flows to the output
[INFO] [stdout]   |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn read_slice(from: &[u8], len: usize) -> SResult<'_, &[u8]> {
[INFO] [stdout]   |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling tempfile v3.23.0
[INFO] [stderr]    Compiling secp256k1-sys v0.10.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling secp256k1 v0.29.1
[INFO] [stderr]    Compiling criterion v0.3.6
[INFO] [stderr]    Compiling satsnet_slices v0.9.15 (/opt/rustwide/workdir)
[INFO] [stdout] warning: struct `VarInt` is never constructed
[INFO] [stdout]   --> src/bsl/len.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct VarInt<'a> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_var_int` is never used
[INFO] [stdout]   --> src/bsl/len.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn parse_var_int(slice: &[u8]) -> Result<VarInt, Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/lib.rs:51:1
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub mod test_common {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/lib.rs:4:9
[INFO] [stdout]    |
[INFO] [stdout] 4  | #![warn(missing_docs)]
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/bsl/block.rs:61:19
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub fn header(&self) -> &BlockHeader {
[INFO] [stdout]    |                   ^^^^^     ------------
[INFO] [stdout]    |                   |         ||
[INFO] [stdout]    |                   |         |the lifetimes get resolved as `'_`
[INFO] [stdout]    |                   |         the lifetimes get resolved as `'_`
[INFO] [stdout]    |                   this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub fn header(&self) -> &BlockHeader<'_> {
[INFO] [stdout]    |                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/bsl/len.rs:37:29
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn parse_var_int(slice: &[u8]) -> Result<VarInt, Error> {
[INFO] [stdout]    |                             ^^^^^            ------ the lifetime gets resolved as `'_`
[INFO] [stdout]    |                             |
[INFO] [stdout]    |                             this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn parse_var_int(slice: &[u8]) -> Result<VarInt<'_>, Error> {
[INFO] [stdout]    |                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/bsl/out_point.rs:17:22
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn parse(slice: &'a [u8]) -> SResult<Self> {
[INFO] [stdout]    |                      ^^          ------------- the lifetime gets resolved as `'a`
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn parse(slice: &'a [u8]) -> SResult<'a, Self> {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/bsl/script.rs:18:22
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn parse(slice: &'a [u8]) -> SResult<Self> {
[INFO] [stdout]    |                      ^^          ------------- the lifetime gets resolved as `'a`
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn parse(slice: &'a [u8]) -> SResult<'a, Self> {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/bsl/var_string.rs:22:22
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn parse(slice: &'a [u8]) -> SResult<Self> {
[INFO] [stdout]    |                      ^^          ------------- the lifetime gets resolved as `'a`
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn parse(slice: &'a [u8]) -> SResult<'a, Self> {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/bsl/tx_in.rs:17:22
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn parse(slice: &'a [u8]) -> SResult<Self> {
[INFO] [stdout]    |                      ^^          ------------- the lifetime gets resolved as `'a`
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn parse(slice: &'a [u8]) -> SResult<'a, Self> {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/bsl/tx_in.rs:33:20
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn prevout(&self) -> &OutPoint {
[INFO] [stdout]    |                    ^^^^^     ---------
[INFO] [stdout]    |                    |         ||
[INFO] [stdout]    |                    |         |the lifetimes get resolved as `'_`
[INFO] [stdout]    |                    |         the lifetimes get resolved as `'_`
[INFO] [stdout]    |                    this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn prevout(&self) -> &OutPoint<'_> {
[INFO] [stdout]    |                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/bsl/tx_out.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn parse(slice: &'a [u8]) -> SResult<Self> {
[INFO] [stdout]    |                      ^^          ------------- the lifetime gets resolved as `'a`
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn parse(slice: &'a [u8]) -> SResult<'a, Self> {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/bsl/witnesses.rs:20:26
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn parse(slice: &'a [u8], total_inputs: usize) -> SResult<Self> {
[INFO] [stdout]    |                          ^^                               ------------- the lifetime gets resolved as `'a`
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn parse(slice: &'a [u8], total_inputs: usize) -> SResult<'a, Self> {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]  --> src/slice.rs:4:25
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn read_slice(from: &[u8], len: usize) -> SResult<&[u8]> {
[INFO] [stdout]   |                         ^^^^^                 --------------
[INFO] [stdout]   |                         |                     |       |
[INFO] [stdout]   |                         |                     |       the lifetimes get resolved as `'_`
[INFO] [stdout]   |                         |                     the lifetimes get resolved as `'_`
[INFO] [stdout]   |                         this lifetime flows to the output
[INFO] [stdout]   |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn read_slice(from: &[u8], len: usize) -> SResult<'_, &[u8]> {
[INFO] [stdout]   |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/lib.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub const GENESIS_TX: [u8; 204] = hex!("01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff4d04ffff001...
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/lib.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub const GENESIS_BLOCK_HEADER: [u8; 80] = hex!("0100000000000000000000000000000000000000000000000000000000000000000000003ba3edfd7a7b...
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/lib.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub const GENESIS_BLOCK: [u8;285] = hex!("0100000000000000000000000000000000000000000000000000000000000000000000003ba3edfd7a7b12b27ac...
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/lib.rs:61:9
[INFO] [stdout]    |
[INFO] [stdout] 61 |         pub fn new_exact(parsed: T) -> Self {
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/lib.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub fn reverse(arr: [u8; 32]) -> [u8; 32] {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2m 46s
[INFO] running `Command { std: "docker" "inspect" "04d00bc244f279a41084bb1d1b17630cb7d315ba5c070c281d28969624504452", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "04d00bc244f279a41084bb1d1b17630cb7d315ba5c070c281d28969624504452", kill_on_drop: false }`
[INFO] [stdout] 04d00bc244f279a41084bb1d1b17630cb7d315ba5c070c281d28969624504452
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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=forbid -Copt-level=3" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 1f71813906a9eb58b0fc8928367a3bde6d13ef1b741e81bb42869b1fe56844ef
[INFO] running `Command { std: "docker" "start" "-a" "1f71813906a9eb58b0fc8928367a3bde6d13ef1b741e81bb42869b1fe56844ef", kill_on_drop: false }`
[INFO] [stderr] warning: struct `VarInt` is never constructed
[INFO] [stderr]   --> src/bsl/len.rs:31:12
[INFO] [stderr]    |
[INFO] [stderr] 31 | pub struct VarInt<'a> {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_var_int` is never used
[INFO] [stderr]   --> src/bsl/len.rs:37:8
[INFO] [stderr]    |
[INFO] [stderr] 37 | pub fn parse_var_int(slice: &[u8]) -> Result<VarInt, Error> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> src/bsl/block.rs:61:19
[INFO] [stderr]    |
[INFO] [stderr] 61 |     pub fn header(&self) -> &BlockHeader {
[INFO] [stderr]    |                   ^^^^^     ------------
[INFO] [stderr]    |                   |         ||
[INFO] [stderr]    |                   |         |the lifetimes get resolved as `'_`
[INFO] [stderr]    |                   |         the lifetimes get resolved as `'_`
[INFO] [stderr]    |                   this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]    |
[INFO] [stderr] 61 |     pub fn header(&self) -> &BlockHeader<'_> {
[INFO] [stderr]    |                                         ++++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> src/bsl/len.rs:37:29
[INFO] [stderr]    |
[INFO] [stderr] 37 | pub fn parse_var_int(slice: &[u8]) -> Result<VarInt, Error> {
[INFO] [stderr]    |                             ^^^^^            ------ the lifetime gets resolved as `'_`
[INFO] [stderr]    |                             |
[INFO] [stderr]    |                             this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]    |
[INFO] [stderr] 37 | pub fn parse_var_int(slice: &[u8]) -> Result<VarInt<'_>, Error> {
[INFO] [stderr]    |                                                    ++++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> src/bsl/out_point.rs:17:22
[INFO] [stderr]    |
[INFO] [stderr] 17 |     fn parse(slice: &'a [u8]) -> SResult<Self> {
[INFO] [stderr]    |                      ^^          ------------- the lifetime gets resolved as `'a`
[INFO] [stderr]    |                      |
[INFO] [stderr]    |                      this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to consistently use `'a`
[INFO] [stderr]    |
[INFO] [stderr] 17 |     fn parse(slice: &'a [u8]) -> SResult<'a, Self> {
[INFO] [stderr]    |                                          +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> src/bsl/script.rs:18:22
[INFO] [stderr]    |
[INFO] [stderr] 18 |     fn parse(slice: &'a [u8]) -> SResult<Self> {
[INFO] [stderr]    |                      ^^          ------------- the lifetime gets resolved as `'a`
[INFO] [stderr]    |                      |
[INFO] [stderr]    |                      this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to consistently use `'a`
[INFO] [stderr]    |
[INFO] [stderr] 18 |     fn parse(slice: &'a [u8]) -> SResult<'a, Self> {
[INFO] [stderr]    |                                          +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> src/bsl/var_string.rs:22:22
[INFO] [stderr]    |
[INFO] [stderr] 22 |     fn parse(slice: &'a [u8]) -> SResult<Self> {
[INFO] [stderr]    |                      ^^          ------------- the lifetime gets resolved as `'a`
[INFO] [stderr]    |                      |
[INFO] [stderr]    |                      this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to consistently use `'a`
[INFO] [stderr]    |
[INFO] [stderr] 22 |     fn parse(slice: &'a [u8]) -> SResult<'a, Self> {
[INFO] [stderr]    |                                          +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> src/bsl/tx_in.rs:17:22
[INFO] [stderr]    |
[INFO] [stderr] 17 |     fn parse(slice: &'a [u8]) -> SResult<Self> {
[INFO] [stderr]    |                      ^^          ------------- the lifetime gets resolved as `'a`
[INFO] [stderr]    |                      |
[INFO] [stderr]    |                      this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to consistently use `'a`
[INFO] [stderr]    |
[INFO] [stderr] 17 |     fn parse(slice: &'a [u8]) -> SResult<'a, Self> {
[INFO] [stderr]    |                                          +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> src/bsl/tx_in.rs:33:20
[INFO] [stderr]    |
[INFO] [stderr] 33 |     pub fn prevout(&self) -> &OutPoint {
[INFO] [stderr]    |                    ^^^^^     ---------
[INFO] [stderr]    |                    |         ||
[INFO] [stderr]    |                    |         |the lifetimes get resolved as `'_`
[INFO] [stderr]    |                    |         the lifetimes get resolved as `'_`
[INFO] [stderr]    |                    this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]    |
[INFO] [stderr] 33 |     pub fn prevout(&self) -> &OutPoint<'_> {
[INFO] [stderr]    |                                       ++++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> src/bsl/tx_out.rs:32:22
[INFO] [stderr]    |
[INFO] [stderr] 32 |     fn parse(slice: &'a [u8]) -> SResult<Self> {
[INFO] [stderr]    |                      ^^          ------------- the lifetime gets resolved as `'a`
[INFO] [stderr]    |                      |
[INFO] [stderr]    |                      this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to consistently use `'a`
[INFO] [stderr]    |
[INFO] [stderr] 32 |     fn parse(slice: &'a [u8]) -> SResult<'a, Self> {
[INFO] [stderr]    |                                          +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> src/bsl/witnesses.rs:20:26
[INFO] [stderr]    |
[INFO] [stderr] 20 |     pub fn parse(slice: &'a [u8], total_inputs: usize) -> SResult<Self> {
[INFO] [stderr]    |                          ^^                               ------------- the lifetime gets resolved as `'a`
[INFO] [stderr]    |                          |
[INFO] [stderr]    |                          this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to consistently use `'a`
[INFO] [stderr]    |
[INFO] [stderr] 20 |     pub fn parse(slice: &'a [u8], total_inputs: usize) -> SResult<'a, Self> {
[INFO] [stderr]    |                                                                   +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]  --> src/slice.rs:4:25
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub fn read_slice(from: &[u8], len: usize) -> SResult<&[u8]> {
[INFO] [stderr]   |                         ^^^^^                 --------------
[INFO] [stderr]   |                         |                     |       |
[INFO] [stderr]   |                         |                     |       the lifetimes get resolved as `'_`
[INFO] [stderr]   |                         |                     the lifetimes get resolved as `'_`
[INFO] [stderr]   |                         this lifetime flows to the output
[INFO] [stderr]   |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub fn read_slice(from: &[u8], len: usize) -> SResult<'_, &[u8]> {
[INFO] [stderr]   |                                                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: `satsnet_slices` (lib) generated 12 warnings
[INFO] [stderr] warning: missing documentation for a module
[INFO] [stderr]   --> src/lib.rs:51:1
[INFO] [stderr]    |
[INFO] [stderr] 51 | pub mod test_common {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] note: the lint level is defined here
[INFO] [stderr]   --> src/lib.rs:4:9
[INFO] [stderr]    |
[INFO] [stderr] 4  | #![warn(missing_docs)]
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a constant
[INFO] [stderr]   --> src/lib.rs:56:5
[INFO] [stderr]    |
[INFO] [stderr] 56 |     pub const GENESIS_TX: [u8; 204] = hex!("01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff4d04ffff001...
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a constant
[INFO] [stderr]   --> src/lib.rs:57:5
[INFO] [stderr]    |
[INFO] [stderr] 57 |     pub const GENESIS_BLOCK_HEADER: [u8; 80] = hex!("0100000000000000000000000000000000000000000000000000000000000000000000003ba3edfd7a7b...
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a constant
[INFO] [stderr]   --> src/lib.rs:58:5
[INFO] [stderr]    |
[INFO] [stderr] 58 |     pub const GENESIS_BLOCK: [u8;285] = hex!("0100000000000000000000000000000000000000000000000000000000000000000000003ba3edfd7a7b12b27ac...
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]   --> src/lib.rs:61:9
[INFO] [stderr]    |
[INFO] [stderr] 61 |         pub fn new_exact(parsed: T) -> Self {
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]   --> src/lib.rs:66:5
[INFO] [stderr]    |
[INFO] [stderr] 66 |     pub fn reverse(arr: [u8; 32]) -> [u8; 32] {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `satsnet_slices` (lib test) generated 18 warnings (12 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.18s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/satsnet_slices-9aa3bba5372cd913)
[INFO] [stdout] 
[INFO] [stdout] running 28 tests
[INFO] [stdout] test bsl::block::test::parse_block ... ok
[INFO] [stdout] test bsl::len::test::size_of ... ok
[INFO] [stdout] test bsl::block_header::test::parse_block ... ok
[INFO] [stdout] test bsl::block_header::test::size_of ... ok
[INFO] [stdout] test bsl::block::test::size_of ... ok
[INFO] [stdout] test bsl::out_point::test::parse_out_point ... ok
[INFO] [stdout] test bsl::len::test::test_parse_len ... ok
[INFO] [stdout] test bsl::script::test::parse_script ... ok
[INFO] [stdout] test bsl::transaction::test::parse_genesis_transaction ... ok
[INFO] [stdout] test bsl::transaction::test::parse_nonminimal_transaction ... ok
[INFO] [stdout] test bsl::transaction::test::parse_segwit_transaction ... ok
[INFO] [stdout] test bsl::tx_ins::test::parse_tx_ins ... ok
[INFO] [stdout] test bsl::tx_in::test::parse_tx_in ... ok
[INFO] [stdout] test bsl::tx_outs::test::iter_tx_outs ... ok
[INFO] [stdout] test bsl::transaction::test::size_of ... ok
[INFO] [stdout] test bsl::tx_outs::test::parse_tx_outs ... ok
[INFO] [stdout] test bsl::tx_ins::test::size_of ... ok
[INFO] [stdout] test bsl::tx_ins::test::visit_tx_ins ... ok
[INFO] [stdout] test bsl::tx_outs::test::size_of ... ok
[INFO] [stdout] test bsl::tx_outs::test::visit_tx_outs ... ok
[INFO] [stdout] test bsl::witness::test::visit_witness ... ok
[INFO] [stdout] test bsl::witness::test::parse_witness ... ok
[INFO] [stdout] test bsl::witnesses::test::visit_witnesses ... ok
[INFO] [stdout] test bsl::witnesses::test::parse_witnesses ... ok
[INFO] [stdout] test number::test::numbers ... ok
[INFO] [stdout] test error::test::size_of ... ok
[INFO] [stdout] test slice::test::read_slice ... ok
[INFO] [stdout] test bsl::tx_out::test::parse_tx_out ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 28 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests satsnet_slices
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test src/lib.rs - (line 103) ... ok
[INFO] [stdout] test src/lib.rs - (line 16) ... FAILED
[INFO] [stdout] test src/lib.rs - (line 69) ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/lib.rs - (line 16) stdout ----
[INFO] [stdout] error[E0432]: unresolved import `bitcoin_slices`
[INFO] [stdout]  --> src/lib.rs:18:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use bitcoin_slices::{bsl, Visit, Visitor};
[INFO] [stdout]   |     ^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `bitcoin_slices`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `bitcoin_slices`, use `cargo add bitcoin_slices` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/lib.rs - (line 16)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 2 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.22s
[INFO] [stdout] 
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] running `Command { std: "docker" "inspect" "1f71813906a9eb58b0fc8928367a3bde6d13ef1b741e81bb42869b1fe56844ef", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1f71813906a9eb58b0fc8928367a3bde6d13ef1b741e81bb42869b1fe56844ef", kill_on_drop: false }`
[INFO] [stdout] 1f71813906a9eb58b0fc8928367a3bde6d13ef1b741e81bb42869b1fe56844ef
