1 // check-pass 2 // issue #69184 3 #![feature(generic_associated_types)] 4 5 trait A { 6 type B<'a> where Self: 'a; 7 make_b<'a>(&'a self) -> Self::B<'a>8 fn make_b<'a>(&'a self) -> Self::B<'a>; 9 } 10 11 struct S {} 12 impl A for S { 13 type B<'a> = &'a S; make_b<'a>(&'a self) -> &'a Self14 fn make_b<'a>(&'a self) -> &'a Self { 15 self 16 } 17 } 18 19 enum E<'a> { 20 S(<S as A>::B<'a>), 21 } 22 main()23fn main() {} 24