Skip to content

E0275 is occuring in beta 1.90.0-beta.1 but not in stable 1.89.0 #145151

@anatawa12

Description

@anatawa12

Code

I tried to compile this code:

//! ```cargo
//! [package]
//! name = "rust-regresion"
//! version = "0.1.0"
//! edition = "2024"
//! 
//! [dependencies]
//! futures-util = "0.3.31"
//! ```

use futures_util::future::join_all;
use std::future::Future;

pub async fn copy_project1() {
    async_command(async {
        continue_async(move || async move {
            struct CopyFileContext<'a> {
                _1: &'a (),
            }

            impl CopyFileContext<'_> {
                async fn process(&self, entry: &FileSystemTree) {
                    if entry.is_dir() {
                        join_all(entry.iter().map(|x| self.process(x))).await;
                    }
                }
            }

            CopyFileContext { _1: &() }
                .process(&FileSystemTree::new_file())
                .await;
        })
    })
    .await
}

#[derive(Debug)]
pub struct FileSystemTree {}

impl FileSystemTree {
    pub fn new_file() -> Self {
        Self {}
    }

    pub fn is_dir(&self) -> bool {
        todo!()
    }

    pub fn iter(&self) -> std::slice::Iter<'_, FileSystemTree> {
        todo!()
    }
}

pub(crate) fn continue_async<AsyncFn, AsyncFnResult>(_: AsyncFn) -> Result<AsyncFn, ()>
where
    AsyncFn: FnOnce() -> AsyncFnResult,
{
    todo!()
}

pub(crate) async fn async_command<AsyncFn, AsyncFnFut>(_: impl Future<Output = Result<AsyncFn, ()>>)
where
    AsyncFn: FnOnce() -> AsyncFnFut + Send + 'static,
    AsyncFnFut: Future<Output = ()> + Send,
{
    todo!()
}

With futures-util = "0.3.31" as dependencies

I expected to see this happen: No error

Instead, this happened: E0275
I also tried with recursion_limit = 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536 and all failed with same error

Original code is at https://github.com/vrc-get/vrc-get/tree/e89e1340a00ebfb545db5b0330ef293d02f3e8e7/vrc-get-gui Clone the repository and checkout the revision, and building with cargo build should cause the error.

Version it worked on

It most recently worked on: Rust 1.89.0 (current stable)

Version with regression

rustc --version --verbose:

rustc 1.90.0-beta.1 (788da80fc 2025-08-04)
binary: rustc
commit-hash: 788da80fcfcef3f34c90def5baa32813e39a1a41
commit-date: 2025-08-04
host: aarch64-apple-darwin
release: 1.90.0-beta.1
LLVM version: 20.1.8
rustc 1.91.0-nightly (de3efa79f 2025-08-08)
binary: rustc
commit-hash: de3efa79f95852c7427587f1d535bfea7c0d6779
commit-date: 2025-08-08
host: aarch64-apple-darwin
release: 1.91.0-nightly
LLVM version: 21.1.0

Compiler output

Compiler's output without recursion_limit set (128)

I found that JoinAllKind is shown many times so infinity recursion somewhere I think

Output
anatawa12@192:~/IdeaProjects/vrc-get/rust-regression/rust-regresion +(rustc-regression) $ cargo +beta build

   Compiling rust-regresion v0.1.0 (/Users/anatawa12/IdeaProjects/vrc-get/rust-regression/rust-regresion)
error[E0275]: overflow evaluating the requirement `{async fn body of CopyFileContext<'_>::process()}: Send`
   |
   = help: consider increasing the recursion limit by adding a `#![recursion_limit = "256"]` attribute to your crate (`rust_regresion`)
note: required because it appears within the type `impl futures_util::Future<Output = ()>`
  --> src/lib.rs:22:17
   |
