about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--tests/ui/lifetimes/temporary-lifetime-extension.rs29
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/ui/lifetimes/temporary-lifetime-extension.rs b/tests/ui/lifetimes/temporary-lifetime-extension.rs
new file mode 100644
index 00000000000..477801f3273
--- /dev/null
+++ b/tests/ui/lifetimes/temporary-lifetime-extension.rs
@@ -0,0 +1,29 @@
+//@ check-pass
+
+fn temp() -> (String, i32) {
+    (String::from("Hello"), 1)
+}
+
+fn main() {
+    let a = &temp();
+    let b = [(&temp(),)];
+    let c = &temp().0;
+    let d = &temp().0[..];
+    let e = {
+        let _ = 123;
+        &(*temp().0)[..]
+    };
+    let f = if true {
+        &temp()
+    } else {
+        &temp()
+    };
+    let g = match true {
+        true => &temp(),
+        false => {
+            let _ = 123;
+            &temp()
+        }
+    };
+    println!("{a:?} {b:?} {c:?} {d:?} {e:?} {f:?} {g:?}");
+}