]>
Commit | Line | Data |
---|---|---|
970d7e83 LB |
1 | // Test that attempt to reborrow an `&mut` pointer in an aliasable |
2 | // location yields an error. | |
3 | // | |
1b1a35ee | 4 | // Example from compiler/rustc_borrowck/borrowck/README.md |
970d7e83 | 5 | |
1a4d82fc | 6 | fn foo(t0: & &mut isize) { |
970d7e83 | 7 | let t1 = t0; |
1a4d82fc | 8 | let p: &isize = &**t0; |
970d7e83 LB |
9 | **t1 = 22; //~ ERROR cannot assign |
10 | } | |
11 | ||
1a4d82fc | 12 | fn foo3(t0: &mut &mut isize) { |
970d7e83 | 13 | let t1 = &mut *t0; |
1a4d82fc | 14 | let p: &isize = &**t0; //~ ERROR cannot borrow |
970d7e83 LB |
15 | **t1 = 22; |
16 | } | |
17 | ||
1a4d82fc JJ |
18 | fn foo4(t0: & &mut isize) { |
19 | let x: &mut isize = &mut **t0; //~ ERROR cannot borrow | |
20 | *x += 1; | |
21 | } | |
22 | ||
970d7e83 | 23 | fn main() { |
1a4d82fc | 24 | } |