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`.