//@ run-pass | |
#![allow(non_camel_case_types)] | |
struct closure_box<'a> { | |
cl: Box<dyn FnMut() + 'a>, | |
} | |
fn box_it<'a>(x: Box<dyn FnMut() + 'a>) -> closure_box<'a> { | |
closure_box {cl: x} | |
} | |
pub fn main() { | |
let mut i = 3; | |
assert_eq!(i, 3); | |
{ | |
let cl = || i += 1; | |
let mut cl_box = box_it(Box::new(cl)); | |
(cl_box.cl)(); | |
} | |
assert_eq!(i, 4); | |
} |