// Test that we detect nested calls that could free pointers evaluated
// for earlier arguments.
-#![feature(box_syntax)]
+
fn rewrite(v: &mut Box<usize>) -> usize {
- *v = box 22;
+ *v = Box::new(22);
**v
}
}
fn implicit() {
- let mut a: Box<_> = box 1;
+ let mut a: Box<_> = Box::new(1);
// Note the danger here:
//
}
fn explicit() {
- let mut a: Box<_> = box 1;
+ let mut a: Box<_> = Box::new(1);
add(
&*a,
rewrite(&mut a)); //~ ERROR cannot borrow