summaryrefslogtreecommitdiffstats
path: root/tests/ui/closures/2229_closure_analysis/unique-borrows-are-invariant-1.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/closures/2229_closure_analysis/unique-borrows-are-invariant-1.rs')
-rw-r--r--tests/ui/closures/2229_closure_analysis/unique-borrows-are-invariant-1.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/ui/closures/2229_closure_analysis/unique-borrows-are-invariant-1.rs b/tests/ui/closures/2229_closure_analysis/unique-borrows-are-invariant-1.rs
new file mode 100644
index 000000000..f21ef43fb
--- /dev/null
+++ b/tests/ui/closures/2229_closure_analysis/unique-borrows-are-invariant-1.rs
@@ -0,0 +1,18 @@
+// edition:2021
+
+// regression test for #112056
+
+fn extend_lifetime<'a, 'b>(x: &mut (&'a str,), y: &'b str) {
+ let mut closure = |input| x.0 = input;
+ //~^ ERROR: lifetime may not live long enough
+ closure(y);
+}
+
+fn main() {
+ let mut tuple = ("static",);
+ {
+ let x = String::from("temporary");
+ extend_lifetime(&mut tuple, &x);
+ }
+ println!("{}", tuple.0);
+}