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