Why does this compile?
fn main() {
let mut x = vec![1, 2, 3];
let y = &mut x;
let z: &mut _ = y;
let xx = y;
}
when z
reborrow x
in this statement let z: &mut _ = y;
there already exist a mutable reference to x
in y
. Doesnt this violate rust principle?