]> git.lizzy.rs Git - rust.git/blob - tests/ui/borrowck/borrowck-borrow-mut-base-ptr-in-aliasable-loc.rs
Rollup merge of #103236 - tspiteri:redoc-int-adc-sbb, r=m-ou-se
[rust.git] / tests / ui / borrowck / borrowck-borrow-mut-base-ptr-in-aliasable-loc.rs
1 // Test that attempt to reborrow an `&mut` pointer in an aliasable
2 // location yields an error.
3 //
4 // Example from compiler/rustc_borrowck/borrowck/README.md
5
6 fn foo(t0: & &mut isize) {
7     let t1 = t0;
8     let p: &isize = &**t0;
9     **t1 = 22; //~ ERROR cannot assign
10 }
11
12 fn foo3(t0: &mut &mut isize) {
13     let t1 = &mut *t0;
14     let p: &isize = &**t0; //~ ERROR cannot borrow
15     **t1 = 22;
16 }
17
18 fn foo4(t0: & &mut isize) {
19     let x:  &mut isize = &mut **t0; //~ ERROR cannot borrow
20     *x += 1;
21 }
22
23 fn main() {
24 }