summaryrefslogtreecommitdiffstats
path: root/tests/ui/async-await/in-trait/async-default-fn-overridden.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/async-await/in-trait/async-default-fn-overridden.rs')
-rw-r--r--tests/ui/async-await/in-trait/async-default-fn-overridden.rs24
1 files changed, 5 insertions, 19 deletions
diff --git a/tests/ui/async-await/in-trait/async-default-fn-overridden.rs b/tests/ui/async-await/in-trait/async-default-fn-overridden.rs
index c8fd2d8f6..491dfcc6a 100644
--- a/tests/ui/async-await/in-trait/async-default-fn-overridden.rs
+++ b/tests/ui/async-await/in-trait/async-default-fn-overridden.rs
@@ -1,6 +1,7 @@
// run-pass
// edition:2021
+#![feature(noop_waker)]
use std::future::Future;
@@ -32,33 +33,18 @@ async fn async_main() {
// ------------------------------------------------------------------------- //
// Implementation Details Below...
-use std::pin::Pin;
+use std::pin::pin;
use std::task::*;
-pub fn noop_waker() -> Waker {
- let raw = RawWaker::new(std::ptr::null(), &NOOP_WAKER_VTABLE);
-
- // SAFETY: the contracts for RawWaker and RawWakerVTable are upheld
- unsafe { Waker::from_raw(raw) }
-}
-
-const NOOP_WAKER_VTABLE: RawWakerVTable = RawWakerVTable::new(noop_clone, noop, noop, noop);
-
-unsafe fn noop_clone(_p: *const ()) -> RawWaker {
- RawWaker::new(std::ptr::null(), &NOOP_WAKER_VTABLE)
-}
-
-unsafe fn noop(_p: *const ()) {}
-
fn main() {
- let mut fut = async_main();
+ let mut fut = pin!(async_main());
// Poll loop, just to test the future...
- let waker = noop_waker();
+ let waker = Waker::noop();
let ctx = &mut Context::from_waker(&waker);
loop {
- match unsafe { Pin::new_unchecked(&mut fut).poll(ctx) } {
+ match fut.as_mut().poll(ctx) {
Poll::Pending => {}
Poll::Ready(()) => break,
}