22 |                 async fn process(&self, entry: &FileSystemTree) {
   |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: required because it appears within the type `stream::futures_ordered::OrderWrapper<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/futures_ordered.rs:19:12
   |
19 |     struct OrderWrapper<T> {
   |            ^^^^^^^^^^^^
   = note: required for `FuturesUnordered<stream::futures_ordered::OrderWrapper<impl futures_util::Future<Output = ()>>>` to implement `Send`
note: required because it appears within the type `FuturesOrdered<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/futures_ordered.rs:99:12
   |
99 | pub struct FuturesOrdered<T: Future> {
   |            ^^^^^^^^^^^^^^
note: required because it appears within the type `Collect<FuturesOrdered<impl futures_util::Future<Output = ()>>, Vec<()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/stream/collect.rs:13:16
   |
13 |     pub struct Collect<St, C> {
   |                ^^^^^^^
note: required because it appears within the type `futures_util::future::join_all::JoinAllKind<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/join_all.rs:37:6
   |
37 | enum JoinAllKind<F>
   |      ^^^^^^^^^^^
note: required because it appears within the type `JoinAll<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/join_all.rs:27:12
   |
27 | pub struct JoinAll<F>
   |            ^^^^^^^
note: required because it's used within this `async` fn body
  --> src/lib.rs:22:65
   |
22 |                   async fn process(&self, entry: &FileSystemTree) {
   |  _________________________________________________________________^
23 | |                     if entry.is_dir() {
24 | |                         join_all(entry.iter().map(|x| self.process(x))).await;
25 | |                     }
26 | |                 }
   | |_________________^
note: required because it appears within the type `stream::futures_ordered::OrderWrapper<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/futures_ordered.rs:19:12
   |
19 |     struct OrderWrapper<T> {
   |            ^^^^^^^^^^^^
   = note: required for `FuturesUnordered<stream::futures_ordered::OrderWrapper<impl futures_util::Future<Output = ()>>>` to implement `Send`
note: required because it appears within the type `FuturesOrdered<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/futures_ordered.rs:99:12
   |
99 | pub struct FuturesOrdered<T: Future> {
   |            ^^^^^^^^^^^^^^
note: required because it appears within the type `Collect<FuturesOrdered<impl futures_util::Future<Output = ()>>, Vec<()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/stream/collect.rs:13:16
   |
13 |     pub struct Collect<St, C> {
   |                ^^^^^^^
note: required because it appears within the type `futures_util::future::join_all::JoinAllKind<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/join_all.rs:37:6
   |
37 | enum JoinAllKind<F>
   |      ^^^^^^^^^^^
note: required because it appears within the type `JoinAll<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/join_all.rs:27:12
   |
27 | pub struct JoinAll<F>
   |            ^^^^^^^
note: required because it's used within this `async` fn body
  --> src/lib.rs:22:65
   |
22 |                   async fn process(&self, entry: &FileSystemTree) {
   |  _________________________________________________________________^
23 | |                     if entry.is_dir() {
24 | |                         join_all(entry.iter().map(|x| self.process(x))).await;
25 | |                     }
26 | |                 }
   | |_________________^
note: required because it appears within the type `stream::futures_ordered::OrderWrapper<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/futures_ordered.rs:19:12
   |
19 |     struct OrderWrapper<T> {
   |            ^^^^^^^^^^^^
   = note: required for `FuturesUnordered<stream::futures_ordered::OrderWrapper<impl futures_util::Future<Output = ()>>>` to implement `Send`
note: required because it appears within the type `FuturesOrdered<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/futures_ordered.rs:99:12
   |
99 | pub struct FuturesOrdered<T: Future> {
   |            ^^^^^^^^^^^^^^
note: required because it appears within the type `Collect<FuturesOrdered<impl futures_util::Future<Output = ()>>, Vec<()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/stream/collect.rs:13:16
   |
13 |     pub struct Collect<St, C> {
   |                ^^^^^^^
note: required because it appears within the type `futures_util::future::join_all::JoinAllKind<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/join_all.rs:37:6
   |
37 | enum JoinAllKind<F>
   |      ^^^^^^^^^^^
note: required because it appears within the type `JoinAll<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/join_all.rs:27:12
   |
27 | pub struct JoinAll<F>
   |            ^^^^^^^
note: required because it's used within this `async` fn body
  --> src/lib.rs:22:65
   |
22 |                   async fn process(&self, entry: &FileSystemTree) {
   |  _________________________________________________________________^
23 | |                     if entry.is_dir() {
24 | |                         join_all(entry.iter().map(|x| self.process(x))).await;
25 | |                     }
26 | |                 }
   | |_________________^
note: required because it appears within the type `stream::futures_ordered::OrderWrapper<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/futures_ordered.rs:19:12
   |
19 |     struct OrderWrapper<T> {
   |            ^^^^^^^^^^^^
   = note: required for `FuturesUnordered<stream::futures_ordered::OrderWrapper<impl futures_util::Future<Output = ()>>>` to implement `Send`
note: required because it appears within the type `FuturesOrdered<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/futures_ordered.rs:99:12
   |
99 | pub struct FuturesOrdered<T: Future> {
   |            ^^^^^^^^^^^^^^
note: required because it appears within the type `Collect<FuturesOrdered<impl futures_util::Future<Output = ()>>, Vec<()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/stream/collect.rs:13:16
   |
13 |     pub struct Collect<St, C> {
   |                ^^^^^^^
note: required because it appears within the type `futures_util::future::join_all::JoinAllKind<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/join_all.rs:37:6
   |
37 | enum JoinAllKind<F>
   |      ^^^^^^^^^^^
note: required because it appears within the type `JoinAll<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/join_all.rs:27:12
   |
27 | pub struct JoinAll<F>
   |            ^^^^^^^
note: required because it's used within this `async` fn body
  --> src/lib.rs:22:65
   |
22 |                   async fn process(&self, entry: &FileSystemTree) {
   |  _________________________________________________________________^
23 | |                     if entry.is_dir() {
24 | |                         join_all(entry.iter().map(|x| self.process(x))).await;
25 | |                     }
26 | |                 }
   | |_________________^
note: required because it appears within the type `stream::futures_ordered::OrderWrapper<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/futures_ordered.rs:19:12
   |
19 |     struct OrderWrapper<T> {
   |            ^^^^^^^^^^^^
   = note: required for `FuturesUnordered<stream::futures_ordered::OrderWrapper<impl futures_util::Future<Output = ()>>>` to implement `Send`
note: required because it appears within the type `FuturesOrdered<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/futures_ordered.rs:99:12
   |
99 | pub struct FuturesOrdered<T: Future> {
   |            ^^^^^^^^^^^^^^
note: required because it appears within the type `Collect<FuturesOrdered<impl futures_util::Future<Output = ()>>, Vec<()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/stream/collect.rs:13:16
   |
13 |     pub struct Collect<St, C> {
   |                ^^^^^^^
note: required because it appears within the type `futures_util::future::join_all::JoinAllKind<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/join_all.rs:37:6
   |
37 | enum JoinAllKind<F>
   |      ^^^^^^^^^^^
note: required because it appears within the type `JoinAll<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/join_all.rs:27:12
   |
27 | pub struct JoinAll<F>
   |            ^^^^^^^
note: required because it's used within this `async` fn body
  --> src/lib.rs:22:65
   |
22 |                   async fn process(&self, entry: &FileSystemTree) {
   |  _________________________________________________________________^
23 | |                     if entry.is_dir() {
24 | |                         join_all(entry.iter().map(|x| self.process(x))).await;
25 | |                     }
26 | |                 }
   | |_________________^
note: required because it appears within the type `stream::futures_ordered::OrderWrapper<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/futures_ordered.rs:19:12
   |
19 |     struct OrderWrapper<T> {
   |            ^^^^^^^^^^^^
   = note: required for `FuturesUnordered<stream::futures_ordered::OrderWrapper<impl futures_util::Future<Output = ()>>>` to implement `Send`
note: required because it appears within the type `FuturesOrdered<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/futures_ordered.rs:99:12
   |
99 | pub struct FuturesOrdered<T: Future> {
   |            ^^^^^^^^^^^^^^
note: required because it appears within the type `Collect<FuturesOrdered<impl futures_util::Future<Output = ()>>, Vec<()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/stream/collect.rs:13:16
   |
13 |     pub struct Collect<St, C> {
   |                ^^^^^^^
note: required because it appears within the type `futures_util::future::join_all::JoinAllKind<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/join_all.rs:37:6
   |
37 | enum JoinAllKind<F>
   |      ^^^^^^^^^^^
note: required because it appears within the type `JoinAll<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/join_all.rs:27:12
   |
27 | pub struct JoinAll<F>
   |            ^^^^^^^
note: required because it's used within this `async` fn body
  --> src/lib.rs:22:65
   |
22 |                   async fn process(&self, entry: &FileSystemTree) {
   |  _________________________________________________________________^
23 | |                     if entry.is_dir() {
24 | |                         join_all(entry.iter().map(|x| self.process(x))).await;
25 | |                     }
26 | |                 }
   | |_________________^
note: required because it appears within the type `stream::futures_ordered::OrderWrapper<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/futures_ordered.rs:19:12
   |
19 |     struct OrderWrapper<T> {
   |            ^^^^^^^^^^^^
   = note: required for `FuturesUnordered<stream::futures_ordered::OrderWrapper<impl futures_util::Future<Output = ()>>>` to implement `Send`
note: required because it appears within the type `FuturesOrdered<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/futures_ordered.rs:99:12
   |
99 | pub struct FuturesOrdered<T: Future> {
   |            ^^^^^^^^^^^^^^
note: required because it appears within the type `Collect<FuturesOrdered<impl futures_util::Future<Output = ()>>, Vec<()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/stream/collect.rs:13:16
   |
13 |     pub struct Collect<St, C> {
   |                ^^^^^^^
note: required because it appears within the type `futures_util::future::join_all::JoinAllKind<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/join_all.rs:37:6
   |
37 | enum JoinAllKind<F>
   |      ^^^^^^^^^^^
note: required because it appears within the type `JoinAll<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/join_all.rs:27:12
   |
27 | pub struct JoinAll<F>
   |            ^^^^^^^
note: required because it's used within this `async` fn body
  --> src/lib.rs:22:65
   |
22 |                   async fn process(&self, entry: &FileSystemTree) {
   |  _________________________________________________________________^
23 | |                     if entry.is_dir() {
24 | |                         join_all(entry.iter().map(|x| self.process(x))).await;
25 | |                     }
26 | |                 }
   | |_________________^
note: required because it appears within the type `stream::futures_ordered::OrderWrapper<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/futures_ordered.rs:19:12
   |
19 |     struct OrderWrapper<T> {
   |            ^^^^^^^^^^^^
   = note: required for `FuturesUnordered<stream::futures_ordered::OrderWrapper<impl futures_util::Future<Output = ()>>>` to implement `Send`
note: required because it appears within the type `FuturesOrdered<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/futures_ordered.rs:99:12
   |
99 | pub struct FuturesOrdered<T: Future> {
   |            ^^^^^^^^^^^^^^
note: required because it appears within the type `Collect<FuturesOrdered<impl futures_util::Future<Output = ()>>, Vec<()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/stream/collect.rs:13:16
   |
13 |     pub struct Collect<St, C> {
   |                ^^^^^^^
note: required because it appears within the type `futures_util::future::join_all::JoinAllKind<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/join_all.rs:37:6
   |
37 | enum JoinAllKind<F>
   |      ^^^^^^^^^^^
note: required because it appears within the type `JoinAll<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/join_all.rs:27:12
   |
27 | pub struct JoinAll<F>
   |            ^^^^^^^
note: required because it's used within this `async` fn body
  --> src/lib.rs:22:65
   |
22 |                   async fn process(&self, entry: &FileSystemTree) {
   |  _________________________________________________________________^
23 | |                     if entry.is_dir() {
24 | |                         join_all(entry.iter().map(|x| self.process(x))).await;
25 | |                     }
26 | |                 }
   | |_________________^
note: required because it appears within the type `stream::futures_ordered::OrderWrapper<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/futures_ordered.rs:19:12
   |
19 |     struct OrderWrapper<T> {
   |            ^^^^^^^^^^^^
   = note: required for `FuturesUnordered<stream::futures_ordered::OrderWrapper<impl futures_util::Future<Output = ()>>>` to implement `Send`
note: required because it appears within the type `FuturesOrdered<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/futures_ordered.rs:99:12
   |
99 | pub struct FuturesOrdered<T: Future> {
   |            ^^^^^^^^^^^^^^
note: required because it appears within the type `Collect<FuturesOrdered<impl futures_util::Future<Output = ()>>, Vec<()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/stream/collect.rs:13:16
   |
13 |     pub struct Collect<St, C> {
   |                ^^^^^^^
note: required because it appears within the type `futures_util::future::join_all::JoinAllKind<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/join_all.rs:37:6
   |
37 | enum JoinAllKind<F>
   |      ^^^^^^^^^^^
note: required because it appears within the type `JoinAll<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/join_all.rs:27:12
   |
27 | pub struct JoinAll<F>
   |            ^^^^^^^
note: required because it's used within this `async` fn body
  --> src/lib.rs:22:65
   |
22 |                   async fn process(&self, entry: &FileSystemTree) {
   |  _________________________________________________________________^
23 | |                     if entry.is_dir() {
24 | |                         join_all(entry.iter().map(|x| self.process(x))).await;
25 | |                     }
26 | |                 }
   | |_________________^
note: required because it appears within the type `stream::futures_ordered::OrderWrapper<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/futures_ordered.rs:19:12
   |
19 |     struct OrderWrapper<T> {
   |            ^^^^^^^^^^^^
   = note: required for `FuturesUnordered<stream::futures_ordered::OrderWrapper<impl futures_util::Future<Output = ()>>>` to implement `Send`
note: required because it appears within the type `FuturesOrdered<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/futures_ordered.rs:99:12
   |
99 | pub struct FuturesOrdered<T: Future> {
   |            ^^^^^^^^^^^^^^
note: required because it appears within the type `Collect<FuturesOrdered<impl futures_util::Future<Output = ()>>, Vec<()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/stream/collect.rs:13:16
   |
13 |     pub struct Collect<St, C> {
   |                ^^^^^^^
note: required because it appears within the type `futures_util::future::join_all::JoinAllKind<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/join_all.rs:37:6
   |
37 | enum JoinAllKind<F>
   |      ^^^^^^^^^^^
note: required because it appears within the type `JoinAll<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/join_all.rs:27:12
   |
27 | pub struct JoinAll<F>
   |            ^^^^^^^
note: required because it's used within this `async` fn body
  --> src/lib.rs:22:65
   |
22 |                   async fn process(&self, entry: &FileSystemTree) {
   |  _________________________________________________________________^
23 | |                     if entry.is_dir() {
24 | |                         join_all(entry.iter().map(|x| self.process(x))).await;
25 | |                     }
26 | |                 }
   | |_________________^
note: required because it appears within the type `stream::futures_ordered::OrderWrapper<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/futures_ordered.rs:19:12
   |
19 |     struct OrderWrapper<T> {
   |            ^^^^^^^^^^^^
   = note: required for `FuturesUnordered<stream::futures_ordered::OrderWrapper<impl futures_util::Future<Output = ()>>>` to implement `Send`
note: required because it appears within the type `FuturesOrdered<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/futures_ordered.rs:99:12
   |
99 | pub struct FuturesOrdered<T: Future> {
   |            ^^^^^^^^^^^^^^
note: required because it appears within the type `Collect<FuturesOrdered<impl futures_util::Future<Output = ()>>, Vec<()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/stream/collect.rs:13:16
   |
13 |     pub struct Collect<St, C> {
   |                ^^^^^^^
note: required because it appears within the type `futures_util::future::join_all::JoinAllKind<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/join_all.rs:37:6
   |
37 | enum JoinAllKind<F>
   |      ^^^^^^^^^^^
note: required because it appears within the type `JoinAll<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/join_all.rs:27:12
   |
27 | pub struct JoinAll<F>
   |            ^^^^^^^
note: required because it's used within this `async` fn body
  --> src/lib.rs:22:65
   |
22 |                   async fn process(&self, entry: &FileSystemTree) {
   |  _________________________________________________________________^
23 | |                     if entry.is_dir() {
24 | |                         join_all(entry.iter().map(|x| self.process(x))).await;
25 | |                     }
26 | |                 }
   | |_________________^
note: required because it appears within the type `stream::futures_ordered::OrderWrapper<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/futures_ordered.rs:19:12
   |
19 |     struct OrderWrapper<T> {
   |            ^^^^^^^^^^^^
   = note: required for `FuturesUnordered<stream::futures_ordered::OrderWrapper<impl futures_util::Future<Output = ()>>>` to implement `Send`
note: required because it appears within the type `FuturesOrdered<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/futures_ordered.rs:99:12
   |
99 | pub struct FuturesOrdered<T: Future> {
   |            ^^^^^^^^^^^^^^
note: required because it appears within the type `Collect<FuturesOrdered<impl futures_util::Future<Output = ()>>, Vec<()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/stream/collect.rs:13:16
   |
13 |     pub struct Collect<St, C> {
   |                ^^^^^^^
note: required because it appears within the type `futures_util::future::join_all::JoinAllKind<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/join_all.rs:37:6
   |
37 | enum JoinAllKind<F>
   |      ^^^^^^^^^^^
note: required because it appears within the type `JoinAll<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/join_all.rs:27:12
   |
27 | pub struct JoinAll<F>
   |            ^^^^^^^
note: required because it's used within this `async` fn body
  --> src/lib.rs:22:65
   |
22 |                   async fn process(&self, entry: &FileSystemTree) {
   |  _________________________________________________________________^
23 | |                     if entry.is_dir() {
24 | |                         join_all(entry.iter().map(|x| self.process(x))).await;
25 | |                     }
26 | |                 }
   | |_________________^
note: required because it appears within the type `stream::futures_ordered::OrderWrapper<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/futures_ordered.rs:19:12
   |
19 |     struct OrderWrapper<T> {
   |            ^^^^^^^^^^^^
   = note: required for `FuturesUnordered<stream::futures_ordered::OrderWrapper<impl futures_util::Future<Output = ()>>>` to implement `Send`
note: required because it appears within the type `FuturesOrdered<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/futures_ordered.rs:99:12
   |
99 | pub struct FuturesOrdered<T: Future> {
   |            ^^^^^^^^^^^^^^
note: required because it appears within the type `Collect<FuturesOrdered<impl futures_util::Future<Output = ()>>, Vec<()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/stream/collect.rs:13:16
   |
13 |     pub struct Collect<St, C> {
   |                ^^^^^^^
note: required because it appears within the type `futures_util::future::join_all::JoinAllKind<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/join_all.rs:37:6
   |
37 | enum JoinAllKind<F>
   |      ^^^^^^^^^^^
note: required because it appears within the type `JoinAll<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/join_all.rs:27:12
   |
27 | pub struct JoinAll<F>
   |            ^^^^^^^
note: required because it's used within this `async` fn body
  --> src/lib.rs:22:65
   |
22 |                   async fn process(&self, entry: &FileSystemTree) {
   |  _________________________________________________________________^
23 | |                     if entry.is_dir() {
24 | |                         join_all(entry.iter().map(|x| self.process(x))).await;
25 | |                     }
26 | |                 }
   | |_________________^
note: required because it appears within the type `stream::futures_ordered::OrderWrapper<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/futures_ordered.rs:19:12
   |
19 |     struct OrderWrapper<T> {
   |            ^^^^^^^^^^^^
   = note: required for `FuturesUnordered<stream::futures_ordered::OrderWrapper<impl futures_util::Future<Output = ()>>>` to implement `Send`
note: required because it appears within the type `FuturesOrdered<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/futures_ordered.rs:99:12
   |
99 | pub struct FuturesOrdered<T: Future> {
   |            ^^^^^^^^^^^^^^
note: required because it appears within the type `Collect<FuturesOrdered<impl futures_util::Future<Output = ()>>, Vec<()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/stream/stream/collect.rs:13:16
   |
13 |     pub struct Collect<St, C> {
   |                ^^^^^^^
note: required because it appears within the type `futures_util::future::join_all::JoinAllKind<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/join_all.rs:37:6
   |
37 | enum JoinAllKind<F>
   |      ^^^^^^^^^^^
note: required because it appears within the type `JoinAll<impl futures_util::Future<Output = ()>>`
  --> /Users/anatawa12/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/future/join_all.rs:27:12
   |
27 | pub struct JoinAll<F>
   |            ^^^^^^^
note: required because it's used within this `async` fn body
  --> src/lib.rs:22:65
   |
22 |                   async fn process(&self, entry: &FileSystemTree) {
   |  _________________________________________________________________^
23 | |                     if entry.is_dir() {
24 | |                         join_all(entry.iter().map(|x| self.process(x))).await;
25 | |                     }
26 | |                 }
   | |_________________^
note: required because it's used within this `async` block
  --> src/lib.rs:16:32
   |
16 |         continue_async(move || async move {
   |                                ^^^^^^^^^^

For more information about this error, try `rustc --explain E0275`.
error: could not compile `rust-regresion` (lib) due to 1 previous error
anatawa12@192:~/IdeaProjects/vrc-get/rust-regression/rust-regresion +(rustc-regression) $

Backtrace

Not a compiler crash

@rustbot modify labels: +regression-from-stable-to-beta -regression-untriaged

Metadata

Metadata

Labels

C-bugCategory: This is a bug.P-highHigh priorityS-has-bisectionStatus: A bisection has been found for this issueT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-typesRelevant to the types team, which will review and decide on the PR/issue.regression-from-stable-to-betaPerformance or correctness regression from stable to beta.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions