error[E0503]: cannot use `foo` because it was mutably borrowed --> $DIR/borrowck-match-already-borrowed.rs:9:19 | LL | let p = &mut foo; | -------- borrow of `foo` occurs here LL | let _ = match foo { | ^^^ 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:12:16 | LL | let p = &mut foo; | -------- borrow of `foo` occurs here ... LL | Foo::A(x) => x | ^ use of borrowed `foo` LL | }; LL | drop(p); | - borrow later used here error[E0503]: cannot use `x` because it was mutably borrowed --> $DIR/borrowck-match-already-borrowed.rs:22:9 | LL | let r = &mut x; | ------ borrow of `x` occurs here LL | let _ = match x { LL | x => x + 1, | ^ 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:23:9 | LL | let r = &mut x; | ------ borrow of `x` occurs here ... LL | y => y + 2, | ^ use of borrowed `x` LL | }; LL | drop(r); | - borrow later used here error: aborting due to 4 previous errors For more information about this error, try `rustc --explain E0503`.