take(_v: Box<isize>)1fn take(_v: Box<isize>) { 2 } 3 4 5 6 7 box_imm()8fn box_imm() { 9 let v = Box::new(3); 10 let w = &v; 11 take(v); //~ ERROR cannot move out of `v` because it is borrowed 12 w.use_ref(); 13 } 14 main()15fn main() { 16 } 17 use_mut(&mut self)18trait Fake { fn use_mut(&mut self) { } fn use_ref(&self) { } } 19 impl<T> Fake for T { } 20