//@ edition: 2021 trait MyTrait { async fn foo_recursive(&self, n: usize) -> T; } impl MyTrait for T where T: Copy { async fn foo_recursive(&self, n: usize) -> T { //~^ ERROR recursion in an async fn requires boxing if n > 0 { self.foo_recursive(n - 1).await } else { *self } } } fn main() {}