about summary refs log tree commit diff
diff options
context:
space:
mode:
authorDing Xiang Fei <dingxiangfei2009@protonmail.ch>2022-07-31 20:31:53 +0800
committerDing Xiang Fei <dingxiangfei2009@protonmail.ch>2022-07-31 20:31:53 +0800
commite26285603ca8b83b9d06e56f74e10e3d410553ff (patch)
treed9003837e6a65d590382015ee2b363e80d842023
parent02443552c56c0b5d909ba3ddc653e686dff09d9c (diff)
downloadrust-e26285603ca8b83b9d06e56f74e10e3d410553ff.tar.gz
rust-e26285603ca8b83b9d06e56f74e10e3d410553ff.zip
add test for earlier drop despite extend lifetime
-rw-r--r--src/test/ui/let-else/let-else-temporary-lifetime.rs11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/test/ui/let-else/let-else-temporary-lifetime.rs b/src/test/ui/let-else/let-else-temporary-lifetime.rs
index 9c86901b97f..07fcc16e7bb 100644
--- a/src/test/ui/let-else/let-else-temporary-lifetime.rs
+++ b/src/test/ui/let-else/let-else-temporary-lifetime.rs
@@ -75,6 +75,17 @@ fn main() {
         }
     }
     {
+        fn must_pass() {
+            let rc = Rc::new(());
+            let &None = &Some(Rc::clone(&rc)) else {
+                Rc::try_unwrap(rc).unwrap();
+                return;
+            };
+            unreachable!();
+        }
+        must_pass();
+    }
+    {
         // test let-else drops temps before else block
         // NOTE: this test has to be the last block in the `main`
         // body.