about summary refs log tree commit diff
diff options
context:
space:
mode:
authorYuki Okushi <huyuumi.dev@gmail.com>2019-07-16 11:09:29 +0900
committerYuki Okushi <huyuumi.dev@gmail.com>2019-07-16 11:09:29 +0900
commit156173f83bdd0eb80546053d42304645e8cfbb6c (patch)
tree6b8727f5c8aa40dfbbf8c76cb138a3e81a38b571
parent4b65a86ebace8600c8e269e8bfe3365cdc460e68 (diff)
downloadrust-156173f83bdd0eb80546053d42304645e8cfbb6c.tar.gz
rust-156173f83bdd0eb80546053d42304645e8cfbb6c.zip
Add tests for overlapping explicitly dropped locals in generators
-rw-r--r--src/test/run-pass/generator/size-moved-locals.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/test/run-pass/generator/size-moved-locals.rs b/src/test/run-pass/generator/size-moved-locals.rs
index 37e2e0cfdcc..5b056059b5d 100644
--- a/src/test/run-pass/generator/size-moved-locals.rs
+++ b/src/test/run-pass/generator/size-moved-locals.rs
@@ -55,8 +55,20 @@ fn overlap_move_points() -> impl Generator<Yield = (), Return = ()> {
     }
 }
 
+fn overlap_x_and_y() -> impl Generator<Yield = (), Return = ()>{
+    static || {
+        let x = [0u8; 1024];
+        yield;
+        drop(x);
+        let y = [0u8;1024];
+        yield;
+        drop(y);
+    }
+}
+
 fn main() {
     assert_eq!(1028, std::mem::size_of_val(&move_before_yield()));
     assert_eq!(1032, std::mem::size_of_val(&move_before_yield_with_noop()));
     assert_eq!(2056, std::mem::size_of_val(&overlap_move_points()));
+    assert_eq!(2052, std::mem::size_of_val(&overlap_x_and_y()));
 }