[INFO] cloning repository https://github.com/syntacticsugarglider/self-profile-ice-repro
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/syntacticsugarglider/self-profile-ice-repro" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsyntacticsugarglider%2Fself-profile-ice-repro", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsyntacticsugarglider%2Fself-profile-ice-repro'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a31f2f9ec5e0d27ac1807b44635df289e52aa8a8
[INFO] checking syntacticsugarglider/self-profile-ice-repro against master#57f772f25c5ce2bd870d6f8c3ab318eaee5a3326 for pr-133502-22
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsyntacticsugarglider%2Fself-profile-ice-repro" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/syntacticsugarglider/self-profile-ice-repro
[INFO] finished tweaking git repo https://github.com/syntacticsugarglider/self-profile-ice-repro
[INFO] tweaked toml for git repo https://github.com/syntacticsugarglider/self-profile-ice-repro written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/syntacticsugarglider/self-profile-ice-repro on toolchain 57f772f25c5ce2bd870d6f8c3ab318eaee5a3326
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+57f772f25c5ce2bd870d6f8c3ab318eaee5a3326" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/syntacticsugarglider/self-profile-ice-repro 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" "+57f772f25c5ce2bd870d6f8c3ab318eaee5a3326" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: /workspace/builds/worker-7-tc1/source/core-error/Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating git repository `https://github.com/core-error/core-error`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded termcolor v1.1.0
[INFO] [stderr]   Downloaded toml v0.5.6
[INFO] [stderr]   Downloaded trybuild v1.0.30
[INFO] [stderr]   Downloaded rustversion v1.0.3
[INFO] [stderr]   Downloaded ref-cast v1.0.2
[INFO] [stderr]   Downloaded glob v0.3.0
[INFO] [stderr]   Downloaded ref-cast-impl v1.0.2
[INFO] [stderr]   Downloaded bincode v1.2.1
[INFO] [stderr]   Downloaded synstructure v0.12.4
[INFO] [stderr]   Downloaded dissimilar v1.0.2
[INFO] [stderr]   Downloaded piper v0.1.3
[INFO] [stderr]   Downloaded genio v0.2.1
[INFO] [stderr]   Downloaded serde_json v1.0.55
[INFO] [stderr]   Downloaded syn v1.0.32
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+57f772f25c5ce2bd870d6f8c3ab318eaee5a3326" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2b28d3c558fd8dd2214cabf830ff55fb96989228933ed46ce501417385c704ef
[INFO] running `Command { std: "docker" "start" "-a" "2b28d3c558fd8dd2214cabf830ff55fb96989228933ed46ce501417385c704ef", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2b28d3c558fd8dd2214cabf830ff55fb96989228933ed46ce501417385c704ef", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2b28d3c558fd8dd2214cabf830ff55fb96989228933ed46ce501417385c704ef", kill_on_drop: false }`
[INFO] [stdout] 2b28d3c558fd8dd2214cabf830ff55fb96989228933ed46ce501417385c704ef
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+57f772f25c5ce2bd870d6f8c3ab318eaee5a3326" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c4761836efade94bb65215cc4710816fb7115da555a261aa585bc4ff5b6a55bb
[INFO] running `Command { std: "docker" "start" "-a" "c4761836efade94bb65215cc4710816fb7115da555a261aa585bc4ff5b6a55bb", kill_on_drop: false }`
[INFO] [stderr] warning: /opt/rustwide/workdir/core-error/Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr]    Compiling proc-macro2 v1.0.18
[INFO] [stderr]    Compiling syn v1.0.32
[INFO] [stderr]    Compiling version_check v0.9.2
[INFO] [stderr]    Compiling serde_derive v1.0.113
[INFO] [stderr]    Compiling serde v1.0.113
[INFO] [stderr]    Compiling pin-project-internal v0.4.22
[INFO] [stderr]     Checking lazy_static v1.4.0
[INFO] [stderr]    Compiling memchr v2.3.3
[INFO] [stderr]    Compiling proc-macro-nested v0.1.6
[INFO] [stderr]     Checking futures-sink v0.3.5
[INFO] [stderr]    Compiling proc-macro-hack v0.5.16
[INFO] [stderr]     Checking futures-core v0.3.5
[INFO] [stderr]     Checking once_cell v1.4.0
[INFO] [stderr]     Checking slab v0.4.2
[INFO] [stderr]     Checking futures-io v0.3.5
[INFO] [stderr]    Compiling ryu v1.0.5
[INFO] [stderr]     Checking futures-task v0.3.5
[INFO] [stderr]    Compiling serde_json v1.0.55
[INFO] [stderr]    Compiling rustversion v1.0.3
[INFO] [stderr]     Checking void v1.0.2
[INFO] [stderr]     Checking futures-channel v0.3.5
[INFO] [stderr]     Checking itoa v0.4.6
[INFO] [stderr]    Compiling anyhow v1.0.31
[INFO] [stderr]     Checking dissimilar v1.0.2
[INFO] [stderr]     Checking glob v0.3.0
[INFO] [stderr]     Checking termcolor v1.1.0
[INFO] [stderr]     Checking unicode-xid v0.2.0
[INFO] [stderr]    Compiling autocfg v1.0.0
[INFO] [stderr]    Compiling byteorder v1.3.4
[INFO] [stderr]     Checking arrayvec v0.5.1
[INFO] [stderr]     Checking cfg-if v0.1.10
[INFO] [stderr]     Checking genio v0.2.1
[INFO] [stderr]     Checking bytes v0.5.5
[INFO] [stderr]     Checking pin-project-lite v0.1.7
[INFO] [stderr]    Compiling core-error v0.0.1-rc4 (https://github.com/core-error/core-error#9ffbf19b)
[INFO] [stderr]    Compiling core-error v0.0.1-rc4 (/opt/rustwide/workdir/core-error)
[INFO] [stderr]    Compiling quote v1.0.7
[INFO] [stderr]    Compiling crossbeam-utils v0.7.2
[INFO] [stderr]     Checking synstructure v0.12.4
[INFO] [stderr]     Checking thiserror-impl v1.0.11 (/opt/rustwide/workdir/thiserror/impl)
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> thiserror/impl/src/attr.rs:27:19
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn get(input: &[Attribute]) -> Result<Attrs> {
[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]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn get(input: &[Attribute]) -> Result<Attrs<'_>> {
[INFO] [stdout]    |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]  --> thiserror/impl/src/prop.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 |     pub(crate) fn from_field(&self) -> Option<&Field> {
[INFO] [stdout]   |                              ^^^^^            ^^^^^^
[INFO] [stdout]   |                              |                ||
[INFO] [stdout]   |                              |                |the same lifetime is hidden here
[INFO] [stdout]   |                              |                the same lifetime is elided 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] help: use `'_` for type paths
[INFO] [stdout]   |
[INFO] [stdout] 5 |     pub(crate) fn from_field(&self) -> Option<&Field<'_>> {
[INFO] [stdout]   |                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]  --> thiserror/impl/src/prop.rs:9:32
[INFO] [stdout]   |
[INFO] [stdout] 9 |     pub(crate) fn source_field(&self) -> Option<&Field> {
[INFO] [stdout]   |                                ^^^^^            ^^^^^^
[INFO] [stdout]   |                                |                ||
[INFO] [stdout]   |                                |                |the same lifetime is hidden here
[INFO] [stdout]   |                                |                the same lifetime is elided 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] help: use `'_` for type paths
[INFO] [stdout]   |
[INFO] [stdout] 9 |     pub(crate) fn source_field(&self) -> Option<&Field<'_>> {
[INFO] [stdout]   |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> thiserror/impl/src/prop.rs:13:35
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub(crate) fn backtrace_field(&self) -> Option<&Field> {
[INFO] [stdout]    |                                   ^^^^^            ^^^^^^
[INFO] [stdout]    |                                   |                ||
[INFO] [stdout]    |                                   |                |the same lifetime is hidden here
[INFO] [stdout]    |                                   |                the same lifetime is elided 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] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub(crate) fn backtrace_field(&self) -> Option<&Field<'_>> {
[INFO] [stdout]    |                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> thiserror/impl/src/prop.rs:46:30
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub(crate) fn from_field(&self) -> Option<&Field> {
[INFO] [stdout]    |                              ^^^^^            ^^^^^^
[INFO] [stdout]    |                              |                ||
[INFO] [stdout]    |                              |                |the same lifetime is hidden here
[INFO] [stdout]    |                              |                the same lifetime is elided 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] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub(crate) fn from_field(&self) -> Option<&Field<'_>> {
[INFO] [stdout]    |                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> thiserror/impl/src/prop.rs:50:32
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub(crate) fn source_field(&self) -> Option<&Field> {
[INFO] [stdout]    |                                ^^^^^            ^^^^^^
[INFO] [stdout]    |                                |                ||
[INFO] [stdout]    |                                |                |the same lifetime is hidden here
[INFO] [stdout]    |                                |                the same lifetime is elided 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] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub(crate) fn source_field(&self) -> Option<&Field<'_>> {
[INFO] [stdout]    |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> thiserror/impl/src/prop.rs:54:35
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub(crate) fn backtrace_field(&self) -> Option<&Field> {
[INFO] [stdout]    |                                   ^^^^^            ^^^^^^
[INFO] [stdout]    |                                   |                ||
[INFO] [stdout]    |                                   |                |the same lifetime is hidden here
[INFO] [stdout]    |                                   |                the same lifetime is elided 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] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub(crate) fn backtrace_field(&self) -> Option<&Field<'_>> {
[INFO] [stdout]    |                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> thiserror/impl/src/attr.rs:27:19
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn get(input: &[Attribute]) -> Result<Attrs> {
[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]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn get(input: &[Attribute]) -> Result<Attrs<'_>> {
[INFO] [stdout]    |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]  --> thiserror/impl/src/prop.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 |     pub(crate) fn from_field(&self) -> Option<&Field> {
[INFO] [stdout]   |                              ^^^^^            ^^^^^^
[INFO] [stdout]   |                              |                ||
[INFO] [stdout]   |                              |                |the same lifetime is hidden here
[INFO] [stdout]   |                              |                the same lifetime is elided 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] help: use `'_` for type paths
[INFO] [stdout]   |
[INFO] [stdout] 5 |     pub(crate) fn from_field(&self) -> Option<&Field<'_>> {
[INFO] [stdout]   |                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]  --> thiserror/impl/src/prop.rs:9:32
[INFO] [stdout]   |
[INFO] [stdout] 9 |     pub(crate) fn source_field(&self) -> Option<&Field> {
[INFO] [stdout]   |                                ^^^^^            ^^^^^^
[INFO] [stdout]   |                                |                ||
[INFO] [stdout]   |                                |                |the same lifetime is hidden here
[INFO] [stdout]   |                                |                the same lifetime is elided 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] help: use `'_` for type paths
[INFO] [stdout]   |
[INFO] [stdout] 9 |     pub(crate) fn source_field(&self) -> Option<&Field<'_>> {
[INFO] [stdout]   |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> thiserror/impl/src/prop.rs:13:35
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub(crate) fn backtrace_field(&self) -> Option<&Field> {
[INFO] [stdout]    |                                   ^^^^^            ^^^^^^
[INFO] [stdout]    |                                   |                ||
[INFO] [stdout]    |                                   |                |the same lifetime is hidden here
[INFO] [stdout]    |                                   |                the same lifetime is elided 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] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub(crate) fn backtrace_field(&self) -> Option<&Field<'_>> {
[INFO] [stdout]    |                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> thiserror/impl/src/prop.rs:46:30
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub(crate) fn from_field(&self) -> Option<&Field> {
[INFO] [stdout]    |                              ^^^^^            ^^^^^^
[INFO] [stdout]    |                              |                ||
[INFO] [stdout]    |                              |                |the same lifetime is hidden here
[INFO] [stdout]    |                              |                the same lifetime is elided 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] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub(crate) fn from_field(&self) -> Option<&Field<'_>> {
[INFO] [stdout]    |                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> thiserror/impl/src/prop.rs:50:32
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub(crate) fn source_field(&self) -> Option<&Field> {
[INFO] [stdout]    |                                ^^^^^            ^^^^^^
[INFO] [stdout]    |                                |                ||
[INFO] [stdout]    |                                |                |the same lifetime is hidden here
[INFO] [stdout]    |                                |                the same lifetime is elided 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] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub(crate) fn source_field(&self) -> Option<&Field<'_>> {
[INFO] [stdout]    |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> thiserror/impl/src/prop.rs:54:35
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub(crate) fn backtrace_field(&self) -> Option<&Field> {
[INFO] [stdout]    |                                   ^^^^^            ^^^^^^
[INFO] [stdout]    |                                   |                ||
[INFO] [stdout]    |                                   |                |the same lifetime is hidden here
[INFO] [stdout]    |                                   |                the same lifetime is elided 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] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub(crate) fn backtrace_field(&self) -> Option<&Field<'_>> {
[INFO] [stdout]    |                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking derive v0.1.0 (/opt/rustwide/workdir/protocol/derive)
[INFO] [stderr]    Compiling futures-macro v0.3.5
[INFO] [stderr]    Compiling ref-cast-impl v1.0.2
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> thiserror/impl/src/attr.rs:27:19
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn get(input: &[Attribute]) -> Result<Attrs> {
[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]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn get(input: &[Attribute]) -> Result<Attrs<'_>> {
[INFO] [stdout]    |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]  --> thiserror/impl/src/prop.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 |     pub(crate) fn from_field(&self) -> Option<&Field> {
[INFO] [stdout]   |                              ^^^^^            ^^^^^^
[INFO] [stdout]   |                              |                ||
[INFO] [stdout]   |                              |                |the same lifetime is hidden here
[INFO] [stdout]   |                              |                the same lifetime is elided 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] help: use `'_` for type paths
[INFO] [stdout]   |
[INFO] [stdout] 5 |     pub(crate) fn from_field(&self) -> Option<&Field<'_>> {
[INFO] [stdout]   |                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]  --> thiserror/impl/src/prop.rs:9:32
[INFO] [stdout]   |
[INFO] [stdout] 9 |     pub(crate) fn source_field(&self) -> Option<&Field> {
[INFO] [stdout]   |                                ^^^^^            ^^^^^^
[INFO] [stdout]   |                                |                ||
[INFO] [stdout]   |                                |                |the same lifetime is hidden here
[INFO] [stdout]   |                                |                the same lifetime is elided 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] help: use `'_` for type paths
[INFO] [stdout]   |
[INFO] [stdout] 9 |     pub(crate) fn source_field(&self) -> Option<&Field<'_>> {
[INFO] [stdout]   |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> thiserror/impl/src/prop.rs:13:35
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub(crate) fn backtrace_field(&self) -> Option<&Field> {
[INFO] [stdout]    |                                   ^^^^^            ^^^^^^
[INFO] [stdout]    |                                   |                ||
[INFO] [stdout]    |                                   |                |the same lifetime is hidden here
[INFO] [stdout]    |                                   |                the same lifetime is elided 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] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub(crate) fn backtrace_field(&self) -> Option<&Field<'_>> {
[INFO] [stdout]    |                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> thiserror/impl/src/prop.rs:46:30
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub(crate) fn from_field(&self) -> Option<&Field> {
[INFO] [stdout]    |                              ^^^^^            ^^^^^^
[INFO] [stdout]    |                              |                ||
[INFO] [stdout]    |                              |                |the same lifetime is hidden here
[INFO] [stdout]    |                              |                the same lifetime is elided 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] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub(crate) fn from_field(&self) -> Option<&Field<'_>> {
[INFO] [stdout]    |                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> thiserror/impl/src/prop.rs:50:32
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub(crate) fn source_field(&self) -> Option<&Field> {
[INFO] [stdout]    |                                ^^^^^            ^^^^^^
[INFO] [stdout]    |                                |                ||
[INFO] [stdout]    |                                |                |the same lifetime is hidden here
[INFO] [stdout]    |                                |                the same lifetime is elided 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] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub(crate) fn source_field(&self) -> Option<&Field<'_>> {
[INFO] [stdout]    |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> thiserror/impl/src/prop.rs:54:35
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub(crate) fn backtrace_field(&self) -> Option<&Field> {
[INFO] [stdout]    |                                   ^^^^^            ^^^^^^
[INFO] [stdout]    |                                   |                ||
[INFO] [stdout]    |                                   |                |the same lifetime is hidden here
[INFO] [stdout]    |                                   |                the same lifetime is elided 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] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub(crate) fn backtrace_field(&self) -> Option<&Field<'_>> {
[INFO] [stdout]    |                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking ref-cast v1.0.2
[INFO] [stderr]     Checking thiserror v1.0.11 (/opt/rustwide/workdir/thiserror)
[INFO] [stderr]     Checking pin-project v0.4.22
[INFO] [stderr]     Checking futures-util v0.3.5
[INFO] [stderr]     Checking futures-executor v0.3.5
[INFO] [stderr]     Checking piper v0.1.3
[INFO] [stderr]     Checking futures v0.3.5
[INFO] [stderr]     Checking protocol v0.1.0 (/opt/rustwide/workdir/protocol)
[INFO] [stderr]     Checking core-futures-io v0.1.0 (/opt/rustwide/workdir/core-futures-io)
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]   --> core-futures-io/src/ext/read/chain.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | / pin_project! {
[INFO] [stdout] 12 | |     #[must_use = "streams do nothing unless polled"]
[INFO] [stdout] 13 | |     #[cfg_attr(docsrs, doc(cfg(feature = "io-util")))]
[INFO] [stdout] 14 | |     pub struct Chain<T, U> {
[INFO] [stdout] ...  |
[INFO] [stdout] 21 | | }
[INFO] [stdout]    | |_^ the borrow produces a value
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]    = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/read/read_int.rs:86:9
[INFO] [stdout]     |
[INFO] [stdout]  86 | /         pin_project! {
[INFO] [stdout]  87 | |             #[doc(hidden)]
[INFO] [stdout]  88 | |             pub struct $name<R> {
[INFO] [stdout]  89 | |                 #[pin]
[INFO] [stdout] ...   |
[INFO] [stdout]  92 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 122 |   reader8!(ReadU8, u8);
[INFO] [stdout]     |   -------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `reader8` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/read/read_int.rs:86:9
[INFO] [stdout]     |
[INFO] [stdout]  86 | /         pin_project! {
[INFO] [stdout]  87 | |             #[doc(hidden)]
[INFO] [stdout]  88 | |             pub struct $name<R> {
[INFO] [stdout]  89 | |                 #[pin]
[INFO] [stdout] ...   |
[INFO] [stdout]  92 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 123 |   reader8!(ReadI8, i8);
[INFO] [stdout]     |   -------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `reader8` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/read/read_int.rs:29:9
[INFO] [stdout]     |
[INFO] [stdout]  29 | /         pin_project! {
[INFO] [stdout]  30 | |             pub struct $name<R> {
[INFO] [stdout]  31 | |                 #[pin]
[INFO] [stdout]  32 | |                 src: R,
[INFO] [stdout] ...   |
[INFO] [stdout]  36 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 125 |   reader!(ReadU16, u16, get_u16);
[INFO] [stdout]     |   ------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `reader` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/read/read_int.rs:29:9
[INFO] [stdout]     |
[INFO] [stdout]  29 | /         pin_project! {
[INFO] [stdout]  30 | |             pub struct $name<R> {
[INFO] [stdout]  31 | |                 #[pin]
[INFO] [stdout]  32 | |                 src: R,
[INFO] [stdout] ...   |
[INFO] [stdout]  36 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 126 |   reader!(ReadU32, u32, get_u32);
[INFO] [stdout]     |   ------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `reader` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/read/read_int.rs:29:9
[INFO] [stdout]     |
[INFO] [stdout]  29 | /         pin_project! {
[INFO] [stdout]  30 | |             pub struct $name<R> {
[INFO] [stdout]  31 | |                 #[pin]
[INFO] [stdout]  32 | |                 src: R,
[INFO] [stdout] ...   |
[INFO] [stdout]  36 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 127 |   reader!(ReadU64, u64, get_u64);
[INFO] [stdout]     |   ------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `reader` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/read/read_int.rs:29:9
[INFO] [stdout]     |
[INFO] [stdout]  29 | /         pin_project! {
[INFO] [stdout]  30 | |             pub struct $name<R> {
[INFO] [stdout]  31 | |                 #[pin]
[INFO] [stdout]  32 | |                 src: R,
[INFO] [stdout] ...   |
[INFO] [stdout]  36 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 128 |   reader!(ReadU128, u128, get_u128);
[INFO] [stdout]     |   --------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `reader` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/read/read_int.rs:29:9
[INFO] [stdout]     |
[INFO] [stdout]  29 | /         pin_project! {
[INFO] [stdout]  30 | |             pub struct $name<R> {
[INFO] [stdout]  31 | |                 #[pin]
[INFO] [stdout]  32 | |                 src: R,
[INFO] [stdout] ...   |
[INFO] [stdout]  36 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 130 |   reader!(ReadI16, i16, get_i16);
[INFO] [stdout]     |   ------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `reader` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/read/read_int.rs:29:9
[INFO] [stdout]     |
[INFO] [stdout]  29 | /         pin_project! {
[INFO] [stdout]  30 | |             pub struct $name<R> {
[INFO] [stdout]  31 | |                 #[pin]
[INFO] [stdout]  32 | |                 src: R,
[INFO] [stdout] ...   |
[INFO] [stdout]  36 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 131 |   reader!(ReadI32, i32, get_i32);
[INFO] [stdout]     |   ------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `reader` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/read/read_int.rs:29:9
[INFO] [stdout]     |
[INFO] [stdout]  29 | /         pin_project! {
[INFO] [stdout]  30 | |             pub struct $name<R> {
[INFO] [stdout]  31 | |                 #[pin]
[INFO] [stdout]  32 | |                 src: R,
[INFO] [stdout] ...   |
[INFO] [stdout]  36 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 132 |   reader!(ReadI64, i64, get_i64);
[INFO] [stdout]     |   ------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `reader` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/read/read_int.rs:29:9
[INFO] [stdout]     |
[INFO] [stdout]  29 | /         pin_project! {
[INFO] [stdout]  30 | |             pub struct $name<R> {
[INFO] [stdout]  31 | |                 #[pin]
[INFO] [stdout]  32 | |                 src: R,
[INFO] [stdout] ...   |
[INFO] [stdout]  36 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 133 |   reader!(ReadI128, i128, get_i128);
[INFO] [stdout]     |   --------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `reader` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]   --> core-futures-io/src/ext/read/take.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | / pin_project! {
[INFO] [stdout] 12 | |     #[derive(Debug)]
[INFO] [stdout] 13 | |     #[must_use = "streams do nothing unless you `.await` or poll them"]
[INFO] [stdout] 14 | |     #[cfg_attr(docsrs, doc(cfg(feature = "io-util")))]
[INFO] [stdout] ...  |
[INFO] [stdout] 20 | | }
[INFO] [stdout]    | |_^ the borrow produces a value
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/write/write_int.rs:70:9
[INFO] [stdout]     |
[INFO] [stdout]  70 | /         pin_project! {
[INFO] [stdout]  71 | |             #[doc(hidden)]
[INFO] [stdout]  72 | |             pub struct $name<W> {
[INFO] [stdout]  73 | |                 #[pin]
[INFO] [stdout] ...   |
[INFO] [stdout]  77 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 108 |   writer8!(WriteU8, u8);
[INFO] [stdout]     |   --------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `writer8` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/write/write_int.rs:70:9
[INFO] [stdout]     |
[INFO] [stdout]  70 | /         pin_project! {
[INFO] [stdout]  71 | |             #[doc(hidden)]
[INFO] [stdout]  72 | |             pub struct $name<W> {
[INFO] [stdout]  73 | |                 #[pin]
[INFO] [stdout] ...   |
[INFO] [stdout]  77 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 109 |   writer8!(WriteI8, i8);
[INFO] [stdout]     |   --------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `writer8` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/write/write_int.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout]  16 | /         pin_project! {
[INFO] [stdout]  17 | |             #[doc(hidden)]
[INFO] [stdout]  18 | |             pub struct $name<W> {
[INFO] [stdout]  19 | |                 #[pin]
[INFO] [stdout] ...   |
[INFO] [stdout]  24 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 111 |   writer!(WriteU16, u16, put_u16);
[INFO] [stdout]     |   ------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `writer` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/write/write_int.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout]  16 | /         pin_project! {
[INFO] [stdout]  17 | |             #[doc(hidden)]
[INFO] [stdout]  18 | |             pub struct $name<W> {
[INFO] [stdout]  19 | |                 #[pin]
[INFO] [stdout] ...   |
[INFO] [stdout]  24 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 112 |   writer!(WriteU32, u32, put_u32);
[INFO] [stdout]     |   ------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `writer` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/write/write_int.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout]  16 | /         pin_project! {
[INFO] [stdout]  17 | |             #[doc(hidden)]
[INFO] [stdout]  18 | |             pub struct $name<W> {
[INFO] [stdout]  19 | |                 #[pin]
[INFO] [stdout] ...   |
[INFO] [stdout]  24 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 113 |   writer!(WriteU64, u64, put_u64);
[INFO] [stdout]     |   ------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `writer` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/write/write_int.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout]  16 | /         pin_project! {
[INFO] [stdout]  17 | |             #[doc(hidden)]
[INFO] [stdout]  18 | |             pub struct $name<W> {
[INFO] [stdout]  19 | |                 #[pin]
[INFO] [stdout] ...   |
[INFO] [stdout]  24 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 114 |   writer!(WriteU128, u128, put_u128);
[INFO] [stdout]     |   ---------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `writer` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/write/write_int.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout]  16 | /         pin_project! {
[INFO] [stdout]  17 | |             #[doc(hidden)]
[INFO] [stdout]  18 | |             pub struct $name<W> {
[INFO] [stdout]  19 | |                 #[pin]
[INFO] [stdout] ...   |
[INFO] [stdout]  24 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 116 |   writer!(WriteI16, i16, put_i16);
[INFO] [stdout]     |   ------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `writer` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/write/write_int.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout]  16 | /         pin_project! {
[INFO] [stdout]  17 | |             #[doc(hidden)]
[INFO] [stdout]  18 | |             pub struct $name<W> {
[INFO] [stdout]  19 | |                 #[pin]
[INFO] [stdout] ...   |
[INFO] [stdout]  24 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 117 |   writer!(WriteI32, i32, put_i32);
[INFO] [stdout]     |   ------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `writer` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/write/write_int.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout]  16 | /         pin_project! {
[INFO] [stdout]  17 | |             #[doc(hidden)]
[INFO] [stdout]  18 | |             pub struct $name<W> {
[INFO] [stdout]  19 | |                 #[pin]
[INFO] [stdout] ...   |
[INFO] [stdout]  24 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 118 |   writer!(WriteI64, i64, put_i64);
[INFO] [stdout]     |   ------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `writer` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/write/write_int.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout]  16 | /         pin_project! {
[INFO] [stdout]  17 | |             #[doc(hidden)]
[INFO] [stdout]  18 | |             pub struct $name<W> {
[INFO] [stdout]  19 | |                 #[pin]
[INFO] [stdout] ...   |
[INFO] [stdout]  24 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 119 |   writer!(WriteI128, i128, put_i128);
[INFO] [stdout]     |   ---------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `writer` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]   --> core-futures-io/src/ext/read/chain.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | / pin_project! {
[INFO] [stdout] 12 | |     #[must_use = "streams do nothing unless polled"]
[INFO] [stdout] 13 | |     #[cfg_attr(docsrs, doc(cfg(feature = "io-util")))]
[INFO] [stdout] 14 | |     pub struct Chain<T, U> {
[INFO] [stdout] ...  |
[INFO] [stdout] 21 | | }
[INFO] [stdout]    | |_^ the borrow produces a value
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]    = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/read/read_int.rs:86:9
[INFO] [stdout]     |
[INFO] [stdout]  86 | /         pin_project! {
[INFO] [stdout]  87 | |             #[doc(hidden)]
[INFO] [stdout]  88 | |             pub struct $name<R> {
[INFO] [stdout]  89 | |                 #[pin]
[INFO] [stdout] ...   |
[INFO] [stdout]  92 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 122 |   reader8!(ReadU8, u8);
[INFO] [stdout]     |   -------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `reader8` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/read/read_int.rs:86:9
[INFO] [stdout]     |
[INFO] [stdout]  86 | /         pin_project! {
[INFO] [stdout]  87 | |             #[doc(hidden)]
[INFO] [stdout]  88 | |             pub struct $name<R> {
[INFO] [stdout]  89 | |                 #[pin]
[INFO] [stdout] ...   |
[INFO] [stdout]  92 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 123 |   reader8!(ReadI8, i8);
[INFO] [stdout]     |   -------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `reader8` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/read/read_int.rs:29:9
[INFO] [stdout]     |
[INFO] [stdout]  29 | /         pin_project! {
[INFO] [stdout]  30 | |             pub struct $name<R> {
[INFO] [stdout]  31 | |                 #[pin]
[INFO] [stdout]  32 | |                 src: R,
[INFO] [stdout] ...   |
[INFO] [stdout]  36 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 125 |   reader!(ReadU16, u16, get_u16);
[INFO] [stdout]     |   ------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `reader` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/read/read_int.rs:29:9
[INFO] [stdout]     |
[INFO] [stdout]  29 | /         pin_project! {
[INFO] [stdout]  30 | |             pub struct $name<R> {
[INFO] [stdout]  31 | |                 #[pin]
[INFO] [stdout]  32 | |                 src: R,
[INFO] [stdout] ...   |
[INFO] [stdout]  36 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 126 |   reader!(ReadU32, u32, get_u32);
[INFO] [stdout]     |   ------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `reader` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/read/read_int.rs:29:9
[INFO] [stdout]     |
[INFO] [stdout]  29 | /         pin_project! {
[INFO] [stdout]  30 | |             pub struct $name<R> {
[INFO] [stdout]  31 | |                 #[pin]
[INFO] [stdout]  32 | |                 src: R,
[INFO] [stdout] ...   |
[INFO] [stdout]  36 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 127 |   reader!(ReadU64, u64, get_u64);
[INFO] [stdout]     |   ------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `reader` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/read/read_int.rs:29:9
[INFO] [stdout]     |
[INFO] [stdout]  29 | /         pin_project! {
[INFO] [stdout]  30 | |             pub struct $name<R> {
[INFO] [stdout]  31 | |                 #[pin]
[INFO] [stdout]  32 | |                 src: R,
[INFO] [stdout] ...   |
[INFO] [stdout]  36 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 128 |   reader!(ReadU128, u128, get_u128);
[INFO] [stdout]     |   --------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `reader` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/read/read_int.rs:29:9
[INFO] [stdout]     |
[INFO] [stdout]  29 | /         pin_project! {
[INFO] [stdout]  30 | |             pub struct $name<R> {
[INFO] [stdout]  31 | |                 #[pin]
[INFO] [stdout]  32 | |                 src: R,
[INFO] [stdout] ...   |
[INFO] [stdout]  36 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 130 |   reader!(ReadI16, i16, get_i16);
[INFO] [stdout]     |   ------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `reader` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/read/read_int.rs:29:9
[INFO] [stdout]     |
[INFO] [stdout]  29 | /         pin_project! {
[INFO] [stdout]  30 | |             pub struct $name<R> {
[INFO] [stdout]  31 | |                 #[pin]
[INFO] [stdout]  32 | |                 src: R,
[INFO] [stdout] ...   |
[INFO] [stdout]  36 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 131 |   reader!(ReadI32, i32, get_i32);
[INFO] [stdout]     |   ------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `reader` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/read/read_int.rs:29:9
[INFO] [stdout]     |
[INFO] [stdout]  29 | /         pin_project! {
[INFO] [stdout]  30 | |             pub struct $name<R> {
[INFO] [stdout]  31 | |                 #[pin]
[INFO] [stdout]  32 | |                 src: R,
[INFO] [stdout] ...   |
[INFO] [stdout]  36 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 132 |   reader!(ReadI64, i64, get_i64);
[INFO] [stdout]     |   ------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `reader` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/read/read_int.rs:29:9
[INFO] [stdout]     |
[INFO] [stdout]  29 | /         pin_project! {
[INFO] [stdout]  30 | |             pub struct $name<R> {
[INFO] [stdout]  31 | |                 #[pin]
[INFO] [stdout]  32 | |                 src: R,
[INFO] [stdout] ...   |
[INFO] [stdout]  36 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 133 |   reader!(ReadI128, i128, get_i128);
[INFO] [stdout]     |   --------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `reader` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]   --> core-futures-io/src/ext/read/take.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | / pin_project! {
[INFO] [stdout] 12 | |     #[derive(Debug)]
[INFO] [stdout] 13 | |     #[must_use = "streams do nothing unless you `.await` or poll them"]
[INFO] [stdout] 14 | |     #[cfg_attr(docsrs, doc(cfg(feature = "io-util")))]
[INFO] [stdout] ...  |
[INFO] [stdout] 20 | | }
[INFO] [stdout]    | |_^ the borrow produces a value
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/write/write_int.rs:70:9
[INFO] [stdout]     |
[INFO] [stdout]  70 | /         pin_project! {
[INFO] [stdout]  71 | |             #[doc(hidden)]
[INFO] [stdout]  72 | |             pub struct $name<W> {
[INFO] [stdout]  73 | |                 #[pin]
[INFO] [stdout] ...   |
[INFO] [stdout]  77 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 108 |   writer8!(WriteU8, u8);
[INFO] [stdout]     |   --------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `writer8` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/write/write_int.rs:70:9
[INFO] [stdout]     |
[INFO] [stdout]  70 | /         pin_project! {
[INFO] [stdout]  71 | |             #[doc(hidden)]
[INFO] [stdout]  72 | |             pub struct $name<W> {
[INFO] [stdout]  73 | |                 #[pin]
[INFO] [stdout] ...   |
[INFO] [stdout]  77 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 109 |   writer8!(WriteI8, i8);
[INFO] [stdout]     |   --------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `writer8` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/write/write_int.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout]  16 | /         pin_project! {
[INFO] [stdout]  17 | |             #[doc(hidden)]
[INFO] [stdout]  18 | |             pub struct $name<W> {
[INFO] [stdout]  19 | |                 #[pin]
[INFO] [stdout] ...   |
[INFO] [stdout]  24 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 111 |   writer!(WriteU16, u16, put_u16);
[INFO] [stdout]     |   ------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `writer` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/write/write_int.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout]  16 | /         pin_project! {
[INFO] [stdout]  17 | |             #[doc(hidden)]
[INFO] [stdout]  18 | |             pub struct $name<W> {
[INFO] [stdout]  19 | |                 #[pin]
[INFO] [stdout] ...   |
[INFO] [stdout]  24 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 112 |   writer!(WriteU32, u32, put_u32);
[INFO] [stdout]     |   ------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `writer` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/write/write_int.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout]  16 | /         pin_project! {
[INFO] [stdout]  17 | |             #[doc(hidden)]
[INFO] [stdout]  18 | |             pub struct $name<W> {
[INFO] [stdout]  19 | |                 #[pin]
[INFO] [stdout] ...   |
[INFO] [stdout]  24 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 113 |   writer!(WriteU64, u64, put_u64);
[INFO] [stdout]     |   ------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `writer` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/write/write_int.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout]  16 | /         pin_project! {
[INFO] [stdout]  17 | |             #[doc(hidden)]
[INFO] [stdout]  18 | |             pub struct $name<W> {
[INFO] [stdout]  19 | |                 #[pin]
[INFO] [stdout] ...   |
[INFO] [stdout]  24 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 114 |   writer!(WriteU128, u128, put_u128);
[INFO] [stdout]     |   ---------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `writer` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/write/write_int.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout]  16 | /         pin_project! {
[INFO] [stdout]  17 | |             #[doc(hidden)]
[INFO] [stdout]  18 | |             pub struct $name<W> {
[INFO] [stdout]  19 | |                 #[pin]
[INFO] [stdout] ...   |
[INFO] [stdout]  24 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 116 |   writer!(WriteI16, i16, put_i16);
[INFO] [stdout]     |   ------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `writer` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/write/write_int.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout]  16 | /         pin_project! {
[INFO] [stdout]  17 | |             #[doc(hidden)]
[INFO] [stdout]  18 | |             pub struct $name<W> {
[INFO] [stdout]  19 | |                 #[pin]
[INFO] [stdout] ...   |
[INFO] [stdout]  24 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 117 |   writer!(WriteI32, i32, put_i32);
[INFO] [stdout]     |   ------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `writer` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/write/write_int.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout]  16 | /         pin_project! {
[INFO] [stdout]  17 | |             #[doc(hidden)]
[INFO] [stdout]  18 | |             pub struct $name<W> {
[INFO] [stdout]  19 | |                 #[pin]
[INFO] [stdout] ...   |
[INFO] [stdout]  24 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 118 |   writer!(WriteI64, i64, put_i64);
[INFO] [stdout]     |   ------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `writer` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> core-futures-io/src/ext/write/write_int.rs:16:9
[INFO] [stdout]     |
[INFO] [stdout]  16 | /         pin_project! {
[INFO] [stdout]  17 | |             #[doc(hidden)]
[INFO] [stdout]  18 | |             pub struct $name<W> {
[INFO] [stdout]  19 | |                 #[pin]
[INFO] [stdout] ...   |
[INFO] [stdout]  24 | |         }
[INFO] [stdout]     | |_________^ the borrow produces a value
[INFO] [stdout] ...
[INFO] [stdout] 119 |   writer!(WriteI128, i128, put_i128);
[INFO] [stdout]     |   ---------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `$crate::__pin_project_internal` which comes from the expansion of the macro `writer` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking erasure-traits v0.1.0 (/opt/rustwide/workdir/erasure-traits)
[INFO] [stderr]     Checking toml v0.5.6
[INFO] [stderr]     Checking bincode v1.2.1
[INFO] [stderr]     Checking trybuild v1.0.30
[INFO] [stdout] warning: unexpected `cfg` condition name: `thiserror_nightly_testing`
[INFO] [stdout]  --> thiserror/tests/test_option.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![cfg_attr(thiserror_nightly_testing, feature(backtrace))]
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: expected names are: `docsrs`, `feature`, and `test` and 32 more
[INFO] [stdout]   = help: consider using a Cargo feature instead
[INFO] [stdout]   = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]            [lints.rust]
[INFO] [stdout]            unexpected_cfgs = { level = "warn", check-cfg = ['cfg(thiserror_nightly_testing)'] }
[INFO] [stdout]   = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(thiserror_nightly_testing)");` to the top of the `build.rs`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `thiserror_nightly_testing`
[INFO] [stdout]  --> thiserror/tests/test_option.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[cfg(thiserror_nightly_testing)]
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider using a Cargo feature instead
[INFO] [stdout]   = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]            [lints.rust]
[INFO] [stdout]            unexpected_cfgs = { level = "warn", check-cfg = ['cfg(thiserror_nightly_testing)'] }
[INFO] [stdout]   = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(thiserror_nightly_testing)");` to the top of the `build.rs`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `thiserror_nightly_testing`
[INFO] [stdout]   --> thiserror/tests/test_option.rs:48:7
[INFO] [stdout]    |
[INFO] [stdout] 48 | #[cfg(thiserror_nightly_testing)]
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider using a Cargo feature instead
[INFO] [stdout]    = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]             [lints.rust]
[INFO] [stdout]             unexpected_cfgs = { level = "warn", check-cfg = ['cfg(thiserror_nightly_testing)'] }
[INFO] [stdout]    = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(thiserror_nightly_testing)");` to the top of the `build.rs`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `thiserror_nightly_testing`
[INFO] [stdout]    --> thiserror/tests/test_option.rs:104:16
[INFO] [stdout]     |
[INFO] [stdout] 104 | #[cfg_attr(not(thiserror_nightly_testing), ignore)]
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider using a Cargo feature instead
[INFO] [stdout]     = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]              [lints.rust]
[INFO] [stdout]              unexpected_cfgs = { level = "warn", check-cfg = ['cfg(thiserror_nightly_testing)'] }
[INFO] [stdout]     = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(thiserror_nightly_testing)");` to the top of the `build.rs`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Error` is never used
[INFO] [stdout]    --> thiserror/tests/test_display.rs:147:14
[INFO] [stdout]     |
[INFO] [stdout] 147 |     pub enum Error {}
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/arrays.rs:330:25
[INFO] [stdout]     |
[INFO] [stdout] 330 |                         replace(this, Array0001Unravel::Fork(ctx.fork(data)));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 330 |                         let _ = replace(this, Array0001Unravel::Fork(ctx.fork(data)));
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/arrays.rs:338:21
[INFO] [stdout]     |
[INFO] [stdout] 338 |                     replace(this, Array0001Unravel::Write(handle, target));
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 338 |                     let _ = replace(this, Array0001Unravel::Write(handle, target));
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/arrays.rs:346:25
[INFO] [stdout]     |
[INFO] [stdout] 346 |                         replace(this, Array0001Unravel::Flush(target));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 346 |                         let _ = replace(this, Array0001Unravel::Flush(target));
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/arrays.rs:356:25
[INFO] [stdout]     |
[INFO] [stdout] 356 |                         replace(this, Array0001Unravel::Target(target));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 356 |                         let _ = replace(this, Array0001Unravel::Target(target));
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/arrays.rs:364:21
[INFO] [stdout]     |
[INFO] [stdout] 364 |                     replace(this, Array0001Unravel::Done);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 364 |                     let _ = replace(this, Array0001Unravel::Done);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/arrays.rs:397:21
[INFO] [stdout]     |
[INFO] [stdout] 397 |                     replace(this, Array0001Coalesce::Join(ctx.join(handle)));
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 397 |                     let _ = replace(this, Array0001Coalesce::Join(ctx.join(handle)));
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/option.rs:117:21
[INFO] [stdout]     |
[INFO] [stdout] 117 |                     replace(this, OptionUnravel::Flush(None));
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 117 |                     let _ = replace(this, OptionUnravel::Flush(None));
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/option.rs:122:25
[INFO] [stdout]     |
[INFO] [stdout] 122 |                         replace(this, OptionUnravel::Fork(ctx.fork(data)));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 122 |                         let _ = replace(this, OptionUnravel::Fork(ctx.fork(data)));
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/option.rs:130:21
[INFO] [stdout]     |
[INFO] [stdout] 130 |                     replace(this, OptionUnravel::Write(handle, target));
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 130 |                     let _ = replace(this, OptionUnravel::Write(handle, target));
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/option.rs:139:25
[INFO] [stdout]     |
[INFO] [stdout] 139 |                         replace(this, OptionUnravel::Flush(Some(target)));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 139 |                         let _ = replace(this, OptionUnravel::Flush(Some(target)));
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/option.rs:150:29
[INFO] [stdout]     |
[INFO] [stdout] 150 | ...                   replace(this, OptionUnravel::Target(target));
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 150 |                             let _ = replace(this, OptionUnravel::Target(target));
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/option.rs:152:29
[INFO] [stdout]     |
[INFO] [stdout] 152 | ...                   replace(this, OptionUnravel::Done);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 152 |                             let _ = replace(this, OptionUnravel::Done);
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/option.rs:162:21
[INFO] [stdout]     |
[INFO] [stdout] 162 |                     replace(this, OptionUnravel::Done);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 162 |                     let _ = replace(this, OptionUnravel::Done);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/option.rs:197:29
[INFO] [stdout]     |
[INFO] [stdout] 197 | ...                   replace(this, OptionCoalesce::Done);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 197 |                             let _ = replace(this, OptionCoalesce::Done);
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/option.rs:201:29
[INFO] [stdout]     |
[INFO] [stdout] 201 | ...                   replace(this, OptionCoalesce::Join(ctx.join(handle)));
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 201 |                             let _ = replace(this, OptionCoalesce::Join(ctx.join(handle)));
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/result.rs:169:25
[INFO] [stdout]     |
[INFO] [stdout] 169 |                         replace(this, ResultUnravel::OkFork(ctx.fork(data)));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 169 |                         let _ = replace(this, ResultUnravel::OkFork(ctx.fork(data)));
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/result.rs:177:21
[INFO] [stdout]     |
[INFO] [stdout] 177 |                     replace(this, ResultUnravel::OkWrite(handle, target));
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 177 |                     let _ = replace(this, ResultUnravel::OkWrite(handle, target));
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/result.rs:182:25
[INFO] [stdout]     |
[INFO] [stdout] 182 |                         replace(this, ResultUnravel::ErrFork(ctx.fork(data)));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 182 |                         let _ = replace(this, ResultUnravel::ErrFork(ctx.fork(data)));
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/result.rs:190:21
[INFO] [stdout]     |
[INFO] [stdout] 190 |                     replace(this, ResultUnravel::ErrWrite(handle, target));
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 190 |                     let _ = replace(this, ResultUnravel::ErrWrite(handle, target));
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/result.rs:198:25
[INFO] [stdout]     |
[INFO] [stdout] 198 |                         replace(this, ResultUnravel::OkFlush(target));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 198 |                         let _ = replace(this, ResultUnravel::OkFlush(target));
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/result.rs:210:25
[INFO] [stdout]     |
[INFO] [stdout] 210 |                         replace(this, ResultUnravel::ErrFlush(target));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 210 |                         let _ = replace(this, ResultUnravel::ErrFlush(target));
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/result.rs:220:25
[INFO] [stdout]     |
[INFO] [stdout] 220 |                         replace(this, ResultUnravel::OkTarget(target));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 220 |                         let _ = replace(this, ResultUnravel::OkTarget(target));
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/result.rs:230:25
[INFO] [stdout]     |
[INFO] [stdout] 230 |                         replace(this, ResultUnravel::ErrTarget(target));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 230 |                         let _ = replace(this, ResultUnravel::ErrTarget(target));
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/result.rs:238:21
[INFO] [stdout]     |
[INFO] [stdout] 238 |                     replace(this, ResultUnravel::Done);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 238 |                     let _ = replace(this, ResultUnravel::Done);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/result.rs:246:21
[INFO] [stdout]     |
[INFO] [stdout] 246 |                     replace(this, ResultUnravel::Done);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 246 |                     let _ = replace(this, ResultUnravel::Done);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/result.rs:294:29
[INFO] [stdout]     |
[INFO] [stdout] 294 | / ...                   replace(
[INFO] [stdout] 295 | | ...                       this,
[INFO] [stdout] 296 | | ...                       ResultCoalesce::OkJoin(<C as Join<T>>::join(ctx, data)),
[INFO] [stdout] 297 | | ...                   );
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 294 |                             let _ = replace(
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/result.rs:300:29
[INFO] [stdout]     |
[INFO] [stdout] 300 | / ...                   replace(
[INFO] [stdout] 301 | | ...                       this,
[INFO] [stdout] 302 | | ...                       ResultCoalesce::ErrJoin(<C as Join<E>>::join(ctx, data)),
[INFO] [stdout] 303 | | ...                   );
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 300 |                             let _ = replace(
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/tuples.rs:649:21
[INFO] [stdout]     |
[INFO] [stdout] 649 | /                     replace(
[INFO] [stdout] 650 | |                         &mut this.state,
[INFO] [stdout] 651 | |                         Tuple2UnravelState::T(
[INFO] [stdout] 652 | |                             ctx.fork(this.data.0.take().expect("data incomplete")),
[INFO] [stdout] 653 | |                         ),
[INFO] [stdout] 654 | |                     );
[INFO] [stdout]     | |_____________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 649 |                     let _ = replace(
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/tuples.rs:661:21
[INFO] [stdout]     |
[INFO] [stdout] 661 | /                     replace(
[INFO] [stdout] 662 | |                         &mut this.state,
[INFO] [stdout] 663 | |                         Tuple2UnravelState::U(
[INFO] [stdout] 664 | |                             ctx.fork(this.data.1.take().expect("data incomplete")),
[INFO] [stdout] 665 | |                         ),
[INFO] [stdout] 666 | |                     );
[INFO] [stdout]     | |_____________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 661 |                     let _ = replace(
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/tuples.rs:673:21
[INFO] [stdout]     |
[INFO] [stdout] 673 |                     replace(&mut this.state, Tuple2UnravelState::Writing);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 673 |                     let _ = replace(&mut this.state, Tuple2UnravelState::Writing);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/tuples.rs:683:21
[INFO] [stdout]     |
[INFO] [stdout] 683 |                     replace(&mut this.state, Tuple2UnravelState::Flushing);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 683 |                     let _ = replace(&mut this.state, Tuple2UnravelState::Flushing);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/tuples.rs:689:21
[INFO] [stdout]     |
[INFO] [stdout] 689 |                     replace(&mut this.state, Tuple2UnravelState::Target);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 689 |                     let _ = replace(&mut this.state, Tuple2UnravelState::Target);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/tuples.rs:695:21
[INFO] [stdout]     |
[INFO] [stdout] 695 |                     replace(&mut this.state, Tuple2UnravelState::Done);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 695 |                     let _ = replace(&mut this.state, Tuple2UnravelState::Done);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/tuples.rs:746:21
[INFO] [stdout]     |
[INFO] [stdout] 746 | /                     replace(
[INFO] [stdout] 747 | |                         &mut this.state,
[INFO] [stdout] 748 | |                         Tuple2CoalesceState::T(<C as Join<T>>::join(ctx, first)),
[INFO] [stdout] 749 | |                     );
[INFO] [stdout]     | |_____________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 746 |                     let _ = replace(
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/tuples.rs:757:21
[INFO] [stdout]     |
[INFO] [stdout] 757 | /                     replace(
[INFO] [stdout] 758 | |                         &mut this.state,
[INFO] [stdout] 759 | |                         Tuple2CoalesceState::U(<C as Join<U>>::join(
[INFO] [stdout] 760 | |                             ctx,
[INFO] [stdout] 761 | |                             this.handles.1.take().expect("handles incomplete"),
[INFO] [stdout] 762 | |                         )),
[INFO] [stdout] 763 | |                     );
[INFO] [stdout]     | |_____________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 757 |                     let _ = replace(
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/tuples.rs:769:21
[INFO] [stdout]     |
[INFO] [stdout] 769 |                     replace(&mut this.state, Tuple2CoalesceState::Done);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 769 |                     let _ = replace(&mut this.state, Tuple2CoalesceState::Done);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/tuples.rs:981:25
[INFO] [stdout]     |
[INFO] [stdout] 981 |                         replace(&mut this.state, FlatUnravelState::Fork(ctx.fork(data)));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 981 |                         let _ = replace(&mut this.state, FlatUnravelState::Fork(ctx.fork(data)));
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/tuples.rs:989:21
[INFO] [stdout]     |
[INFO] [stdout] 989 |                     replace(&mut this.state, FlatUnravelState::Write(handle, target));
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 989 |                     let _ = replace(&mut this.state, FlatUnravelState::Write(handle, target));
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/tuples.rs:997:25
[INFO] [stdout]     |
[INFO] [stdout] 997 |                         replace(&mut this.state, FlatUnravelState::Flush(target));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 997 |                         let _ = replace(&mut this.state, FlatUnravelState::Flush(target));
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]     --> protocol/src/tuples.rs:1007:25
[INFO] [stdout]      |
[INFO] [stdout] 1007 |                         replace(&mut this.state, FlatUnravelState::Target(target));
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1007 |                         let _ = replace(&mut this.state, FlatUnravelState::Target(target));
[INFO] [stdout]      |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]     --> protocol/src/tuples.rs:1015:21
[INFO] [stdout]      |
[INFO] [stdout] 1015 |                     replace(&mut this.state, FlatUnravelState::Done);
[INFO] [stdout]      |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1015 |                     let _ = replace(&mut this.state, FlatUnravelState::Done);
[INFO] [stdout]      |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]     --> protocol/src/tuples.rs:1048:21
[INFO] [stdout]      |
[INFO] [stdout] 1048 |                     replace(&mut this.state, FlatCoalesceState::Join(ctx.join(handle)));
[INFO] [stdout]      |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1048 |                     let _ = replace(&mut this.state, FlatCoalesceState::Join(ctx.join(handle)));
[INFO] [stdout]      |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]     --> protocol/src/tuples.rs:1053:21
[INFO] [stdout]      |
[INFO] [stdout] 1053 |                     replace(&mut this.state, FlatCoalesceState::Done);
[INFO] [stdout]      |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1053 |                     let _ = replace(&mut this.state, FlatCoalesceState::Done);
[INFO] [stdout]      |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]     --> protocol/src/tuples.rs:1098:1
[INFO] [stdout]      |
[INFO] [stdout] 1098 | / tuple_impls! {
[INFO] [stdout] 1099 | |     Tuple3Coalesce  Tuple3CoalesceState  Tuple3Unravel  Tuple3UnravelState  Tuple3UnravelError  Tuple3CoalesceError  => (0 (T0 T...
[INFO] [stdout] 1100 | |     Tuple4Coalesce  Tuple4CoalesceState  Tuple4Unravel  Tuple4UnravelState  Tuple4UnravelError  Tuple4CoalesceError  => (0 (T0 T...
[INFO] [stdout] 1101 | |     Tuple5Coalesce  Tuple5CoalesceState  Tuple5Unravel  Tuple5UnravelState  Tuple5UnravelError  Tuple5CoalesceError  => (0 (T0 T...
[INFO] [stdout] ...    |
[INFO] [stdout] 1112 | |     Tuple16Coalesce Tuple16CoalesceState Tuple16Unravel Tuple16UnravelState Tuple16UnravelError Tuple16CoalesceError => (0 (T0 T...
[INFO] [stdout] 1113 | | }
[INFO] [stdout]      | |_^
[INFO] [stdout]      |
[INFO] [stdout]      = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1098 | let _ = tuple_impls! {
[INFO] [stdout]      | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking protocol-mve-transport v0.1.0 (/opt/rustwide/workdir/protocol-mve-transport)
[INFO] [stderr]     Checking compilemem v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `core::pin::Pin`
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use core::pin::Pin;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Sink` and `Stream`
[INFO] [stdout]  --> src/main.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use futures::{Sink, Stream};
[INFO] [stdout]   |               ^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::pin::Pin`
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use core::pin::Pin;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Sink` and `Stream`
[INFO] [stdout]  --> src/main.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use futures::{Sink, Stream};
[INFO] [stdout]   |               ^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Tester` is never constructed
[INFO] [stdout]    --> src/main.rs:104:8
[INFO] [stdout]     |
[INFO] [stdout] 104 | struct Tester
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Coalesce` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Coalesce_C_FOR_Id` and up 2 bodies
[INFO] [stdout] 10 | #[derive(Debug, Clone, Copy, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 11 | pub struct Id([u8; 32]);
[INFO] [stdout]    |            -- `Id` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Unravel` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Unravel_C_FOR_Id` and up 2 bodies
[INFO] [stdout] 10 | #[derive(Debug, Clone, Copy, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 11 | pub struct Id([u8; 32]);
[INFO] [stdout]    |            -- `Id` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Coalesce` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Coalesce_C_FOR_Item` and up 2 bodies
[INFO] [stdout] 14 | #[derive(Debug, Clone, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 15 | pub struct Item {
[INFO] [stdout]    |            ---- `Item` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Unravel` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Unravel_C_FOR_Item` and up 2 bodies
[INFO] [stdout] 14 | #[derive(Debug, Clone, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 15 | pub struct Item {
[INFO] [stdout]    |            ---- `Item` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:20:1
[INFO] [stdout]    |
[INFO] [stdout] 20 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Coalesce` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Coalesce_C_FOR_TypePosition` and up 2 bodies
[INFO] [stdout] 21 | #[derive(Debug, Clone, Copy, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 22 | pub enum TypePosition {
[INFO] [stdout]    |          ------------ `TypePosition` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:20:1
[INFO] [stdout]    |
[INFO] [stdout] 20 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Unravel` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Unravel_C_FOR_TypePosition` and up 2 bodies
[INFO] [stdout] 21 | #[derive(Debug, Clone, Copy, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 22 | pub enum TypePosition {
[INFO] [stdout]    |          ------------ `TypePosition` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:27:1
[INFO] [stdout]    |
[INFO] [stdout] 27 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Coalesce` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Coalesce_C_FOR_Generics` and up 2 bodies
[INFO] [stdout] 28 | #[derive(Debug, Clone, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 29 | pub struct Generics {
[INFO] [stdout]    |            -------- `Generics` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:27:1
[INFO] [stdout]    |
[INFO] [stdout] 27 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Unravel` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Unravel_C_FOR_Generics` and up 2 bodies
[INFO] [stdout] 28 | #[derive(Debug, Clone, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 29 | pub struct Generics {
[INFO] [stdout]    |            -------- `Generics` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Coalesce` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Coalesce_C_FOR_Binding` and up 2 bodies
[INFO] [stdout] 35 | #[derive(Debug, Clone, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 36 | pub struct Binding {
[INFO] [stdout]    |            ------- `Binding` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Unravel` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Unravel_C_FOR_Binding` and up 2 bodies
[INFO] [stdout] 35 | #[derive(Debug, Clone, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 36 | pub struct Binding {
[INFO] [stdout]    |            ------- `Binding` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:41:1
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Coalesce` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Coalesce_C_FOR_Product` and up 2 bodies
[INFO] [stdout] 42 | #[derive(Debug, Clone, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 43 | pub struct Product {
[INFO] [stdout]    |            ------- `Product` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:41:1
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Unravel` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Unravel_C_FOR_Product` and up 2 bodies
[INFO] [stdout] 42 | #[derive(Debug, Clone, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 43 | pub struct Product {
[INFO] [stdout]    |            ------- `Product` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:47:1
[INFO] [stdout]    |
[INFO] [stdout] 47 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Coalesce` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Coalesce_C_FOR_Variant` and up 2 bodies
[INFO] [stdout] 48 | #[derive(Debug, Clone, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 49 | pub struct Variant {
[INFO] [stdout]    |            ------- `Variant` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:47:1
[INFO] [stdout]    |
[INFO] [stdout] 47 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Unravel` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Unravel_C_FOR_Variant` and up 2 bodies
[INFO] [stdout] 48 | #[derive(Debug, Clone, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 49 | pub struct Variant {
[INFO] [stdout]    |            ------- `Variant` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:54:1
[INFO] [stdout]    |
[INFO] [stdout] 54 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Coalesce` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Coalesce_C_FOR_Receiver` and up 2 bodies
[INFO] [stdout] 55 | #[derive(Debug, Clone, Copy, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 56 | pub enum Receiver {
[INFO] [stdout]    |          -------- `Receiver` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:54:1
[INFO] [stdout]    |
[INFO] [stdout] 54 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Unravel` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Unravel_C_FOR_Receiver` and up 2 bodies
[INFO] [stdout] 55 | #[derive(Debug, Clone, Copy, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 56 | pub enum Receiver {
[INFO] [stdout]    |          -------- `Receiver` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:62:1
[INFO] [stdout]    |
[INFO] [stdout] 62 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Coalesce` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Coalesce_C_FOR_Method` and up 2 bodies
[INFO] [stdout] 63 | #[derive(Debug, Clone, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 64 | pub struct Method {
[INFO] [stdout]    |            ------ `Method` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:62:1
[INFO] [stdout]    |
[INFO] [stdout] 62 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Unravel` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Unravel_C_FOR_Method` and up 2 bodies
[INFO] [stdout] 63 | #[derive(Debug, Clone, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 64 | pub struct Method {
[INFO] [stdout]    |            ------ `Method` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:70:1
[INFO] [stdout]    |
[INFO] [stdout] 70 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Coalesce` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Coalesce_C_FOR_Capture` and up 2 bodies
[INFO] [stdout] 71 | #[derive(Debug, Clone, Copy, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 72 | pub enum Capture {
[INFO] [stdout]    |          ------- `Capture` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:70:1
[INFO] [stdout]    |
[INFO] [stdout] 70 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Unravel` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Unravel_C_FOR_Capture` and up 2 bodies
[INFO] [stdout] 71 | #[derive(Debug, Clone, Copy, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 72 | pub enum Capture {
[INFO] [stdout]    |          ------- `Capture` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:78:1
[INFO] [stdout]    |
[INFO] [stdout] 78 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Coalesce` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Coalesce_C_FOR_Type` and up 2 bodies
[INFO] [stdout] 79 | #[derive(Debug, Clone, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 80 | pub enum Type {
[INFO] [stdout]    |          ---- `Type` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:78:1
[INFO] [stdout]    |
[INFO] [stdout] 78 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Unravel` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Unravel_C_FOR_Type` and up 2 bodies
[INFO] [stdout] 79 | #[derive(Debug, Clone, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 80 | pub enum Type {
[INFO] [stdout]    |          ---- `Type` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Tester` is never constructed
[INFO] [stdout]    --> src/main.rs:104:8
[INFO] [stdout]     |
[INFO] [stdout] 104 | struct Tester
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Coalesce` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Coalesce_C_FOR_Id` and up 2 bodies
[INFO] [stdout] 10 | #[derive(Debug, Clone, Copy, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 11 | pub struct Id([u8; 32]);
[INFO] [stdout]    |            -- `Id` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Unravel` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Unravel_C_FOR_Id` and up 2 bodies
[INFO] [stdout] 10 | #[derive(Debug, Clone, Copy, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 11 | pub struct Id([u8; 32]);
[INFO] [stdout]    |            -- `Id` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Coalesce` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Coalesce_C_FOR_Item` and up 2 bodies
[INFO] [stdout] 14 | #[derive(Debug, Clone, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 15 | pub struct Item {
[INFO] [stdout]    |            ---- `Item` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Unravel` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Unravel_C_FOR_Item` and up 2 bodies
[INFO] [stdout] 14 | #[derive(Debug, Clone, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 15 | pub struct Item {
[INFO] [stdout]    |            ---- `Item` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:20:1
[INFO] [stdout]    |
[INFO] [stdout] 20 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Coalesce` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Coalesce_C_FOR_TypePosition` and up 2 bodies
[INFO] [stdout] 21 | #[derive(Debug, Clone, Copy, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 22 | pub enum TypePosition {
[INFO] [stdout]    |          ------------ `TypePosition` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:20:1
[INFO] [stdout]    |
[INFO] [stdout] 20 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Unravel` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Unravel_C_FOR_TypePosition` and up 2 bodies
[INFO] [stdout] 21 | #[derive(Debug, Clone, Copy, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 22 | pub enum TypePosition {
[INFO] [stdout]    |          ------------ `TypePosition` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:27:1
[INFO] [stdout]    |
[INFO] [stdout] 27 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Coalesce` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Coalesce_C_FOR_Generics` and up 2 bodies
[INFO] [stdout] 28 | #[derive(Debug, Clone, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 29 | pub struct Generics {
[INFO] [stdout]    |            -------- `Generics` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:27:1
[INFO] [stdout]    |
[INFO] [stdout] 27 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Unravel` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Unravel_C_FOR_Generics` and up 2 bodies
[INFO] [stdout] 28 | #[derive(Debug, Clone, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 29 | pub struct Generics {
[INFO] [stdout]    |            -------- `Generics` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Coalesce` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Coalesce_C_FOR_Binding` and up 2 bodies
[INFO] [stdout] 35 | #[derive(Debug, Clone, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 36 | pub struct Binding {
[INFO] [stdout]    |            ------- `Binding` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Unravel` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Unravel_C_FOR_Binding` and up 2 bodies
[INFO] [stdout] 35 | #[derive(Debug, Clone, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 36 | pub struct Binding {
[INFO] [stdout]    |            ------- `Binding` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:41:1
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Coalesce` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Coalesce_C_FOR_Product` and up 2 bodies
[INFO] [stdout] 42 | #[derive(Debug, Clone, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 43 | pub struct Product {
[INFO] [stdout]    |            ------- `Product` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:41:1
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Unravel` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Unravel_C_FOR_Product` and up 2 bodies
[INFO] [stdout] 42 | #[derive(Debug, Clone, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 43 | pub struct Product {
[INFO] [stdout]    |            ------- `Product` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:47:1
[INFO] [stdout]    |
[INFO] [stdout] 47 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Coalesce` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Coalesce_C_FOR_Variant` and up 2 bodies
[INFO] [stdout] 48 | #[derive(Debug, Clone, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 49 | pub struct Variant {
[INFO] [stdout]    |            ------- `Variant` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:47:1
[INFO] [stdout]    |
[INFO] [stdout] 47 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Unravel` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Unravel_C_FOR_Variant` and up 2 bodies
[INFO] [stdout] 48 | #[derive(Debug, Clone, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 49 | pub struct Variant {
[INFO] [stdout]    |            ------- `Variant` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:54:1
[INFO] [stdout]    |
[INFO] [stdout] 54 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Coalesce` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Coalesce_C_FOR_Receiver` and up 2 bodies
[INFO] [stdout] 55 | #[derive(Debug, Clone, Copy, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 56 | pub enum Receiver {
[INFO] [stdout]    |          -------- `Receiver` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:54:1
[INFO] [stdout]    |
[INFO] [stdout] 54 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Unravel` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Unravel_C_FOR_Receiver` and up 2 bodies
[INFO] [stdout] 55 | #[derive(Debug, Clone, Copy, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 56 | pub enum Receiver {
[INFO] [stdout]    |          -------- `Receiver` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:62:1
[INFO] [stdout]    |
[INFO] [stdout] 62 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Coalesce` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Coalesce_C_FOR_Method` and up 2 bodies
[INFO] [stdout] 63 | #[derive(Debug, Clone, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 64 | pub struct Method {
[INFO] [stdout]    |            ------ `Method` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:62:1
[INFO] [stdout]    |
[INFO] [stdout] 62 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Unravel` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Unravel_C_FOR_Method` and up 2 bodies
[INFO] [stdout] 63 | #[derive(Debug, Clone, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 64 | pub struct Method {
[INFO] [stdout]    |            ------ `Method` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:70:1
[INFO] [stdout]    |
[INFO] [stdout] 70 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Coalesce` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Coalesce_C_FOR_Capture` and up 2 bodies
[INFO] [stdout] 71 | #[derive(Debug, Clone, Copy, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 72 | pub enum Capture {
[INFO] [stdout]    |          ------- `Capture` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:70:1
[INFO] [stdout]    |
[INFO] [stdout] 70 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Unravel` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Unravel_C_FOR_Capture` and up 2 bodies
[INFO] [stdout] 71 | #[derive(Debug, Clone, Copy, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 72 | pub enum Capture {
[INFO] [stdout]    |          ------- `Capture` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:78:1
[INFO] [stdout]    |
[INFO] [stdout] 78 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Coalesce` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Coalesce_C_FOR_Type` and up 2 bodies
[INFO] [stdout] 79 | #[derive(Debug, Clone, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 80 | pub enum Type {
[INFO] [stdout]    |          ---- `Type` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:78:1
[INFO] [stdout]    |
[INFO] [stdout] 78 | #[protocol]
[INFO] [stdout]    | ^----------
[INFO] [stdout]    | |
[INFO] [stdout]    | `Unravel` is not local
[INFO] [stdout]    | move the `impl` block outside of this constant `_DERIVE_protocol_Unravel_C_FOR_Type` and up 2 bodies
[INFO] [stdout] 79 | #[derive(Debug, Clone, Eq, Hash, PartialEq, Deserialize, Serialize)]
[INFO] [stdout] 80 | pub enum Type {
[INFO] [stdout]    |          ---- `Type` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `protocol` may come from an old version of the `derive` crate, try updating your dependency with `cargo update -p derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the attribute macro `protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/arrays.rs:330:25
[INFO] [stdout]     |
[INFO] [stdout] 330 |                         replace(this, Array0001Unravel::Fork(ctx.fork(data)));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 330 |                         let _ = replace(this, Array0001Unravel::Fork(ctx.fork(data)));
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/arrays.rs:338:21
[INFO] [stdout]     |
[INFO] [stdout] 338 |                     replace(this, Array0001Unravel::Write(handle, target));
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 338 |                     let _ = replace(this, Array0001Unravel::Write(handle, target));
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/arrays.rs:346:25
[INFO] [stdout]     |
[INFO] [stdout] 346 |                         replace(this, Array0001Unravel::Flush(target));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 346 |                         let _ = replace(this, Array0001Unravel::Flush(target));
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/arrays.rs:356:25
[INFO] [stdout]     |
[INFO] [stdout] 356 |                         replace(this, Array0001Unravel::Target(target));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 356 |                         let _ = replace(this, Array0001Unravel::Target(target));
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/arrays.rs:364:21
[INFO] [stdout]     |
[INFO] [stdout] 364 |                     replace(this, Array0001Unravel::Done);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 364 |                     let _ = replace(this, Array0001Unravel::Done);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/arrays.rs:397:21
[INFO] [stdout]     |
[INFO] [stdout] 397 |                     replace(this, Array0001Coalesce::Join(ctx.join(handle)));
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 397 |                     let _ = replace(this, Array0001Coalesce::Join(ctx.join(handle)));
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/option.rs:117:21
[INFO] [stdout]     |
[INFO] [stdout] 117 |                     replace(this, OptionUnravel::Flush(None));
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 117 |                     let _ = replace(this, OptionUnravel::Flush(None));
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/option.rs:122:25
[INFO] [stdout]     |
[INFO] [stdout] 122 |                         replace(this, OptionUnravel::Fork(ctx.fork(data)));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 122 |                         let _ = replace(this, OptionUnravel::Fork(ctx.fork(data)));
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/option.rs:130:21
[INFO] [stdout]     |
[INFO] [stdout] 130 |                     replace(this, OptionUnravel::Write(handle, target));
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 130 |                     let _ = replace(this, OptionUnravel::Write(handle, target));
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/option.rs:139:25
[INFO] [stdout]     |
[INFO] [stdout] 139 |                         replace(this, OptionUnravel::Flush(Some(target)));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 139 |                         let _ = replace(this, OptionUnravel::Flush(Some(target)));
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/option.rs:150:29
[INFO] [stdout]     |
[INFO] [stdout] 150 | ...                   replace(this, OptionUnravel::Target(target));
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 150 |                             let _ = replace(this, OptionUnravel::Target(target));
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/option.rs:152:29
[INFO] [stdout]     |
[INFO] [stdout] 152 | ...                   replace(this, OptionUnravel::Done);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 152 |                             let _ = replace(this, OptionUnravel::Done);
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/option.rs:162:21
[INFO] [stdout]     |
[INFO] [stdout] 162 |                     replace(this, OptionUnravel::Done);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 162 |                     let _ = replace(this, OptionUnravel::Done);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/option.rs:197:29
[INFO] [stdout]     |
[INFO] [stdout] 197 | ...                   replace(this, OptionCoalesce::Done);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 197 |                             let _ = replace(this, OptionCoalesce::Done);
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/option.rs:201:29
[INFO] [stdout]     |
[INFO] [stdout] 201 | ...                   replace(this, OptionCoalesce::Join(ctx.join(handle)));
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 201 |                             let _ = replace(this, OptionCoalesce::Join(ctx.join(handle)));
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/result.rs:169:25
[INFO] [stdout]     |
[INFO] [stdout] 169 |                         replace(this, ResultUnravel::OkFork(ctx.fork(data)));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 169 |                         let _ = replace(this, ResultUnravel::OkFork(ctx.fork(data)));
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/result.rs:177:21
[INFO] [stdout]     |
[INFO] [stdout] 177 |                     replace(this, ResultUnravel::OkWrite(handle, target));
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 177 |                     let _ = replace(this, ResultUnravel::OkWrite(handle, target));
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/result.rs:182:25
[INFO] [stdout]     |
[INFO] [stdout] 182 |                         replace(this, ResultUnravel::ErrFork(ctx.fork(data)));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 182 |                         let _ = replace(this, ResultUnravel::ErrFork(ctx.fork(data)));
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/result.rs:190:21
[INFO] [stdout]     |
[INFO] [stdout] 190 |                     replace(this, ResultUnravel::ErrWrite(handle, target));
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 190 |                     let _ = replace(this, ResultUnravel::ErrWrite(handle, target));
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/result.rs:198:25
[INFO] [stdout]     |
[INFO] [stdout] 198 |                         replace(this, ResultUnravel::OkFlush(target));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 198 |                         let _ = replace(this, ResultUnravel::OkFlush(target));
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/result.rs:210:25
[INFO] [stdout]     |
[INFO] [stdout] 210 |                         replace(this, ResultUnravel::ErrFlush(target));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 210 |                         let _ = replace(this, ResultUnravel::ErrFlush(target));
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/result.rs:220:25
[INFO] [stdout]     |
[INFO] [stdout] 220 |                         replace(this, ResultUnravel::OkTarget(target));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 220 |                         let _ = replace(this, ResultUnravel::OkTarget(target));
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/result.rs:230:25
[INFO] [stdout]     |
[INFO] [stdout] 230 |                         replace(this, ResultUnravel::ErrTarget(target));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 230 |                         let _ = replace(this, ResultUnravel::ErrTarget(target));
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/result.rs:238:21
[INFO] [stdout]     |
[INFO] [stdout] 238 |                     replace(this, ResultUnravel::Done);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 238 |                     let _ = replace(this, ResultUnravel::Done);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/result.rs:246:21
[INFO] [stdout]     |
[INFO] [stdout] 246 |                     replace(this, ResultUnravel::Done);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 246 |                     let _ = replace(this, ResultUnravel::Done);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/result.rs:294:29
[INFO] [stdout]     |
[INFO] [stdout] 294 | / ...                   replace(
[INFO] [stdout] 295 | | ...                       this,
[INFO] [stdout] 296 | | ...                       ResultCoalesce::OkJoin(<C as Join<T>>::join(ctx, data)),
[INFO] [stdout] 297 | | ...                   );
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 294 |                             let _ = replace(
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/result.rs:300:29
[INFO] [stdout]     |
[INFO] [stdout] 300 | / ...                   replace(
[INFO] [stdout] 301 | | ...                       this,
[INFO] [stdout] 302 | | ...                       ResultCoalesce::ErrJoin(<C as Join<E>>::join(ctx, data)),
[INFO] [stdout] 303 | | ...                   );
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 300 |                             let _ = replace(
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/tuples.rs:649:21
[INFO] [stdout]     |
[INFO] [stdout] 649 | /                     replace(
[INFO] [stdout] 650 | |                         &mut this.state,
[INFO] [stdout] 651 | |                         Tuple2UnravelState::T(
[INFO] [stdout] 652 | |                             ctx.fork(this.data.0.take().expect("data incomplete")),
[INFO] [stdout] 653 | |                         ),
[INFO] [stdout] 654 | |                     );
[INFO] [stdout]     | |_____________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 649 |                     let _ = replace(
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/tuples.rs:661:21
[INFO] [stdout]     |
[INFO] [stdout] 661 | /                     replace(
[INFO] [stdout] 662 | |                         &mut this.state,
[INFO] [stdout] 663 | |                         Tuple2UnravelState::U(
[INFO] [stdout] 664 | |                             ctx.fork(this.data.1.take().expect("data incomplete")),
[INFO] [stdout] 665 | |                         ),
[INFO] [stdout] 666 | |                     );
[INFO] [stdout]     | |_____________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 661 |                     let _ = replace(
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/tuples.rs:673:21
[INFO] [stdout]     |
[INFO] [stdout] 673 |                     replace(&mut this.state, Tuple2UnravelState::Writing);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 673 |                     let _ = replace(&mut this.state, Tuple2UnravelState::Writing);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/tuples.rs:683:21
[INFO] [stdout]     |
[INFO] [stdout] 683 |                     replace(&mut this.state, Tuple2UnravelState::Flushing);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 683 |                     let _ = replace(&mut this.state, Tuple2UnravelState::Flushing);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/tuples.rs:689:21
[INFO] [stdout]     |
[INFO] [stdout] 689 |                     replace(&mut this.state, Tuple2UnravelState::Target);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 689 |                     let _ = replace(&mut this.state, Tuple2UnravelState::Target);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/tuples.rs:695:21
[INFO] [stdout]     |
[INFO] [stdout] 695 |                     replace(&mut this.state, Tuple2UnravelState::Done);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 695 |                     let _ = replace(&mut this.state, Tuple2UnravelState::Done);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/tuples.rs:746:21
[INFO] [stdout]     |
[INFO] [stdout] 746 | /                     replace(
[INFO] [stdout] 747 | |                         &mut this.state,
[INFO] [stdout] 748 | |                         Tuple2CoalesceState::T(<C as Join<T>>::join(ctx, first)),
[INFO] [stdout] 749 | |                     );
[INFO] [stdout]     | |_____________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 746 |                     let _ = replace(
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/tuples.rs:757:21
[INFO] [stdout]     |
[INFO] [stdout] 757 | /                     replace(
[INFO] [stdout] 758 | |                         &mut this.state,
[INFO] [stdout] 759 | |                         Tuple2CoalesceState::U(<C as Join<U>>::join(
[INFO] [stdout] 760 | |                             ctx,
[INFO] [stdout] 761 | |                             this.handles.1.take().expect("handles incomplete"),
[INFO] [stdout] 762 | |                         )),
[INFO] [stdout] 763 | |                     );
[INFO] [stdout]     | |_____________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 757 |                     let _ = replace(
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/tuples.rs:769:21
[INFO] [stdout]     |
[INFO] [stdout] 769 |                     replace(&mut this.state, Tuple2CoalesceState::Done);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 769 |                     let _ = replace(&mut this.state, Tuple2CoalesceState::Done);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/tuples.rs:981:25
[INFO] [stdout]     |
[INFO] [stdout] 981 |                         replace(&mut this.state, FlatUnravelState::Fork(ctx.fork(data)));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 981 |                         let _ = replace(&mut this.state, FlatUnravelState::Fork(ctx.fork(data)));
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/tuples.rs:989:21
[INFO] [stdout]     |
[INFO] [stdout] 989 |                     replace(&mut this.state, FlatUnravelState::Write(handle, target));
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 989 |                     let _ = replace(&mut this.state, FlatUnravelState::Write(handle, target));
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> protocol/src/tuples.rs:997:25
[INFO] [stdout]     |
[INFO] [stdout] 997 |                         replace(&mut this.state, FlatUnravelState::Flush(target));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 997 |                         let _ = replace(&mut this.state, FlatUnravelState::Flush(target));
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]     --> protocol/src/tuples.rs:1007:25
[INFO] [stdout]      |
[INFO] [stdout] 1007 |                         replace(&mut this.state, FlatUnravelState::Target(target));
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1007 |                         let _ = replace(&mut this.state, FlatUnravelState::Target(target));
[INFO] [stdout]      |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]     --> protocol/src/tuples.rs:1015:21
[INFO] [stdout]      |
[INFO] [stdout] 1015 |                     replace(&mut this.state, FlatUnravelState::Done);
[INFO] [stdout]      |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1015 |                     let _ = replace(&mut this.state, FlatUnravelState::Done);
[INFO] [stdout]      |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]     --> protocol/src/tuples.rs:1048:21
[INFO] [stdout]      |
[INFO] [stdout] 1048 |                     replace(&mut this.state, FlatCoalesceState::Join(ctx.join(handle)));
[INFO] [stdout]      |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1048 |                     let _ = replace(&mut this.state, FlatCoalesceState::Join(ctx.join(handle)));
[INFO] [stdout]      |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]     --> protocol/src/tuples.rs:1053:21
[INFO] [stdout]      |
[INFO] [stdout] 1053 |                     replace(&mut this.state, FlatCoalesceState::Done);
[INFO] [stdout]      |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1053 |                     let _ = replace(&mut this.state, FlatCoalesceState::Done);
[INFO] [stdout]      |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]     --> protocol/src/tuples.rs:1098:1
[INFO] [stdout]      |
[INFO] [stdout] 1098 | / tuple_impls! {
[INFO] [stdout] 1099 | |     Tuple3Coalesce  Tuple3CoalesceState  Tuple3Unravel  Tuple3UnravelState  Tuple3UnravelError  Tuple3CoalesceError  => (0 (T0 T...
[INFO] [stdout] 1100 | |     Tuple4Coalesce  Tuple4CoalesceState  Tuple4Unravel  Tuple4UnravelState  Tuple4UnravelError  Tuple4CoalesceError  => (0 (T0 T...
[INFO] [stdout] 1101 | |     Tuple5Coalesce  Tuple5CoalesceState  Tuple5Unravel  Tuple5UnravelState  Tuple5UnravelError  Tuple5CoalesceError  => (0 (T0 T...
[INFO] [stdout] ...    |
[INFO] [stdout] 1112 | |     Tuple16Coalesce Tuple16CoalesceState Tuple16Unravel Tuple16UnravelState Tuple16UnravelError Tuple16CoalesceError => (0 (T0 T...
[INFO] [stdout] 1113 | | }
[INFO] [stdout]      | |_^
[INFO] [stdout]      |
[INFO] [stdout]      = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1098 | let _ = tuple_impls! {
[INFO] [stdout]      | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 48.34s
[INFO] running `Command { std: "docker" "inspect" "c4761836efade94bb65215cc4710816fb7115da555a261aa585bc4ff5b6a55bb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c4761836efade94bb65215cc4710816fb7115da555a261aa585bc4ff5b6a55bb", kill_on_drop: false }`
[INFO] [stdout] c4761836efade94bb65215cc4710816fb7115da555a261aa585bc4ff5b6a55bb
