| #### Note: this error code is no longer emitted by the compiler. | |
| `async fn`/`impl trait` return type cannot contain a projection | |
| or `Self` that references lifetimes from a parent scope. | |
| Erroneous code example: | |
| ```ignore,edition2018 | |
| struct S<'a>(&'a i32); | |
| impl<'a> S<'a> { | |
| async fn new(i: &'a i32) -> Self { | |
| S(&22) | |
| } | |
| } | |
| ``` | |
| To fix this error we need to spell out `Self` to `S<'a>`: | |
| ```edition2018 | |
| struct S<'a>(&'a i32); | |
| impl<'a> S<'a> { | |
| async fn new(i: &'a i32) -> S<'a> { | |
| S(&22) | |
| } | |
| } | |
| ``` | |
| This will be allowed at some point in the future, | |
| but the implementation is not yet complete. | |
| See the [issue-61949] for this limitation. | |
| [issue-61949]: https://github.com/rust-lang/rust/issues/61949 |