| error[E0384]: cannot assign twice to immutable variable `x` | 
 |   --> $DIR/mut-pattern-internal-mutability.rs:5:5 | 
 |    | | 
 | LL |     let &mut x = foo; | 
 |    |              - first assignment to `x` | 
 | LL |     x += 1; | 
 |    |     ^^^^^^ cannot assign twice to immutable variable | 
 |    | | 
 | help: consider making this binding mutable | 
 |    | | 
 | LL |     let &mut mut x = foo; | 
 |    |              +++ | 
 | help: to modify the original value, take a borrow instead | 
 |    | | 
 | LL |     let &mut ref mut x = foo; | 
 |    |              +++++++ | 
 |  | 
 | error[E0506]: cannot assign to `*foo` because it is borrowed | 
 |   --> $DIR/mut-pattern-internal-mutability.rs:13:5 | 
 |    | | 
 | LL |     let &mut ref x = foo; | 
 |    |              ----- `*foo` is borrowed here | 
 | LL |     *foo += 1; | 
 |    |     ^^^^^^^^^ `*foo` is assigned to here but it was already borrowed | 
 | LL |     drop(x); | 
 |    |          - borrow later used here | 
 |  | 
 | error: aborting due to 2 previous errors | 
 |  | 
 | Some errors have detailed explanations: E0384, E0506. | 
 | For more information about an error, try `rustc --explain E0384`. |