diff options
Diffstat (limited to 'src/test/ui/async-await/issue-98634.rs')
-rw-r--r-- | src/test/ui/async-await/issue-98634.rs | 50 |
1 files changed, 0 insertions, 50 deletions
diff --git a/src/test/ui/async-await/issue-98634.rs b/src/test/ui/async-await/issue-98634.rs deleted file mode 100644 index b0d38687f..000000000 --- a/src/test/ui/async-await/issue-98634.rs +++ /dev/null @@ -1,50 +0,0 @@ -// edition: 2021 - -use std::{ - future::Future, - pin::Pin, - task::{Context, Poll, Waker}, -}; - -pub struct StructAsync<F: Fn() -> Pin<Box<dyn Future<Output = ()>>>> { - pub callback: F, -} - -impl<F> Future for StructAsync<F> -where - F: Fn() -> Pin<Box<dyn Future<Output = ()>>>, -{ - type Output = (); - - fn poll(self: Pin<&mut Self>, _cx: &mut Context<'_>) -> Poll<Self::Output> { - Poll::Pending - } -} - -async fn callback() {} - -struct Runtime; - -fn waker() -> &'static Waker { - todo!() -} - -impl Runtime { - #[track_caller] - pub fn block_on<F: Future>(&self, mut future: F) -> F::Output { - loop { - unsafe { - Pin::new_unchecked(&mut future).poll(&mut Context::from_waker(waker())); - } - } - } -} - -fn main() { - Runtime.block_on(async { - StructAsync { callback }.await; - //~^ ERROR expected `fn() -> impl Future<Output = ()> {callback}` to be a fn item that returns `Pin<Box<(dyn Future<Output = ()> + 'static)>>`, but it returns `impl Future<Output = ()>` - //~| ERROR expected `fn() -> impl Future<Output = ()> {callback}` to be a fn item that returns `Pin<Box<(dyn Future<Output = ()> + 'static)>>`, but it returns `impl Future<Output = ()>` - //~| ERROR expected `fn() -> impl Future<Output = ()> {callback}` to be a fn item that returns `Pin<Box<(dyn Future<Output = ()> + 'static)>>`, but it returns `impl Future<Output = ()>` - }); -} |