fn foo<'a>(mut t0: &'a mut isize,
           mut t1: &'a mut isize) {
    let p: &isize = &*t0;     // Freezes `*t0`
    let mut t2 = &mut t0;   //~ ERROR cannot borrow `t0`
    **t2 += 1;              // Mutates `*t0`
}
// Test that attempt to mutably borrow `&mut` pointer while pointee is
// borrowed yields an error.
//
// Example from src/librustc_borrowck/borrowck/README.md
Test that attempt to mutably borrow `&mut` pointer while pointee is
borrowed yields an error.


Test that attempt to mutably borrow ` &mut ` pointer while pointee is borrowed yields an error .
fn foo<'a>(mut t0: &'a mut isize,
           mut t1: &'a mut isize) {
    let p: &isize = &*t0;     // Freezes `*t0`
    let mut t2 = &mut t0;   //~ ERROR cannot borrow `t0`
    **t2 += 1;              // Mutates `*t0`
}
fn foo < ' a > ( mut t0 : & ' a mut isize , mut t1 : & ' a mut isize ) { let p : & isize = & * t0 ; // Freezes `*t0` let mut t2 = & mut t0 ; //~ ERROR cannot borrow `t0` * * t2 += 1 ; // Mutates `*t0` }
Test that attempt to mutably borrow `&mut` pointer while pointee is
borrowed yields an error.
Test that attempt to mutably borrow ` &mut ` pointer while pointee is borrowed yields an error .
t0
&'a mut isize
t1
&'a mut isize
t0
&'a mut isize
t1
&'a mut isize