[INFO] cloning repository https://github.com/jihiggins/lending-stream [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jihiggins/lending-stream" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjihiggins%2Flending-stream", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjihiggins%2Flending-stream'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 564b516fff03b50f5bbb1f49490833d82437e1ac [INFO] checking jihiggins/lending-stream against master#1f12b9b0fdbe735968ac002792a720f0ba4faca6 for crater-rollup-uwu [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjihiggins%2Flending-stream" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/jihiggins/lending-stream on toolchain 1f12b9b0fdbe735968ac002792a720f0ba4faca6 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/jihiggins/lending-stream [INFO] finished tweaking git repo https://github.com/jihiggins/lending-stream [INFO] tweaked toml for git repo https://github.com/jihiggins/lending-stream written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/jihiggins/lending-stream already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 608ceff19b324426274c4fd21765a10409b88192b45f60f6c533d59cb37ff647 [INFO] running `Command { std: "docker" "start" "-a" "608ceff19b324426274c4fd21765a10409b88192b45f60f6c533d59cb37ff647", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "608ceff19b324426274c4fd21765a10409b88192b45f60f6c533d59cb37ff647", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "608ceff19b324426274c4fd21765a10409b88192b45f60f6c533d59cb37ff647", kill_on_drop: false }` [INFO] [stdout] 608ceff19b324426274c4fd21765a10409b88192b45f60f6c533d59cb37ff647 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 58e1632ef6f74b005db88d6b22ccb7a4f88d1c6c81ef61cbcb61fa001b48ba93 [INFO] running `Command { std: "docker" "start" "-a" "58e1632ef6f74b005db88d6b22ccb7a4f88d1c6c81ef61cbcb61fa001b48ba93", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.66 [INFO] [stderr] Compiling unicode-ident v1.0.11 [INFO] [stderr] Compiling futures-core v0.3.28 [INFO] [stderr] Compiling futures-task v0.3.28 [INFO] [stderr] Compiling futures-channel v0.3.28 [INFO] [stderr] Checking futures-sink v0.3.28 [INFO] [stderr] Compiling futures-util v0.3.28 [INFO] [stderr] Checking futures-io v0.3.28 [INFO] [stderr] Checking fastrand v1.9.0 [INFO] [stderr] Compiling slab v0.4.8 [INFO] [stderr] Compiling quote v1.0.32 [INFO] [stderr] Compiling syn v2.0.28 [INFO] [stderr] Compiling futures-macro v0.3.28 [INFO] [stderr] Checking futures-executor v0.3.28 [INFO] [stderr] Checking futures v0.3.28 [INFO] [stderr] Checking lending-stream v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: the feature `async_fn_in_trait` has been stable since 1.75.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/lib.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | #![feature(async_fn_in_trait)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `async_fn_in_trait` has been stable since 1.75.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/lib.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | #![feature(async_fn_in_trait)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/lending_stream_ext.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | async fn try_next<'a, T, E>(&'a mut self) -> Result, E> [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] = note: `#[warn(async_fn_in_trait)]` on by default [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 9 ~ fn try_next<'a, T, E>(&'a mut self) -> impl std::future::Future, E>> + Send [INFO] [stdout] 10| where [INFO] [stdout] 11| Self: LendingStream = Result> + Unpin, [INFO] [stdout] 12| Self: 'a, [INFO] [stdout] 13~ {async { [INFO] [stdout] 14| self.next().await.transpose() [INFO] [stdout] 15~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/lending_stream_ext.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | async fn count(mut self) -> usize [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 17 ~ fn count(mut self) -> impl std::future::Future + Send [INFO] [stdout] 18 | where [INFO] [stdout] 19 | Self: Sized + Unpin, [INFO] [stdout] 20 ~ {async { [INFO] [stdout] 21 | let mut count = 0; [INFO] [stdout] ... [INFO] [stdout] 25 | count [INFO] [stdout] 26 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/lending_stream_ext.rs:168:5 [INFO] [stdout] | [INFO] [stdout] 168 | async fn collect(mut self) -> C [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 168 ~ fn collect(mut self) -> impl std::future::Future + Send [INFO] [stdout] 169 | where [INFO] [stdout] 170 | Self: Sized + Unpin, [INFO] [stdout] 171 | for<'a> C: Default + Extend>, [INFO] [stdout] 172 ~ {async { [INFO] [stdout] 173 | let mut items: C = Default::default(); [INFO] [stdout] ... [INFO] [stdout] 177 | items [INFO] [stdout] 178 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/lending_stream_ext.rs:180:5 [INFO] [stdout] | [INFO] [stdout] 180 | async fn try_collect(mut self) -> Result [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 180 ~ fn try_collect(mut self) -> impl std::future::Future> + Send [INFO] [stdout] 181 | where [INFO] [stdout] 182 | for<'a> Self: LendingStream = Result> + Sized + Unpin + 'a, [INFO] [stdout] 183 | C: Default + Extend, [INFO] [stdout] 184 ~ {async { [INFO] [stdout] 185 | let mut items: C = Default::default(); [INFO] [stdout] ... [INFO] [stdout] 192 | } [INFO] [stdout] 193 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/lending_stream_ext.rs:195:5 [INFO] [stdout] | [INFO] [stdout] 195 | async fn partition(mut self, mut predicate: P) -> (B, B) [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 195 ~ fn partition(mut self, mut predicate: P) -> impl std::future::Future + Send [INFO] [stdout] 196 | where [INFO] [stdout] ... [INFO] [stdout] 199 | for<'a> P: FnMut(&Self::Item<'a>) -> bool, [INFO] [stdout] 200 ~ {async { [INFO] [stdout] 201 | let mut left: B = Default::default(); [INFO] [stdout] ... [INFO] [stdout] 210 | (left, right) [INFO] [stdout] 211 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/lending_stream_ext.rs:213:5 [INFO] [stdout] | [INFO] [stdout] 213 | async fn fold(mut self, init: T, mut f: F) -> T [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 213 ~ fn fold(mut self, init: T, mut f: F) -> impl std::future::Future + Send [INFO] [stdout] 214 | where [INFO] [stdout] 215 | Self: Sized + Unpin, [INFO] [stdout] 216 | for<'a> F: FnMut(T, Self::Item<'a>) -> T, [INFO] [stdout] 217 ~ {async { [INFO] [stdout] 218 | let mut accum = init; [INFO] [stdout] ... [INFO] [stdout] 222 | accum [INFO] [stdout] 223 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/lending_stream_ext.rs:225:5 [INFO] [stdout] | [INFO] [stdout] 225 | async fn try_fold(&mut self, init: B, mut f: F) -> Result [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 225 ~ fn try_fold(&mut self, init: B, mut f: F) -> impl std::future::Future> + Send [INFO] [stdout] 226 | where [INFO] [stdout] 227 | for<'a> Self: LendingStream = Result> + Sized + Unpin + 'a, [INFO] [stdout] 228 | F: FnMut(B, T) -> Result, [INFO] [stdout] 229 ~ {async { [INFO] [stdout] 230 | let mut accum = init; [INFO] [stdout] ... [INFO] [stdout] 234 | Ok(accum) [INFO] [stdout] 235 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/lending_stream_ext.rs:283:5 [INFO] [stdout] | [INFO] [stdout] 283 | async fn nth(&mut self, mut n: usize) -> Option [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 283 ~ fn nth(&mut self, mut n: usize) -> impl std::future::Future> + Send [INFO] [stdout] 284 | where [INFO] [stdout] 285 | for<'a> Self: LendingStream = T> + Sized + Unpin + 'a, [INFO] [stdout] 286 ~ {async { [INFO] [stdout] 287 | loop { [INFO] [stdout] ... [INFO] [stdout] 298 | } [INFO] [stdout] 299 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/lending_stream_ext.rs:301:5 [INFO] [stdout] | [INFO] [stdout] 301 | async fn last(mut self) -> Option [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 301 ~ fn last(mut self) -> impl std::future::Future> + Send [INFO] [stdout] 302 | where [INFO] [stdout] 303 | for<'a> Self: LendingStream = T> + Sized + Unpin + 'a, [INFO] [stdout] 304 ~ {async { [INFO] [stdout] 305 | let mut last = None; [INFO] [stdout] ... [INFO] [stdout] 309 | last [INFO] [stdout] 310 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/lending_stream_ext.rs:312:5 [INFO] [stdout] | [INFO] [stdout] 312 | async fn find(&mut self, mut predicate: P) -> Option [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 312 ~ fn find(&mut self, mut predicate: P) -> impl std::future::Future> + Send [INFO] [stdout] 313 | where [INFO] [stdout] ... [INFO] [stdout] 316 | for<'a> Self: LendingStream = T> + Sized + Unpin + 'a, [INFO] [stdout] 317 ~ {async { [INFO] [stdout] 318 | loop { [INFO] [stdout] ... [INFO] [stdout] 328 | } [INFO] [stdout] 329 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/lending_stream_ext.rs:331:5 [INFO] [stdout] | [INFO] [stdout] 331 | async fn find_map(&mut self, mut f: F) -> Option [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 331 ~ fn find_map(&mut self, mut f: F) -> impl std::future::Future> + Send [INFO] [stdout] 332 | where [INFO] [stdout] 333 | Self: Sized + Unpin, [INFO] [stdout] 334 | F: FnMut(Self::Item<'_>) -> Option, [INFO] [stdout] 335 ~ {async { [INFO] [stdout] 336 | while let Some(x) = self.next().await { [INFO] [stdout] ... [INFO] [stdout] 341 | None [INFO] [stdout] 342 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/lending_stream_ext.rs:344:5 [INFO] [stdout] | [INFO] [stdout] 344 | async fn position

