1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
// check-pass trait Bar { type Type; } struct Foo<'a>(&'a ()); impl<'a> Bar for Foo<'a> { type Type = (); } fn func<'a>(_: <Foo<'a> as Bar>::Type) {} fn assert_is_func<A>(_: fn(A)) {} fn test() where for<'a> <Foo<'a> as Bar>::Type: Sized, { assert_is_func(func); } fn main() {}