mirror of https://github.com/rust-lang/rust
22 lines
550 B
Rust
22 lines
550 B
Rust
//@ 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
|
|
|
|
//@ pretty-expanded FIXME #23616
|
|
|
|
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() {
|
|
}
|