about summary refs log tree commit diff
diff options
context:
space:
mode:
authorDavid Laban <alsuren@gmail.com>2019-08-04 16:08:31 +0100
committerDavid Laban <alsuren@gmail.com>2019-08-04 16:10:07 +0100
commit0a1bdd4a53c239ac412bc7031b8b6056fe80674a (patch)
tree8eaa3d64b250ea12536d25f67c06c3b5d3f4c9b7
parenta17951c4f80eb5208030f91fdb4ae93919fa6b12 (diff)
downloadrust-0a1bdd4a53c239ac412bc7031b8b6056fe80674a.tar.gz
rust-0a1bdd4a53c239ac412bc7031b8b6056fe80674a.zip
test .await while holding variables of different sizes
-rw-r--r--src/test/ui/async-await/async-fn-size-moved-locals.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/test/ui/async-await/async-fn-size-moved-locals.rs b/src/test/ui/async-await/async-fn-size-moved-locals.rs
index d0d4eb032fc..30b59d037d5 100644
--- a/src/test/ui/async-await/async-fn-size-moved-locals.rs
+++ b/src/test/ui/async-await/async-fn-size-moved-locals.rs
@@ -93,9 +93,27 @@ async fn joined_with_noop() {
     joiner.await
 }
 
+async fn mixed_sizes() {
+    let a = BigFut::new();
+    let b = BigFut::new();
+    let c = BigFut::new();
+    let d = BigFut::new();
+    let e = BigFut::new();
+    let joiner = Joiner {
+        a: Some(a),
+        b: Some(b),
+        c: Some(c),
+    };
+
+    d.await;
+    e.await;
+    joiner.await;
+}
+
 fn main() {
     assert_eq!(1028, std::mem::size_of_val(&single()));
     assert_eq!(1032, std::mem::size_of_val(&single_with_noop()));
     assert_eq!(3084, std::mem::size_of_val(&joined()));
     assert_eq!(3084, std::mem::size_of_val(&joined_with_noop()));
+    assert_eq!(7188, std::mem::size_of_val(&mixed_sizes()));
 }