#![feature(fn_traits)] | |
struct ClosureBox<'a> { | |
cl: Box<dyn FnMut() + 'a>, | |
} | |
fn box_it<'r>(x: Box<dyn FnMut() + 'r>) -> ClosureBox<'r> { | |
ClosureBox {cl: x} | |
} | |
fn main() { | |
let mut cl_box = { | |
let mut i = 3; | |
box_it(Box::new(|| i += 1)) //~ ERROR `i` does not live long enough | |
}; | |
cl_box.cl.call_mut(()); | |
} |