fn main() { | |
let foo = &mut 1; | |
let &mut x = foo; | |
x += 1; //~ ERROR cannot assign twice to immutable variable `x` | |
// explicitly mut-ify internals | |
let &mut mut x = foo; | |
x += 1; | |
// check borrowing is detected successfully | |
let &mut ref x = foo; | |
*foo += 1; //~ ERROR cannot assign to `*foo` because it is borrowed | |
drop(x); | |
} |