diff options
| author | Delan Azabani <delan@azabani.com> | 2019-07-12 14:54:52 +1000 |
|---|---|---|
| committer | Delan Azabani <delan@azabani.com> | 2019-07-12 15:10:52 +1000 |
| commit | 5f8d0a1920de9973f980423cd29dbed2eed0b92c (patch) | |
| tree | 9278974b76f17032f9ccc0603c35f490af9c116a /src/test/ui/async-await/async-closure.rs | |
| parent | d023e47877d28ffdaeb586c50d1271970f7c84f4 (diff) | |
| download | rust-5f8d0a1920de9973f980423cd29dbed2eed0b92c.tar.gz rust-5f8d0a1920de9973f980423cd29dbed2eed0b92c.zip | |
test `unsafe fn` and `async unsafe fn` calls in `unsafe { async || }`
Diffstat (limited to 'src/test/ui/async-await/async-closure.rs')
| -rw-r--r-- | src/test/ui/async-await/async-closure.rs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/test/ui/async-await/async-closure.rs b/src/test/ui/async-await/async-closure.rs index f5dc9e24d2d..925b54b3985 100644 --- a/src/test/ui/async-await/async-closure.rs +++ b/src/test/ui/async-await/async-closure.rs @@ -53,6 +53,21 @@ fn async_closure(x: u8) -> impl Future<Output = u8> { })(x) } +fn async_closure_in_unsafe_block(x: u8) -> impl Future<Output = u8> { + (unsafe { + async move |x: u8| unsafe_fn(unsafe_async_fn(x).await) + })(x) +} + +async unsafe fn unsafe_async_fn(x: u8) -> u8 { + wake_and_yield_once().await; + x +} + +unsafe fn unsafe_fn(x: u8) -> u8 { + x +} + fn test_future_yields_once_then_returns<F, Fut>(f: F) where F: FnOnce(u8) -> Fut, @@ -77,5 +92,6 @@ fn main() { test! { async_closure, + async_closure_in_unsafe_block, } } |
