error[E0503]: cannot use `foo` because it was mutably borrowed --> $DIR/borrowck-match-already-borrowed.rs:23:9 | LL | let p = &mut foo; | -------- borrow of `foo` occurs here LL | let _ = match foo { LL | Foo::B => 1, //[mir]~ ERROR [E0503] | ^^^^^^ use of borrowed `foo` ... LL | drop(p); | - borrow later used here error[E0503]: cannot use `foo.0` because it was mutably borrowed --> $DIR/borrowck-match-already-borrowed.rs:25:16 | LL | let p = &mut foo; | -------- borrow of `foo` occurs here ... LL | Foo::A(x) => x //[ast]~ ERROR [E0503] | ^ use of borrowed `foo` ... LL | drop(p); | - borrow later used here error[E0503]: cannot use `x` because it was mutably borrowed --> $DIR/borrowck-match-already-borrowed.rs:36:9 | LL | let r = &mut x; | ------ borrow of `x` occurs here LL | let _ = match x { LL | x => x + 1, //[ast]~ ERROR [E0503] | ^ use of borrowed `x` ... LL | drop(r); | - borrow later used here error[E0503]: cannot use `x` because it was mutably borrowed --> $DIR/borrowck-match-already-borrowed.rs:38:9 | LL | let r = &mut x; | ------ borrow of `x` occurs here ... LL | y => y + 2, //[ast]~ ERROR [E0503] | ^ use of borrowed `x` ... LL | drop(r); | - borrow later used here error: aborting due to 4 previous errors For more information about this error, try `rustc --explain E0503`.