async fn/impl trait return type cannot contain a projection or Self that references lifetimes from a parent scope.
Erroneous code example:
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>:
#![allow(unused)]
fn main() {
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.
© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/error_codes/E0760.html