// run-pass

pub fn main() {
    let mut a: Vec<Box<_>> = vec![Box::new(10)];
    let b = a.clone();

    assert_eq!(*a[0], 10);
    assert_eq!(*b[0], 10);

    // This should only modify the value in a, not b
    *a[0] = 20;

    assert_eq!(*a[0], 20);
    assert_eq!(*b[0], 10);
}