error[E0503]: cannot use `(foo as Foo::A).0` because it was mutably borrowed --> $DIR/borrowck-match-already-borrowed.rs:15:16 | LL | let p = &mut foo; | --- borrow of `foo` occurs here ... LL | Foo::A(x) => x //[ast]~ ERROR [E0503] | ^ use of borrowed `foo` error[E0503]: cannot use `x` because it was mutably borrowed --> $DIR/borrowck-match-already-borrowed.rs:26: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` error[E0503]: cannot use `x` because it was mutably borrowed --> $DIR/borrowck-match-already-borrowed.rs:28:9 | LL | let r = &mut x; | - borrow of `x` occurs here ... LL | y => y + 2, //[ast]~ ERROR [E0503] | ^ use of borrowed `x` error: aborting due to 3 previous errors For more information about this error, try `rustc --explain E0503`.