about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMazdak Farrokhzad <twingoow@gmail.com>2019-07-25 23:20:58 +0200
committerGitHub <noreply@github.com>2019-07-25 23:20:58 +0200
commit6f0e57fb1dc3b30126e6ec6c9dd2ad0309da2c0c (patch)
tree72eba5c8c1e8e6a08c889db6af08b026076272dd
parent008d9d0feaec231fa2fe16468d2d44714e765700 (diff)
parent404281125e565a4889910657504112789c75a11e (diff)
downloadrust-6f0e57fb1dc3b30126e6ec6c9dd2ad0309da2c0c.tar.gz
rust-6f0e57fb1dc3b30126e6ec6c9dd2ad0309da2c0c.zip
Rollup merge of #62707 - JohnTitor:add-test-for-61922, r=tmandry
Add tests for overlapping explicitly dropped locals in generators

Closes #62686

r? @tmandry
-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 574442e2574..dbcdfc61ef9 100644
--- a/src/test/run-pass/generator/size-moved-locals.rs
+++ b/src/test/run-pass/generator/size-moved-locals.rs
@@ -56,8 +56,20 @@ fn overlap_move_points() -> impl Generator<Yield = (), Return = ()> {
     }
 }
 
+fn overlap_x_and_y() -> impl Generator<Yield = (), Return = ()>{
+    static || {
+        let x = Foo([0; FOO_SIZE]);
+        yield;
+        drop(x);
+        let y = Foo([0; FOO_SIZE]);
+        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!(1032, std::mem::size_of_val(&overlap_x_and_y()));
 }