(&mut self, mut predicate: P) -> Option [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 344 ~ fn position

(&mut self, mut predicate: P) -> impl std::future::Future> + Send [INFO] [stdout] 345 | where [INFO] [stdout] 346 | Self: LendingStream + Sized + Unpin, [INFO] [stdout] 347 | P: FnMut(Self::Item<'_>) -> bool, [INFO] [stdout] 348 ~ {async { [INFO] [stdout] 349 | let mut i = 0; [INFO] [stdout] ... [INFO] [stdout] 355 | .await [INFO] [stdout] 356 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/lending_stream_ext.rs:358:5 [INFO] [stdout] | [INFO] [stdout] 358 | async fn all

(&mut self, mut predicate: P) -> bool [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 358 ~ fn all

(&mut self, mut predicate: P) -> impl std::future::Future + Send [INFO] [stdout] 359 | where [INFO] [stdout] 360 | Self: LendingStream + Sized + Unpin, [INFO] [stdout] 361 | P: FnMut(Self::Item<'_>) -> bool, [INFO] [stdout] 362 ~ {async { [INFO] [stdout] 363 | loop { [INFO] [stdout] ... [INFO] [stdout] 373 | } [INFO] [stdout] 374 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/lending_stream_ext.rs:376:5 [INFO] [stdout] | [INFO] [stdout] 376 | async fn any

(&mut self, mut predicate: P) -> bool [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 376 ~ fn any

(&mut self, mut predicate: P) -> impl std::future::Future + Send [INFO] [stdout] 377 | where [INFO] [stdout] 378 | Self: LendingStream + Sized + Unpin, [INFO] [stdout] 379 | P: FnMut(Self::Item<'_>) -> bool, [INFO] [stdout] 380 ~ {async { [INFO] [stdout] 381 | loop { [INFO] [stdout] ... [INFO] [stdout] 391 | } [INFO] [stdout] 392 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/lending_stream_ext.rs:394:5 [INFO] [stdout] | [INFO] [stdout] 394 | async fn for_each(mut self, mut f: F) [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 394 ~ fn for_each(mut self, mut f: F) -> impl std::future::Future + Send [INFO] [stdout] 395 | where [INFO] [stdout] 396 | Self: Sized + Unpin, [INFO] [stdout] 397 | F: FnMut(Self::Item<'_>), [INFO] [stdout] 398 ~ {async { [INFO] [stdout] 399 | while let Some(x) = self.next().await { [INFO] [stdout] 400 | f(x); [INFO] [stdout] 401 | } [INFO] [stdout] 402 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/lending_stream_ext.rs:404:5 [INFO] [stdout] | [INFO] [stdout] 404 | async fn try_for_each(&mut self, mut f: F) -> Result<(), E> [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 404 ~ fn try_for_each(&mut self, mut f: F) -> impl std::future::Future> + Send [INFO] [stdout] 405 | where [INFO] [stdout] 406 | Self: LendingStream + Sized + Unpin, [INFO] [stdout] 407 | F: FnMut(Self::Item<'_>) -> Result<(), E>, [INFO] [stdout] 408 ~ {async { [INFO] [stdout] 409 | while let Some(item) = self.next().await { [INFO] [stdout] ... [INFO] [stdout] 412 | Ok(()) [INFO] [stdout] 413 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/lending_stream_ext.rs:426:5 [INFO] [stdout] | [INFO] [stdout] 426 | async fn unzip(mut self) -> (FromA, FromB) [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 426 ~ fn unzip(mut self) -> impl std::future::Future + Send [INFO] [stdout] 427 | where [INFO] [stdout] ... [INFO] [stdout] 430 | for<'a> Self: LendingStream = (A, B)> + Sized + Unpin + 'a, [INFO] [stdout] 431 ~ {async { [INFO] [stdout] 432 | let mut res: (FromA, FromB) = (Default::default(), Default::default()); [INFO] [stdout] ... [INFO] [stdout] 437 | res [INFO] [stdout] 438 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/lending_stream_ext.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | async fn try_next<'a, T, E>(&'a mut self) -> Result, E> [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] = note: `#[warn(async_fn_in_trait)]` on by default [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 9 ~ fn try_next<'a, T, E>(&'a mut self) -> impl std::future::Future, E>> + Send [INFO] [stdout] 10| where [INFO] [stdout] 11| Self: LendingStream = Result> + Unpin, [INFO] [stdout] 12| Self: 'a, [INFO] [stdout] 13~ {async { [INFO] [stdout] 14| self.next().await.transpose() [INFO] [stdout] 15~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/lending_stream_ext.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | async fn count(mut self) -> usize [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 17 ~ fn count(mut self) -> impl std::future::Future + Send [INFO] [stdout] 18 | where [INFO] [stdout] 19 | Self: Sized + Unpin, [INFO] [stdout] 20 ~ {async { [INFO] [stdout] 21 | let mut count = 0; [INFO] [stdout] ... [INFO] [stdout] 25 | count [INFO] [stdout] 26 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/lending_stream_ext.rs:168:5 [INFO] [stdout] | [INFO] [stdout] 168 | async fn collect(mut self) -> C [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 168 ~ fn collect(mut self) -> impl std::future::Future + Send [INFO] [stdout] 169 | where [INFO] [stdout] 170 | Self: Sized + Unpin, [INFO] [stdout] 171 | for<'a> C: Default + Extend>, [INFO] [stdout] 172 ~ {async { [INFO] [stdout] 173 | let mut items: C = Default::default(); [INFO] [stdout] ... [INFO] [stdout] 177 | items [INFO] [stdout] 178 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/lending_stream_ext.rs:180:5 [INFO] [stdout] | [INFO] [stdout] 180 | async fn try_collect(mut self) -> Result [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 180 ~ fn try_collect(mut self) -> impl std::future::Future> + Send [INFO] [stdout] 181 | where [INFO] [stdout] 182 | for<'a> Self: LendingStream = Result> + Sized + Unpin + 'a, [INFO] [stdout] 183 | C: Default + Extend, [INFO] [stdout] 184 ~ {async { [INFO] [stdout] 185 | let mut items: C = Default::default(); [INFO] [stdout] ... [INFO] [stdout] 192 | } [INFO] [stdout] 193 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/lending_stream_ext.rs:195:5 [INFO] [stdout] | [INFO] [stdout] 195 | async fn partition(mut self, mut predicate: P) -> (B, B) [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 195 ~ fn partition(mut self, mut predicate: P) -> impl std::future::Future + Send [INFO] [stdout] 196 | where [INFO] [stdout] ... [INFO] [stdout] 199 | for<'a> P: FnMut(&Self::Item<'a>) -> bool, [INFO] [stdout] 200 ~ {async { [INFO] [stdout] 201 | let mut left: B = Default::default(); [INFO] [stdout] ... [INFO] [stdout] 210 | (left, right) [INFO] [stdout] 211 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/lending_stream_ext.rs:213:5 [INFO] [stdout] | [INFO] [stdout] 213 | async fn fold(mut self, init: T, mut f: F) -> T [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 213 ~ fn fold(mut self, init: T, mut f: F) -> impl std::future::Future + Send [INFO] [stdout] 214 | where [INFO] [stdout] 215 | Self: Sized + Unpin, [INFO] [stdout] 216 | for<'a> F: FnMut(T, Self::Item<'a>) -> T, [INFO] [stdout] 217 ~ {async { [INFO] [stdout] 218 | let mut accum = init; [INFO] [stdout] ... [INFO] [stdout] 222 | accum [INFO] [stdout] 223 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/lending_stream_ext.rs:225:5 [INFO] [stdout] | [INFO] [stdout] 225 | async fn try_fold(&mut self, init: B, mut f: F) -> Result [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 225 ~ fn try_fold(&mut self, init: B, mut f: F) -> impl std::future::Future> + Send [INFO] [stdout] 226 | where [INFO] [stdout] 227 | for<'a> Self: LendingStream = Result> + Sized + Unpin + 'a, [INFO] [stdout] 228 | F: FnMut(B, T) -> Result, [INFO] [stdout] 229 ~ {async { [INFO] [stdout] 230 | let mut accum = init; [INFO] [stdout] ... [INFO] [stdout] 234 | Ok(accum) [INFO] [stdout] 235 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/lending_stream_ext.rs:283:5 [INFO] [stdout] | [INFO] [stdout] 283 | async fn nth(&mut self, mut n: usize) -> Option [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 283 ~ fn nth(&mut self, mut n: usize) -> impl std::future::Future> + Send [INFO] [stdout] 284 | where [INFO] [stdout] 285 | for<'a> Self: LendingStream = T> + Sized + Unpin + 'a, [INFO] [stdout] 286 ~ {async { [INFO] [stdout] 287 | loop { [INFO] [stdout] ... [INFO] [stdout] 298 | } [INFO] [stdout] 299 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/lending_stream_ext.rs:301:5 [INFO] [stdout] | [INFO] [stdout] 301 | async fn last(mut self) -> Option [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 301 ~ fn last(mut self) -> impl std::future::Future> + Send [INFO] [stdout] 302 | where [INFO] [stdout] 303 | for<'a> Self: LendingStream = T> + Sized + Unpin + 'a, [INFO] [stdout] 304 ~ {async { [INFO] [stdout] 305 | let mut last = None; [INFO] [stdout] ... [INFO] [stdout] 309 | last [INFO] [stdout] 310 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/lending_stream_ext.rs:312:5 [INFO] [stdout] | [INFO] [stdout] 312 | async fn find(&mut self, mut predicate: P) -> Option [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 312 ~ fn find(&mut self, mut predicate: P) -> impl std::future::Future> + Send [INFO] [stdout] 313 | where [INFO] [stdout] ... [INFO] [stdout] 316 | for<'a> Self: LendingStream = T> + Sized + Unpin + 'a, [INFO] [stdout] 317 ~ {async { [INFO] [stdout] 318 | loop { [INFO] [stdout] ... [INFO] [stdout] 328 | } [INFO] [stdout] 329 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/lending_stream_ext.rs:331:5 [INFO] [stdout] | [INFO] [stdout] 331 | async fn find_map(&mut self, mut f: F) -> Option [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 331 ~ fn find_map(&mut self, mut f: F) -> impl std::future::Future> + Send [INFO] [stdout] 332 | where [INFO] [stdout] 333 | Self: Sized + Unpin, [INFO] [stdout] 334 | F: FnMut(Self::Item<'_>) -> Option, [INFO] [stdout] 335 ~ {async { [INFO] [stdout] 336 | while let Some(x) = self.next().await { [INFO] [stdout] ... [INFO] [stdout] 341 | None [INFO] [stdout] 342 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/lending_stream_ext.rs:344:5 [INFO] [stdout] | [INFO] [stdout] 344 | async fn position

(&mut self, mut predicate: P) -> Option [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 344 ~ fn position

(&mut self, mut predicate: P) -> impl std::future::Future> + Send [INFO] [stdout] 345 | where [INFO] [stdout] 346 | Self: LendingStream + Sized + Unpin, [INFO] [stdout] 347 | P: FnMut(Self::Item<'_>) -> bool, [INFO] [stdout] 348 ~ {async { [INFO] [stdout] 349 | let mut i = 0; [INFO] [stdout] ... [INFO] [stdout] 355 | .await [INFO] [stdout] 356 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/lending_stream_ext.rs:358:5 [INFO] [stdout] | [INFO] [stdout] 358 | async fn all

(&mut self, mut predicate: P) -> bool [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 358 ~ fn all

(&mut self, mut predicate: P) -> impl std::future::Future + Send [INFO] [stdout] 359 | where [INFO] [stdout] 360 | Self: LendingStream + Sized + Unpin, [INFO] [stdout] 361 | P: FnMut(Self::Item<'_>) -> bool, [INFO] [stdout] 362 ~ {async { [INFO] [stdout] 363 | loop { [INFO] [stdout] ... [INFO] [stdout] 373 | } [INFO] [stdout] 374 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/lending_stream_ext.rs:376:5 [INFO] [stdout] | [INFO] [stdout] 376 | async fn any

(&mut self, mut predicate: P) -> bool [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 376 ~ fn any

(&mut self, mut predicate: P) -> impl std::future::Future + Send [INFO] [stdout] 377 | where [INFO] [stdout] 378 | Self: LendingStream + Sized + Unpin, [INFO] [stdout] 379 | P: FnMut(Self::Item<'_>) -> bool, [INFO] [stdout] 380 ~ {async { [INFO] [stdout] 381 | loop { [INFO] [stdout] ... [INFO] [stdout] 391 | } [INFO] [stdout] 392 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/lending_stream_ext.rs:394:5 [INFO] [stdout] | [INFO] [stdout] 394 | async fn for_each(mut self, mut f: F) [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 394 ~ fn for_each(mut self, mut f: F) -> impl std::future::Future + Send [INFO] [stdout] 395 | where [INFO] [stdout] 396 | Self: Sized + Unpin, [INFO] [stdout] 397 | F: FnMut(Self::Item<'_>), [INFO] [stdout] 398 ~ {async { [INFO] [stdout] 399 | while let Some(x) = self.next().await { [INFO] [stdout] 400 | f(x); [INFO] [stdout] 401 | } [INFO] [stdout] 402 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/lending_stream_ext.rs:404:5 [INFO] [stdout] | [INFO] [stdout] 404 | async fn try_for_each(&mut self, mut f: F) -> Result<(), E> [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 404 ~ fn try_for_each(&mut self, mut f: F) -> impl std::future::Future> + Send [INFO] [stdout] 405 | where [INFO] [stdout] 406 | Self: LendingStream + Sized + Unpin, [INFO] [stdout] 407 | F: FnMut(Self::Item<'_>) -> Result<(), E>, [INFO] [stdout] 408 ~ {async { [INFO] [stdout] 409 | while let Some(item) = self.next().await { [INFO] [stdout] ... [INFO] [stdout] 412 | Ok(()) [INFO] [stdout] 413 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/lending_stream_ext.rs:426:5 [INFO] [stdout] | [INFO] [stdout] 426 | async fn unzip(mut self) -> (FromA, FromB) [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 426 ~ fn unzip(mut self) -> impl std::future::Future + Send [INFO] [stdout] 427 | where [INFO] [stdout] ... [INFO] [stdout] 430 | for<'a> Self: LendingStream = (A, B)> + Sized + Unpin + 'a, [INFO] [stdout] 431 ~ {async { [INFO] [stdout] 432 | let mut res: (FromA, FromB) = (Default::default(), Default::default()); [INFO] [stdout] ... [INFO] [stdout] 437 | res [INFO] [stdout] 438 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 18 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 18 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.16s [INFO] running `Command { std: "docker" "inspect" "58e1632ef6f74b005db88d6b22ccb7a4f88d1c6c81ef61cbcb61fa001b48ba93", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "58e1632ef6f74b005db88d6b22ccb7a4f88d1c6c81ef61cbcb61fa001b48ba93", kill_on_drop: false }` [INFO] [stdout] 58e1632ef6f74b005db88d6b22ccb7a4f88d1c6c81ef61cbcb61fa001b48ba93