fn fn_pointer_static() -> usize { static FN: fn() -> usize = || 1; let res = FN() + 1; res } fn fn_pointer_const() -> usize { const FN: fn() -> usize = || 1; let res = FN() + 1; res } fn deref_to_dyn_fn() -> usize { struct Derefs; impl std::ops::Deref for Derefs { type Target = dyn Fn() -> usize; fn deref(&self) -> &Self::Target { &|| 2 } } static FN: Derefs = Derefs; let res = FN() + 1; res } fn main() {}