1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
trait Foo { type Bar; } impl<T> Foo for T { type Bar = i32; } fn foo<T>(_: <T as Foo>::Bar, _: &'static <T as Foo>::Bar) {} fn needs_i32_ref_fn(_: fn(&'static i32, i32)) {} fn main() { needs_i32_ref_fn(foo::<()>); //~^ ERROR mismatched types }