| //@ run-pass | |
| #![allow(dead_code)] | |
| #![allow(unused_mut)] | |
| #![allow(unused_variables)] | |
| // Test that freezing an `&mut` pointer while referent is | |
| // frozen is legal. | |
| // | |
| // Example from compiler/rustc_borrowck/borrowck/README.md | |
| fn foo<'a>(mut t0: &'a mut isize, | |
| mut t1: &'a mut isize) { | |
| let p: &isize = &*t0; // Freezes `*t0` | |
| let mut t2 = &t0; | |
| let q: &isize = &**t2; // Freezes `*t0`, but that's ok... | |
| let r: &isize = &*t0; // ...after all, could do same thing directly. | |
| } | |
| pub fn main() { | |
| } |