#![feature(type_alias_impl_trait)] | |
// edition:2021 | |
// check-pass | |
struct Pending {} | |
struct CantOpen {} | |
trait AsyncRead {} | |
impl AsyncRead for i32 {} | |
type PendingReader<'a> = impl AsyncRead + 'a; | |
type OpeningReadFuture<'a> = | |
impl std::future::Future<Output = Result<PendingReader<'a>, CantOpen>>; | |
impl Pending { | |
async fn read(&mut self) -> Result<impl AsyncRead + '_, CantOpen> { | |
Ok(42) | |
} | |
fn read_fut(&mut self) -> OpeningReadFuture<'_> { | |
self.read() | |
} | |
} | |
fn main() {} |