// check-pass #![allow(dead_code)] use std::rc::Rc; fn test1() -> Rc Fn(&'a usize) + 'static> { if let Some(_) = Some(1) { loop{} } else { loop{} } } fn test2() -> *mut (dyn for<'a> Fn(&'a usize) + 'static) { if let Some(_) = Some(1) { loop{} } else { loop{} } } fn main() {}