fn save_ref<'a>(refr: &'a i32, to: &mut [&'a i32]) { | |
for val in &mut *to { | |
*val = refr; | |
} | |
} | |
fn main() { | |
let ref init = 0i32; | |
let ref mut refr = 1i32; | |
let mut out = [init]; | |
save_ref(&*refr, &mut out); | |
// This shouldn't be allowed as `refr` is borrowed | |
*refr = 3; //~ ERROR cannot assign to `*refr` because it is borrowed | |
// Prints 3?! | |
println!("{:?}", out[0]); | |
} |