// run-pass #![allow(dead_code)] #![allow(unused_variables)] struct UsizeRef<'a> { a: &'a usize } type RefTo = Box Fn(&'r Vec) -> UsizeRef<'r>>; fn ref_to<'a>(vec: &'a Vec) -> UsizeRef<'a> { UsizeRef{ a: &vec[0]} } fn main() { // Regression test: this was causing ICEs; it should compile. let a: RefTo = Box::new(|vec: &Vec| { UsizeRef{ a: &vec[0] } }); }