summaryrefslogtreecommitdiffstats
path: root/tests/ui/borrowck/borrowck-lend-flow-match.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/borrowck/borrowck-lend-flow-match.rs')
-rw-r--r--tests/ui/borrowck/borrowck-lend-flow-match.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/ui/borrowck/borrowck-lend-flow-match.rs b/tests/ui/borrowck/borrowck-lend-flow-match.rs
new file mode 100644
index 000000000..9737bc769
--- /dev/null
+++ b/tests/ui/borrowck/borrowck-lend-flow-match.rs
@@ -0,0 +1,18 @@
+fn separate_arms() {
+ // Here both arms perform assignments, but only one is illegal.
+
+ let mut x = None;
+ match x {
+ None => {
+ // It is ok to reassign x here, because there is in
+ // fact no outstanding loan of x!
+ x = Some(0);
+ }
+ Some(ref r) => {
+ x = Some(1); //~ ERROR cannot assign to `x` because it is borrowed
+ drop(r);
+ }
+ }
+}
+
+fn main() {}