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