[INFO] fetching crate handy_io 0.1.2...
[INFO] checking handy_io-0.1.2 against master#bca37a20bd376ce3fd138e7cdee7fe704e0f8814 for pr-139493-3
[INFO] extracting crate handy_io 0.1.2 into /workspace/builds/worker-5-tc1/source
[INFO] started tweaking crates.io crate handy_io 0.1.2
[INFO] finished tweaking crates.io crate handy_io 0.1.2
[INFO] tweaked toml for crates.io crate handy_io 0.1.2 written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate handy_io 0.1.2 on toolchain bca37a20bd376ce3fd138e7cdee7fe704e0f8814
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 2 packages to latest compatible versions
[INFO] [stderr]       Adding byteorder v0.5.3 (available: v1.5.0)
[INFO] [stderr]       Adding futures v0.1.31 (available: v0.3.31)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded byteorder v0.5.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 195916450ef5af3af31c9e77c245633cd6637d06aa721ab92d49203e03055eae
[INFO] running `Command { std: "docker" "start" "-a" "195916450ef5af3af31c9e77c245633cd6637d06aa721ab92d49203e03055eae", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "195916450ef5af3af31c9e77c245633cd6637d06aa721ab92d49203e03055eae", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "195916450ef5af3af31c9e77c245633cd6637d06aa721ab92d49203e03055eae", kill_on_drop: false }`
[INFO] [stdout] 195916450ef5af3af31c9e77c245633cd6637d06aa721ab92d49203e03055eae
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b5cb48908e5c80a234aae727191cd9babd48b022713a5903094c814ec836faa3
[INFO] running `Command { std: "docker" "start" "-a" "b5cb48908e5c80a234aae727191cd9babd48b022713a5903094c814ec836faa3", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]     Checking byteorder v0.5.3
[INFO] [stderr]     Checking handy_io v0.1.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/io/write/mod.rs:49:10
[INFO] [stdout]    |
[INFO] [stdout] 49 |         };
[INFO] [stdout]    |          ^ help: remove this semicolon
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/io/write/mod.rs:49:10
[INFO] [stdout]    |
[INFO] [stdout] 49 |         };
[INFO] [stdout]    |          ^ help: remove this semicolon
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated type alias `futures::BoxFuture`: removed without replacement, recommended to use a local extension trait or function if needed, more details in https://github.com/rust-lang-nursery/futures-rs/issues/228
[INFO] [stdout]  --> src/io/mod.rs:9:42
[INFO] [stdout]   |
[INFO] [stdout] 9 |     pub type IoFuture<S, T> = ::futures::BoxFuture<(S, T), (S, ::std::io::Error)>;
[INFO] [stdout]   |                                          ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/io/read/mod.rs:90:34
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub struct BoxReadFrom<R, T>(Box<FnMut(R) -> IoFuture<R, T>>);
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub struct BoxReadFrom<R, T>(Box<dyn FnMut(R) -> IoFuture<R, T>>);
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/io/write/mod.rs:88:33
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct BoxWriteTo<W, T>(Box<FnMut(W) -> IoFuture<W, T>>);
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct BoxWriteTo<W, T>(Box<dyn FnMut(W) -> IoFuture<W, T>>);
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated type alias `futures::BoxFuture`: removed without replacement, recommended to use a local extension trait or function if needed, more details in https://github.com/rust-lang-nursery/futures-rs/issues/228
[INFO] [stdout]  --> src/io/mod.rs:9:42
[INFO] [stdout]   |
[INFO] [stdout] 9 |     pub type IoFuture<S, T> = ::futures::BoxFuture<(S, T), (S, ::std::io::Error)>;
[INFO] [stdout]   |                                          ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/io/read/mod.rs:90:34
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub struct BoxReadFrom<R, T>(Box<FnMut(R) -> IoFuture<R, T>>);
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub struct BoxReadFrom<R, T>(Box<dyn FnMut(R) -> IoFuture<R, T>>);
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/io/write/mod.rs:88:33
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct BoxWriteTo<W, T>(Box<FnMut(W) -> IoFuture<W, T>>);
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct BoxWriteTo<W, T>(Box<dyn FnMut(W) -> IoFuture<W, T>>);
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `futures::Future::boxed`: removed without replacement, recommended to use a local extension trait or function if needed, more details in https://github.com/rust-lang-nursery/futures-rs/issues/228
[INFO] [stdout]   --> src/io/read/mod.rs:77:75
[INFO] [stdout]    |
[INFO] [stdout] 77 |         let mut f = Some(move |reader: R| self.lossless_read_from(reader).boxed());
[INFO] [stdout]    |                                                                           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `futures::Future::boxed`: removed without replacement, recommended to use a local extension trait or function if needed, more details in https://github.com/rust-lang-nursery/futures-rs/issues/228
[INFO] [stdout]   --> src/io/read/mod.rs:77:75
[INFO] [stdout]    |
[INFO] [stdout] 77 |         let mut f = Some(move |reader: R| self.lossless_read_from(reader).boxed());
[INFO] [stdout]    |                                                                           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `futures::Future::boxed`: removed without replacement, recommended to use a local extension trait or function if needed, more details in https://github.com/rust-lang-nursery/futures-rs/issues/228
[INFO] [stdout]   --> src/io/write/mod.rs:75:74
[INFO] [stdout]    |
[INFO] [stdout] 75 |         let mut f = Some(move |writer: W| self.lossless_write_to(writer).boxed());
[INFO] [stdout]    |                                                                          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `futures::Future::boxed`: removed without replacement, recommended to use a local extension trait or function if needed, more details in https://github.com/rust-lang-nursery/futures-rs/issues/228
[INFO] [stdout]   --> src/io/write/mod.rs:75:74
[INFO] [stdout]    |
[INFO] [stdout] 75 |         let mut f = Some(move |writer: W| self.lossless_write_to(writer).boxed());
[INFO] [stdout]    |                                                                          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: where clauses on type aliases are not enforced
[INFO] [stdout]    --> src/io/read/primitives.rs:114:31
[INFO] [stdout]     |
[INFO] [stdout] 114 | type MapFuture<R, P, T> where P: Pattern =
[INFO] [stdout]     |                               ^^^^^^^^^^ will not be checked at usage sites of the type alias
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]             see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout]     = help: add `#![feature(lazy_type_alias)]` to the crate attributes to enable the desired semantics
[INFO] [stdout]     = note: `#[warn(type_alias_bounds)]` on by default
[INFO] [stdout] help: remove this where clause
[INFO] [stdout]     |
[INFO] [stdout] 114 - type MapFuture<R, P, T> where P: Pattern =
[INFO] [stdout] 114 + type MapFuture<R, P, T>  =
[INFO] [stdout]     |
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 115 |     <pattern::combinators::Map<P, fn(<P as /* Trait */>::Value) -> T> as ReadFrom<R>>::Future;
[INFO] [stdout]     |                                      +  +++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: where clauses on type aliases are not enforced
[INFO] [stdout]    --> src/io/read/primitives.rs:208:27
[INFO] [stdout]     |
[INFO] [stdout] 208 | pub type ReadEos<R> where R: Read = io_futures::ReadThen<R,
[INFO] [stdout]     |                     ------^^^^^^^
[INFO] [stdout]     |                     |     |
[INFO] [stdout]     |                     |     will not be checked at usage sites of the type alias
[INFO] [stdout]     |                     help: remove this where clause
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]             see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout]     = help: add `#![feature(lazy_type_alias)]` to the crate attributes to enable the desired semantics
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: where clauses on type aliases are not enforced
[INFO] [stdout]   --> src/io/read/combinators.rs:86:11
[INFO] [stdout]    |
[INFO] [stdout] 86 |     where P0: ReadFrom<R>,
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 87 |           P1: ReadFrom<R>,
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 88 |           F: FnOnce(P0::Value) -> P1,
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 89 |           R: Read = ReadThen<R,
[INFO] [stdout]    |           ^^^^^^^ will not be checked at usage sites of the type alias
[INFO] [stdout]    |
[INFO] [stdout]    = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]            see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout]    = help: add `#![feature(lazy_type_alias)]` to the crate attributes to enable the desired semantics
[INFO] [stdout] help: remove this where clause
[INFO] [stdout]    |
[INFO] [stdout] 86 -     where P0: ReadFrom<R>,
[INFO] [stdout] 87 -           P1: ReadFrom<R>,
[INFO] [stdout] 88 -           F: FnOnce(P0::Value) -> P1,
[INFO] [stdout] 89 -           R: Read = ReadThen<R,
[INFO] [stdout] 86 +      = ReadThen<R,
[INFO] [stdout]    |
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]    |
[INFO] [stdout] 91 |                              Branch<P1, io::Result<<P1 as /* Trait */>::Value>>,
[INFO] [stdout]    |                                                    +   +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]    |
[INFO] [stdout] 92 |                              fn(io::Result<(<P0 as /* Trait */>::Value, F)>) -> Branch<P1, io::Result<P1::Value>>>;
[INFO] [stdout]    |                                             +   +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]    |
[INFO] [stdout] 92 |                              fn(io::Result<(P0::Value, F)>) -> Branch<P1, io::Result<<P1 as /* Trait */>::Value>>>;
[INFO] [stdout]    |                                                                                      +   +++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: where clauses on type aliases are not enforced
[INFO] [stdout]    --> src/io/read/combinators.rs:197:11
[INFO] [stdout]     |
[INFO] [stdout] 197 |     where P: ReadFrom<R>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^
[INFO] [stdout] 198 |           F: FnOnce(P::Value) -> T,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 199 |           R: Read = ReadAndThen<R,
[INFO] [stdout]     |           ^^^^^^^ will not be checked at usage sites of the type alias
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]             see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout]     = help: add `#![feature(lazy_type_alias)]` to the crate attributes to enable the desired semantics
[INFO] [stdout] help: remove this where clause
[INFO] [stdout]     |
[INFO] [stdout] 197 -     where P: ReadFrom<R>,
[INFO] [stdout] 198 -           F: FnOnce(P::Value) -> T,
[INFO] [stdout] 199 -           R: Read = ReadAndThen<R,
[INFO] [stdout] 197 +      = ReadAndThen<R,
[INFO] [stdout]     |
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 202 |                                 fn((<P as /* Trait */>::Value, F)) -> io::Result<T>>;
[INFO] [stdout]     |                                     +  +++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: where clauses on type aliases are not enforced
[INFO] [stdout]    --> src/io/read/combinators.rs:343:11
[INFO] [stdout]     |
[INFO] [stdout] 343 |     where I: Iterator,
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] 344 |           I::Item: ReadFrom<R>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 345 |           R: Read = ReadIterFold<R, I::Item, I, fn((), <I::Item as Pattern>::Value) -> (), ()>;
[INFO] [stdout]     |           ^^^^^^^ will not be checked at usage sites of the type alias
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]             see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout]     = help: add `#![feature(lazy_type_alias)]` to the crate attributes to enable the desired semantics
[INFO] [stdout] help: remove this where clause
[INFO] [stdout]     |
[INFO] [stdout] 343 -     where I: Iterator,
[INFO] [stdout] 344 -           I::Item: ReadFrom<R>,
[INFO] [stdout] 345 -           R: Read = ReadIterFold<R, I::Item, I, fn((), <I::Item as Pattern>::Value) -> (), ()>;
[INFO] [stdout] 343 +      = ReadIterFold<R, I::Item, I, fn((), <I::Item as Pattern>::Value) -> (), ()>;
[INFO] [stdout]     |
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 345 |           R: Read = ReadIterFold<R, <I as /* Trait */>::Item, I, fn((), <I::Item as Pattern>::Value) -> (), ()>;
[INFO] [stdout]     |                                     +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 345 |           R: Read = ReadIterFold<R, I::Item, I, fn((), <<I as /* Trait */>::Item as Pattern>::Value) -> (), ()>;
[INFO] [stdout]     |                                                         +  +++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: where clauses on type aliases are not enforced
[INFO] [stdout]    --> src/io/read/combinators.rs:375:11
[INFO] [stdout]     |
[INFO] [stdout] 375 |     where R: Read,
[INFO] [stdout]     |           ^^^^^^^
[INFO] [stdout] 376 |           P: ReadFrom<R> = Branch<ReadMap<R,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^ will not be checked at usage sites of the type alias
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]             see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout]     = help: add `#![feature(lazy_type_alias)]` to the crate attributes to enable the desired semantics
[INFO] [stdout] help: remove this where clause
[INFO] [stdout]     |
[INFO] [stdout] 375 -     where R: Read,
[INFO] [stdout] 376 -           P: ReadFrom<R> = Branch<ReadMap<R,
[INFO] [stdout] 375 +      = Branch<ReadMap<R,
[INFO] [stdout]     |
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 378 |                                           fn(<P as /* Trait */>::Value) -> Option<P::Value>,
[INFO] [stdout]     |                                              +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 378 |                                           fn(P::Value) -> Option<<P as /* Trait */>::Value>,
[INFO] [stdout]     |                                                                  +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 379 |                                           Option<<P as /* Trait */>::Value>>,
[INFO] [stdout]     |                                                  +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 380 |                                   futures::Done<(R, Option<<P as /* Trait */>::Value>), (R, io::Error)>>;
[INFO] [stdout]     |                                                            +  +++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: where clauses on type aliases are not enforced
[INFO] [stdout]    --> src/io/read/combinators.rs:434:28
[INFO] [stdout]     |
[INFO] [stdout] 434 | type MapFuture<F, T> where F: Future = futures::Map<F, fn(F::Item) -> T>;
[INFO] [stdout]     |                            ^^^^^^^^^ will not be checked at usage sites of the type alias
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]             see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout]     = help: add `#![feature(lazy_type_alias)]` to the crate attributes to enable the desired semantics
[INFO] [stdout] help: remove this where clause
[INFO] [stdout]     |
[INFO] [stdout] 434 - type MapFuture<F, T> where F: Future = futures::Map<F, fn(F::Item) -> T>;
[INFO] [stdout] 434 + type MapFuture<F, T>  = futures::Map<F, fn(F::Item) -> T>;
[INFO] [stdout]     |
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 434 | type MapFuture<F, T> where F: Future = futures::Map<F, fn(<F as /* Trait */>::Item) -> T>;
[INFO] [stdout]     |                                                           +  +++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: where clauses on type aliases are not enforced
[INFO] [stdout]    --> src/io/read/combinators.rs:479:11
[INFO] [stdout]     |
[INFO] [stdout] 479 |     where A: ReadFrom<R>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^
[INFO] [stdout] 480 |           B: ReadFrom<R, Value = A::Value>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 481 |           C: ReadFrom<R, Value = A::Value>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 482 |           D: ReadFrom<R, Value = A::Value>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 483 |           E: ReadFrom<R, Value = A::Value>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 484 |           F: ReadFrom<R, Value = A::Value>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 485 |           G: ReadFrom<R, Value = A::Value>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 486 |           H: ReadFrom<R, Value = A::Value>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 487 |           R: Read = Branch<A::Future,
[INFO] [stdout]     |           ^^^^^^^ will not be checked at usage sites of the type alias
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]             see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout]     = help: add `#![feature(lazy_type_alias)]` to the crate attributes to enable the desired semantics
[INFO] [stdout] help: remove this where clause
[INFO] [stdout]     |
[INFO] [stdout] 479 -     where A: ReadFrom<R>,
[INFO] [stdout] 480 -           B: ReadFrom<R, Value = A::Value>,
[INFO] [stdout] 481 -           C: ReadFrom<R, Value = A::Value>,
[INFO] [stdout] 482 -           D: ReadFrom<R, Value = A::Value>,
[INFO] [stdout] 483 -           E: ReadFrom<R, Value = A::Value>,
[INFO] [stdout] 484 -           F: ReadFrom<R, Value = A::Value>,
[INFO] [stdout] 485 -           G: ReadFrom<R, Value = A::Value>,
[INFO] [stdout] 486 -           H: ReadFrom<R, Value = A::Value>,
[INFO] [stdout] 487 -           R: Read = Branch<A::Future,
[INFO] [stdout] 479 +      = Branch<A::Future,
[INFO] [stdout]     |
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 487 |           R: Read = Branch<<A as /* Trait */>::Future,
[INFO] [stdout]     |                            +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 488 |                            <B as /* Trait */>::Future,
[INFO] [stdout]     |                            +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 489 |                            <C as /* Trait */>::Future,
[INFO] [stdout]     |                            +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 490 |                            <D as /* Trait */>::Future,
[INFO] [stdout]     |                            +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 491 |                            <E as /* Trait */>::Future,
[INFO] [stdout]     |                            +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 492 |                            <F as /* Trait */>::Future,
[INFO] [stdout]     |                            +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 493 |                            <G as /* Trait */>::Future,
[INFO] [stdout]     |                            +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 494 |                            <H as /* Trait */>::Future>;
[INFO] [stdout]     |                            +  +++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: where clauses on type aliases are not enforced
[INFO] [stdout]    --> src/io/write/primitives.rs:101:29
[INFO] [stdout]     |
[INFO] [stdout] 101 | type MapFuture<W,P,T> where P: WriteTo<W> =
[INFO] [stdout]     |                             ^^^^^^^^^^^^^ will not be checked at usage sites of the type alias
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]             see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout]     = help: add `#![feature(lazy_type_alias)]` to the crate attributes to enable the desired semantics
[INFO] [stdout] help: remove this where clause
[INFO] [stdout]     |
[INFO] [stdout] 101 - type MapFuture<W,P,T> where P: WriteTo<W> =
[INFO] [stdout] 101 + type MapFuture<W,P,T>  =
[INFO] [stdout]     |
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 102 |      <pattern::combinators::Map<P, fn (<P as /* Trait */>::Value) -> T> as WriteTo<W>>::Future;
[INFO] [stdout]     |                                        +  +++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: where clauses on type aliases are not enforced
[INFO] [stdout]   --> src/io/write/combinators.rs:92:11
[INFO] [stdout]    |
[INFO] [stdout] 92 |     where P0: WriteTo<W>,
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 93 |           P1: WriteTo<W>,
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 94 |           F: FnOnce(P0::Value) -> P1,
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 95 |           W: Write = WriteThen<W,
[INFO] [stdout]    |           ^^^^^^^^ will not be checked at usage sites of the type alias
[INFO] [stdout]    |
[INFO] [stdout]    = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]            see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout]    = help: add `#![feature(lazy_type_alias)]` to the crate attributes to enable the desired semantics
[INFO] [stdout] help: remove this where clause
[INFO] [stdout]    |
[INFO] [stdout] 92 -     where P0: WriteTo<W>,
[INFO] [stdout] 93 -           P1: WriteTo<W>,
[INFO] [stdout] 94 -           F: FnOnce(P0::Value) -> P1,
[INFO] [stdout] 95 -           W: Write = WriteThen<W,
[INFO] [stdout] 92 +      = WriteThen<W,
[INFO] [stdout]    |
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]    |
[INFO] [stdout] 97 |                                Branch<P1, io::Result<<P1 as /* Trait */>::Value>>,
[INFO] [stdout]    |                                                      +   +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]    |
[INFO] [stdout] 98 |                                fn(io::Result<(<P0 as /* Trait */>::Value, F)>) -> Branch<P1, io::Result<P1::Value>>>;
[INFO] [stdout]    |                                               +   +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]    |
[INFO] [stdout] 98 |                                fn(io::Result<(P0::Value, F)>) -> Branch<P1, io::Result<<P1 as /* Trait */>::Value>>>;
[INFO] [stdout]    |                                                                                        +   +++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: where clauses on type aliases are not enforced
[INFO] [stdout]    --> src/io/write/combinators.rs:301:29
[INFO] [stdout]     |
[INFO] [stdout] 301 | type MapFuture<W,P,T> where P: WriteTo<W> =
[INFO] [stdout]     |                             ^^^^^^^^^^^^^ will not be checked at usage sites of the type alias
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]             see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout]     = help: add `#![feature(lazy_type_alias)]` to the crate attributes to enable the desired semantics
[INFO] [stdout] help: remove this where clause
[INFO] [stdout]     |
[INFO] [stdout] 301 - type MapFuture<W,P,T> where P: WriteTo<W> =
[INFO] [stdout] 301 + type MapFuture<W,P,T>  =
[INFO] [stdout]     |
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 302 |      <pattern::combinators::Map<P, fn (<P as /* Trait */>::Value) -> T> as WriteTo<W>>::Future;
[INFO] [stdout]     |                                        +  +++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: where clauses on type aliases are not enforced
[INFO] [stdout]    --> src/io/write/combinators.rs:346:11
[INFO] [stdout]     |
[INFO] [stdout] 346 |     where A: WriteTo<W>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^
[INFO] [stdout] 347 |           B: WriteTo<W, Value = A::Value>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 348 |           C: WriteTo<W, Value = A::Value>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 349 |           D: WriteTo<W, Value = A::Value>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 350 |           E: WriteTo<W, Value = A::Value>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 351 |           F: WriteTo<W, Value = A::Value>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 352 |           G: WriteTo<W, Value = A::Value>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 353 |           H: WriteTo<W, Value = A::Value>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 354 |           W: Write = Branch<A::Future,
[INFO] [stdout]     |           ^^^^^^^^ will not be checked at usage sites of the type alias
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]             see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout]     = help: add `#![feature(lazy_type_alias)]` to the crate attributes to enable the desired semantics
[INFO] [stdout] help: remove this where clause
[INFO] [stdout]     |
[INFO] [stdout] 346 -     where A: WriteTo<W>,
[INFO] [stdout] 347 -           B: WriteTo<W, Value = A::Value>,
[INFO] [stdout] 348 -           C: WriteTo<W, Value = A::Value>,
[INFO] [stdout] 349 -           D: WriteTo<W, Value = A::Value>,
[INFO] [stdout] 350 -           E: WriteTo<W, Value = A::Value>,
[INFO] [stdout] 351 -           F: WriteTo<W, Value = A::Value>,
[INFO] [stdout] 352 -           G: WriteTo<W, Value = A::Value>,
[INFO] [stdout] 353 -           H: WriteTo<W, Value = A::Value>,
[INFO] [stdout] 354 -           W: Write = Branch<A::Future,
[INFO] [stdout] 346 +      = Branch<A::Future,
[INFO] [stdout]     |
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 354 |           W: Write = Branch<<A as /* Trait */>::Future,
[INFO] [stdout]     |                             +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 355 |                             <B as /* Trait */>::Future,
[INFO] [stdout]     |                             +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 356 |                             <C as /* Trait */>::Future,
[INFO] [stdout]     |                             +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 357 |                             <D as /* Trait */>::Future,
[INFO] [stdout]     |                             +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 358 |                             <E as /* Trait */>::Future,
[INFO] [stdout]     |                             +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 359 |                             <F as /* Trait */>::Future,
[INFO] [stdout]     |                             +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 360 |                             <G as /* Trait */>::Future,
[INFO] [stdout]     |                             +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 361 |                             <H as /* Trait */>::Future>;
[INFO] [stdout]     |                             +  +++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: where clauses on type aliases are not enforced
[INFO] [stdout]    --> src/io/write/combinators.rs:460:11
[INFO] [stdout]     |
[INFO] [stdout] 460 |     where I: Iterator,
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] 461 |           I::Item: Pattern = WriteIterFold<W,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^ will not be checked at usage sites of the type alias
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]             see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout]     = help: add `#![feature(lazy_type_alias)]` to the crate attributes to enable the desired semantics
[INFO] [stdout] help: remove this where clause
[INFO] [stdout]     |
[INFO] [stdout] 460 -     where I: Iterator,
[INFO] [stdout] 461 -           I::Item: Pattern = WriteIterFold<W,
[INFO] [stdout] 460 +      = WriteIterFold<W,
[INFO] [stdout]     |
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 462 |                                            <I as /* Trait */>::Item,
[INFO] [stdout]     |                                            +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 464 |                                            fn((), <<I as /* Trait */>::Item as Pattern>::Value) -> (),
[INFO] [stdout]     |                                                    +  +++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: where clauses on type aliases are not enforced
[INFO] [stdout]    --> src/io/write/combinators.rs:497:34
[INFO] [stdout]     |
[INFO] [stdout] 497 | pub type WriteOption<W, P> where P: Pattern =
[INFO] [stdout]     |                                  ^^^^^^^^^^ will not be checked at usage sites of the type alias
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]             see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout]     = help: add `#![feature(lazy_type_alias)]` to the crate attributes to enable the desired semantics
[INFO] [stdout] help: remove this where clause
[INFO] [stdout]     |
[INFO] [stdout] 497 - pub type WriteOption<W, P> where P: Pattern =
[INFO] [stdout] 497 + pub type WriteOption<W, P>  =
[INFO] [stdout]     |
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 498 |     <Branch<pattern::combinators::Map<P, fn(<P as /* Trait */>::Value) -> Option<P::Value>>,
[INFO] [stdout]     |                                             +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 498 |     <Branch<pattern::combinators::Map<P, fn(P::Value) -> Option<<P as /* Trait */>::Value>>,
[INFO] [stdout]     |                                                                 +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 499 |            io::Result<Option<<P as /* Trait */>::Value>>> as WriteTo<W>>::Future;
[INFO] [stdout]     |                              +  +++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: where clauses on type aliases are not enforced
[INFO] [stdout]    --> src/io/read/primitives.rs:114:31
[INFO] [stdout]     |
[INFO] [stdout] 114 | type MapFuture<R, P, T> where P: Pattern =
[INFO] [stdout]     |                               ^^^^^^^^^^ will not be checked at usage sites of the type alias
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]             see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout]     = help: add `#![feature(lazy_type_alias)]` to the crate attributes to enable the desired semantics
[INFO] [stdout]     = note: `#[warn(type_alias_bounds)]` on by default
[INFO] [stdout] help: remove this where clause
[INFO] [stdout]     |
[INFO] [stdout] 114 - type MapFuture<R, P, T> where P: Pattern =
[INFO] [stdout] 114 + type MapFuture<R, P, T>  =
[INFO] [stdout]     |
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 115 |     <pattern::combinators::Map<P, fn(<P as /* Trait */>::Value) -> T> as ReadFrom<R>>::Future;
[INFO] [stdout]     |                                      +  +++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: where clauses on type aliases are not enforced
[INFO] [stdout]    --> src/io/read/primitives.rs:208:27
[INFO] [stdout]     |
[INFO] [stdout] 208 | pub type ReadEos<R> where R: Read = io_futures::ReadThen<R,
[INFO] [stdout]     |                     ------^^^^^^^
[INFO] [stdout]     |                     |     |
[INFO] [stdout]     |                     |     will not be checked at usage sites of the type alias
[INFO] [stdout]     |                     help: remove this where clause
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]             see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout]     = help: add `#![feature(lazy_type_alias)]` to the crate attributes to enable the desired semantics
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: where clauses on type aliases are not enforced
[INFO] [stdout]   --> src/io/read/combinators.rs:86:11
[INFO] [stdout]    |
[INFO] [stdout] 86 |     where P0: ReadFrom<R>,
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 87 |           P1: ReadFrom<R>,
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 88 |           F: FnOnce(P0::Value) -> P1,
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 89 |           R: Read = ReadThen<R,
[INFO] [stdout]    |           ^^^^^^^ will not be checked at usage sites of the type alias
[INFO] [stdout]    |
[INFO] [stdout]    = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]            see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout]    = help: add `#![feature(lazy_type_alias)]` to the crate attributes to enable the desired semantics
[INFO] [stdout] help: remove this where clause
[INFO] [stdout]    |
[INFO] [stdout] 86 -     where P0: ReadFrom<R>,
[INFO] [stdout] 87 -           P1: ReadFrom<R>,
[INFO] [stdout] 88 -           F: FnOnce(P0::Value) -> P1,
[INFO] [stdout] 89 -           R: Read = ReadThen<R,
[INFO] [stdout] 86 +      = ReadThen<R,
[INFO] [stdout]    |
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]    |
[INFO] [stdout] 91 |                              Branch<P1, io::Result<<P1 as /* Trait */>::Value>>,
[INFO] [stdout]    |                                                    +   +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]    |
[INFO] [stdout] 92 |                              fn(io::Result<(<P0 as /* Trait */>::Value, F)>) -> Branch<P1, io::Result<P1::Value>>>;
[INFO] [stdout]    |                                             +   +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]    |
[INFO] [stdout] 92 |                              fn(io::Result<(P0::Value, F)>) -> Branch<P1, io::Result<<P1 as /* Trait */>::Value>>>;
[INFO] [stdout]    |                                                                                      +   +++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: where clauses on type aliases are not enforced
[INFO] [stdout]    --> src/io/read/combinators.rs:197:11
[INFO] [stdout]     |
[INFO] [stdout] 197 |     where P: ReadFrom<R>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^
[INFO] [stdout] 198 |           F: FnOnce(P::Value) -> T,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 199 |           R: Read = ReadAndThen<R,
[INFO] [stdout]     |           ^^^^^^^ will not be checked at usage sites of the type alias
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]             see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout]     = help: add `#![feature(lazy_type_alias)]` to the crate attributes to enable the desired semantics
[INFO] [stdout] help: remove this where clause
[INFO] [stdout]     |
[INFO] [stdout] 197 -     where P: ReadFrom<R>,
[INFO] [stdout] 198 -           F: FnOnce(P::Value) -> T,
[INFO] [stdout] 199 -           R: Read = ReadAndThen<R,
[INFO] [stdout] 197 +      = ReadAndThen<R,
[INFO] [stdout]     |
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 202 |                                 fn((<P as /* Trait */>::Value, F)) -> io::Result<T>>;
[INFO] [stdout]     |                                     +  +++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: where clauses on type aliases are not enforced
[INFO] [stdout]    --> src/io/read/combinators.rs:343:11
[INFO] [stdout]     |
[INFO] [stdout] 343 |     where I: Iterator,
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] 344 |           I::Item: ReadFrom<R>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 345 |           R: Read = ReadIterFold<R, I::Item, I, fn((), <I::Item as Pattern>::Value) -> (), ()>;
[INFO] [stdout]     |           ^^^^^^^ will not be checked at usage sites of the type alias
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]             see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout]     = help: add `#![feature(lazy_type_alias)]` to the crate attributes to enable the desired semantics
[INFO] [stdout] help: remove this where clause
[INFO] [stdout]     |
[INFO] [stdout] 343 -     where I: Iterator,
[INFO] [stdout] 344 -           I::Item: ReadFrom<R>,
[INFO] [stdout] 345 -           R: Read = ReadIterFold<R, I::Item, I, fn((), <I::Item as Pattern>::Value) -> (), ()>;
[INFO] [stdout] 343 +      = ReadIterFold<R, I::Item, I, fn((), <I::Item as Pattern>::Value) -> (), ()>;
[INFO] [stdout]     |
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 345 |           R: Read = ReadIterFold<R, <I as /* Trait */>::Item, I, fn((), <I::Item as Pattern>::Value) -> (), ()>;
[INFO] [stdout]     |                                     +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 345 |           R: Read = ReadIterFold<R, I::Item, I, fn((), <<I as /* Trait */>::Item as Pattern>::Value) -> (), ()>;
[INFO] [stdout]     |                                                         +  +++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: where clauses on type aliases are not enforced
[INFO] [stdout]    --> src/io/read/combinators.rs:375:11
[INFO] [stdout]     |
[INFO] [stdout] 375 |     where R: Read,
[INFO] [stdout]     |           ^^^^^^^
[INFO] [stdout] 376 |           P: ReadFrom<R> = Branch<ReadMap<R,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^ will not be checked at usage sites of the type alias
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]             see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout]     = help: add `#![feature(lazy_type_alias)]` to the crate attributes to enable the desired semantics
[INFO] [stdout] help: remove this where clause
[INFO] [stdout]     |
[INFO] [stdout] 375 -     where R: Read,
[INFO] [stdout] 376 -           P: ReadFrom<R> = Branch<ReadMap<R,
[INFO] [stdout] 375 +      = Branch<ReadMap<R,
[INFO] [stdout]     |
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 378 |                                           fn(<P as /* Trait */>::Value) -> Option<P::Value>,
[INFO] [stdout]     |                                              +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 378 |                                           fn(P::Value) -> Option<<P as /* Trait */>::Value>,
[INFO] [stdout]     |                                                                  +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 379 |                                           Option<<P as /* Trait */>::Value>>,
[INFO] [stdout]     |                                                  +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 380 |                                   futures::Done<(R, Option<<P as /* Trait */>::Value>), (R, io::Error)>>;
[INFO] [stdout]     |                                                            +  +++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: where clauses on type aliases are not enforced
[INFO] [stdout]    --> src/io/read/combinators.rs:434:28
[INFO] [stdout]     |
[INFO] [stdout] 434 | type MapFuture<F, T> where F: Future = futures::Map<F, fn(F::Item) -> T>;
[INFO] [stdout]     |                            ^^^^^^^^^ will not be checked at usage sites of the type alias
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]             see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout]     = help: add `#![feature(lazy_type_alias)]` to the crate attributes to enable the desired semantics
[INFO] [stdout] help: remove this where clause
[INFO] [stdout]     |
[INFO] [stdout] 434 - type MapFuture<F, T> where F: Future = futures::Map<F, fn(F::Item) -> T>;
[INFO] [stdout] 434 + type MapFuture<F, T>  = futures::Map<F, fn(F::Item) -> T>;
[INFO] [stdout]     |
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 434 | type MapFuture<F, T> where F: Future = futures::Map<F, fn(<F as /* Trait */>::Item) -> T>;
[INFO] [stdout]     |                                                           +  +++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: where clauses on type aliases are not enforced
[INFO] [stdout]    --> src/io/read/combinators.rs:479:11
[INFO] [stdout]     |
[INFO] [stdout] 479 |     where A: ReadFrom<R>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^
[INFO] [stdout] 480 |           B: ReadFrom<R, Value = A::Value>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 481 |           C: ReadFrom<R, Value = A::Value>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 482 |           D: ReadFrom<R, Value = A::Value>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 483 |           E: ReadFrom<R, Value = A::Value>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 484 |           F: ReadFrom<R, Value = A::Value>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 485 |           G: ReadFrom<R, Value = A::Value>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 486 |           H: ReadFrom<R, Value = A::Value>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 487 |           R: Read = Branch<A::Future,
[INFO] [stdout]     |           ^^^^^^^ will not be checked at usage sites of the type alias
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]             see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout]     = help: add `#![feature(lazy_type_alias)]` to the crate attributes to enable the desired semantics
[INFO] [stdout] help: remove this where clause
[INFO] [stdout]     |
[INFO] [stdout] 479 -     where A: ReadFrom<R>,
[INFO] [stdout] 480 -           B: ReadFrom<R, Value = A::Value>,
[INFO] [stdout] 481 -           C: ReadFrom<R, Value = A::Value>,
[INFO] [stdout] 482 -           D: ReadFrom<R, Value = A::Value>,
[INFO] [stdout] 483 -           E: ReadFrom<R, Value = A::Value>,
[INFO] [stdout] 484 -           F: ReadFrom<R, Value = A::Value>,
[INFO] [stdout] 485 -           G: ReadFrom<R, Value = A::Value>,
[INFO] [stdout] 486 -           H: ReadFrom<R, Value = A::Value>,
[INFO] [stdout] 487 -           R: Read = Branch<A::Future,
[INFO] [stdout] 479 +      = Branch<A::Future,
[INFO] [stdout]     |
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 487 |           R: Read = Branch<<A as /* Trait */>::Future,
[INFO] [stdout]     |                            +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 488 |                            <B as /* Trait */>::Future,
[INFO] [stdout]     |                            +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 489 |                            <C as /* Trait */>::Future,
[INFO] [stdout]     |                            +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 490 |                            <D as /* Trait */>::Future,
[INFO] [stdout]     |                            +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 491 |                            <E as /* Trait */>::Future,
[INFO] [stdout]     |                            +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 492 |                            <F as /* Trait */>::Future,
[INFO] [stdout]     |                            +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 493 |                            <G as /* Trait */>::Future,
[INFO] [stdout]     |                            +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 494 |                            <H as /* Trait */>::Future>;
[INFO] [stdout]     |                            +  +++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: where clauses on type aliases are not enforced
[INFO] [stdout]    --> src/io/write/primitives.rs:101:29
[INFO] [stdout]     |
[INFO] [stdout] 101 | type MapFuture<W,P,T> where P: WriteTo<W> =
[INFO] [stdout]     |                             ^^^^^^^^^^^^^ will not be checked at usage sites of the type alias
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]             see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout]     = help: add `#![feature(lazy_type_alias)]` to the crate attributes to enable the desired semantics
[INFO] [stdout] help: remove this where clause
[INFO] [stdout]     |
[INFO] [stdout] 101 - type MapFuture<W,P,T> where P: WriteTo<W> =
[INFO] [stdout] 101 + type MapFuture<W,P,T>  =
[INFO] [stdout]     |
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 102 |      <pattern::combinators::Map<P, fn (<P as /* Trait */>::Value) -> T> as WriteTo<W>>::Future;
[INFO] [stdout]     |                                        +  +++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: where clauses on type aliases are not enforced
[INFO] [stdout]   --> src/io/write/combinators.rs:92:11
[INFO] [stdout]    |
[INFO] [stdout] 92 |     where P0: WriteTo<W>,
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 93 |           P1: WriteTo<W>,
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 94 |           F: FnOnce(P0::Value) -> P1,
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 95 |           W: Write = WriteThen<W,
[INFO] [stdout]    |           ^^^^^^^^ will not be checked at usage sites of the type alias
[INFO] [stdout]    |
[INFO] [stdout]    = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]            see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout]    = help: add `#![feature(lazy_type_alias)]` to the crate attributes to enable the desired semantics
[INFO] [stdout] help: remove this where clause
[INFO] [stdout]    |
[INFO] [stdout] 92 -     where P0: WriteTo<W>,
[INFO] [stdout] 93 -           P1: WriteTo<W>,
[INFO] [stdout] 94 -           F: FnOnce(P0::Value) -> P1,
[INFO] [stdout] 95 -           W: Write = WriteThen<W,
[INFO] [stdout] 92 +      = WriteThen<W,
[INFO] [stdout]    |
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]    |
[INFO] [stdout] 97 |                                Branch<P1, io::Result<<P1 as /* Trait */>::Value>>,
[INFO] [stdout]    |                                                      +   +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]    |
[INFO] [stdout] 98 |                                fn(io::Result<(<P0 as /* Trait */>::Value, F)>) -> Branch<P1, io::Result<P1::Value>>>;
[INFO] [stdout]    |                                               +   +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]    |
[INFO] [stdout] 98 |                                fn(io::Result<(P0::Value, F)>) -> Branch<P1, io::Result<<P1 as /* Trait */>::Value>>>;
[INFO] [stdout]    |                                                                                        +   +++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: where clauses on type aliases are not enforced
[INFO] [stdout]    --> src/io/write/combinators.rs:301:29
[INFO] [stdout]     |
[INFO] [stdout] 301 | type MapFuture<W,P,T> where P: WriteTo<W> =
[INFO] [stdout]     |                             ^^^^^^^^^^^^^ will not be checked at usage sites of the type alias
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]             see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout]     = help: add `#![feature(lazy_type_alias)]` to the crate attributes to enable the desired semantics
[INFO] [stdout] help: remove this where clause
[INFO] [stdout]     |
[INFO] [stdout] 301 - type MapFuture<W,P,T> where P: WriteTo<W> =
[INFO] [stdout] 301 + type MapFuture<W,P,T>  =
[INFO] [stdout]     |
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 302 |      <pattern::combinators::Map<P, fn (<P as /* Trait */>::Value) -> T> as WriteTo<W>>::Future;
[INFO] [stdout]     |                                        +  +++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: where clauses on type aliases are not enforced
[INFO] [stdout]    --> src/io/write/combinators.rs:346:11
[INFO] [stdout]     |
[INFO] [stdout] 346 |     where A: WriteTo<W>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^
[INFO] [stdout] 347 |           B: WriteTo<W, Value = A::Value>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 348 |           C: WriteTo<W, Value = A::Value>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 349 |           D: WriteTo<W, Value = A::Value>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 350 |           E: WriteTo<W, Value = A::Value>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 351 |           F: WriteTo<W, Value = A::Value>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 352 |           G: WriteTo<W, Value = A::Value>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 353 |           H: WriteTo<W, Value = A::Value>,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 354 |           W: Write = Branch<A::Future,
[INFO] [stdout]     |           ^^^^^^^^ will not be checked at usage sites of the type alias
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]             see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout]     = help: add `#![feature(lazy_type_alias)]` to the crate attributes to enable the desired semantics
[INFO] [stdout] help: remove this where clause
[INFO] [stdout]     |
[INFO] [stdout] 346 -     where A: WriteTo<W>,
[INFO] [stdout] 347 -           B: WriteTo<W, Value = A::Value>,
[INFO] [stdout] 348 -           C: WriteTo<W, Value = A::Value>,
[INFO] [stdout] 349 -           D: WriteTo<W, Value = A::Value>,
[INFO] [stdout] 350 -           E: WriteTo<W, Value = A::Value>,
[INFO] [stdout] 351 -           F: WriteTo<W, Value = A::Value>,
[INFO] [stdout] 352 -           G: WriteTo<W, Value = A::Value>,
[INFO] [stdout] 353 -           H: WriteTo<W, Value = A::Value>,
[INFO] [stdout] 354 -           W: Write = Branch<A::Future,
[INFO] [stdout] 346 +      = Branch<A::Future,
[INFO] [stdout]     |
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 354 |           W: Write = Branch<<A as /* Trait */>::Future,
[INFO] [stdout]     |                             +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 355 |                             <B as /* Trait */>::Future,
[INFO] [stdout]     |                             +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 356 |                             <C as /* Trait */>::Future,
[INFO] [stdout]     |                             +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 357 |                             <D as /* Trait */>::Future,
[INFO] [stdout]     |                             +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 358 |                             <E as /* Trait */>::Future,
[INFO] [stdout]     |                             +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 359 |                             <F as /* Trait */>::Future,
[INFO] [stdout]     |                             +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 360 |                             <G as /* Trait */>::Future,
[INFO] [stdout]     |                             +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 361 |                             <H as /* Trait */>::Future>;
[INFO] [stdout]     |                             +  +++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: where clauses on type aliases are not enforced
[INFO] [stdout]    --> src/io/write/combinators.rs:460:11
[INFO] [stdout]     |
[INFO] [stdout] 460 |     where I: Iterator,
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] 461 |           I::Item: Pattern = WriteIterFold<W,
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^ will not be checked at usage sites of the type alias
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]             see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout]     = help: add `#![feature(lazy_type_alias)]` to the crate attributes to enable the desired semantics
[INFO] [stdout] help: remove this where clause
[INFO] [stdout]     |
[INFO] [stdout] 460 -     where I: Iterator,
[INFO] [stdout] 461 -           I::Item: Pattern = WriteIterFold<W,
[INFO] [stdout] 460 +      = WriteIterFold<W,
[INFO] [stdout]     |
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 462 |                                            <I as /* Trait */>::Item,
[INFO] [stdout]     |                                            +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 464 |                                            fn((), <<I as /* Trait */>::Item as Pattern>::Value) -> (),
[INFO] [stdout]     |                                                    +  +++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: where clauses on type aliases are not enforced
[INFO] [stdout]    --> src/io/write/combinators.rs:497:34
[INFO] [stdout]     |
[INFO] [stdout] 497 | pub type WriteOption<W, P> where P: Pattern =
[INFO] [stdout]     |                                  ^^^^^^^^^^ will not be checked at usage sites of the type alias
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]             see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout]     = help: add `#![feature(lazy_type_alias)]` to the crate attributes to enable the desired semantics
[INFO] [stdout] help: remove this where clause
[INFO] [stdout]     |
[INFO] [stdout] 497 - pub type WriteOption<W, P> where P: Pattern =
[INFO] [stdout] 497 + pub type WriteOption<W, P>  =
[INFO] [stdout]     |
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 498 |     <Branch<pattern::combinators::Map<P, fn(<P as /* Trait */>::Value) -> Option<P::Value>>,
[INFO] [stdout]     |                                             +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 498 |     <Branch<pattern::combinators::Map<P, fn(P::Value) -> Option<<P as /* Trait */>::Value>>,
[INFO] [stdout]     |                                                                 +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 499 |            io::Result<Option<<P as /* Trait */>::Value>>> as WriteTo<W>>::Future;
[INFO] [stdout]     |                              +  +++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.88s
[INFO] running `Command { std: "docker" "inspect" "b5cb48908e5c80a234aae727191cd9babd48b022713a5903094c814ec836faa3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b5cb48908e5c80a234aae727191cd9babd48b022713a5903094c814ec836faa3", kill_on_drop: false }`
[INFO] [stdout] b5cb48908e5c80a234aae727191cd9babd48b022713a5903094c814ec836faa3
