blob: ffad623e572a76fcaa8b27195dffa1522c79707e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
// revisions: ast mir
//[mir]compile-flags: -Z borrowck=mir
fn main() {
let foo = &mut 1;
let &mut x = foo;
x += 1; //[ast]~ ERROR cannot assign twice to immutable variable
//[mir]~^ 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; //[ast]~ ERROR cannot assign to `*foo` because it is borrowed
//[mir]~^ ERROR cannot assign to `*foo` because it is borrowed
drop(x);
}
|