1 // compile-flags: --edition=2018
4 println
!("non_async_func was covered");
7 println
!("non_async_func println in block");
11 async
fn async_func() {
12 println
!("async_func was covered");
15 println
!("async_func println in block");
19 async
fn async_func_just_println() {
20 println
!("async_func_just_println was covered");
24 println
!("codecovsample::main");
28 executor
::block_on(async_func());
29 executor
::block_on(async_func_just_println());
36 task
::{Context, Poll, RawWaker, RawWakerVTable, Waker}
,
39 pub fn block_on
<F
: Future
>(mut future
: F
) -> F
::Output
{
40 let mut future
= unsafe { Pin::new_unchecked(&mut future) }
;
41 use std
::hint
::unreachable_unchecked
;
42 static VTABLE
: RawWakerVTable
= RawWakerVTable
::new(
43 |_
| unsafe { unreachable_unchecked() }
, // clone
44 |_
| unsafe { unreachable_unchecked() }
, // wake
45 |_
| unsafe { unreachable_unchecked() }
, // wake_by_ref
48 let waker
= unsafe { Waker::from_raw(RawWaker::new(core::ptr::null(), &VTABLE)) }
;
49 let mut context
= Context
::from_waker(&waker
);
52 if let Poll
::Ready(val
) = future
.as_mut().poll(&mut context
) {