]> git.proxmox.com Git - rustc.git/blame - src/test/ui/borrowck/borrowck-borrow-mut-base-ptr-in-aliasable-loc.rs
New upstream version 1.67.1+dfsg1
[rustc.git] / src / test / ui / borrowck / borrowck-borrow-mut-base-ptr-in-aliasable-loc.rs
CommitLineData
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 6fn 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 12fn 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
18fn foo4(t0: & &mut isize) {
19 let x: &mut isize = &mut **t0; //~ ERROR cannot borrow
20 *x += 1;
21}
22
970d7e83 23fn main() {
1a4d82fc 24}