[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#5518eaa946291f00471af8b254b2a1715f234882 for pr-120393
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsyntacticsugarglider%2Fself-profile-ice-repro" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/syntacticsugarglider/self-profile-ice-repro on toolchain 5518eaa946291f00471af8b254b2a1715f234882
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[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-0-tc1/source/Cargo.toml
[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" "+5518eaa946291f00471af8b254b2a1715f234882" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating git repository `https://github.com/core-error/core-error`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded genio v0.2.1
[INFO] [stderr]   Downloaded dissimilar v1.0.2
[INFO] [stderr]   Downloaded trybuild v1.0.30
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 26c7179a705deca2688b6b739e0d6a3dfd6299bcb6649a162bd9f5f2a101b5c2
[INFO] running `Command { std: "docker" "start" "-a" "26c7179a705deca2688b6b739e0d6a3dfd6299bcb6649a162bd9f5f2a101b5c2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "26c7179a705deca2688b6b739e0d6a3dfd6299bcb6649a162bd9f5f2a101b5c2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "26c7179a705deca2688b6b739e0d6a3dfd6299bcb6649a162bd9f5f2a101b5c2", kill_on_drop: false }`
[INFO] [stdout] 26c7179a705deca2688b6b739e0d6a3dfd6299bcb6649a162bd9f5f2a101b5c2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 855e3598fd795b714d95faf058fefe30aff09e5fd9eeda976477f9e772615e0a
[INFO] running `Command { std: "docker" "start" "-a" "855e3598fd795b714d95faf058fefe30aff09e5fd9eeda976477f9e772615e0a", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.18
[INFO] [stderr]    Compiling syn v1.0.32
[INFO] [stderr]    Compiling unicode-xid v0.2.0
[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]    Compiling proc-macro-hack v0.5.16
[INFO] [stderr]    Compiling core-error v0.0.1-rc4 (https://github.com/core-error/core-error#9ffbf19b)
[INFO] [stderr]     Checking once_cell v1.4.0
[INFO] [stderr]     Checking futures-core v0.3.5
[INFO] [stderr]     Checking futures-sink v0.3.5
[INFO] [stderr]     Checking futures-io v0.3.5
[INFO] [stderr]     Checking futures-channel v0.3.5
[INFO] [stderr]     Checking slab v0.4.2
[INFO] [stderr]     Checking pin-utils v0.1.0
[INFO] [stderr]     Checking futures-task v0.3.5
[INFO] [stderr]    Compiling ryu v1.0.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 itoa v0.4.6
[INFO] [stderr]    Compiling anyhow v1.0.31
[INFO] [stderr]     Checking glob v0.3.0
[INFO] [stderr]     Checking dissimilar v1.0.2
[INFO] [stderr]     Checking termcolor v1.1.0
[INFO] [stderr]    Compiling core-error v0.0.1-rc4 (/opt/rustwide/workdir/core-error)
[INFO] [stderr]    Compiling autocfg v1.0.0
[INFO] [stderr]    Compiling quote v1.0.7
[INFO] [stderr]    Compiling byteorder v1.3.4
[INFO] [stderr]     Checking cfg-if v0.1.10
[INFO] [stderr]     Checking arrayvec v0.5.1
[INFO] [stderr]     Checking genio v0.2.1
[INFO] [stderr]    Compiling crossbeam-utils v0.7.2
[INFO] [stderr]     Checking bytes v0.5.5
[INFO] [stderr]     Checking pin-project-lite v0.1.7
[INFO] [stderr]     Checking synstructure v0.12.4
[INFO] [stderr]     Checking thiserror-impl v1.0.11 (/opt/rustwide/workdir/thiserror/impl)
[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] [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] 20 | |     }
[INFO] [stdout] 21 | | }
[INFO] [stdout]    | |_^ the borrow produces a value
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` 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:122:1
[INFO] [stdout]     |
[INFO] [stdout] 122 | reader8!(ReadU8, u8);
[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 `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:123:1
[INFO] [stdout]     |
[INFO] [stdout] 123 | reader8!(ReadI8, i8);
[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 `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:125:1
[INFO] [stdout]     |
[INFO] [stdout] 125 | reader!(ReadU16, u16, get_u16);
[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 `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:126:1
[INFO] [stdout]     |
[INFO] [stdout] 126 | reader!(ReadU32, u32, get_u32);
[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 `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:127:1
[INFO] [stdout]     |
[INFO] [stdout] 127 | reader!(ReadU64, u64, get_u64);
[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 `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:128:1
[INFO] [stdout]     |
[INFO] [stdout] 128 | reader!(ReadU128, u128, get_u128);
[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 `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:130:1
[INFO] [stdout]     |
[INFO] [stdout] 130 | reader!(ReadI16, i16, get_i16);
[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 `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:131:1
[INFO] [stdout]     |
[INFO] [stdout] 131 | reader!(ReadI32, i32, get_i32);
[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 `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:132:1
[INFO] [stdout]     |
[INFO] [stdout] 132 | reader!(ReadI64, i64, get_i64);
[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 `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:133:1
[INFO] [stdout]     |
[INFO] [stdout] 133 | reader!(ReadI128, i128, get_i128);
[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 `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] 19 | |     }
[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:108:1
[INFO] [stdout]     |
[INFO] [stdout] 108 | writer8!(WriteU8, u8);
[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 `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:109:1
[INFO] [stdout]     |
[INFO] [stdout] 109 | writer8!(WriteI8, i8);
[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 `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:111:1
[INFO] [stdout]     |
[INFO] [stdout] 111 | writer!(WriteU16, u16, put_u16);
[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 `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:112:1
[INFO] [stdout]     |
[INFO] [stdout] 112 | writer!(WriteU32, u32, put_u32);
[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 `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:113:1
[INFO] [stdout]     |
[INFO] [stdout] 113 | writer!(WriteU64, u64, put_u64);
[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 `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:114:1
[INFO] [stdout]     |
[INFO] [stdout] 114 | writer!(WriteU128, u128, put_u128);
[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 `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:116:1
[INFO] [stdout]     |
[INFO] [stdout] 116 | writer!(WriteI16, i16, put_i16);
[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 `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:117:1
[INFO] [stdout]     |
[INFO] [stdout] 117 | writer!(WriteI32, i32, put_i32);
[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 `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:118:1
[INFO] [stdout]     |
[INFO] [stdout] 118 | writer!(WriteI64, i64, put_i64);
[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 `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:119:1
[INFO] [stdout]     |
[INFO] [stdout] 119 | writer!(WriteI128, i128, put_i128);
[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 `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] 20 | |     }
[INFO] [stdout] 21 | | }
[INFO] [stdout]    | |_^ the borrow produces a value
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` 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:122:1
[INFO] [stdout]     |
[INFO] [stdout] 122 | reader8!(ReadU8, u8);
[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 `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:123:1
[INFO] [stdout]     |
[INFO] [stdout] 123 | reader8!(ReadI8, i8);
[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 `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:125:1
[INFO] [stdout]     |
[INFO] [stdout] 125 | reader!(ReadU16, u16, get_u16);
[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 `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:126:1
[INFO] [stdout]     |
[INFO] [stdout] 126 | reader!(ReadU32, u32, get_u32);
[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 `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:127:1
[INFO] [stdout]     |
[INFO] [stdout] 127 | reader!(ReadU64, u64, get_u64);
[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 `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:128:1
[INFO] [stdout]     |
[INFO] [stdout] 128 | reader!(ReadU128, u128, get_u128);
[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 `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:130:1
[INFO] [stdout]     |
[INFO] [stdout] 130 | reader!(ReadI16, i16, get_i16);
[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 `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:131:1
[INFO] [stdout]     |
[INFO] [stdout] 131 | reader!(ReadI32, i32, get_i32);
[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 `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:132:1
[INFO] [stdout]     |
[INFO] [stdout] 132 | reader!(ReadI64, i64, get_i64);
[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 `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:133:1
[INFO] [stdout]     |
[INFO] [stdout] 133 | reader!(ReadI128, i128, get_i128);
[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 `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] 19 | |     }
[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:108:1
[INFO] [stdout]     |
[INFO] [stdout] 108 | writer8!(WriteU8, u8);
[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 `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:109:1
[INFO] [stdout]     |
[INFO] [stdout] 109 | writer8!(WriteI8, i8);
[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 `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:111:1
[INFO] [stdout]     |
[INFO] [stdout] 111 | writer!(WriteU16, u16, put_u16);
[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 `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:112:1
[INFO] [stdout]     |
[INFO] [stdout] 112 | writer!(WriteU32, u32, put_u32);
[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 `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:113:1
[INFO] [stdout]     |
[INFO] [stdout] 113 | writer!(WriteU64, u64, put_u64);
[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 `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:114:1
[INFO] [stdout]     |
[INFO] [stdout] 114 | writer!(WriteU128, u128, put_u128);
[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 `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:116:1
[INFO] [stdout]     |
[INFO] [stdout] 116 | writer!(WriteI16, i16, put_i16);
[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 `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:117:1
[INFO] [stdout]     |
[INFO] [stdout] 117 | writer!(WriteI32, i32, put_i32);
[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 `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:118:1
[INFO] [stdout]     |
[INFO] [stdout] 118 | writer!(WriteI64, i64, put_i64);
[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 `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:119:1
[INFO] [stdout]     |
[INFO] [stdout] 119 | writer!(WriteI128, i128, put_i128);
[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 `writer` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 22 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 22 warnings emitted
[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: 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)]` 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:226:33
[INFO] [stdout]      |
[INFO] [stdout] 226  | /                                 replace(
[INFO] [stdout] 227  | |                                     &mut this.state,
[INFO] [stdout] 228  | |                                     $ustate::$first(
[INFO] [stdout] 229  | |                                         ctx.fork(this.data.0.take().expect("data incomplete")),
[INFO] [stdout] 230  | |                                     ),
[INFO] [stdout] 231  | |                                 );
[INFO] [stdout]      | |_________________________________^
[INFO] [stdout] ...
[INFO] [stdout] 1098 | / tuple_impls! {
[INFO] [stdout] 1099 | |     Tuple3Coalesce  Tuple3CoalesceState  Tuple3Unravel  Tuple3UnravelState  Tuple3UnravelError  Tuple3CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1100 | |     Tuple4Coalesce  Tuple4CoalesceState  Tuple4Unravel  Tuple4UnravelState  Tuple4UnravelError  Tuple4CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1101 | |     Tuple5Coalesce  Tuple5CoalesceState  Tuple5Unravel  Tuple5UnravelState  Tuple5UnravelError  Tuple5CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] ...    |
[INFO] [stdout] 1112 | |     Tuple16Coalesce Tuple16CoalesceState Tuple16Unravel Tuple16UnravelState Tuple16UnravelError Tuple16CoalesceError => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1113 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]      = note: this warning originates in the macro `tuple_impls` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 226  |                                 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:238:33
[INFO] [stdout]      |
[INFO] [stdout] 238  |                                   replace(&mut this.state, $ustate::$second(ctx.fork(this.data.1.take().expect("data incomplete"))));
[INFO] [stdout]      |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1098 | / tuple_impls! {
[INFO] [stdout] 1099 | |     Tuple3Coalesce  Tuple3CoalesceState  Tuple3Unravel  Tuple3UnravelState  Tuple3UnravelError  Tuple3CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1100 | |     Tuple4Coalesce  Tuple4CoalesceState  Tuple4Unravel  Tuple4UnravelState  Tuple4UnravelError  Tuple4CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1101 | |     Tuple5Coalesce  Tuple5CoalesceState  Tuple5Unravel  Tuple5UnravelState  Tuple5UnravelError  Tuple5CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] ...    |
[INFO] [stdout] 1112 | |     Tuple16Coalesce Tuple16CoalesceState Tuple16Unravel Tuple16UnravelState Tuple16UnravelError Tuple16CoalesceError => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1113 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]      = note: this warning originates in the macro `tuple_impls` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 238  |                                 let _ = replace(&mut this.state, $ustate::$second(ctx.fork(this.data.1.take().expect("data incomplete"))));
[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:246:33
[INFO] [stdout]      |
[INFO] [stdout] 246  |                                   replace(&mut this.state, $ustate::$next(ctx.fork(this.data.$next_n.take().expect("data incomplete"))));
[INFO] [stdout]      |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1098 | / tuple_impls! {
[INFO] [stdout] 1099 | |     Tuple3Coalesce  Tuple3CoalesceState  Tuple3Unravel  Tuple3UnravelState  Tuple3UnravelError  Tuple3CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1100 | |     Tuple4Coalesce  Tuple4CoalesceState  Tuple4Unravel  Tuple4UnravelState  Tuple4UnravelError  Tuple4CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1101 | |     Tuple5Coalesce  Tuple5CoalesceState  Tuple5Unravel  Tuple5UnravelState  Tuple5UnravelError  Tuple5CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] ...    |
[INFO] [stdout] 1112 | |     Tuple16Coalesce Tuple16CoalesceState Tuple16Unravel Tuple16UnravelState Tuple16UnravelError Tuple16CoalesceError => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1113 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]      = note: this warning originates in the macro `tuple_impls` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 246  |                                 let _ = replace(&mut this.state, $ustate::$next(ctx.fork(this.data.$next_n.take().expect("data incomplete"))));
[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:254:33
[INFO] [stdout]      |
[INFO] [stdout] 254  |                                   replace(&mut this.state, $ustate::Writing);
[INFO] [stdout]      |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1098 | / tuple_impls! {
[INFO] [stdout] 1099 | |     Tuple3Coalesce  Tuple3CoalesceState  Tuple3Unravel  Tuple3UnravelState  Tuple3UnravelError  Tuple3CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1100 | |     Tuple4Coalesce  Tuple4CoalesceState  Tuple4Unravel  Tuple4UnravelState  Tuple4UnravelError  Tuple4CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1101 | |     Tuple5Coalesce  Tuple5CoalesceState  Tuple5Unravel  Tuple5UnravelState  Tuple5UnravelError  Tuple5CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] ...    |
[INFO] [stdout] 1112 | |     Tuple16Coalesce Tuple16CoalesceState Tuple16Unravel Tuple16UnravelState Tuple16UnravelError Tuple16CoalesceError => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1113 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]      = note: this warning originates in the macro `tuple_impls` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 254  |                                 let _ = replace(&mut this.state, $ustate::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:265:33
[INFO] [stdout]      |
[INFO] [stdout] 265  |                                   replace(&mut this.state, $ustate::Flushing);
[INFO] [stdout]      |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1098 | / tuple_impls! {
[INFO] [stdout] 1099 | |     Tuple3Coalesce  Tuple3CoalesceState  Tuple3Unravel  Tuple3UnravelState  Tuple3UnravelError  Tuple3CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1100 | |     Tuple4Coalesce  Tuple4CoalesceState  Tuple4Unravel  Tuple4UnravelState  Tuple4UnravelError  Tuple4CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1101 | |     Tuple5Coalesce  Tuple5CoalesceState  Tuple5Unravel  Tuple5UnravelState  Tuple5UnravelError  Tuple5CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] ...    |
[INFO] [stdout] 1112 | |     Tuple16Coalesce Tuple16CoalesceState Tuple16Unravel Tuple16UnravelState Tuple16UnravelError Tuple16CoalesceError => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1113 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]      = note: this warning originates in the macro `tuple_impls` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 265  |                                 let _ = replace(&mut this.state, $ustate::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:271:33
[INFO] [stdout]      |
[INFO] [stdout] 271  |                                   replace(&mut this.state, $ustate::Target);
[INFO] [stdout]      |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1098 | / tuple_impls! {
[INFO] [stdout] 1099 | |     Tuple3Coalesce  Tuple3CoalesceState  Tuple3Unravel  Tuple3UnravelState  Tuple3UnravelError  Tuple3CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1100 | |     Tuple4Coalesce  Tuple4CoalesceState  Tuple4Unravel  Tuple4UnravelState  Tuple4UnravelError  Tuple4CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1101 | |     Tuple5Coalesce  Tuple5CoalesceState  Tuple5Unravel  Tuple5UnravelState  Tuple5UnravelError  Tuple5CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] ...    |
[INFO] [stdout] 1112 | |     Tuple16Coalesce Tuple16CoalesceState Tuple16Unravel Tuple16UnravelState Tuple16UnravelError Tuple16CoalesceError => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1113 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]      = note: this warning originates in the macro `tuple_impls` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 271  |                                 let _ = replace(&mut this.state, $ustate::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:277:33
[INFO] [stdout]      |
[INFO] [stdout] 277  |                                   replace(&mut this.state, $ustate::Done);
[INFO] [stdout]      |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1098 | / tuple_impls! {
[INFO] [stdout] 1099 | |     Tuple3Coalesce  Tuple3CoalesceState  Tuple3Unravel  Tuple3UnravelState  Tuple3UnravelError  Tuple3CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1100 | |     Tuple4Coalesce  Tuple4CoalesceState  Tuple4Unravel  Tuple4UnravelState  Tuple4UnravelError  Tuple4CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1101 | |     Tuple5Coalesce  Tuple5CoalesceState  Tuple5Unravel  Tuple5UnravelState  Tuple5UnravelError  Tuple5CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] ...    |
[INFO] [stdout] 1112 | |     Tuple16Coalesce Tuple16CoalesceState Tuple16Unravel Tuple16UnravelState Tuple16UnravelError Tuple16CoalesceError => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1113 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]      = note: this warning originates in the macro `tuple_impls` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 277  |                                 let _ = replace(&mut this.state, $ustate::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:327:33
[INFO] [stdout]      |
[INFO] [stdout] 327  | /                                 replace(
[INFO] [stdout] 328  | |                                     &mut this.state,
[INFO] [stdout] 329  | |                                     $cstate::$first(<C as Join<$first>>::join(ctx, first)),
[INFO] [stdout] 330  | |                                 );
[INFO] [stdout]      | |_________________________________^
[INFO] [stdout] ...
[INFO] [stdout] 1098 | / tuple_impls! {
[INFO] [stdout] 1099 | |     Tuple3Coalesce  Tuple3CoalesceState  Tuple3Unravel  Tuple3UnravelState  Tuple3UnravelError  Tuple3CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1100 | |     Tuple4Coalesce  Tuple4CoalesceState  Tuple4Unravel  Tuple4UnravelState  Tuple4UnravelError  Tuple4CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1101 | |     Tuple5Coalesce  Tuple5CoalesceState  Tuple5Unravel  Tuple5UnravelState  Tuple5UnravelError  Tuple5CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] ...    |
[INFO] [stdout] 1112 | |     Tuple16Coalesce Tuple16CoalesceState Tuple16Unravel Tuple16UnravelState Tuple16UnravelError Tuple16CoalesceError => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1113 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]      = note: this warning originates in the macro `tuple_impls` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 327  |                                 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:338:33
[INFO] [stdout]      |
[INFO] [stdout] 338  | /                                 replace(
[INFO] [stdout] 339  | |                                     &mut this.state,
[INFO] [stdout] 340  | |                                     $cstate::$second(<C as Join<$second>>::join(
[INFO] [stdout] 341  | |                                         ctx,
[INFO] [stdout] 342  | |                                         this.handles.1.take().expect("handles incomplete"),
[INFO] [stdout] 343  | |                                     )),
[INFO] [stdout] 344  | |                                 );
[INFO] [stdout]      | |_________________________________^
[INFO] [stdout] ...
[INFO] [stdout] 1098 | / tuple_impls! {
[INFO] [stdout] 1099 | |     Tuple3Coalesce  Tuple3CoalesceState  Tuple3Unravel  Tuple3UnravelState  Tuple3UnravelError  Tuple3CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1100 | |     Tuple4Coalesce  Tuple4CoalesceState  Tuple4Unravel  Tuple4UnravelState  Tuple4UnravelError  Tuple4CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1101 | |     Tuple5Coalesce  Tuple5CoalesceState  Tuple5Unravel  Tuple5UnravelState  Tuple5UnravelError  Tuple5CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] ...    |
[INFO] [stdout] 1112 | |     Tuple16Coalesce Tuple16CoalesceState Tuple16Unravel Tuple16UnravelState Tuple16UnravelError Tuple16CoalesceError => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1113 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]      = note: this warning originates in the macro `tuple_impls` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 338  |                                 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:352:33
[INFO] [stdout]      |
[INFO] [stdout] 352  | /                                 replace(
[INFO] [stdout] 353  | |                                     &mut this.state,
[INFO] [stdout] 354  | |                                     $cstate::$next(<C as Join<$next>>::join(
[INFO] [stdout] 355  | |                                         ctx,
[INFO] [stdout] 356  | |                                         this.handles.$next_n.take().expect("handles incomplete"),
[INFO] [stdout] 357  | |                                     )),
[INFO] [stdout] 358  | |                                 );
[INFO] [stdout]      | |_________________________________^
[INFO] [stdout] ...
[INFO] [stdout] 1098 | / tuple_impls! {
[INFO] [stdout] 1099 | |     Tuple3Coalesce  Tuple3CoalesceState  Tuple3Unravel  Tuple3UnravelState  Tuple3UnravelError  Tuple3CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1100 | |     Tuple4Coalesce  Tuple4CoalesceState  Tuple4Unravel  Tuple4UnravelState  Tuple4UnravelError  Tuple4CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1101 | |     Tuple5Coalesce  Tuple5CoalesceState  Tuple5Unravel  Tuple5UnravelState  Tuple5UnravelError  Tuple5CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] ...    |
[INFO] [stdout] 1112 | |     Tuple16Coalesce Tuple16CoalesceState Tuple16Unravel Tuple16UnravelState Tuple16UnravelError Tuple16CoalesceError => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1113 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]      = note: this warning originates in the macro `tuple_impls` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 352  |                                 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:364:33
[INFO] [stdout]      |
[INFO] [stdout] 364  |                                   replace(&mut this.state, $cstate::Done);
[INFO] [stdout]      |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1098 | / tuple_impls! {
[INFO] [stdout] 1099 | |     Tuple3Coalesce  Tuple3CoalesceState  Tuple3Unravel  Tuple3UnravelState  Tuple3UnravelError  Tuple3CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1100 | |     Tuple4Coalesce  Tuple4CoalesceState  Tuple4Unravel  Tuple4UnravelState  Tuple4UnravelError  Tuple4CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1101 | |     Tuple5Coalesce  Tuple5CoalesceState  Tuple5Unravel  Tuple5UnravelState  Tuple5UnravelError  Tuple5CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] ...    |
[INFO] [stdout] 1112 | |     Tuple16Coalesce Tuple16CoalesceState Tuple16Unravel Tuple16UnravelState Tuple16UnravelError Tuple16CoalesceError => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1113 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]      = note: this warning originates in the macro `tuple_impls` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 364  |                                 let _ = replace(&mut this.state, $cstate::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: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)]` 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:226:33
[INFO] [stdout]      |
[INFO] [stdout] 226  | /                                 replace(
[INFO] [stdout] 227  | |                                     &mut this.state,
[INFO] [stdout] 228  | |                                     $ustate::$first(
[INFO] [stdout] 229  | |                                         ctx.fork(this.data.0.take().expect("data incomplete")),
[INFO] [stdout] 230  | |                                     ),
[INFO] [stdout] 231  | |                                 );
[INFO] [stdout]      | |_________________________________^
[INFO] [stdout] ...
[INFO] [stdout] 1098 | / tuple_impls! {
[INFO] [stdout] 1099 | |     Tuple3Coalesce  Tuple3CoalesceState  Tuple3Unravel  Tuple3UnravelState  Tuple3UnravelError  Tuple3CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1100 | |     Tuple4Coalesce  Tuple4CoalesceState  Tuple4Unravel  Tuple4UnravelState  Tuple4UnravelError  Tuple4CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1101 | |     Tuple5Coalesce  Tuple5CoalesceState  Tuple5Unravel  Tuple5UnravelState  Tuple5UnravelError  Tuple5CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] ...    |
[INFO] [stdout] 1112 | |     Tuple16Coalesce Tuple16CoalesceState Tuple16Unravel Tuple16UnravelState Tuple16UnravelError Tuple16CoalesceError => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1113 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]      = note: this warning originates in the macro `tuple_impls` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 226  |                                 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:238:33
[INFO] [stdout]      |
[INFO] [stdout] 238  |                                   replace(&mut this.state, $ustate::$second(ctx.fork(this.data.1.take().expect("data incomplete"))));
[INFO] [stdout]      |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1098 | / tuple_impls! {
[INFO] [stdout] 1099 | |     Tuple3Coalesce  Tuple3CoalesceState  Tuple3Unravel  Tuple3UnravelState  Tuple3UnravelError  Tuple3CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1100 | |     Tuple4Coalesce  Tuple4CoalesceState  Tuple4Unravel  Tuple4UnravelState  Tuple4UnravelError  Tuple4CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1101 | |     Tuple5Coalesce  Tuple5CoalesceState  Tuple5Unravel  Tuple5UnravelState  Tuple5UnravelError  Tuple5CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] ...    |
[INFO] [stdout] 1112 | |     Tuple16Coalesce Tuple16CoalesceState Tuple16Unravel Tuple16UnravelState Tuple16UnravelError Tuple16CoalesceError => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1113 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]      = note: this warning originates in the macro `tuple_impls` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 238  |                                 let _ = replace(&mut this.state, $ustate::$second(ctx.fork(this.data.1.take().expect("data incomplete"))));
[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:246:33
[INFO] [stdout]      |
[INFO] [stdout] 246  |                                   replace(&mut this.state, $ustate::$next(ctx.fork(this.data.$next_n.take().expect("data incomplete"))));
[INFO] [stdout]      |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1098 | / tuple_impls! {
[INFO] [stdout] 1099 | |     Tuple3Coalesce  Tuple3CoalesceState  Tuple3Unravel  Tuple3UnravelState  Tuple3UnravelError  Tuple3CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1100 | |     Tuple4Coalesce  Tuple4CoalesceState  Tuple4Unravel  Tuple4UnravelState  Tuple4UnravelError  Tuple4CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1101 | |     Tuple5Coalesce  Tuple5CoalesceState  Tuple5Unravel  Tuple5UnravelState  Tuple5UnravelError  Tuple5CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] ...    |
[INFO] [stdout] 1112 | |     Tuple16Coalesce Tuple16CoalesceState Tuple16Unravel Tuple16UnravelState Tuple16UnravelError Tuple16CoalesceError => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1113 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]      = note: this warning originates in the macro `tuple_impls` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 246  |                                 let _ = replace(&mut this.state, $ustate::$next(ctx.fork(this.data.$next_n.take().expect("data incomplete"))));
[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:254:33
[INFO] [stdout]      |
[INFO] [stdout] 254  |                                   replace(&mut this.state, $ustate::Writing);
[INFO] [stdout]      |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1098 | / tuple_impls! {
[INFO] [stdout] 1099 | |     Tuple3Coalesce  Tuple3CoalesceState  Tuple3Unravel  Tuple3UnravelState  Tuple3UnravelError  Tuple3CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1100 | |     Tuple4Coalesce  Tuple4CoalesceState  Tuple4Unravel  Tuple4UnravelState  Tuple4UnravelError  Tuple4CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1101 | |     Tuple5Coalesce  Tuple5CoalesceState  Tuple5Unravel  Tuple5UnravelState  Tuple5UnravelError  Tuple5CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] ...    |
[INFO] [stdout] 1112 | |     Tuple16Coalesce Tuple16CoalesceState Tuple16Unravel Tuple16UnravelState Tuple16UnravelError Tuple16CoalesceError => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1113 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]      = note: this warning originates in the macro `tuple_impls` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 254  |                                 let _ = replace(&mut this.state, $ustate::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:265:33
[INFO] [stdout]      |
[INFO] [stdout] 265  |                                   replace(&mut this.state, $ustate::Flushing);
[INFO] [stdout]      |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1098 | / tuple_impls! {
[INFO] [stdout] 1099 | |     Tuple3Coalesce  Tuple3CoalesceState  Tuple3Unravel  Tuple3UnravelState  Tuple3UnravelError  Tuple3CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1100 | |     Tuple4Coalesce  Tuple4CoalesceState  Tuple4Unravel  Tuple4UnravelState  Tuple4UnravelError  Tuple4CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1101 | |     Tuple5Coalesce  Tuple5CoalesceState  Tuple5Unravel  Tuple5UnravelState  Tuple5UnravelError  Tuple5CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] ...    |
[INFO] [stdout] 1112 | |     Tuple16Coalesce Tuple16CoalesceState Tuple16Unravel Tuple16UnravelState Tuple16UnravelError Tuple16CoalesceError => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1113 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]      = note: this warning originates in the macro `tuple_impls` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 265  |                                 let _ = replace(&mut this.state, $ustate::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:271:33
[INFO] [stdout]      |
[INFO] [stdout] 271  |                                   replace(&mut this.state, $ustate::Target);
[INFO] [stdout]      |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1098 | / tuple_impls! {
[INFO] [stdout] 1099 | |     Tuple3Coalesce  Tuple3CoalesceState  Tuple3Unravel  Tuple3UnravelState  Tuple3UnravelError  Tuple3CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1100 | |     Tuple4Coalesce  Tuple4CoalesceState  Tuple4Unravel  Tuple4UnravelState  Tuple4UnravelError  Tuple4CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1101 | |     Tuple5Coalesce  Tuple5CoalesceState  Tuple5Unravel  Tuple5UnravelState  Tuple5UnravelError  Tuple5CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] ...    |
[INFO] [stdout] 1112 | |     Tuple16Coalesce Tuple16CoalesceState Tuple16Unravel Tuple16UnravelState Tuple16UnravelError Tuple16CoalesceError => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1113 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]      = note: this warning originates in the macro `tuple_impls` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 271  |                                 let _ = replace(&mut this.state, $ustate::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:277:33
[INFO] [stdout]      |
[INFO] [stdout] 277  |                                   replace(&mut this.state, $ustate::Done);
[INFO] [stdout]      |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1098 | / tuple_impls! {
[INFO] [stdout] 1099 | |     Tuple3Coalesce  Tuple3CoalesceState  Tuple3Unravel  Tuple3UnravelState  Tuple3UnravelError  Tuple3CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1100 | |     Tuple4Coalesce  Tuple4CoalesceState  Tuple4Unravel  Tuple4UnravelState  Tuple4UnravelError  Tuple4CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1101 | |     Tuple5Coalesce  Tuple5CoalesceState  Tuple5Unravel  Tuple5UnravelState  Tuple5UnravelError  Tuple5CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] ...    |
[INFO] [stdout] 1112 | |     Tuple16Coalesce Tuple16CoalesceState Tuple16Unravel Tuple16UnravelState Tuple16UnravelError Tuple16CoalesceError => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1113 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]      = note: this warning originates in the macro `tuple_impls` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 277  |                                 let _ = replace(&mut this.state, $ustate::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:327:33
[INFO] [stdout]      |
[INFO] [stdout] 327  | /                                 replace(
[INFO] [stdout] 328  | |                                     &mut this.state,
[INFO] [stdout] 329  | |                                     $cstate::$first(<C as Join<$first>>::join(ctx, first)),
[INFO] [stdout] 330  | |                                 );
[INFO] [stdout]      | |_________________________________^
[INFO] [stdout] ...
[INFO] [stdout] 1098 | / tuple_impls! {
[INFO] [stdout] 1099 | |     Tuple3Coalesce  Tuple3CoalesceState  Tuple3Unravel  Tuple3UnravelState  Tuple3UnravelError  Tuple3CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1100 | |     Tuple4Coalesce  Tuple4CoalesceState  Tuple4Unravel  Tuple4UnravelState  Tuple4UnravelError  Tuple4CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1101 | |     Tuple5Coalesce  Tuple5CoalesceState  Tuple5Unravel  Tuple5UnravelState  Tuple5UnravelError  Tuple5CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] ...    |
[INFO] [stdout] 1112 | |     Tuple16Coalesce Tuple16CoalesceState Tuple16Unravel Tuple16UnravelState Tuple16UnravelError Tuple16CoalesceError => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1113 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]      = note: this warning originates in the macro `tuple_impls` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 327  |                                 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:338:33
[INFO] [stdout]      |
[INFO] [stdout] 338  | /                                 replace(
[INFO] [stdout] 339  | |                                     &mut this.state,
[INFO] [stdout] 340  | |                                     $cstate::$second(<C as Join<$second>>::join(
[INFO] [stdout] 341  | |                                         ctx,
[INFO] [stdout] 342  | |                                         this.handles.1.take().expect("handles incomplete"),
[INFO] [stdout] 343  | |                                     )),
[INFO] [stdout] 344  | |                                 );
[INFO] [stdout]      | |_________________________________^
[INFO] [stdout] ...
[INFO] [stdout] 1098 | / tuple_impls! {
[INFO] [stdout] 1099 | |     Tuple3Coalesce  Tuple3CoalesceState  Tuple3Unravel  Tuple3UnravelState  Tuple3UnravelError  Tuple3CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1100 | |     Tuple4Coalesce  Tuple4CoalesceState  Tuple4Unravel  Tuple4UnravelState  Tuple4UnravelError  Tuple4CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1101 | |     Tuple5Coalesce  Tuple5CoalesceState  Tuple5Unravel  Tuple5UnravelState  Tuple5UnravelError  Tuple5CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] ...    |
[INFO] [stdout] 1112 | |     Tuple16Coalesce Tuple16CoalesceState Tuple16Unravel Tuple16UnravelState Tuple16UnravelError Tuple16CoalesceError => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1113 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]      = note: this warning originates in the macro `tuple_impls` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 338  |                                 let _ = replace(
[INFO] [stdout]      |                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 54 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]     --> protocol/src/tuples.rs:352:33
[INFO] [stdout]      |
[INFO] [stdout] 352  | /                                 replace(
[INFO] [stdout] 353  | |                                     &mut this.state,
[INFO] [stdout] 354  | |                                     $cstate::$next(<C as Join<$next>>::join(
[INFO] [stdout] 355  | |                                         ctx,
[INFO] [stdout] 356  | |                                         this.handles.$next_n.take().expect("handles incomplete"),
[INFO] [stdout] 357  | |                                     )),
[INFO] [stdout] 358  | |                                 );
[INFO] [stdout]      | |_________________________________^
[INFO] [stdout] ...
[INFO] [stdout] 1098 | / tuple_impls! {
[INFO] [stdout] 1099 | |     Tuple3Coalesce  Tuple3CoalesceState  Tuple3Unravel  Tuple3UnravelState  Tuple3UnravelError  Tuple3CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1100 | |     Tuple4Coalesce  Tuple4CoalesceState  Tuple4Unravel  Tuple4UnravelState  Tuple4UnravelError  Tuple4CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1101 | |     Tuple5Coalesce  Tuple5CoalesceState  Tuple5Unravel  Tuple5UnravelState  Tuple5UnravelError  Tuple5CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] ...    |
[INFO] [stdout] 1112 | |     Tuple16Coalesce Tuple16CoalesceState Tuple16Unravel Tuple16UnravelState Tuple16UnravelError Tuple16CoalesceError => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1113 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]      = note: this warning originates in the macro `tuple_impls` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 352  |                                 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:364:33
[INFO] [stdout]      |
[INFO] [stdout] 364  |                                   replace(&mut this.state, $cstate::Done);
[INFO] [stdout]      |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1098 | / tuple_impls! {
[INFO] [stdout] 1099 | |     Tuple3Coalesce  Tuple3CoalesceState  Tuple3Unravel  Tuple3UnravelState  Tuple3UnravelError  Tuple3CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1100 | |     Tuple4Coalesce  Tuple4CoalesceState  Tuple4Unravel  Tuple4UnravelState  Tuple4UnravelError  Tuple4CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1101 | |     Tuple5Coalesce  Tuple5CoalesceState  Tuple5Unravel  Tuple5UnravelState  Tuple5UnravelError  Tuple5CoalesceError  => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] ...    |
[INFO] [stdout] 1112 | |     Tuple16Coalesce Tuple16CoalesceState Tuple16Unravel Tuple16UnravelState Tuple16UnravelError Tuple16CoalesceError => (0 (T0 T1) 1 (T1 ...
[INFO] [stdout] 1113 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]      = note: this warning originates in the macro `tuple_impls` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 364  |                                 let _ = replace(&mut this.state, $cstate::Done);
[INFO] [stdout]      |                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 54 warnings emitted
[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)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Sink`, `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)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Sink`, `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)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 3 warnings emitted
[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)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 35.57s
[INFO] running `Command { std: "docker" "inspect" "855e3598fd795b714d95faf058fefe30aff09e5fd9eeda976477f9e772615e0a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "855e3598fd795b714d95faf058fefe30aff09e5fd9eeda976477f9e772615e0a", kill_on_drop: false }`
[INFO] [stdout] 855e3598fd795b714d95faf058fefe30aff09e5fd9eeda976477f9e772615e0a
