about summary refs log tree commit diff
path: root/tests/ui/span/regions-escape-loop-via-vec.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/span/regions-escape-loop-via-vec.rs')
-rw-r--r--tests/ui/span/regions-escape-loop-via-vec.rs13
1 files changed, 13 insertions, 0 deletions
diff --git a/tests/ui/span/regions-escape-loop-via-vec.rs b/tests/ui/span/regions-escape-loop-via-vec.rs
new file mode 100644
index 00000000000..1fceb096967
--- /dev/null
+++ b/tests/ui/span/regions-escape-loop-via-vec.rs
@@ -0,0 +1,13 @@
+// The type of `y` ends up getting inferred to the type of the block.
+fn broken() {
+    let mut x = 3;
+    let mut _y = vec![&mut x];
+    while x < 10 { //~ ERROR cannot use `x` because it was mutably borrowed
+        let mut z = x; //~ ERROR cannot use `x` because it was mutably borrowed
+        _y.push(&mut z);
+        //~^ ERROR `z` does not live long enough
+        x += 1; //~ ERROR cannot use `x` because it was mutably borrowed
+    }
+}
+
+fn main() { }