]> git.lizzy.rs Git - rust.git/blob - src/test/ui/async-await/in-trait/async-recursive-generic.rs
Rollup merge of #103397 - crlf0710:port_dead_code_lint, r=davidtwco
[rust.git] / src / test / ui / async-await / in-trait / async-recursive-generic.rs
1 // edition: 2021
2
3 #![feature(async_fn_in_trait)]
4 #![allow(incomplete_features)]
5
6 trait MyTrait<T> {
7     async fn foo_recursive(&self, n: usize) -> T;
8 }
9
10 impl<T> MyTrait<T> for T where T: Copy {
11     async fn foo_recursive(&self, n: usize) -> T {
12         //~^ ERROR recursion in an `async fn` requires boxing
13         if n > 0 {
14             self.foo_recursive(n - 1).await
15         } else {
16             *self
17         }
18     }
19 }
20
21 fn main() {}