summaryrefslogtreecommitdiffstats
path: root/src/test/ui/mut/mut-pattern-internal-mutability.rs
blob: bcee878e3894bd4d82805e97bd2a03502072b34c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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);
}