[INFO] crate handy_io 0.1.2 is already in cache
[INFO] checking handy_io-0.1.2 against master#209b2be09fcaff937480d1fbbe8b31646e361c7a for pr-70917
[INFO] extracting crate handy_io 0.1.2 into /workspace/builds/worker-5/source
[INFO] validating manifest of crates.io crate handy_io 0.1.2 on toolchain 209b2be09fcaff937480d1fbbe8b31646e361c7a
[INFO] running `"/workspace/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "read-manifest" "--manifest-path" "Cargo.toml"`
[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/source/Cargo.toml
[INFO] running `"/workspace/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"`
[INFO] running `"/workspace/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "fetch" "--locked" "--manifest-path" "Cargo.toml"`
[INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "check" "--frozen" "--all" "--all-targets"`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] 87f1b4b14765bb25d70f947a3bded41b80af65538772c3dd5d08d8f1a5546f16
[INFO] running `"docker" "start" "-a" "87f1b4b14765bb25d70f947a3bded41b80af65538772c3dd5d08d8f1a5546f16"`
[INFO] [stderr]     Checking handy_io v0.1.2 (/opt/rustwide/workdir)
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/io/read/mod.rs:90:34
[INFO] [stderr]    |
[INFO] [stderr] 90 | pub struct BoxReadFrom<R, T>(Box<FnMut(R) -> IoFuture<R, T>>);
[INFO] [stderr]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut(R) -> IoFuture<R, T>`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/io/write/mod.rs:88:33
[INFO] [stderr]    |
[INFO] [stderr] 88 | pub struct BoxWriteTo<W, T>(Box<FnMut(W) -> IoFuture<W, T>>);
[INFO] [stderr]    |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut(W) -> IoFuture<W, T>`
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item '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] [stderr]  --> src/io/mod.rs:9:31
[INFO] [stderr]   |
[INFO] [stderr] 9 |     pub type IoFuture<S, T> = ::futures::BoxFuture<(S, T), (S, ::std::io::Error)>;
[INFO] [stderr]   |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/io/read/mod.rs:90:34
[INFO] [stderr]    |
[INFO] [stderr] 90 | pub struct BoxReadFrom<R, T>(Box<FnMut(R) -> IoFuture<R, T>>);
[INFO] [stderr]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut(R) -> IoFuture<R, T>`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/io/write/mod.rs:88:33
[INFO] [stderr]    |
[INFO] [stderr] 88 | pub struct BoxWriteTo<W, T>(Box<FnMut(W) -> IoFuture<W, T>>);
[INFO] [stderr]    |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut(W) -> IoFuture<W, T>`
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item '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] [stderr]  --> src/io/mod.rs:9:31
[INFO] [stderr]   |
[INFO] [stderr] 9 |     pub type IoFuture<S, T> = ::futures::BoxFuture<(S, T), (S, ::std::io::Error)>;
[INFO] [stderr]   |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item '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] [stderr]   --> src/io/read/mod.rs:77:75
[INFO] [stderr]    |
[INFO] [stderr] 77 |         let mut f = Some(move |reader: R| self.lossless_read_from(reader).boxed());
[INFO] [stderr]    |                                                                           ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item '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] [stderr]   --> src/io/read/mod.rs:77:75
[INFO] [stderr]    |
[INFO] [stderr] 77 |         let mut f = Some(move |reader: R| self.lossless_read_from(reader).boxed());
[INFO] [stderr]    |                                                                           ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item '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] [stderr]   --> src/io/write/mod.rs:75:74
[INFO] [stderr]    |
[INFO] [stderr] 75 |         let mut f = Some(move |writer: W| self.lossless_write_to(writer).boxed());
[INFO] [stderr]    |                                                                          ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item '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] [stderr]   --> src/io/write/mod.rs:75:74
[INFO] [stderr]    |
[INFO] [stderr] 75 |         let mut f = Some(move |writer: W| self.lossless_write_to(writer).boxed());
[INFO] [stderr]    |                                                                          ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: where clauses are not enforced in type aliases
[INFO] [stderr]    --> src/io/read/primitives.rs:114:31
[INFO] [stderr]     |
[INFO] [stderr] 114 | type MapFuture<R, P, T> where P: Pattern =
[INFO] [stderr]     |                               ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(type_alias_bounds)]` on by default
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/read/primitives.rs:115:38
[INFO] [stderr]     |
[INFO] [stderr] 115 |     <pattern::combinators::Map<P, fn(P::Value) -> T> as ReadFrom<R>>::Future;
[INFO] [stderr]     |                                      ^^^^^^^^
[INFO] [stderr] help: the clause will not be checked when the type alias is used, and should be removed
[INFO] [stderr]     |
[INFO] [stderr] 114 | type MapFuture<R, P, T>  =
[INFO] [stderr]     |                        --
[INFO] [stderr] 
[INFO] [stderr] warning: where clauses are not enforced in type aliases
[INFO] [stderr]    --> src/io/read/primitives.rs:208:27
[INFO] [stderr]     |
[INFO] [stderr] 208 | pub type ReadEos<R> where R: Read = io_futures::ReadThen<R,
[INFO] [stderr]     |                           ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: the clause will not be checked when the type alias is used, and should be removed
[INFO] [stderr]     |
[INFO] [stderr] 208 | pub type ReadEos<R>  = io_futures::ReadThen<R,
[INFO] [stderr]     |                    --
[INFO] [stderr] 
[INFO] [stderr] warning: where clauses are not enforced in type aliases
[INFO] [stderr]   --> src/io/read/combinators.rs:86:11
[INFO] [stderr]    |
[INFO] [stderr] 86 |     where P0: ReadFrom<R>,
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^
[INFO] [stderr] 87 |           P1: ReadFrom<R>,
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^
[INFO] [stderr] 88 |           F: FnOnce(P0::Value) -> P1,
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 89 |           R: Read = ReadThen<R,
[INFO] [stderr]    |           ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]   --> src/io/read/combinators.rs:91:52
[INFO] [stderr]    |
[INFO] [stderr] 91 | ...                   Branch<P1, io::Result<P1::Value>>,
[INFO] [stderr]    |                                             ^^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]   --> src/io/read/combinators.rs:92:45
[INFO] [stderr]    |
[INFO] [stderr] 92 | ...                   fn(io::Result<(P0::Value, F)>) -> Branch<P1, io::Result<P1::Value>>>;
[INFO] [stderr]    |                                      ^^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]   --> src/io/read/combinators.rs:92:86
[INFO] [stderr]    |
[INFO] [stderr] 92 | ...                   fn(io::Result<(P0::Value, F)>) -> Branch<P1, io::Result<P1::Value>>>;
[INFO] [stderr]    |                                                                               ^^^^^^^^^
[INFO] [stderr] help: the clause will not be checked when the type alias is used, and should be removed
[INFO] [stderr]    |
[INFO] [stderr] 86 |      = ReadThen<R,
[INFO] [stderr]    |    --
[INFO] [stderr] 
[INFO] [stderr] warning: where clauses are not enforced in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:197:11
[INFO] [stderr]     |
[INFO] [stderr] 197 |     where P: ReadFrom<R>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^
[INFO] [stderr] 198 |           F: FnOnce(P::Value) -> T,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 199 |           R: Read = ReadAndThen<R,
[INFO] [stderr]     |           ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:202:37
[INFO] [stderr]     |
[INFO] [stderr] 202 | ...                   fn((P::Value, F)) -> io::Result<T>>;
[INFO] [stderr]     |                           ^^^^^^^^
[INFO] [stderr] help: the clause will not be checked when the type alias is used, and should be removed
[INFO] [stderr]     |
[INFO] [stderr] 197 |      = ReadAndThen<R,
[INFO] [stderr]     |    --
[INFO] [stderr] 
[INFO] [stderr] warning: where clauses are not enforced in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:343:11
[INFO] [stderr]     |
[INFO] [stderr] 343 |     where I: Iterator,
[INFO] [stderr]     |           ^^^^^^^^^^^
[INFO] [stderr] 344 |           I::Item: ReadFrom<R>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 345 |           R: Read = ReadIterFold<R, I::Item, I, fn((), <I::Item as Pattern>::Value) -> (), ()>;
[INFO] [stderr]     |           ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:345:37
[INFO] [stderr]     |
[INFO] [stderr] 345 |           R: Read = ReadIterFold<R, I::Item, I, fn((), <I::Item as Pattern>::Value) -> (), ()>;
[INFO] [stderr]     |                                     ^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:345:57
[INFO] [stderr]     |
[INFO] [stderr] 345 |           R: Read = ReadIterFold<R, I::Item, I, fn((), <I::Item as Pattern>::Value) -> (), ()>;
[INFO] [stderr]     |                                                         ^^^^^^^
[INFO] [stderr] help: the clause will not be checked when the type alias is used, and should be removed
[INFO] [stderr]     |
[INFO] [stderr] 343 |      = ReadIterFold<R, I::Item, I, fn((), <I::Item as Pattern>::Value) -> (), ()>;
[INFO] [stderr]     |    --
[INFO] [stderr] 
[INFO] [stderr] warning: where clauses are not enforced in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:375:11
[INFO] [stderr]     |
[INFO] [stderr] 375 |     where R: Read,
[INFO] [stderr]     |           ^^^^^^^
[INFO] [stderr] 376 |           P: ReadFrom<R> = Branch<ReadMap<R,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:378:46
[INFO] [stderr]     |
[INFO] [stderr] 378 | ...                   fn(P::Value) -> Option<P::Value>,
[INFO] [stderr]     |                          ^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:378:66
[INFO] [stderr]     |
[INFO] [stderr] 378 | ...                   fn(P::Value) -> Option<P::Value>,
[INFO] [stderr]     |                                              ^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:379:50
[INFO] [stderr]     |
[INFO] [stderr] 379 | ...                   Option<P::Value>>,
[INFO] [stderr]     |                              ^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:380:60
[INFO] [stderr]     |
[INFO] [stderr] 380 | ...                   futures::Done<(R, Option<P::Value>), (R, io::Error)>>;
[INFO] [stderr]     |                                                ^^^^^^^^
[INFO] [stderr] help: the clause will not be checked when the type alias is used, and should be removed
[INFO] [stderr]     |
[INFO] [stderr] 375 |      = Branch<ReadMap<R,
[INFO] [stderr]     |    --
[INFO] [stderr] 
[INFO] [stderr] warning: where clauses are not enforced in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:434:28
[INFO] [stderr]     |
[INFO] [stderr] 434 | type MapFuture<F, T> where F: Future = futures::Map<F, fn(F::Item) -> T>;
[INFO] [stderr]     |                            ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:434:59
[INFO] [stderr]     |
[INFO] [stderr] 434 | type MapFuture<F, T> where F: Future = futures::Map<F, fn(F::Item) -> T>;
[INFO] [stderr]     |                                                           ^^^^^^^
[INFO] [stderr] help: the clause will not be checked when the type alias is used, and should be removed
[INFO] [stderr]     |
[INFO] [stderr] 434 | type MapFuture<F, T>  = futures::Map<F, fn(F::Item) -> T>;
[INFO] [stderr]     |                     --
[INFO] [stderr] 
[INFO] [stderr] warning: where clauses are not enforced in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:479:11
[INFO] [stderr]     |
[INFO] [stderr] 479 |     where A: ReadFrom<R>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^
[INFO] [stderr] 480 |           B: ReadFrom<R, Value = A::Value>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 481 |           C: ReadFrom<R, Value = A::Value>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 482 |           D: ReadFrom<R, Value = A::Value>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 483 |           E: ReadFrom<R, Value = A::Value>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 484 |           F: ReadFrom<R, Value = A::Value>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 485 |           G: ReadFrom<R, Value = A::Value>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 486 |           H: ReadFrom<R, Value = A::Value>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 487 |           R: Read = Branch<A::Future,
[INFO] [stderr]     |           ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:487:28
[INFO] [stderr]     |
[INFO] [stderr] 487 |           R: Read = Branch<A::Future,
[INFO] [stderr]     |                            ^^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:488:28
[INFO] [stderr]     |
[INFO] [stderr] 488 | ...                   B::Future,
[INFO] [stderr]     |                       ^^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:489:28
[INFO] [stderr]     |
[INFO] [stderr] 489 | ...                   C::Future,
[INFO] [stderr]     |                       ^^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:490:28
[INFO] [stderr]     |
[INFO] [stderr] 490 | ...                   D::Future,
[INFO] [stderr]     |                       ^^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:491:28
[INFO] [stderr]     |
[INFO] [stderr] 491 | ...                   E::Future,
[INFO] [stderr]     |                       ^^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:492:28
[INFO] [stderr]     |
[INFO] [stderr] 492 | ...                   F::Future,
[INFO] [stderr]     |                       ^^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:493:28
[INFO] [stderr]     |
[INFO] [stderr] 493 | ...                   G::Future,
[INFO] [stderr]     |                       ^^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:494:28
[INFO] [stderr]     |
[INFO] [stderr] 494 | ...                   H::Future>;
[INFO] [stderr]     |                       ^^^^^^^^^
[INFO] [stderr] help: the clause will not be checked when the type alias is used, and should be removed
[INFO] [stderr]     |
[INFO] [stderr] 479 |      = Branch<A::Future,
[INFO] [stderr]     |    --
[INFO] [stderr] 
[INFO] [stderr] warning: where clauses are not enforced in type aliases
[INFO] [stderr]    --> src/io/write/primitives.rs:101:29
[INFO] [stderr]     |
[INFO] [stderr] 101 | type MapFuture<W,P,T> where P: WriteTo<W> =
[INFO] [stderr]     |                             ^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/write/primitives.rs:102:40
[INFO] [stderr]     |
[INFO] [stderr] 102 |      <pattern::combinators::Map<P, fn (P::Value) -> T> as WriteTo<W>>::Future;
[INFO] [stderr]     |                                        ^^^^^^^^
[INFO] [stderr] help: the clause will not be checked when the type alias is used, and should be removed
[INFO] [stderr]     |
[INFO] [stderr] 101 | type MapFuture<W,P,T>  =
[INFO] [stderr]     |                      --
[INFO] [stderr] 
[INFO] [stderr] warning: where clauses are not enforced in type aliases
[INFO] [stderr]   --> src/io/write/combinators.rs:92:11
[INFO] [stderr]    |
[INFO] [stderr] 92 |     where P0: WriteTo<W>,
[INFO] [stderr]    |           ^^^^^^^^^^^^^^
[INFO] [stderr] 93 |           P1: WriteTo<W>,
[INFO] [stderr]    |           ^^^^^^^^^^^^^^
[INFO] [stderr] 94 |           F: FnOnce(P0::Value) -> P1,
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 95 |           W: Write = WriteThen<W,
[INFO] [stderr]    |           ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]   --> src/io/write/combinators.rs:97:54
[INFO] [stderr]    |
[INFO] [stderr] 97 | ...                   Branch<P1, io::Result<P1::Value>>,
[INFO] [stderr]    |                                             ^^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]   --> src/io/write/combinators.rs:98:47
[INFO] [stderr]    |
[INFO] [stderr] 98 | ...                   fn(io::Result<(P0::Value, F)>) -> Branch<P1, io::Result<P1::Value>>>;
[INFO] [stderr]    |                                      ^^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]   --> src/io/write/combinators.rs:98:88
[INFO] [stderr]    |
[INFO] [stderr] 98 | ...                   fn(io::Result<(P0::Value, F)>) -> Branch<P1, io::Result<P1::Value>>>;
[INFO] [stderr]    |                                                                               ^^^^^^^^^
[INFO] [stderr] help: the clause will not be checked when the type alias is used, and should be removed
[INFO] [stderr]    |
[INFO] [stderr] 92 |      = WriteThen<W,
[INFO] [stderr]    |    --
[INFO] [stderr] 
[INFO] [stderr] warning: where clauses are not enforced in type aliases
[INFO] [stderr]    --> src/io/write/combinators.rs:301:29
[INFO] [stderr]     |
[INFO] [stderr] 301 | type MapFuture<W,P,T> where P: WriteTo<W> =
[INFO] [stderr]     |                             ^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/write/combinators.rs:302:40
[INFO] [stderr]     |
[INFO] [stderr] 302 |      <pattern::combinators::Map<P, fn (P::Value) -> T> as WriteTo<W>>::Future;
[INFO] [stderr]     |                                        ^^^^^^^^
[INFO] [stderr] help: the clause will not be checked when the type alias is used, and should be removed
[INFO] [stderr]     |
[INFO] [stderr] 301 | type MapFuture<W,P,T>  =
[INFO] [stderr]     |                      --
[INFO] [stderr] 
[INFO] [stderr] warning: where clauses are not enforced in type aliases
[INFO] [stderr]    --> src/io/write/combinators.rs:346:11
[INFO] [stderr]     |
[INFO] [stderr] 346 |     where A: WriteTo<W>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^
[INFO] [stderr] 347 |           B: WriteTo<W, Value = A::Value>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 348 |           C: WriteTo<W, Value = A::Value>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 349 |           D: WriteTo<W, Value = A::Value>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 350 |           E: WriteTo<W, Value = A::Value>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 351 |           F: WriteTo<W, Value = A::Value>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 352 |           G: WriteTo<W, Value = A::Value>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 353 |           H: WriteTo<W, Value = A::Value>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 354 |           W: Write = Branch<A::Future,
[INFO] [stderr]     |           ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/write/combinators.rs:354:29
[INFO] [stderr]     |
[INFO] [stderr] 354 |           W: Write = Branch<A::Future,
[INFO] [stderr]     |                             ^^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/write/combinators.rs:355:29
[INFO] [stderr]     |
[INFO] [stderr] 355 | ...                   B::Future,
[INFO] [stderr]     |                       ^^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/write/combinators.rs:356:29
[INFO] [stderr]     |
[INFO] [stderr] 356 | ...                   C::Future,
[INFO] [stderr]     |                       ^^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/write/combinators.rs:357:29
[INFO] [stderr]     |
[INFO] [stderr] 357 | ...                   D::Future,
[INFO] [stderr]     |                       ^^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/write/combinators.rs:358:29
[INFO] [stderr]     |
[INFO] [stderr] 358 | ...                   E::Future,
[INFO] [stderr]     |                       ^^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/write/combinators.rs:359:29
[INFO] [stderr]     |
[INFO] [stderr] 359 | ...                   F::Future,
[INFO] [stderr]     |                       ^^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/write/combinators.rs:360:29
[INFO] [stderr]     |
[INFO] [stderr] 360 | ...                   G::Future,
[INFO] [stderr]     |                       ^^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/write/combinators.rs:361:29
[INFO] [stderr]     |
[INFO] [stderr] 361 | ...                   H::Future>;
[INFO] [stderr]     |                       ^^^^^^^^^
[INFO] [stderr] help: the clause will not be checked when the type alias is used, and should be removed
[INFO] [stderr]     |
[INFO] [stderr] 346 |      = Branch<A::Future,
[INFO] [stderr]     |    --
[INFO] [stderr] 
[INFO] [stderr] warning: where clauses are not enforced in type aliases
[INFO] [stderr]    --> src/io/write/combinators.rs:460:11
[INFO] [stderr]     |
[INFO] [stderr] 460 |     where I: Iterator,
[INFO] [stderr]     |           ^^^^^^^^^^^
[INFO] [stderr] 461 |           I::Item: Pattern = WriteIterFold<W,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/write/combinators.rs:462:44
[INFO] [stderr]     |
[INFO] [stderr] 462 | ...                   I::Item,
[INFO] [stderr]     |                       ^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/write/combinators.rs:464:52
[INFO] [stderr]     |
[INFO] [stderr] 464 | ...                   fn((), <I::Item as Pattern>::Value) -> (),
[INFO] [stderr]     |                               ^^^^^^^
[INFO] [stderr] help: the clause will not be checked when the type alias is used, and should be removed
[INFO] [stderr]     |
[INFO] [stderr] 460 |      = WriteIterFold<W,
[INFO] [stderr]     |    --
[INFO] [stderr] 
[INFO] [stderr] warning: where clauses are not enforced in type aliases
[INFO] [stderr]    --> src/io/write/combinators.rs:497:34
[INFO] [stderr]     |
[INFO] [stderr] 497 | pub type WriteOption<W, P> where P: Pattern =
[INFO] [stderr]     |                                  ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/write/combinators.rs:498:45
[INFO] [stderr]     |
[INFO] [stderr] 498 |     <Branch<pattern::combinators::Map<P, fn(P::Value) -> Option<P::Value>>,
[INFO] [stderr]     |                                             ^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/write/combinators.rs:498:65
[INFO] [stderr]     |
[INFO] [stderr] 498 |     <Branch<pattern::combinators::Map<P, fn(P::Value) -> Option<P::Value>>,
[INFO] [stderr]     |                                                                 ^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/write/combinators.rs:499:30
[INFO] [stderr]     |
[INFO] [stderr] 499 |            io::Result<Option<P::Value>>> as WriteTo<W>>::Future;
[INFO] [stderr]     |                              ^^^^^^^^
[INFO] [stderr] help: the clause will not be checked when the type alias is used, and should be removed
[INFO] [stderr]     |
[INFO] [stderr] 497 | pub type WriteOption<W, P>  =
[INFO] [stderr]     |                           --
[INFO] [stderr] 
[INFO] [stderr] warning: where clauses are not enforced in type aliases
[INFO] [stderr]    --> src/io/read/primitives.rs:114:31
[INFO] [stderr]     |
[INFO] [stderr] 114 | type MapFuture<R, P, T> where P: Pattern =
[INFO] [stderr]     |                               ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(type_alias_bounds)]` on by default
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/read/primitives.rs:115:38
[INFO] [stderr]     |
[INFO] [stderr] 115 |     <pattern::combinators::Map<P, fn(P::Value) -> T> as ReadFrom<R>>::Future;
[INFO] [stderr]     |                                      ^^^^^^^^
[INFO] [stderr] help: the clause will not be checked when the type alias is used, and should be removed
[INFO] [stderr]     |
[INFO] [stderr] 114 | type MapFuture<R, P, T>  =
[INFO] [stderr]     |                        --
[INFO] [stderr] 
[INFO] [stderr] warning: where clauses are not enforced in type aliases
[INFO] [stderr]    --> src/io/read/primitives.rs:208:27
[INFO] [stderr]     |
[INFO] [stderr] 208 | pub type ReadEos<R> where R: Read = io_futures::ReadThen<R,
[INFO] [stderr]     |                           ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: the clause will not be checked when the type alias is used, and should be removed
[INFO] [stderr]     |
[INFO] [stderr] 208 | pub type ReadEos<R>  = io_futures::ReadThen<R,
[INFO] [stderr]     |                    --
[INFO] [stderr] 
[INFO] [stderr] warning: where clauses are not enforced in type aliases
[INFO] [stderr]   --> src/io/read/combinators.rs:86:11
[INFO] [stderr]    |
[INFO] [stderr] 86 |     where P0: ReadFrom<R>,
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^
[INFO] [stderr] 87 |           P1: ReadFrom<R>,
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^
[INFO] [stderr] 88 |           F: FnOnce(P0::Value) -> P1,
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 89 |           R: Read = ReadThen<R,
[INFO] [stderr]    |           ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]   --> src/io/read/combinators.rs:91:52
[INFO] [stderr]    |
[INFO] [stderr] 91 | ...                   Branch<P1, io::Result<P1::Value>>,
[INFO] [stderr]    |                                             ^^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]   --> src/io/read/combinators.rs:92:45
[INFO] [stderr]    |
[INFO] [stderr] 92 | ...                   fn(io::Result<(P0::Value, F)>) -> Branch<P1, io::Result<P1::Value>>>;
[INFO] [stderr]    |                                      ^^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]   --> src/io/read/combinators.rs:92:86
[INFO] [stderr]    |
[INFO] [stderr] 92 | ...                   fn(io::Result<(P0::Value, F)>) -> Branch<P1, io::Result<P1::Value>>>;
[INFO] [stderr]    |                                                                               ^^^^^^^^^
[INFO] [stderr] help: the clause will not be checked when the type alias is used, and should be removed
[INFO] [stderr]    |
[INFO] [stderr] 86 |      = ReadThen<R,
[INFO] [stderr]    |    --
[INFO] [stderr] 
[INFO] [stderr] warning: where clauses are not enforced in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:197:11
[INFO] [stderr]     |
[INFO] [stderr] 197 |     where P: ReadFrom<R>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^
[INFO] [stderr] 198 |           F: FnOnce(P::Value) -> T,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 199 |           R: Read = ReadAndThen<R,
[INFO] [stderr]     |           ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:202:37
[INFO] [stderr]     |
[INFO] [stderr] 202 | ...                   fn((P::Value, F)) -> io::Result<T>>;
[INFO] [stderr]     |                           ^^^^^^^^
[INFO] [stderr] help: the clause will not be checked when the type alias is used, and should be removed
[INFO] [stderr]     |
[INFO] [stderr] 197 |      = ReadAndThen<R,
[INFO] [stderr]     |    --
[INFO] [stderr] 
[INFO] [stderr] warning: where clauses are not enforced in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:343:11
[INFO] [stderr]     |
[INFO] [stderr] 343 |     where I: Iterator,
[INFO] [stderr]     |           ^^^^^^^^^^^
[INFO] [stderr] 344 |           I::Item: ReadFrom<R>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 345 |           R: Read = ReadIterFold<R, I::Item, I, fn((), <I::Item as Pattern>::Value) -> (), ()>;
[INFO] [stderr]     |           ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:345:37
[INFO] [stderr]     |
[INFO] [stderr] 345 |           R: Read = ReadIterFold<R, I::Item, I, fn((), <I::Item as Pattern>::Value) -> (), ()>;
[INFO] [stderr]     |                                     ^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:345:57
[INFO] [stderr]     |
[INFO] [stderr] 345 |           R: Read = ReadIterFold<R, I::Item, I, fn((), <I::Item as Pattern>::Value) -> (), ()>;
[INFO] [stderr]     |                                                         ^^^^^^^
[INFO] [stderr] help: the clause will not be checked when the type alias is used, and should be removed
[INFO] [stderr]     |
[INFO] [stderr] 343 |      = ReadIterFold<R, I::Item, I, fn((), <I::Item as Pattern>::Value) -> (), ()>;
[INFO] [stderr]     |    --
[INFO] [stderr] 
[INFO] [stderr] warning: where clauses are not enforced in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:375:11
[INFO] [stderr]     |
[INFO] [stderr] 375 |     where R: Read,
[INFO] [stderr]     |           ^^^^^^^
[INFO] [stderr] 376 |           P: ReadFrom<R> = Branch<ReadMap<R,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:378:46
[INFO] [stderr]     |
[INFO] [stderr] 378 | ...                   fn(P::Value) -> Option<P::Value>,
[INFO] [stderr]     |                          ^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:378:66
[INFO] [stderr]     |
[INFO] [stderr] 378 | ...                   fn(P::Value) -> Option<P::Value>,
[INFO] [stderr]     |                                              ^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:379:50
[INFO] [stderr]     |
[INFO] [stderr] 379 | ...                   Option<P::Value>>,
[INFO] [stderr]     |                              ^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:380:60
[INFO] [stderr]     |
[INFO] [stderr] 380 | ...                   futures::Done<(R, Option<P::Value>), (R, io::Error)>>;
[INFO] [stderr]     |                                                ^^^^^^^^
[INFO] [stderr] help: the clause will not be checked when the type alias is used, and should be removed
[INFO] [stderr]     |
[INFO] [stderr] 375 |      = Branch<ReadMap<R,
[INFO] [stderr]     |    --
[INFO] [stderr] 
[INFO] [stderr] warning: where clauses are not enforced in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:434:28
[INFO] [stderr]     |
[INFO] [stderr] 434 | type MapFuture<F, T> where F: Future = futures::Map<F, fn(F::Item) -> T>;
[INFO] [stderr]     |                            ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:434:59
[INFO] [stderr]     |
[INFO] [stderr] 434 | type MapFuture<F, T> where F: Future = futures::Map<F, fn(F::Item) -> T>;
[INFO] [stderr]     |                                                           ^^^^^^^
[INFO] [stderr] help: the clause will not be checked when the type alias is used, and should be removed
[INFO] [stderr]     |
[INFO] [stderr] 434 | type MapFuture<F, T>  = futures::Map<F, fn(F::Item) -> T>;
[INFO] [stderr]     |                     --
[INFO] [stderr] 
[INFO] [stderr] warning: where clauses are not enforced in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:479:11
[INFO] [stderr]     |
[INFO] [stderr] 479 |     where A: ReadFrom<R>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^
[INFO] [stderr] 480 |           B: ReadFrom<R, Value = A::Value>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 481 |           C: ReadFrom<R, Value = A::Value>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 482 |           D: ReadFrom<R, Value = A::Value>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 483 |           E: ReadFrom<R, Value = A::Value>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 484 |           F: ReadFrom<R, Value = A::Value>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 485 |           G: ReadFrom<R, Value = A::Value>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 486 |           H: ReadFrom<R, Value = A::Value>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 487 |           R: Read = Branch<A::Future,
[INFO] [stderr]     |           ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:487:28
[INFO] [stderr]     |
[INFO] [stderr] 487 |           R: Read = Branch<A::Future,
[INFO] [stderr]     |                            ^^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:488:28
[INFO] [stderr]     |
[INFO] [stderr] 488 | ...                   B::Future,
[INFO] [stderr]     |                       ^^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:489:28
[INFO] [stderr]     |
[INFO] [stderr] 489 | ...                   C::Future,
[INFO] [stderr]     |                       ^^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:490:28
[INFO] [stderr]     |
[INFO] [stderr] 490 | ...                   D::Future,
[INFO] [stderr]     |                       ^^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:491:28
[INFO] [stderr]     |
[INFO] [stderr] 491 | ...                   E::Future,
[INFO] [stderr]     |                       ^^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:492:28
[INFO] [stderr]     |
[INFO] [stderr] 492 | ...                   F::Future,
[INFO] [stderr]     |                       ^^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:493:28
[INFO] [stderr]     |
[INFO] [stderr] 493 | ...                   G::Future,
[INFO] [stderr]     |                       ^^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/read/combinators.rs:494:28
[INFO] [stderr]     |
[INFO] [stderr] 494 | ...                   H::Future>;
[INFO] [stderr]     |                       ^^^^^^^^^
[INFO] [stderr] help: the clause will not be checked when the type alias is used, and should be removed
[INFO] [stderr]     |
[INFO] [stderr] 479 |      = Branch<A::Future,
[INFO] [stderr]     |    --
[INFO] [stderr] 
[INFO] [stderr] warning: where clauses are not enforced in type aliases
[INFO] [stderr]    --> src/io/write/primitives.rs:101:29
[INFO] [stderr]     |
[INFO] [stderr] 101 | type MapFuture<W,P,T> where P: WriteTo<W> =
[INFO] [stderr]     |                             ^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/write/primitives.rs:102:40
[INFO] [stderr]     |
[INFO] [stderr] 102 |      <pattern::combinators::Map<P, fn (P::Value) -> T> as WriteTo<W>>::Future;
[INFO] [stderr]     |                                        ^^^^^^^^
[INFO] [stderr] help: the clause will not be checked when the type alias is used, and should be removed
[INFO] [stderr]     |
[INFO] [stderr] 101 | type MapFuture<W,P,T>  =
[INFO] [stderr]     |                      --
[INFO] [stderr] 
[INFO] [stderr] warning: where clauses are not enforced in type aliases
[INFO] [stderr]   --> src/io/write/combinators.rs:92:11
[INFO] [stderr]    |
[INFO] [stderr] 92 |     where P0: WriteTo<W>,
[INFO] [stderr]    |           ^^^^^^^^^^^^^^
[INFO] [stderr] 93 |           P1: WriteTo<W>,
[INFO] [stderr]    |           ^^^^^^^^^^^^^^
[INFO] [stderr] 94 |           F: FnOnce(P0::Value) -> P1,
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 95 |           W: Write = WriteThen<W,
[INFO] [stderr]    |           ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]   --> src/io/write/combinators.rs:97:54
[INFO] [stderr]    |
[INFO] [stderr] 97 | ...                   Branch<P1, io::Result<P1::Value>>,
[INFO] [stderr]    |                                             ^^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]   --> src/io/write/combinators.rs:98:47
[INFO] [stderr]    |
[INFO] [stderr] 98 | ...                   fn(io::Result<(P0::Value, F)>) -> Branch<P1, io::Result<P1::Value>>>;
[INFO] [stderr]    |                                      ^^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]   --> src/io/write/combinators.rs:98:88
[INFO] [stderr]    |
[INFO] [stderr] 98 | ...                   fn(io::Result<(P0::Value, F)>) -> Branch<P1, io::Result<P1::Value>>>;
[INFO] [stderr]    |                                                                               ^^^^^^^^^
[INFO] [stderr] help: the clause will not be checked when the type alias is used, and should be removed
[INFO] [stderr]    |
[INFO] [stderr] 92 |      = WriteThen<W,
[INFO] [stderr]    |    --
[INFO] [stderr] 
[INFO] [stderr] warning: where clauses are not enforced in type aliases
[INFO] [stderr]    --> src/io/write/combinators.rs:301:29
[INFO] [stderr]     |
[INFO] [stderr] 301 | type MapFuture<W,P,T> where P: WriteTo<W> =
[INFO] [stderr]     |                             ^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/write/combinators.rs:302:40
[INFO] [stderr]     |
[INFO] [stderr] 302 |      <pattern::combinators::Map<P, fn (P::Value) -> T> as WriteTo<W>>::Future;
[INFO] [stderr]     |                                        ^^^^^^^^
[INFO] [stderr] help: the clause will not be checked when the type alias is used, and should be removed
[INFO] [stderr]     |
[INFO] [stderr] 301 | type MapFuture<W,P,T>  =
[INFO] [stderr]     |                      --
[INFO] [stderr] 
[INFO] [stderr] warning: where clauses are not enforced in type aliases
[INFO] [stderr]    --> src/io/write/combinators.rs:346:11
[INFO] [stderr]     |
[INFO] [stderr] 346 |     where A: WriteTo<W>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^
[INFO] [stderr] 347 |           B: WriteTo<W, Value = A::Value>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 348 |           C: WriteTo<W, Value = A::Value>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 349 |           D: WriteTo<W, Value = A::Value>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 350 |           E: WriteTo<W, Value = A::Value>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 351 |           F: WriteTo<W, Value = A::Value>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 352 |           G: WriteTo<W, Value = A::Value>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 353 |           H: WriteTo<W, Value = A::Value>,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 354 |           W: Write = Branch<A::Future,
[INFO] [stderr]     |           ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/write/combinators.rs:354:29
[INFO] [stderr]     |
[INFO] [stderr] 354 |           W: Write = Branch<A::Future,
[INFO] [stderr]     |                             ^^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/write/combinators.rs:355:29
[INFO] [stderr]     |
[INFO] [stderr] 355 | ...                   B::Future,
[INFO] [stderr]     |                       ^^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/write/combinators.rs:356:29
[INFO] [stderr]     |
[INFO] [stderr] 356 | ...                   C::Future,
[INFO] [stderr]     |                       ^^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/write/combinators.rs:357:29
[INFO] [stderr]     |
[INFO] [stderr] 357 | ...                   D::Future,
[INFO] [stderr]     |                       ^^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/write/combinators.rs:358:29
[INFO] [stderr]     |
[INFO] [stderr] 358 | ...                   E::Future,
[INFO] [stderr]     |                       ^^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/write/combinators.rs:359:29
[INFO] [stderr]     |
[INFO] [stderr] 359 | ...                   F::Future,
[INFO] [stderr]     |                       ^^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/write/combinators.rs:360:29
[INFO] [stderr]     |
[INFO] [stderr] 360 | ...                   G::Future,
[INFO] [stderr]     |                       ^^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/write/combinators.rs:361:29
[INFO] [stderr]     |
[INFO] [stderr] 361 | ...                   H::Future>;
[INFO] [stderr]     |                       ^^^^^^^^^
[INFO] [stderr] help: the clause will not be checked when the type alias is used, and should be removed
[INFO] [stderr]     |
[INFO] [stderr] 346 |      = Branch<A::Future,
[INFO] [stderr]     |    --
[INFO] [stderr] 
[INFO] [stderr] warning: where clauses are not enforced in type aliases
[INFO] [stderr]    --> src/io/write/combinators.rs:460:11
[INFO] [stderr]     |
[INFO] [stderr] 460 |     where I: Iterator,
[INFO] [stderr]     |           ^^^^^^^^^^^
[INFO] [stderr] 461 |           I::Item: Pattern = WriteIterFold<W,
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/write/combinators.rs:462:44
[INFO] [stderr]     |
[INFO] [stderr] 462 | ...                   I::Item,
[INFO] [stderr]     |                       ^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/write/combinators.rs:464:52
[INFO] [stderr]     |
[INFO] [stderr] 464 | ...                   fn((), <I::Item as Pattern>::Value) -> (),
[INFO] [stderr]     |                               ^^^^^^^
[INFO] [stderr] help: the clause will not be checked when the type alias is used, and should be removed
[INFO] [stderr]     |
[INFO] [stderr] 460 |      = WriteIterFold<W,
[INFO] [stderr]     |    --
[INFO] [stderr] 
[INFO] [stderr] warning: where clauses are not enforced in type aliases
[INFO] [stderr]    --> src/io/write/combinators.rs:497:34
[INFO] [stderr]     |
[INFO] [stderr] 497 | pub type WriteOption<W, P> where P: Pattern =
[INFO] [stderr]     |                                  ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/write/combinators.rs:498:45
[INFO] [stderr]     |
[INFO] [stderr] 498 |     <Branch<pattern::combinators::Map<P, fn(P::Value) -> Option<P::Value>>,
[INFO] [stderr]     |                                             ^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/write/combinators.rs:498:65
[INFO] [stderr]     |
[INFO] [stderr] 498 |     <Branch<pattern::combinators::Map<P, fn(P::Value) -> Option<P::Value>>,
[INFO] [stderr]     |                                                                 ^^^^^^^^
[INFO] [stderr] help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
[INFO] [stderr]    --> src/io/write/combinators.rs:499:30
[INFO] [stderr]     |
[INFO] [stderr] 499 |            io::Result<Option<P::Value>>> as WriteTo<W>>::Future;
[INFO] [stderr]     |                              ^^^^^^^^
[INFO] [stderr] help: the clause will not be checked when the type alias is used, and should be removed
[INFO] [stderr]     |
[INFO] [stderr] 497 | pub type WriteOption<W, P>  =
[INFO] [stderr]     |                           --
[INFO] [stderr] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 2.80s
[INFO] running `"docker" "inspect" "87f1b4b14765bb25d70f947a3bded41b80af65538772c3dd5d08d8f1a5546f16"`
[INFO] running `"docker" "rm" "-f" "87f1b4b14765bb25d70f947a3bded41b80af65538772c3dd5d08d8f1a5546f16"`
[INFO] [stdout] 87f1b4b14765bb25d70f947a3bded41b80af65538772c3dd5d08d8f1a5546f16
