1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
// check-pass pub trait Fn0: Fn(i32) -> Self::Out { type Out; } impl<F: Fn(i32) -> ()> Fn0 for F { type Out = (); } pub fn closure_typer(_: impl Fn0) {} fn main() { closure_typer(move |x| { let _: i64 = x.into(); }); }