about summary refs log tree commit diff
diff options
context:
space:
mode:
authorDelan Azabani <delan@azabani.com>2019-07-12 14:08:39 +1000
committerDelan Azabani <delan@azabani.com>2019-07-12 14:15:09 +1000
commitbeb2435724acb9344fb64358a8c937d971a5e04c (patch)
tree52fa9c00bbfe88e1488b25522f0d7efc76a12e5f
parent0f66ce65dbdef43e8459a3bc771d3fe05ad2063d (diff)
downloadrust-beb2435724acb9344fb64358a8c937d971a5e04c.tar.gz
rust-beb2435724acb9344fb64358a8c937d971a5e04c.zip
test `unsafe fn` and `async unsafe fn` calls in `async` in `unsafe`
-rw-r--r--src/test/ui/async-await/async-await.rs13
-rw-r--r--src/test/ui/async-await/await-macro.rs13
2 files changed, 26 insertions, 0 deletions
diff --git a/src/test/ui/async-await/async-await.rs b/src/test/ui/async-await/async-await.rs
index b9d82014bb9..26404757aa4 100644
--- a/src/test/ui/async-await/async-await.rs
+++ b/src/test/ui/async-await/async-await.rs
@@ -127,6 +127,18 @@ async unsafe fn unsafe_async_fn(x: u8) -> u8 {
     x
 }
 
+unsafe fn unsafe_fn(x: u8) -> u8 {
+    x
+}
+
+fn async_block_in_unsafe_block(x: u8) -> impl Future<Output = u8> {
+    unsafe {
+        async move {
+            unsafe_fn(unsafe_async_fn(x).await)
+        }
+    }
+}
+
 struct Foo;
 
 trait Bar {
@@ -184,6 +196,7 @@ fn main() {
         async_fn,
         generic_async_fn,
         async_fn_with_internal_borrow,
+        async_block_in_unsafe_block,
         Foo::async_assoc_item,
         |x| {
             async move {
diff --git a/src/test/ui/async-await/await-macro.rs b/src/test/ui/async-await/await-macro.rs
index 7729cdf3cd9..9ac0ab7c6c7 100644
--- a/src/test/ui/async-await/await-macro.rs
+++ b/src/test/ui/async-await/await-macro.rs
@@ -127,6 +127,18 @@ async unsafe fn unsafe_async_fn(x: u8) -> u8 {
     x
 }
 
+unsafe fn unsafe_fn(x: u8) -> u8 {
+    x
+}
+
+fn async_block_in_unsafe_block(x: u8) -> impl Future<Output = u8> {
+    unsafe {
+        async move {
+            unsafe_fn(await!(unsafe_async_fn(x)))
+        }
+    }
+}
+
 struct Foo;
 
 trait Bar {
@@ -184,6 +196,7 @@ fn main() {
         async_fn,
         generic_async_fn,
         async_fn_with_internal_borrow,
+        async_block_in_unsafe_block,
         Foo::async_assoc_item,
         |x| {
             async move {