| #![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() {} |