Skip to content

recursive async functions no longer error in check builds #137

Closed
rust-lang/rust
#136073
@lcnr

Description

@lcnr

Affected tests:

  • tests/ui/async-await/recursive-async-impl-trait-type.rs
  • tests/ui/async-await/in-trait/async-recursive.rs
  • tests/ui/async-await/in-trait/async-recursive-generic.rs
//@ edition: 2021

trait MyTrait {
    async fn foo_recursive(&self, n: usize) -> i32;
}

impl MyTrait for i32 {
    async fn foo_recursive(&self, n: usize) -> i32 {
        //~^ ERROR recursion in an async fn requires boxing
        if n > 0 {
            self.foo_recursive(n - 1).await
        } else {
            *self
        }
    }
}

fn main() {}

This error is missing with the new solver

Metadata

Metadata

Type

No type

Projects

Status

done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions