error[E0596]: cannot borrow as mutable inside an `&` pattern
  --> $DIR/ref-mut-inside-shared-ref-pat.rs:16:31
   |
LL |     if let Some(&Some(ref mut x)) = &mut Some(Some(0)) {
   |                 -             ^
   |                 |
   |                 help: replace this `&` with `&mut`: `&mut`

error[E0596]: cannot borrow as mutable inside an `&` pattern
  --> $DIR/ref-mut-inside-shared-ref-pat.rs:22:31
   |
LL |     if let &Some(Some(ref mut x)) = &mut Some(Some(0)) {
   |            -                  ^
   |            |
   |            help: replace this `&` with `&mut`: `&mut`

error[E0596]: cannot borrow as mutable inside an `&` pattern
  --> $DIR/ref-mut-inside-shared-ref-pat.rs:31:15
   |
LL |     let &pat!(x) = &mut 0;
   |         -     ^
   |         |
   |         help: replace this `&` with `&mut`: `&mut`

error[E0596]: cannot borrow as mutable inside an `&` pattern
  --> $DIR/ref-mut-inside-shared-ref-pat.rs:36:19
   |
LL |     let &(ref mut a, ref mut b) = &mut (true, false);
   |         -         ^
   |         |
   |         help: replace this `&` with `&mut`: `&mut`

error[E0596]: cannot borrow as mutable inside an `&` pattern
  --> $DIR/ref-mut-inside-shared-ref-pat.rs:36:30
   |
LL |     let &(ref mut a, ref mut b) = &mut (true, false);
   |         -                    ^
   |         |
   |         help: replace this `&` with `&mut`: `&mut`

error[E0596]: cannot borrow as mutable inside an `&` pattern
  --> $DIR/ref-mut-inside-shared-ref-pat.rs:43:11
   |
LL |     let &[x] = &mut &mut [0];
   |         - ^
   |         |
   |         help: replace this `&` with `&mut`: `&mut`

error: aborting due to 6 previous errors

For more information about this error, try `rustc --explain E0596`.
