summaryrefslogtreecommitdiffstats
path: root/src/test/ui/span/regions-escape-loop-via-vec.rs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/test/ui/span/regions-escape-loop-via-vec.rs13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/test/ui/span/regions-escape-loop-via-vec.rs b/src/test/ui/span/regions-escape-loop-via-vec.rs
new file mode 100644
index 000000000..1fceb0969
--- /dev/null
+++ b/src/test/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() { }