// run-pass
// This is the "goto example" for why we want two phase borrows.
fn main() {
let mut v = vec![0, 1, 2];
v.push(v.len());
assert_eq!(v, [0, 1, 2, 3]);
}