1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
// check-pass trait Marker {} impl Marker for u32 {} trait MyTrait { type Item<'a>; } struct MyStruct; impl MyTrait for MyStruct { type Item<'a> = u32; } fn ty_check<T>() where T: MyTrait, for<'a> T::Item<'a>: Marker {} fn main() { ty_check::<MyStruct>(); }